Ccg Workflow logo

Ccg Workflow

CommunityPopular
fengshao1227
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 change large enough that one straight-through attempt would be a guess.

Overview

Publisherfengshao1227
Repositoryccg-workflow
Skill nameccg-workflow
Stars
5.9K
Forks
446
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by fengshao1227 on GitHub. Read the source before you install it.

Installation

Install the Ccg Workflow AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/fengshao1227/ccg-workflow.git /tmp/ccg-workflow
mkdir -p .claude/skills
cp -r /tmp/ccg-workflow/dsh-ccg/skills/ccg-workflow .claude/skills/ccg-workflow
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Ccg Workflow in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Ccg Workflow on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Ccg Workflow is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

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.

ModeForRuns
Directa one-line fix, a rename, a question you can answer by readingyou, alone
Standardan ordinary feature, a bug with a known cause, a contained refactordesign → build → review
Deepa design with real alternatives, an unclear bug, a migration, anything expensive to get wronganalyze → design → build → test → review
Teamwork that splits across files and will keep developingccg_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

PhaseToolEnds when
1. Understandccg_analyzeyou can state the constraints and the options with their trade-offs
2. Designccg_designthe interfaces and the boundaries are settled
3. Buildccg_buildthe code exists and its verify command passes
4. Verifyccg_review + the gatesfindings 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:

GateUse it after
verify-changeany change — analyses the diff and flags docs that drifted
verify-qualitya complex or refactored module — complexity, duplication, naming, length
verify-securitynew modules, auth/crypto/input handling, anything touching secrets
verify-modulea newly created module — structure and required docs
gen-docscreating 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 work through send_message, and reports back on its own. Use it when the job splits into substantial parts that do not wait on each other and will keep developing. For a single question, the role's own tool is cheaper.

Before hiring anything:

  1. Settle every shared contract. Teammates cannot see each other. Any interface two of them meet at — a signature, a schema, an event name, a file format — has to be decided and written into both briefs, or each will invent a reasonable version and neither will fit. Read the code and pin the contract down yourself; this is the step that decides whether the team works. Record it with ccg_remember as you settle it — the next session should not have to re-derive it, and neither should you after a compaction.
  2. Draw the file boundaries. Give every concurrent teammate a disjoint owns set. Two agents editing one file lose each other's work with no error. A hire that reaches into someone else's files is refused, naming the holder, so a refusal is a prompt to re-split the work — not an error to route around.
  3. Say the roster and the cost, then wait for a yes.

ccg_roster is the durable answer to "who owns what". Read it whenever you are unsure — after a compaction it is the only thing that still knows, and it is the difference between routing a fix to its owner and quietly overwriting them.

While they work, do not sleep or poll — a report wakes you by itself, so ending your turn is how you wait, and it costs nothing. Say who is working on what and stop.

As reports land: read each one, integrate it, and route what it implies. A teammate reporting a changed contract is the signal to send_message whoever depends on it. When integration turns up a fault in a file a live teammate owns, send it back to them rather than fixing it quietly — they still think they own that file, and their next assignment would overwrite you. Take a file back only by saying so.

Then verify the whole yourself: run the thing end to end, check the contract that every part was supposed to honour, and review the assembled result. No teammate can see the seam it was built against.

What to write down

ccg_remember puts one thing in .ccg/memory.md, which loads itself into every later session in this workspace. Use it the moment something is settled that would otherwise be re-argued:

KindWrite it when
decisionyou chose between real alternatives — record the reason and what you rejected, or it can only be obeyed, never revisited
contracttwo parts must agree: a signature, a schema, an event name, a file format
conventionthis project does something in a way a newcomer would guess wrong
gotchasomething looks fine and is not

Not a log of what happened. The transcript is that already, and a memory that fills with narration stops being worth loading. If you find a note is wrong or out of date, say so and fix the file — a stale note does more damage than a missing one.

Frequently asked questions

What does the Ccg Workflow AI skill do?

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.

Why use Ccg Workflow on TypingMind?

Because you install it once and use it with any model. Ccg Workflow is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Ccg Workflow in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/fengshao1227/ccg-workflow/tree/main/dsh-ccg/skills/ccg-workflow. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Ccg Workflow?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Ccg Workflow?

As many as you like. As long as a model supports skills, you can use Ccg Workflow with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Ccg Workflow AI skill free?

Yes. It is published on GitHub by fengshao1227 under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇