From flywheel
Sets up zero-cost session handoffs for long-running coding projects spanning multiple sessions using Initializer and Coding Agent protocols. Auto-detects planning, multi-agent, and review tools.
npx claudepluginhub romanticamaj/flywheel --plugin flywheelThis skill uses the workspace's default tool permissions.
Long-running agent work succeeds through zero-cost session handoffs, not through one long session that burns out its context window. Flywheel uses a dual-prompt architecture: an **Initializer** (run once) sets up the project with tool detection and artifact generation, then a **Coding Agent** (run N times) executes a 10-step loop — each session implements one feature and leaves a machine-readab...
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides MCP server integration in Claude Code plugins via .mcp.json or plugin.json configs for stdio, SSE, HTTP types, enabling external services as tools.
Long-running agent work succeeds through zero-cost session handoffs, not through one long session that burns out its context window. Flywheel uses a dual-prompt architecture: an Initializer (run once) sets up the project with tool detection and artifact generation, then a Coding Agent (run N times) executes a 10-step loop — each session implements one feature and leaves a machine-readable handoff for the next. Works out-of-the-box with zero dependencies (just Claude Code + filesystem), upgradable with framework tools at any time.
Run once per project or epic. Detects installed tools, prompts the user to choose per spoke, and creates all artifacts in .flywheel/.
See initializer-template.md for the full Initializer protocol — runtime detection algorithm, tool selection prompts, artifact generation, and initial commit sequence.
Each session follows a 10-step loop: validate config, read handoff log, read checklist, bootstrap, smoke test, plan the implementation, implement one feature, review (code review layers), verify (platform verification), commit + handoff + flow summary + user verification checkpoint.
See coding-agent-template.md for the full Coding Agent protocol — step-by-step instructions, error handling table, exit rule, and scope rule.
| Spoke | Skill | What it provides |
|---|---|---|
| Planning | flywheel:planning | Framework slot for planning tools, feature-checklist.json schema |
| Multi-Agent | flywheel:multi-agent | Role-based coordination + merge strategy |
| Review | flywheel:review-pipeline | 4-layer review pipeline with framework slots |
Each spoke is independent and defines its own contract, detection logic, and framework slots. The hub references them; they do not depend on each other.
/flywheel:init to set up the project..flywheel/ artifacts (config, checklist, init scripts, empty handoff log).feature-checklist.json./flywheel:relay to start a coding session — picks the next feature, implements it, reviews it, commits merge-ready code, and writes a handoff entry./flywheel:relay until the checklist is complete.Path: .flywheel/flywheel-config.json
{
"planning": {
"tool": "built-in",
"alternatives": ["planning-with-files", "openspec", "superpowers"]
},
"multi_agent": {
"tool": "claude-code-native",
"alternatives": ["gstack", "superpowers"]
},
"profile": {
"default": "adaptive",
"adaptive_rules": {
"1-2": "full",
"3-5": "standard",
"6+": "light"
},
"bump_rules": {
"first_feature": "full",
"security_sensitive": "full",
"has_dependencies": "+1 tier",
"was_blocked": "full",
"has_cross_model_tool": "+1 tier"
}
},
"review": {
"layers": ["cleanup", "peer-review", "cross-model", "e2e"],
"tools": {
"cleanup": "built-in",
"peer-review": "built-in",
"cross-model": null,
"e2e": "built-in"
},
"alternatives": {
"cleanup": ["superpowers:/simplify"],
"peer-review": ["gstack:/review", "superpowers:peer-reviewer"],
"cross-model": ["codex:review", "gstack:/codex", "gemini-cli"],
"e2e": ["gstack:/qa"]
},
"profiles": {
"full": { "cleanup": true, "peer-review": "full", "cross-model": true, "e2e": true },
"standard": { "cleanup": false, "peer-review": "top5", "cross-model": false, "e2e": true },
"light": { "cleanup": false, "peer-review": "verdict", "cross-model": false, "e2e": false },
"draft": { "cleanup": false, "peer-review": false, "cross-model": false, "e2e": false }
}
},
"verification": {
"platforms": {
"web": { "tool": "playwright", "alternatives": ["gstack:/qa", "built-in"] },
"ios": { "tool": "built-in", "alternatives": ["mobile-mcp", "ios-simulator-mcp", "maestro"] }
},
"profiles": {
"full": { "run": "all-platforms" },
"standard": { "run": "primary-only" },
"light": { "run": "built-in-only" },
"draft": { "run": "none" }
}
},
"source": {
"type": "file",
"paths": ["SPEC.md"],
"user_notes": "Also add rate limiting on all endpoints",
"resolved_at": "2026-03-27T00:00:00Z"
},
"scope_rule": "one-feature-per-session",
"exit_rule": "merge-ready",
"branch_naming": "feat/{id}-{slug}"
}
| Field | Type | Description |
|---|---|---|
planning.tool | string | Active planning tool or "built-in" |
planning.alternatives | string[] | Known planning tools for future upgrades |
multi_agent.tool | string | Active multi-agent tool or "claude-code-native" |
multi_agent.alternatives | string[] | Known multi-agent tools for future upgrades |
profile.default | string | "adaptive", "full", "standard", "light", or "draft" |
profile.adaptive_rules | object | Maps feature priority ranges to profiles |
profile.bump_rules | object | Conditions that override the adaptive selection |
review.layers | string[] | Fixed 4-layer pipeline: ["cleanup", "peer-review", "cross-model", "e2e"] |
review.tools | object | Per-layer tool choice; null means layer is skipped |
review.alternatives | object | Per-layer list of known tools for future upgrades |
review.profiles | object | Per-profile layer config: true/false/"full"/"top5"/"verdict" |
verification.platforms | object | Map of platform → { tool, alternatives }. Separate from review E2E. |
verification.platforms.<platform>.tool | string | Selected verification tool for this platform |
verification.platforms.<platform>.alternatives | string[] | Fallback tools for this platform |
verification.profiles | object | Per-profile verification dispatch: "all-platforms", "primary-only", "built-in-only", "none" |
source.type | string | How the checklist was sourced: "file", "user-input", "codebase", or "mixed" |
source.paths | string[] | Spec files used as input |
source.user_notes | string|null | Extra context from user conversation |
source.resolved_at | string | ISO 8601 timestamp |
scope_rule | enum | "one-feature-per-session" — enforces single-feature sessions |
exit_rule | enum | "merge-ready" — no WIP commits allowed |
branch_naming | template | Branch name pattern with {id} and {slug} placeholders |
verified.claude-progress.jsonl before exiting.coding-agent-template.md Stage Tracker and Step 8a enforcement rules.