project-hub-conventionslisted
Install: claude install-skill wsagency/WS-Claude-marketplace
# Project Hub Conventions
The WS Agency `ws` plugin organizes multi-repo projects under a single hub repo (`<project>-main`). Each sub-repo (mobile app, marketing site, design assets, docs, etc.) lives in a **subfolder of the hub** with its own independent git history.
## Layout
```
<project>-main/
├── .git/ # hub's git — tracks meta files only
├── .gitignore # managed block excludes sub-repo subfolders
├── .claude/skills/ # vendored conventions (this file)
├── project.yaml # registry of all sub-repos
├── AGENTS.md # project map (canonical, agent-neutral)
├── CLAUDE.md # thin @AGENTS.md import
├── invoke-ai.sh # agent picker launcher (claude / omp)
├── README.md
├── <project>-app/.git/ # own git, gitignored
├── <project>-marketing/.git/ # own git, gitignored
├── <project>-design/.git/ # own git, gitignored
└── <project>-docs/.git/ # own git, gitignored
```
Sibling layout (`path: ../<name>`) is still supported for back-compat, but new repos default to nested subfolders.
## `project.yaml` schema
```yaml
project:
name: <kebab-case-project-name>
description: <one-line description>
session: <tmux-session-name> # optional, default <name>-hub
repos:
- name: <repo-name> # required, matches directory name
path: ./<repo-name> # required, relative to hub; nested by default
url: <git-remote-url> # optional but recommended (en