architecture
Greenfield architecture design: map functionality flows, draw components, design APIs, classify dependencies, plan observability.…
Use when a cc10x agent starts a task: the shared preamble for the memory protocol, the contract format, and the output rules.
Claude Code
$ npx -y skills add romiluz13/cc10x --skill agent-common --agent claude-code
Codex
$ npx skills add romiluz13/cc10x --skill agent-common -a codex -y
Cursor
$ npx skills add romiluz13/cc10x --skill agent-common -a cursor -y
Gemini CLI
$ npx skills add romiluz13/cc10x --skill agent-common -a gemini-cli -y
GitHub Copilot
$ npx skills add romiluz13/cc10x --skill agent-common -a github-copilot -y
OpenCode
$ npx skills add romiluz13/cc10x --skill agent-common -a opencode -y
Windsurf
$ npx skills add romiluz13/cc10x --skill agent-common -a windsurf -y
name: agent-common description: "Use when a cc10x agent starts a task: the shared preamble for the memory protocol, the contract format, and the output rules." user-invocable: false
Preloaded into every agent except `plan-gap-reviewer` (it loads no skills and reads no memory, by design). Read-only agents and write agents share it; where your agent doc is narrower or names a role-specific write, your agent doc wins.
Read memory before any work:
Bash(command="mkdir -p .cc10x/") Read(file_path=".cc10x/activeContext.md") Read(file_path=".cc10x/patterns.md") Read(file_path=".cc10x/progress.md")
Memory contains prior decisions, known gotchas, and current context. Without it, you work blind.
Run the `mkdir -p .cc10x/` step unless your agent doc is read-only; the router creates `.cc10x/` and `.cc10x/qa/<workflow>/` for you, so the step is a no-op safety net. Use this trailing-slash form, the one the router and `memory-operations.md` run, so every prompt shows one canonical form.
**Narrower agent protocols win:** if your agent doc deliberately narrows this protocol (anti-anchoring reviewers such as `code-reviewer` skip `activeContext.md`; `plan-gap-reviewer` reads no memory at all; `qa-researcher` creates no files and runs no `mkdir`), follow the agent doc — the narrowing is intentional, not an omission.
**Memory ownership:** Do NOT edit the memory files (`.cc10x/activeContext.md`, `.cc10x/patterns.md`, `.cc10x/progress.md`) directly. Output your Memory Notes (see Memory Notes Format). The router persists memory at workflow-final via task-enforced workflow. Every other `.cc10x/` path you write only where your agent doc names it (the QA agents write under `.cc10x/qa/`); `.cc10x/workflows/*` is router-owned. **Sole carve-out:** `bug-investigator` MAY append `[DEBUG-N]` investigation lines to `.cc10x/activeContext.md` under `## Debug History` ONLY — no other agent, file, or section.
**Key anchors:**
Read `CONTEXT.md` at the repo root if present. Use the project's domain vocabulary in all output — test names, variable names, findings, contracts. Respect any ADRs in `docs/adr/` for the area you're touching.
**Do NOT write or edit `CONTEXT.md` from this skill.** `agent-common` is loaded by every agent except `plan-gap-reviewer`, including the read-only ones that must never mutate repository artifacts. CONTEXT.md is written inline only by designated shaping phases (planner, exploration DESIGN mode, doc-syncer) via the `cc10x:domain-modeling` skill; builders and investigators read it and obey. If you discover a glossary contradiction, emit a `**Domain proposal:**` line in Memory Notes — do not resolve it.
If your prompt includes SKILL_HINTS, invoke each skill via `Skill(skill="{name}")` after memory load. Also: after reading patterns.md, if `## Project SKILL_HINTS` section exists, invoke each listed skill. If a skill fails to load, note it in Memory Notes and continue.
Frontmatter `skills:` preloads are your role-core skills and are already loaded; SKILL_HINTS carries situational skills, and the router is the only authority that adds situational skills. Do not self-activate internal cc10x skills not passed in SKILL_HINTS — deterministic hints keep dispatches reproducible. The one agent-owned invocation: the planner may invoke `cc10x:plan-review-gate` itself, as its agent doc prescribes.
Every agent's final response uses ONE canonical shape:
1. Line 1: `CONTRACT {json}` — the fast-path signal (s=STATUS, b=BLOCKING, cr=CRITICAL_ISSUES). 2. Line 2: `## Heading` — fallback verdict signal. 3. Then a fenced ```yaml Router Contract block carrying your agent's required structured fields (`STATUS` must appear there too, not just the envelope). 4. Then the prose sections your agent doc prescribes.
The `STATUS` in the fenced YAML block decides; the envelope and heading are the fast path, and the fallback only when the YAML block is absent. If they disagree, the YAML decides. The final contract response is your LAST message — never call a tool (including TaskUpdate) after emitting it: the router parses only your last message, and a trailing tool result would become it. If a `SubagentHandback` tool is available, pass the whole contract as its message and make that call your last action. No agent holds the `TaskUpdate` tool or owns task completion: the router completes every task after it validates your contract, so you never call TaskUpdate.
The router receives ONLY your LAST response turn, not intermediate messages. Therefore:
1. Use as many turns as needed for tool calls — output ZERO analysis text during these turns. **Single exception:** `component-builder`'s `BUILD_PREFLIGHT:` status line is the one permitted mid-run output line (no hook reads it and the router sees only your last message, so the contract field `BUILD_PREFLIGHT_EMITTED` carries the proof); no other mid-turn text is allowed for any agent. 2. Produce ONE FINAL RESPONSE containing: heading → all sections → Memory Notes → Task Status. **Stop your turn. The router completes your task after it validates the contract; do not call TaskUpdate.**
Do NOT write analysis in an intermediate turn and then write "done" in a final turn. The router will only see the final turn.
Read-only agents emit this block (the router extracts `### Memory Notes (For Workflow-Final Persistence)` from their final response); write agents carry `MEMORY_NOTES` in their YAML Router Contract instead (the router extracts that key). Emit what your agent doc prescribes; where it prescribes both, keep them identical.
### Memory Notes (For Workflow-Final Persistence) - **Learnings:** [insights for activeContext.md] - **Patterns:
The Loop Engine for Claude Code — engineer the loop, not the prompt. 1 router · 14 agents · 21 skills · 8 workflows. Fail-closed gates, test honesty, anti-anchored review.
Greenfield architecture design: map functionality flows, draw components, design APIs, classify dependencies, plan observability.…
Use when writing production code test-first: the RED-GREEN-REFACTOR cycle, false-RED detection, vertical slicing, scope…
Answers questions about cc10x itself — what it is, how to install and configure it, how the router, workflows, memory, and hooks…
Routes build, debug, review, plan, QA, and triage requests through the cc10x workflows (task graphs, workflow artifacts, gates);…
Two-mode skill: (1) adversarial review — spec compliance + code quality + security, confidence-scored findings with file:line…
Canonical deep-module vocabulary (module, interface, depth, seam, adapter, leverage, locality) for designing a module's shape — a…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.