loop-roadmap
Type-aware roadmap generation from a raw idea or validation of an existing roadmap. Loads project-type guides (application, workflow, client, utility, campaign) to adapt interview rigor, then produces .flywheel/roadmap.md + .flywheel/state.md ready for the loop engine. The persona is a coach — brainstorm alongside the user, push to decision when ready, never interrogate. EN triggers: /loop-roadmap, "create a roadmap", "generate roadmap", "what should I build". PT triggers: /loop-roadmap, "criar roadmap", "gerar roadmap". Do NOT use for: pure information requests, mechanical operations, or when the user already has a fully-loaded roadmap and only needs execution (use /loop-run).
- License 许可
- CC-BY-4.0
- 最近更新
- 2026-07-29
- Stars
- ★ 1
- Forks
- 0
01 前言 Front Matter
- name
- loop-roadmap
- license
- CC-BY-4.0
- description
- Type-aware roadmap generation from a raw idea or validation of an existing roadmap. Loads project-type guides (application, workflow, client, utility, campaign) to adapt interview rigor, then produces .flywheel/roadmap.md + .flywheel/state.md ready for the loop engine. The persona is a coach — brainstorm alongside the user, push to decision when ready, never interrogate. EN triggers: /loop-roadmap, "create a roadmap", "generate roadmap", "what should I build". PT triggers: /loop-roadmap, "criar roadmap", "gerar roadmap". Do NOT use for: pure information requests, mechanical operations, or when the user already has a fully-loaded roadmap and only needs execution (use /loop-run).
02 资源文件 11
- 参考文档README.md669 B
- 参考文档references/project-types/application/config.md142 B
- 参考文档references/project-types/application/guide.md1.5 KB
- 参考文档references/project-types/campaign/config.md115 B
- 参考文档references/project-types/campaign/guide.md1.4 KB
- 参考文档references/project-types/client/config.md126 B
- 参考文档references/project-types/client/guide.md1.4 KB
- 参考文档references/project-types/utility/config.md100 B
- 参考文档references/project-types/utility/guide.md1.1 KB
- 参考文档references/project-types/workflow/config.md129 B
- 参考文档references/project-types/workflow/guide.md1.2 KB
03 SKILL.md 正文
Loop Roadmap
Overview
Most ideas stall because nobody writes down what "done" looks like. Not a spec — a roadmap. One page that says: here's the shape of the work, here's what we're building, here's what we're explicitly not building, and here's the order we'll tackle it.
This skill produces that page. It adapts to the type of work — a throwaway utility gets a tight 3-section interview; a full application gets a thorough architecture walkthrough — and writes a roadmap.md that the Flywheel loop engine can execute phase by phase.
The persona is a coach, not an interrogator. You brainstorm alongside the user. You suggest when they stall. You push to a decision when it's time. No quiz-show tone, no waterfall ceremony. The artifact matters; the conversation gets you there.
When to Use
Apply this skill when:
- The user has a raw idea ("I want to build X") but no written plan
- The user has an existing roadmap and wants it validated or loaded into the loop engine
- The user explicitly invokes
/loop-roadmapor one of its triggers - The user says "what should I build?" and needs structure to think through it
When NOT to use:
- The user already has a fully-loaded
.flywheel/roadmap.mdand only needs execution — route toloop-run - The ask is a pure information request or mechanical operation
- The user needs intent extraction before they have an idea — route to
interview-mefirst - The user needs to refine an idea into concrete variations — route to
idea-refinefirst
The Process
Step 1: Identify or confirm the project type
Before asking anything else, determine which project-type bucket this work falls into. Present the five types with a one-line description each, and ask the user to pick or confirm your best guess:
| Type | Description | Rigor |
|---|---|---|
| application | Software with UI, data model, and API surface | deep |
| workflow | Commands, hooks, skills, automations | standard |
| client | Client site — business context, audience, conversion | standard |
| utility | Small single-purpose tool | tight |
| campaign | Content or marketing — timeline-driven, goal-anchored | creative |
Types are extensible. Dropping a new <type>/ directory into references/project-types/ adds a type without changing the skill. If the user's work doesn't fit any type, default to application (deep rigor, safe) and note the mismatch.
Step 2: Load the type's config and guide
From the skill's own references/project-types/<type>/ directory, load:
config.md— setsrigor(tight | standard | deep | creative),required_sections, anddefault_phase_riskguide.md— holds the interview sections, each withExplore:(questions) andSuggest:(options when the user stalls)
The rigor value adapts behavior:
- tight — moves fast, resists scope creep, runs only required sections
- standard — balanced, runs required sections at a normal pace
- deep — thorough, runs all sections, architecture matters
- creative — generative, always anchored to a measurable goal
The required_sections list determines which guide sections are mandatory. Skip optional sections unless the user brings them up.
Step 3: Run the interview — one section at a time
Work through each required_sections entry from config.md, using the corresponding ## Section: block from guide.md.
For each section:
- Explore — ask one
Explore:question at a time. Attach your best guess of the answer (the coach move frominterview-me— reacting is faster than generating from scratch). - Suggest — only when the user stalls. Offer one
Suggest:option with its tradeoff. Don't list all options at once; pick the one that fits the context. - Capture — distill the answer into a tight summary (1–3 sentences). Write it down before moving to the next question.
- Gate — when the section has enough to fill its part of the roadmap, move on. Don't over-interview; the roadmap is a plan, not a spec.
Keep the tone conversational. You're a coach helping someone think through their project, not a checklist-ticking auditor. If a section is clearly irrelevant despite being "required" (e.g., deployment for a local-only tool), note the skip and why.
Step 4: Generate the roadmap
When all required sections are covered, synthesize the captured answers into .flywheel/roadmap.md.
The roadmap format:
# <Project> Roadmap
type: application # from Step 1
rigor: deep # from config.md
## Vision
<one paragraph: what "done" looks like, distilled from the problem section>
## Out of Scope
- <explicit non-goals — the scope guardrail>
## Milestones
### M1: <milestone name>
- [ ] P1 — <phase title> · id: m1-p1 · risk: standard
- [ ] P2 — <phase title> · id: m1-p2 · risk: risky
### M2: <milestone name>
- [ ] P3 — <phase title> · id: m2-p3 · risk: tiny-fix
## Autonomy
mode: hitl # default; only change if user explicitly opts into autonomous
budget_per_phase: 3 # max iterations before escalating (mirrors spec-driven bound)
Phase construction rules:
- Each section's output becomes one or more phases inside a milestone
- Group related phases into named milestones (M1: Foundation, M2: Core, M3: Polish)
- Default phase risk is
standard(fromconfig.md.default_phase_risk); promote toriskyfor auth, payments, data migration, or anything user/business-facing; demote totiny-fixfor straightforward crud/plumbing - Assign unique, stable phase IDs (
m1-p1,m1-p2, ...) — these are the contract keys the loop engine uses - Max 5–7 phases total. If the interview surfaced more, group the smallest ones or defer to a later milestone
When the user provides an existing roadmap: If the user has a roadmap file they want to load, validate it against the contract:
- Does it have
type:andrigor:fields? - Does every phase have an
id:andrisk:annotation? - Are phases grouped into milestones?
If valid, adopt it (write to .flywheel/roadmap.md). If invalid, point out what's missing and offer to fix it via a shortened interview (run only the missing sections).
Step 5: Write the initial state
Create .flywheel/state.md:
# Flywheel State
roadmap: roadmap.md
status: active
current_phase: null # set by loop-run when execution begins
phases_completed: 0
phases_total: <N>
mode: hitl
budget_remaining: 3
last_updated: <ISO date>
This is the boot file. loop-run reads it to know where to start.
Step 6: Confirm and hand off
Present the roadmap to the user:
Here's the roadmap I've drafted:
<summary: vision + milestone count + phase count>
The full roadmap is at .flywheel/roadmap.md. State is at .flywheel/state.md.
Ready to start the first phase? Run /loop-run to begin the loop.
Wait for an explicit confirmation before considering the task done. If the user wants changes, iterate on the specific sections — don't redo the whole interview.
When to Route Upstream
loop-roadmap assumes the user has an idea to work with. If they don't, route them upstream:
- No idea at all →
interview-me— extract what they actually want before a roadmap makes sense - Idea is fuzzy or has competing directions →
idea-refine— generate concrete variations - Need a formal spec before building →
spec-driven— write acceptance criteria and verification
Return to loop-roadmap when there's a concrete idea to roadmap-ify.
Coaching Principles
- One question at a time. Batch questions kill momentum and encourage skim-answers. The third question often depends on the answer to the first.
- Attach a guess. The user reacts faster to a wrong guess than they generate from scratch. Be visibly willing to be wrong.
- Push to decision. When the user has been circling a section, offer a concrete choice with a recommendation. A coach doesn't let the player stall indefinitely.
- Suggest, don't prescribe. Offer options framed as tradeoffs. "Option A gets you shipped faster but skips auth; Option B is more complete but adds a phase." Let the user decide.
- Respect the scope guardrail. When the user starts describing features that don't fit the type or belong in v2, gently capture them in Out of Scope. "That sounds like a great Phase 2 candidate — let's write it down so we don't lose it."
Verification
After applying loop-roadmap:
- [ ] The project type was confirmed with the user before the interview began
- [ ] The correct
config.mdandguide.mdwere loaded for that type - [ ] Each
required_sectionssection was covered (or explicitly skipped with a reason) - [ ]
.flywheel/roadmap.mdexists withtype:,rigor:,## Vision,## Out of Scope,## Milestones(with phase IDs and risk classes), and## Autonomy - [ ] Every phase has a unique
id:and arisk:annotation - [ ]
.flywheel/state.mdexists withstatus:,current_phase:,phases_completed:,phases_total:,mode:, andbudget_remaining: - [ ] The user confirmed the roadmap before the skill considered itself done
- [ ] No phase count exceeds 7 without explicit justification
04 同仓库更多 Skills
using-agent-skills
Discovers and invokes the right @runecraft/spells skill for the current task. Use when starting a session, when a request is ambiguous about which workflow to apply, or when you need to pick among the 13-skill Arcanum catalog. EN triggers: /skill, which skill, pick a skill, what skill should I use, skill discovery, meta skill. PT triggers: qual skill, qual habilidade, descobrir skill, qual fluxo usar. Do NOT use for: actual implementation work (route to the specific skill instead), unrelated standalone tasks outside the Arcanum catalog, or runtime-specific configuration (e.g., opencode.json / Claude Code plugin paths).
typescript-patterns
TypeScript best practices and patterns for type-safe, maintainable code. Covers discriminated unions, generics, const assertions, type narrowing, and common anti-patterns. Extends (does not override) project tsconfig. EN triggers: /typescript, TypeScript patterns, TS best practices, type safety, discriminated unions, generics, type narrowing. PT triggers: /typescript, padrões TypeScript, boas práticas TS, segurança de tipos, unions discriminadas, genéricos. Do NOT use for: JavaScript-only projects, runtime performance, or replacing project tsconfig rules.
test-driven-development
Drives development with tests — fail first, then make them pass, then refactor. Use when implementing any logic, fixing any bug, or changing any behavior. EN triggers: /test, write tests first, TDD, prove it, 80/15/5 pyramid, Beyonce Rule. PT triggers: /teste, testes primeiro, provar com teste, pirâmide 80/15/5. Do NOT use for: production incident triage (use /debug), or cosmetic-only changes with no behavioral surface.
spec-driven
Feature planning and implementation with 4 adaptive phases — Specify, Design, Tasks, Execute. Auto-sizes depth by complexity. Creates atomic tasks with verification criteria, atomic git commits, and requirement traceability. Features an independent Verifier (author != verifier, evidence-or-zero), persistent decision log (STATE.md), and test-coverage-matrix-driven tests, plus a self-improving lessons layer that turns verification failures into reusable project-local guidance. Stack-agnostic. Use when planning features (requirements, design, task breakdown), implementing with verification and atomic commits, or validating/verifying an implementation against a spec. Triggers (PT/EN): "specify feature", "vamos especificar", "discutir feature", "discutir este caso", "design", "design da feature", "tarefas", "quebrar em tarefas", "implementar", "build", "validar", "verify work", "UAT", "validar implementação", "record decision", "pause work", "pausar trabalho", "resume work", "retomar trabalho". Do NOT use for architecture decomposition analysis (use architecture skills) or technical design docs (treat as Complex scope: discuss gray areas + architecture-focused design).
skill-forge
Designs, authors, validates, and optimizes new Agent Skills from scratch. Use when creating a new skill, packaging a workflow as a skill, improving a skill's triggering accuracy, or evaluating whether a skill improves output quality. Covers the full lifecycle: DISCOVER, DESIGN, AUTHOR, VALIDATE, OPTIMIZE, DELIVER. Produces skills that follow the open SKILL.md format (YAML frontmatter + Markdown body, progressive disclosure, validation loops). EN triggers: /forge, create a skill, write a skill, build a skill, new skill, author a skill, package this as a skill, validate a skill, improve skill triggering, optimize skill description, evaluate skill quality. PT triggers: /forge, criar uma skill, escrever uma skill, construir uma skill, nova skill, empacotar como skill, validar skill, melhorar disparo, otimizar descrição de skill. Do NOT use for: discovering which existing skill to apply (use a dispatch/meta skill), planning feature implementation, or designing software architecture.
shipping-and-launch
Prepares production launches with a pre-launch checklist, staged rollout, monitoring, and a rollback strategy — plus feature flag lifecycle (off → internal → beta → GA). Use when deploying a feature to production for the first time, releasing a significant change, or planning a rollout. EN triggers: /ship, pre-launch checklist, staged rollout, feature flag, rollback plan, monitoring. PT triggers: /shippar, checklist pré-lançamento, rollout gradual, feature flag, plano de rollback. Do NOT use for: pre-production development work, or one-off internal tools with no user exposure.