docs(lanes): document ccam lanes mcp sync (F1)
This commit is contained in:
@@ -34,7 +34,7 @@ Then check your current position:
|
|||||||
- **Feature slug**: from the branch name (`feat/X` → `X`), or from `ccam feature list` (the lane's currently-active feature is marked `▶`).
|
- **Feature slug**: from the branch name (`feat/X` → `X`), or from `ccam feature list` (the lane's currently-active feature is marked `▶`).
|
||||||
|
|
||||||
Resume from the stage shown. If state says `stage=X status=running`, you were mid-stage X when context compacted — re-run that stage from the top (all `ccam` commands are idempotent).
|
Resume from the stage shown. If state says `stage=X status=running`, you were mid-stage X when context compacted — re-run that stage from the top (all `ccam` commands are idempotent).
|
||||||
- **MCP preflight (fail fast):** confirm this session actually loaded the lane's required Playwright MCPs (their `browser_*` tools must be available) — `playwright` and a local-QC MCP are always required for Stage 3/6. `ccam lanes mcp sync` (F, not built yet) would normally do this for you; until then, tell the human to configure `.mcp.json` manually and restart the session if a required MCP is missing. Catching this at Stage 0 costs a minute; catching it at Stage 13 strands a merged feature unverified.
|
- **MCP preflight (fail fast):** if this is the lane's first run, or a required Playwright MCP's `browser_*` tools aren't available in this session, run `ccam lanes mcp sync` — it relocates the source repo's already-configured MCP servers into this lane's `.mcp.json`. If the source repo has none configured (`ENOMCPCONFIG`), tell the human to configure `.mcp.json` manually for the source repo first. Either way, restart the session after syncing so the new config loads — `playwright` and a local-QC MCP are always required for Stage 3/6. Catching this at Stage 0 costs a minute; catching it at Stage 13 strands a merged feature unverified.
|
||||||
- **Agents preflight:** if this is the lane's first run through this pipeline, run `ccam lanes agents install` once — it writes the `qc-local` and `senior-gate-reviewer` agent definitions into the lane's own `.claude/agents/` (idempotent; re-running just overwrites with the current templates). Stage 6/7 launch these by `subagent_type`; skipping this leaves those stages unable to find the agent.
|
- **Agents preflight:** if this is the lane's first run through this pipeline, run `ccam lanes agents install` once — it writes the `qc-local` and `senior-gate-reviewer` agent definitions into the lane's own `.claude/agents/` (idempotent; re-running just overwrites with the current templates). Stage 6/7 launch these by `subagent_type`; skipping this leaves those stages unable to find the agent.
|
||||||
|
|
||||||
## Hard rules
|
## Hard rules
|
||||||
|
|||||||
@@ -1047,6 +1047,22 @@ Writes both agent templates into `<lane>/.claude/agents/` and adds that director
|
|||||||
|
|
||||||
**`ticketer`, `dev-qc`, and `pr-reviewer`** are not ported yet — the first two are invoked only by Stages 9/13, which are hardcoded-skipped pending F's integrations; the third isn't referenced anywhere in this skill's text.
|
**`ticketer`, `dev-qc`, and `pr-reviewer`** are not ported yet — the first two are invoked only by Stages 9/13, which are hardcoded-skipped pending F's integrations; the third isn't referenced anywhere in this skill's text.
|
||||||
|
|
||||||
|
### Syncing MCP servers: mcp sync
|
||||||
|
|
||||||
|
A lane needs the same MCP servers (Playwright, a local-QC server) as its source repo to run Stage 3/6. `ccam lanes mcp sync` gives it those:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ccam lanes mcp sync
|
||||||
|
```
|
||||||
|
|
||||||
|
Reads the source repo's already-configured `mcpServers` from `~/.claude.json` (normal Claude Code project-scope config — set this up for the source repo once, the same way you would for any project), relocates any absolute path under the source repo to the lane's own directory, pins a `@playwright/mcp` server's `--output-dir` to the lane's `.playwright-mcp` (so proof screenshots land where the proof gallery reads them), and writes `<lane>/.mcp.json`. Also seeds the lane's Chromium browser profiles from the source repo's own — preserves saved logins, and never overwrites a profile that already exists at the destination.
|
||||||
|
|
||||||
|
**No permission/settings changes.** Unlike Shipyard's original `lane-mcp-sync.sh`, this command never writes to `<lane>/.claude/settings.local.json` — no auto-approval rules, no `autoMode` bypass entries. A session's `gh`/`git push` commands go through the normal permission prompt like any other command.
|
||||||
|
|
||||||
|
A lane whose source repo has no `mcpServers` configured gets a clear `ENOMCPCONFIG` error, not a silently-empty `.mcp.json` — configure the source repo's MCP servers first, then re-run.
|
||||||
|
|
||||||
|
Restart the lane's Claude session after syncing — MCP config is read at session start.
|
||||||
|
|
||||||
### Pipeline template: ship-feature (16 node stages)
|
### Pipeline template: ship-feature (16 node stages)
|
||||||
|
|
||||||
The skill uses the `ship-feature` pipeline template, which defines the following 16 stages (node IDs):
|
The skill uses the `ship-feature` pipeline template, which defines the following 16 stages (node IDs):
|
||||||
|
|||||||
@@ -326,6 +326,8 @@ behaves as documented. Each of those commands gets a CLI test.
|
|||||||
`<repo>/.ccam/profile/integrations.env`, exposed as `ccam lanes integration <name>`
|
`<repo>/.ccam/profile/integrations.env`, exposed as `ccam lanes integration <name>`
|
||||||
(exit 0/1) and in `GET /runtime`.
|
(exit 0/1) and in `GET /runtime`.
|
||||||
|
|
||||||
|
**Progress:** `mcp sync` (F1) done 2026-08-05 — see `docs/superpowers/specs/2026-08-05-mcp-sync-design.md`. Tracker, dev-QC, CI-wait remain.
|
||||||
|
|
||||||
- **Tracker** — file one ticket per feature, idempotent (update, never
|
- **Tracker** — file one ticket per feature, idempotent (update, never
|
||||||
duplicate), writing `proof/<slug>/ticket/REPORT.html`.
|
duplicate), writing `proof/<slug>/ticket/REPORT.html`.
|
||||||
- **Dev-site QC** — post-merge browser QC against the deployed site with a
|
- **Dev-site QC** — post-merge browser QC against the deployed site with a
|
||||||
|
|||||||
Reference in New Issue
Block a user