plugins/teamcraft/skills/capture-team-conventions/SKILL.md
Capture or evolve the team's operating conventions — branching, testing, review, merge, deploy, security, on-call, anything that shapes how the team works. Handles first-time capture, adding new convention areas, updating existing conventions, capturing newly-discovered gotchas, and cleanup. After capture, identifies items Claude would get wrong without always-loaded guidance and writes approved promotions. Use when the user says 'capture our team conventions', 'document our workflow', 'update our branching strategy', 'we changed our review process', or 'Claude keeps getting X wrong — let's capture it'.
npx skillsauth add codingthefuturewithai/claude-code-primitives teamcraft:capture-team-conventionsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Own the full lifecycle of this team's operating conventions and project gotchas. The authoritative document lives in the team-conventions category (opinionated default /docs/conventions.md). Specific items Claude would reliably do the wrong way without always-loaded guidance get promoted into CLAUDE.md or .claude/rules/ — with explicit developer approval per item.
Read references/example-conventions.md first. It shows the shape of the full document, the shape of promoted gotchas, and what distinguishes the two.
Captured conventions that Claude never consults are just documentation nobody reads. Captured conventions loaded into every session are context-budget bloat. Neither is acceptable. This skill produces one authoritative document AND selectively promotes the items Claude would actually get wrong without nudging — trusting the build-loop skills to direct consultation of everything else.
Look for an existing team-conventions document. If you find one, read it and present a brief summary to the developer before interviewing: "I see conventions documented for [areas]. What are we doing today?"
If you find conventions in a non-default location, note it. The skill still works — Claude will locate the document when consulting — but inform the developer that Teamcraft's opinionated default is /docs/conventions.md, and offer migration. If the developer declines migration, warn that mismatched expectations may degrade reliability of build-loop consultation, then proceed with the existing location.
If no conventions document exists anywhere, this is a first-time capture.
The first question is what kind of capture this is. The flow depends on the answer.
Common scenarios:
Ask the developer which applies. Don't run a full first-time interview on a targeted update — that's wasteful and annoying.
Regardless of scenario, ask whether any relevant documentation exists outside the repo — old wikis, team handbooks, shared docs, onboarding guides, ADRs. Read what the developer points you to. Present what you found and let the developer decide what applies to this project now. Never auto-apply external content.
Frame the domain and the scenario; let the conversation flow naturally. You know what operating conventions cover — branching, testing, review, merge, deploy, security, compliance, definition of done, incident handling, on-call, code style beyond linters. Ask about what matters for this scenario. For a first-time capture, be comprehensive. For a targeted update, stay narrow — don't fish for unrelated changes.
On definition of done specifically: Teamcraft already ships a baseline applied to every item — tests written/updated, run, and green; docs updated; no leftover scaffolding (../references/definition-of-done.md). When capturing a DoD here, capture only what's specific to this team on top of that floor (e.g., changelog entries, an a11y pass on UI work, integration tests for new endpoints) — don't restate the basics. The build loop honors both the baseline and what the team adds.
Do not read mechanical question lists aloud. The developer is a professional; conduct a real conversation about how their team works.
When the scenario involves retiring or consolidating content (cleanup, major updates), don't classify blocks for removal only at the block level — scan within each retiring block for embedded methodology: process rules, decision criteria, when-to-do-X signals (e.g., "when to flip a status," "when to add a principle"). Those are often the durable knowledge even when the surrounding inventory is stale. Preserve them — move them into the right section of the new doc — rather than letting them go with the block.
Show the full document (or the specific diff, for targeted updates) before writing. For first-time captures or major updates, start with a high-level summary the developer can course-correct on before reviewing every line.
Write to the opinionated default (/docs/conventions.md) unless an existing location was confirmed. Preserve structure of any existing file. Include what changed and why as part of the commit message (the skill directing commit messages handles format separately).
Certify the document. Stamp it with the Teamcraft provenance block per ../references/doc-provenance.md, so build-loop skills can tell this is teamcraft-verified rather than inherited or stale. When you authored or rewrote the content, stamp kind: created. On the review-&-certify-in-place path — the developer confirmed an existing/inherited doc is accurate and you are not rewriting it — insert or refresh ONLY the stamp block (kind: reviewed) and leave the body untouched. Source date from the system clock and plugin_version from the plugin manifest, as the reference describes.
After the document is confirmed, walk through its contents and identify items Claude would reliably get wrong without always-loaded guidance. The test:
Could Claude figure this out from the codebase, or from reading the conventions document when a build-loop skill directs consultation? If yes, it stays only in the document. If no — Claude would default to something from training data without always-loaded guidance — it's a promotion candidate.
Good candidates: non-obvious commit-message formats, unusual branching patterns, non-standard testing tiers the team requires, conventions that explicitly override widely-held industry norms.
Weak candidates: "we use Vitest" (discoverable from package.json), "PRs need a description" (standard practice Claude follows anyway), the full text of a 10-page contribution guide.
Propose each promotion candidate to the developer individually. For each, show the text that would be promoted and the target (an always-loaded location — add to an existing rules file, add to CLAUDE.md, or create a new focused rules file). Developer approves, rejects, or edits the text. Write each approved promotion directly.
This skill writes conventions, gotchas, and promotions. It does not write technology decisions (that's capture-technical-design) or product requirements (that's capture-requirements). If the conversation drifts into those areas, note it and redirect.
Confirm what was written and where — the conventions document plus any promoted gotchas. If the developer wants to keep capturing (more convention areas, additional gotchas), stay in the skill.
Ask the developer explicitly: "Are you satisfied with what was captured?" Wait for confirmation. This skill doesn't get to decide the work is done.
Once they're satisfied, point them to the natural next step: another capture skill if more knowledge is still undocumented (/capture-technical-design, /capture-requirements), /check-project-context to verify Claude has actually absorbed what was captured, or /plan-iteration / /pick-next-issue to start putting the conventions to work.
development
Launch (or re-launch) the user's live, multi-project work board. The dashboard is a single HTML file copied to a stable user-side location at ~/.claude/teamcraft-board.html and opened in the user's default browser. It has two views via a header toggle — a drag-and-drop Kanban Board and a live Status tab with analytics (work by status, throughput, cycle time, aging, blocked chains, recomputed on every poll). Each project is added via a header dropdown; the dashboard polls each project's .teamcraft/work directly from the browser and updates in real time. Use when the user says 'show me the kanban', 'work board', 'open the board', 'board view', 'kanban view', 'live dashboard', 'visual dashboard', 'live status dashboard', 'status dashboard', 'project metrics', 'throughput/cycle-time view', 'HTML view of work items', 'drag-and-drop board', or asks to see/move/track work visually.
development
Run a retrospective — AI compiles evidence from recent work, facilitates human reflection, and captures process decisions back into living docs. Use when the user says 'run a retro', 'let's do a retrospective', 'run a retrospective on the last 2 weeks', 'let's reflect on how that feature went', or 'time for a retro'.
development
Re-evaluate what Claude needs to be told about this project as the codebase evolves. Some gotchas become obvious from the code (remove them). New gotchas emerge. Decisions change. Use when the user says 'refresh the rules', 'update Claude's context', 'are the rules still accurate', 'clean up claude rules', or after significant codebase changes.
development
Report project status from work items and git history — either as a quick, interpreted read here in the session, or by pointing the developer to the live Status dashboard (the work board's Status tab). Covers work by status, what's in flight, cycle times, throughput, backlog priorities, aging alerts, blocked chains, and how commit activity lines up with the board. Use when the user says 'project status', 'show me the project status', 'what's the status of the work items', 'how are we doing', 'generate a status report', or asks for a status dashboard.