/ccg-workflow
How to run a non-trivial change end to end with the CCG role tools (ccg_analyze / ccg_design / ccg_build / ccg_debug / ccg_optimize / ccg_review / ccg_test) and the verify-* quality gates. Use when a task is a whole feature, a refactor, a bug whose cause is not yet known, or any
$ npx -y skills add fengshao1227/ccg-workflow --skill ccg-workflow --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/ccg-workflow
Context preview
The summary Claude sees to decide when to auto-load this skill.
How to run a non-trivial change end to end with the CCG role tools (ccg_analyze / ccg_design / ccg_build / ccg_debug / ccg_optimize / ccg_review / ccg_test) and the verify-* quality gates. Use when a task is a whole feature, a refactor, a bug whose cause is not yet known, or any
SKILL.md
ccg-workflow.SKILL.mdname: ccg-workflow
description: How to run a non-trivial change end to end with the CCG role tools (ccg_analyze / ccg_design / ccg_build / ccg_debug / ccg_optimize / ccg_review / ccg_test) and the verify-* quality gates. Use when a task is a whole feature, a refactor, a bug whose cause is not yet known, or any change large enough that one straight-through attempt would be a guess.
CCG workflow
Seven role tools are available, each running a child agent on its own model with its own expert persona. This is how to chain them so the work converges instead of sprawling.
**Skip all of this for small, obvious work.** A one-line fix, a rename, a question you can answer by reading two files — do it yourself. Delegation buys depth, and it costs a round trip and a fresh context. Spend it only where depth is the thing you lack.
Picking a gear
Four modes. The user should not have to name one: read what they asked for, pick, say which you picked in a line, and — for anything past Direct — say what it costs and wait for a yes. They are paying per model call.
| Mode | For | Runs | |------|-----|------| | **Direct** | a one-line fix, a rename, a question you can answer by reading | you, alone | | **Standard** | an ordinary feature, a bug with a known cause, a contained refactor | design → build → review | | **Deep** | a design with real alternatives, an unclear bug, a migration, anything expensive to get wrong | analyze → design → build → test → review | | **Team** | work that splits across files and will keep developing | `ccg_team` — several specialists at once, each owning its own files |
A role holding several models answers with all of them at once, so Deep costs more than its phase count suggests — quote the real number of model calls, not the number of phases. If the user names a mode, run that one. If a phase changes what you believe, say so and re-pick rather than finishing a plan you no longer believe in.
**Deep and Team are not a ranking.** Deep buys certainty about one thing by asking several models about it. Team buys throughput on several things by running colleagues at once. A hard question is Deep even if it is small; a wide job is Team even if every part is easy. Something both hard and wide is Deep first — settle the design and the contracts — then Team to build it.
The loop
| Phase | Tool | Ends when | |-------|------|-----------| | 1. Understand | `ccg_analyze` | you can state the constraints and the options with their trade-offs | | 2. Design | `ccg_design` | the interfaces and the boundaries are settled | | 3. Build | `ccg_build` | the code exists and its verify command passes | | 4. Verify | `ccg_review` + the gates | findings are triaged and the criticals are gone |
Diagnose before you build when the cause is unknown (`ccg_debug`), and treat `ccg_optimize` and `ccg_test` as phases of their own when the task is performance or coverage rather than a feature.
Not every task needs four phases. A well-understood change is design → build → review. An investigation may be analyze → debug and stop there, with no code at all.
Writing a brief
A child sees **none of this conversation**. It gets your prompt and nothing else, so an under-specified brief is the main way this goes wrong. Every brief carries:
- **The goal** — one sentence on what the child must produce.
- **The anchors** — the exact files, symbols and commands it should start from.
Paths, not descriptions.
- **The constraints** — what it must not change, the conventions to follow, the
decisions already made (and by whom).
- **The shape of the answer** — a diff, a report, a ranked list. Say which.
Bad: *"look at the auth code and improve it."* Good: *"In `src/auth/session.ts`, the refresh path drops the CSRF token when a retry follows a 401 (see `refreshSession`, lines 40-80). Diagnose the root cause. Do not change code. Report ranked hypotheses with the minimal test that would confirm each."*
The quality gates
Bundled beside this skill, each runnable through the shell and each documenting its own arguments:
| Gate | Use it after | |------|--------------| | `verify-change` | any change — analyses the diff and flags docs that drifted | | `verify-quality` | a complex or refactored module — complexity, duplication, naming, length | | `verify-security` | new modules, auth/crypto/input handling, anything touching secrets | | `verify-module` | a newly created module — structure and required docs | | `gen-docs` | creating a module — scaffolds its README and DESIGN |
They are deterministic scanners, not opinions: run them before `ccg_review` so the reviewer spends its turn on judgement rather than on what a script already knows. A gate's findings are input to your decision, not a verdict — a flagged line can still be correct.
What stays with you
Delegate the turn, never the decision.
- **Choosing between options is yours.** A child ranks; you pick, and you own
the reason.
- **Acceptance is yours.** Never let a child's "looks good" close a task. Read
what came back and judge it — children are confident about work they cannot see the context of.
- **Integration is yours.** Children work in isolation; nothing but you is
watching how the pieces meet.
- **Contradictions are signal.** When the analyzer and the reviewer disagree,
that disagreement is the most valuable thing you have. Resolve it explicitly instead of averaging it away.
Running them in parallel
Independent delegations can run at once — a review of one module and tests for another have nothing to say to each other. Wait (`run_in_background: false`) only when your next move depends on the answer.
Do not parallelise work that writes to the same files. Two builders editing one module will produce a conflict nobody asked for; sequence those, or split the work along file boundaries first.
Running a team
`ccg_team` hires a role as a colleague instead of asking it a question: it stays alive across turns, takes more
Read more
name: ccg-workflow description: How to run a non-trivial change end to end with the CCG role tools (ccg_analyze / ccg_design / ccg_build / ccg_debug / ccg_optimize / ccg_review / ccg_test) and the verify-* quality gates. Use when a task is a whole feature, a refactor, a bug whose cause is not yet known, or any change large enough that one straight-through attempt would be a guess.
CCG workflow
Seven role tools are available, each running a child agent on its own model with its own expert persona. This is how to chain them so the work converges instead of sprawling.
**Skip all of this for small, obvious work.** A one-line fix, a rename, a question you can answer by reading two files — do it yourself. Delegation buys depth, and it costs a round trip and a fresh context. Spend it only where depth is the thing you lack.
Picking a gear
Four modes. The user should not have to name one: read what they asked for, pick, say which you picked in a line, and — for anything past Direct — say what it costs and wait for a yes. They are paying per model call.
| Mode | For | Runs | |------|-----|------| | **Direct** | a one-line fix, a rename, a question you can answer by reading | you, alone | | **Standard** | an ordinary feature, a bug with a known cause, a contained refactor | design → build → review | | **Deep** | a design with real alternatives, an unclear bug, a migration, anything expensive to get wrong | analyze → design → build → test → review | | **Team** | work that splits across files and will keep developing | `ccg_team` — several specialists at once, each owning its own files |
A role holding several models answers with all of them at once, so Deep costs more than its phase count suggests — quote the real number of model calls, not the number of phases. If the user names a mode, run that one. If a phase changes what you believe, say so and re-pick rather than finishing a plan you no longer believe in.
**Deep and Team are not a ranking.** Deep buys certainty about one thing by asking several models about it. Team buys throughput on several things by running colleagues at once. A hard question is Deep even if it is small; a wide job is Team even if every part is easy. Something both hard and wide is Deep first — settle the design and the contracts — then Team to build it.
The loop
| Phase | Tool | Ends when | |-------|------|-----------| | 1. Understand | `ccg_analyze` | you can state the constraints and the options with their trade-offs | | 2. Design | `ccg_design` | the interfaces and the boundaries are settled | | 3. Build | `ccg_build` | the code exists and its verify command passes | | 4. Verify | `ccg_review` + the gates | findings are triaged and the criticals are gone |
Diagnose before you build when the cause is unknown (`ccg_debug`), and treat `ccg_optimize` and `ccg_test` as phases of their own when the task is performance or coverage rather than a feature.
Not every task needs four phases. A well-understood change is design → build → review. An investigation may be analyze → debug and stop there, with no code at all.
Writing a brief
A child sees **none of this conversation**. It gets your prompt and nothing else, so an under-specified brief is the main way this goes wrong. Every brief carries:
- **The goal** — one sentence on what the child must produce.
- **The anchors** — the exact files, symbols and commands it should start from.
Paths, not descriptions.
- **The constraints** — what it must not change, the conventions to follow, the
decisions already made (and by whom).
- **The shape of the answer** — a diff, a report, a ranked list. Say which.
Bad: *"look at the auth code and improve it."* Good: *"In `src/auth/session.ts`, the refresh path drops the CSRF token when a retry follows a 401 (see `refreshSession`, lines 40-80). Diagnose the root cause. Do not change code. Report ranked hypotheses with the minimal test that would confirm each."*
The quality gates
Bundled beside this skill, each runnable through the shell and each documenting its own arguments:
| Gate | Use it after | |------|--------------| | `verify-change` | any change — analyses the diff and flags docs that drifted | | `verify-quality` | a complex or refactored module — complexity, duplication, naming, length | | `verify-security` | new modules, auth/crypto/input handling, anything touching secrets | | `verify-module` | a newly created module — structure and required docs | | `gen-docs` | creating a module — scaffolds its README and DESIGN |
They are deterministic scanners, not opinions: run them before `ccg_review` so the reviewer spends its turn on judgement rather than on what a script already knows. A gate's findings are input to your decision, not a verdict — a flagged line can still be correct.
What stays with you
Delegate the turn, never the decision.
- **Choosing between options is yours.** A child ranks; you pick, and you own
the reason.
- **Acceptance is yours.** Never let a child's "looks good" close a task. Read
what came back and judge it — children are confident about work they cannot see the context of.
- **Integration is yours.** Children work in isolation; nothing but you is
watching how the pieces meet.
- **Contradictions are signal.** When the analyzer and the reviewer disagree,
that disagreement is the most valuable thing you have. Resolve it explicitly instead of averaging it away.
Running them in parallel
Independent delegations can run at once — a review of one module and tests for another have nothing to say to each other. Wait (`run_in_background: false`) only when your next move depends on the answer.
Do not parallelise work that writes to the same files. Two builders editing one module will produce a conflict nobody asked for; sequence those, or split the work along file boundaries first.
Running a team
`ccg_team` hires a role as a colleague instead of asking it a question: it stays alive across turns, takes more
多模型协作工作流引擎 — /ccg:go 一个命令,AI 自动分析意图、选择策略、编排 Codex + Gemini + Claude 协作执行
Repo: fengshao1227/ccg-workflow
Other skills on ccg.
verify-change
变更校验关卡。分析代码变更,检测文档同步状态,评估变更影响范围。当用户提到变更检查、文档同步、代码审查、提交前检查、diff分析时使用。在设计级变更、重构完成时自动触发。
verify-module
模块完整性校验关卡。扫描目录结构、检测缺失文档、验证代码与文档同步。当用户提到模块校验、文档检查、结构完整性、README检查、DESIGN检查时使用。在新建模块完成时自动触发。
verify-quality
代码质量校验关卡。检测复杂度、重复代码、命名规范、函数长度等质量指标。当用户提到代码质量、复杂度检查、代码异味、重构建议、lint检查、代码规范时使用。在复杂模块、重构完成时自动触发。
verify-security
安全校验关卡。自动扫描代码安全漏洞,检测危险模式,确保安全决策有文档记录。当用户提到安全扫描、漏洞检测、安全审计、代码安全、OWASP、注入检测、敏感信息泄露时使用。在新建模块、安全相关变…
adsense-site-auditor
Audit websites for Google AdSense application readiness and ad-serving compliance. Use when…

