You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CLAUDE.md
+24Lines changed: 24 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -163,6 +163,30 @@ Full hook spec in [`.claude/hooks/token-guard/README.md`](.claude/hooks/token-gu
163
163
-`/quality-scan` — quality analysis
164
164
- Shared subskills in `.claude/skills/_shared/`
165
165
166
+
#### Skill scope: fleet vs partial vs unique
167
+
168
+
Every skill under `.claude/skills/` falls into one of three tiers — surface this distinction when adding a new skill so it lands in the right place:
169
+
170
+
-**Fleet skill** — present in every fleet repo, identical contract everywhere. Examples: `path-guard`, `quality-scan`, `security-scan`, `updating`, `programmatic-claude-lockdown`, `promise-race-pitfall`. New fleet skills land in `socket-repo-template/template/.claude/skills/<name>/` and cascade via `node socket-repo-template/scripts/sync-scaffolding.mts --all --fix`. Track them in `SHARED_SKILL_FILES` in the sync manifest.
171
+
-**Partial skill** — present in the subset of repos that need it, identical contract within that subset. Examples: `cursor-bugbot` (every repo with PR review), `updating-xport` (every repo with `xport.json`), `squashing-history` (repos with the squash workflow). Live in each adopting repo's `.claude/skills/<name>/`. When you change one, propagate to the others.
172
+
-**Unique skill** — one repo only, bespoke to that repo's domain. Examples: `updating-cdxgen` (sdxgen), `updating-yoga` (socket-btm), `release` (socket-registry). Never canonical-tracked; the host repo owns it end-to-end.
173
+
174
+
Audit the current classification with `node socket-repo-template/scripts/run-skill-fleet.mts --list-skills`.
175
+
176
+
#### `updating` umbrella + `updating-*` siblings
177
+
178
+
`updating` is the canonical fleet umbrella that runs `pnpm run update` then discovers and runs every `updating-*` sibling skill the host repo registers. The umbrella is fleet-shared; the siblings are per-repo (or partial — e.g. `updating-xport` lives in every repo with `xport.json`). To add a new repo-specific update step, drop a new `.claude/skills/updating-<domain>/SKILL.md` and the umbrella picks it up automatically — no edits to `updating` itself.
179
+
180
+
#### Running skills across the fleet
181
+
182
+
`scripts/run-skill-fleet.mts` (in `socket-repo-template`) spawns one headless `claude --print` agent per fleet repo, in parallel (concurrency 4 by default), with the four lockdown flags set per the *Programmatic Claude calls* rule above. Per-skill profile table maps known skills to sensible tool/allow/disallow lists; override with `--tools` / `--allow` / `--disallow`. Per-repo logs land in `.cache/fleet-skill/<timestamp>-<skill>/<repo>.log`. Use `Promise.allSettled` semantics — one repo's failure doesn't abort the rest.
183
+
184
+
```bash
185
+
pnpm run fleet-skill updating # update every fleet repo
186
+
pnpm run fleet-skill quality-scan --concurrency 2 # slower, more conservative
187
+
pnpm run fleet-skill --list-skills # classify skills fleet/partial/unique
0 commit comments