

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
123456# story: e25s017# story: e25s028# story: e25s039# story: e25s0410# story: e25s0511# story: e25s061213# Migrate Spec1415Transform existing GSD, spec-kit, or BMAD planning artifacts into the bigpowers `specs/` model. No code is written — the output is a set of bigpowers-format spec files the user can use immediately.1617## Quick start18191. Run this skill from the root of the project being migrated (not the bigpowers repo itself).202. The skill auto-detects the source framework and presents its findings before transforming anything.213. All output goes to `specs/` at the project root.2223---2425## Red flags — stop and ask2627Before proceeding, check for these rationalization traps:2829- **Partial artifact set** — only one fingerprint file found (e.g. just `spec.md` with no `plan.md`). Don't assume it's a complete project. Ask: "I found only X — is this the full set of your spec artifacts?"30- **Wrong trigger** — user said "migrate my code" or "migrate the database", not "migrate my specs". Confirm before running.31- **Stale source** — source artifacts have commit dates older than 6 months with no recent activity. Flag: "These specs appear inactive since <date>. Are they still the source of truth?"32- **Active divergence** — source `state.yaml` or `sprint-status.yaml` shows in-progress work. Flag: "There is active work in flight. Migrating now may lose in-progress context. Proceed?"3334If any red flag fires: surface it, wait for explicit user confirmation before continuing.3536---3738## Process3940### Step 1 — Detect the source framework4142Scan for the fingerprints below. Stop at first match; if multiple match, list them and ask the user which is primary.4344| Framework | Fingerprints (any one is sufficient) |45|-----------|--------------------------------------|46| **GSD** | `.planning/` directory; `.planning/ROADMAP.md`; `.planning/REQUIREMENTS.md` with `REQ-` IDs |47| **spec-kit** | `.specify/` directory; `spec.md` + `plan.md` at root; `.github/skills/speckit-*/SKILL.md` |48| **BMAD** | `_bmad/` directory; `_bmad-output/` directory; `prd.md` with `FR-` IDs; `epic-*.md` or `story-*.md` |4950If none found: ask the user which framework before proceeding.5152→ verify: `test -d specs && test -f specs/state.yaml`5354### Step 2 — Inventory the source artifacts5556List every artifact found matching the detected framework. Present the list to the user:5758See [REFERENCE.md](REFERENCE.md) — `Detected: GSD...`5960→ verify: `test -d specs && test -w specs`6162### Step 3 — Transform (one artifact at a time, show diffs)6364Apply the mapping from [REFERENCE.md](./REFERENCE.md) and [REFERENCE-GSD.md](./REFERENCE-GSD.md). For each target file:65661. Show what will be created or appended (title + first 20 lines).672. Ask: "Create this? [yes / edit / skip]"683. On yes: write to `specs/`.6970#### ID Tracking (REQ-XX, FR-XX, UJ-XX)7172When source artifacts contain IDs (REQ-XX, FR-XX, UJ-XX), emit them as **first-class YAML fields** in `in_scope` entries, not YAML comments:7374See [REFERENCE.md](REFERENCE.md) — `# CORRECT — first-class id: field...`7576**When source has no IDs:** Prompt the user: "No IDs found. Assign auto-generated IDs? [yes / no]". If yes, emit `REQ-{NNN}` with `# auto-generated` annotation.7778**When source has MIXED IDs:** Items with IDs get `id:` fields; items without IDs receive auto-generated `REQ-NNN` entries. Document which were auto-generated in a comment block at the top of `in_scope`.7980See [REFERENCE.md — in_scope format with ID tracking](./REFERENCE.md#in_scope-format-with-id-tracking) for examples.8182#### Traceability Output (FR-XX, UJ-XX)8384When source has FR-XX or UJ-XX IDs, emit `specs/product/REQUIREMENTS_TRACE.yaml` for end-to-end requirement traceability:8586See [REFERENCE.md](REFERENCE.md) — `trace:...`8788**Existing trace file:** If `REQUIREMENTS_TRACE.yaml` already exists, prompt: "REQUIREMENTS_TRACE.yaml exists. [overwrite / merge / skip]"8990**No FR-XX/UJ-XX found:** Skip trace file; add note to state.yaml handoff: "No FR-XX/UJ-XX IDs found — traceability file skipped".9192See [REFERENCE.md — REQUIREMENTS_TRACE.yaml format](./REFERENCE.md#requirements_traceyaml-format) for the complete schema.9394> **HARD GATE** — Never overwrite an existing `specs/` file without explicit user confirmation. Merge into it if it exists; don't clobber.95>96> → verify: `git rev-parse --git-dir >/dev/null 2>&1 && test -d specs`9798→ verify: `test -d specs && [ "$(ls specs/*.md specs/*.yaml 2>/dev/null | wc -l | tr -d " ")" -gt 0 ]`99100### Step 4 — Generate state.yaml101102Always regenerate `specs/state.yaml` from scratch in bigpowers YAML format (see REFERENCE.md for template). The **handoff block is mandatory** and must include all four fields:103104See [REFERENCE.md](REFERENCE.md) — `active_flow: null...`105106If no open decisions were found during migration, the `open_decisions` list may be empty with an explanatory comment:107108See [REFERENCE.md](REFERENCE.md) — `handoff:...`109110→ verify: `grep -q handoff: specs/state.yaml`111112---113114# migrate-spec Reference — GSD115116Full artifact transformation rules for migrating GSD projects to bigpowers YAML layout.117118See [REFERENCE.md](./REFERENCE.md) for spec-kit, BMAD, learnings, and ADR/DECISION-LOG formats.119120---121122## Artifact Locations123124GSD stores everything under `.planning/` at the project root.125126```127.planning/128├── ROADMAP.md129├── STATE.md130├── REQUIREMENTS.md131├── METHODOLOGY.md132├── HANDOFF.json133├── .continue-here.md134└── phases/135 └── XX-name/136 ├── XX-CONTEXT.md137 ├── XX-YY-PLAN.md138 ├── XX-YY-SUMMARY.md139 └── XX-DISCUSSION-LOG.md140 spikes/141 └── SPIKE-NNN/README.md142```143144---145146## Transformation Rules147148### `.planning/ROADMAP.md` → `specs/release-plan.yaml` + `specs/epics/eNN-*.yaml`149150GSD ROADMAP has: milestone name, phases, success criteria per phase, plan count.151152Transform:153- Each GSD phase → one epic entry in `release-plan.yaml` (`id`, `title`, `wsjf`, `file`)154- Phase detail → matching `specs/epics/eNN-slug.yaml` (stories, tasks, `verify`)155- Completed phases → `done` in `execution-status.yaml`; active → `in_progress`156157---158159### `.planning/REQUIREMENTS.md` → `specs/product/SCOPE_LATEST.yaml`160161GSD REQUIREMENTS has: REQ-XX IDs, Validated/Active/Out-of-Scope categories, traceability.162163Transform:164- Preserve REQ-XX IDs as **first-class `id:` fields** in `in_scope` entries (see [REFERENCE.md — ID tracking format](./REFERENCE.md#in_scope-format-with-id-tracking))165- Validated requirements → `in_scope` entries with `id:`, `description:`, `source:` fields166- Out-of-Scope → `out_of_scope` entries (preserve IDs if present)167- Active (in-progress) → `in_scope` with status note168169---170171### `.planning/phases/XX-name/XX-CONTEXT.md` → `specs/tech-architecture/TECH_STACK_LATEST.md` + `specs/adr/`172173GSD CONTEXT.md has 6 sections: domain, decisions, canonical_refs, code_context, specifics, deferred.174175Transform:176- `domain` → `plans/TECH_STACK_LATEST.md` Domain section177- `decisions` → scan each: if hard-to-reverse + surprising → `specs/adr/NNNN-{slug}.md`; if lightweight → `specs/DECISION-LOG_LATEST.md`178- `canonical_refs` → Reference links in TECH_STACK179- `code_context` → Architecture section180- `deferred` → `SCOPE_LATEST.yaml` `out_of_scope` (with "(deferred from GSD)" note)181182---183184### `.planning/phases/XX-name/XX-YY-PLAN.md` → `specs/epics/eNN-*.yaml` tasks185186GSD PLAN has: frontmatter (depends-on, verify), objective, typed tasks, success criteria, output spec.187188Transform:189- Preserve task structure as `tasks[]` in epic shard190- Keep `verify: <command>` lines191- Map GSD `depends-on` to task `depends-on` notes192- SUMMARY.md (execution record) → skip or append to `specs/archive/`193194---195196### `.planning/METHODOLOGY.md` → `specs/tech-architecture/METHODOLOGY_LATEST.md`197198GSD METHODOLOGY.md is a standing reference for analytical lenses (Bayesian updating, STRIDE, cost-of-delay).199200Transform:201- Copy each lens as a section in `specs/tech-architecture/METHODOLOGY_LATEST.md`202- Note: "These lenses should inform `plan-work` and `audit-code` sessions."203204---205206### `.planning/HANDOFF.json` + `.continue-here.md` → `specs/state.yaml` `handoff`207208GSD HANDOFF has: current phase, last plan, blocking reason, required reading list.209210Transform — populate `handoff` in `state.yaml`:211212```yaml213handoff:214 last_step_completed: "<phase/plan from HANDOFF>"215 open_decisions:216 - "<blocking reason if any>"217 required_reading:218 - "<required_reading list>"219 next_skill: survey-context220```221222---223224### `.planning/spikes/SPIKE-NNN/README.md` → `specs/archive/spikes/SPIKE-{name}.md`225226GSD spike README has: YAML frontmatter (verdict, validates, related), methodology, findings, recommendation.227228Transform:229- Flatten directory into `specs/archive/spikes/SPIKE-{name}.md`230- Preserve frontmatter as YAML block at top231- Keep verdict prominently: `**Verdict:** ADOPTED / REJECTED / DEFERRED`232233---234235## Skip List236237These GSD artifacts are not migrated — they are execution records, not planning inputs:238239| Artifact | Reason |240|----------|--------|241| `.planning/phases/XX/XX-YY-SUMMARY.md` | Execution log; no bigpowers equivalent |242| `.planning/phases/XX/XX-DISCUSSION-LOG.md` | Audit trail only; not consumed by agents |243| `.planning/USER-PROFILE.md` | User calibration; bigpowers has no profile system |244| `.planning/sketches/` | Visual exploration; not spec artifacts |245246---247248# Migrate Spec — Reference249250## Navigation251252| Lines | Section |253|-------|---------|254| 1 | Title |255| 3–68 | Navigation |256| 69–70 | spec-kit → bigpowers Mapping |257| 71–84 | Artifact Locations |258| 85–94 | `spec.md` → `specs/product/SCOPE_LATEST.yaml` + `specs/tech-architecture/TECH_STACK_LATEST.md` |259| 95–105 | `plan.md` → `specs/tech-architecture/TECH_STACK_LATEST.md` + `specs/release-plan.yaml` + `specs/epics/` |260| 106–114 | `tasks.md` → `specs/epics/` (via slice-tasks) |261| 115–120 | `.specify/` state |262| 121–122 | BMAD → bigpowers Mapping |263| 123–141 | Artifact Locations |264| 142–148 | `product-brief.md` / `prfaq-{project}.md` → `specs/product/VISION_LATEST.yaml` |265| 149–160 | `prd.md` → `specs/product/SCOPE_LATEST.yaml` + `GLOSSARY_LATEST.yaml` |266| 161–167 | `addendum.md` + `decision-log.md` → `specs/adr/` + `specs/DECISION-LOG_LATEST.md` |267| 168–174 | `architecture.md` → `specs/tech-architecture/TECH_STACK_LATEST.md` + `specs/adr/` |268| 175–178 | `epic-*.md` → `specs/release-plan.yaml` + `specs/epics/eNN-*.yaml` |269| 179–182 | `story-*.md` → `specs/epics/` stories |270| 183–188 | `project-context.md` → `CLAUDE.md` |271| 189–192 | Learnings to Adopt |272| 193–198 | From GSD |273| 199–204 | From spec-kit |274| 205–212 | From BMAD |275| 213–214 | Output Formats |276| 215–224 | ADR format (bigpowers) |277| 225–227 | Context |278| 228–230 | Decision |279| 231–234 | Consequences |280| 235–246 | DECISION-LOG.md format |281| 247–257 | MIGRATION-AUDIT.md format |282| 258–264 | Summary |283| 265–274 | High Priority Findings |284| 275–278 | Information |285| 279–285 | Next Steps |286| 286–306 | in_scope format with ID tracking |287| 307–341 | REQUIREMENTS_TRACE.yaml format |288| 342–397 | `specs/state.yaml` template format |289| 398–416 | Reference block 1 |290| 417–432 | Reference block 2 |291| 433–451 | Reference block 3 |292| 452–474 | Reference block 4 |293| 475–482 | Reference block 5 |294| 483–484 | Findings |295| 485–489 | High Priority |296| 490–495 | Information |297| 496–509 | Reference block 6 |298| 510–542 | Step 7 — Post-migration: Optional two-pass spec writing gate |299| 543–574 | Step 8 — Post-migration: Optional methodology doc template |300| 575–600 | Artifact Mapping Summary |301| 601–610 | Rules |302| 611–621 | Step 5 — Surface learnings (optional) |303| 622–644 | Step 6 — Adversarial review (optional) |304| 645–646 | Findings |305| 647–651 | High Priority |306| 652–660 | Information |307308# migrate-spec Reference — spec-kit, BMAD, Learnings309310Transformation rules for spec-kit and BMAD projects, plus learnings to adopt and output formats.311312See [REFERENCE-GSD.md](./REFERENCE-GSD.md) for full GSD → bigpowers YAML mapping.313314---315316## spec-kit → bigpowers Mapping317318### Artifact Locations319320```321project-root/322├── spec.md ← user journeys, success criteria, scope323├── plan.md ← technology, architecture, constraints324├── tasks.md ← atomic task list325└── .specify/326 ├── workflow-catalogs.yml327 └── workflows/runs/<id>/328 ├── state.json329 └── log.jsonl330```331332### `spec.md` → `specs/product/SCOPE_LATEST.yaml` + `specs/tech-architecture/TECH_STACK_LATEST.md`333334spec-kit `spec.md` focuses on: who uses it, user journeys, success criteria, what's in/out of scope.335336Transform:337- User journeys → `SCOPE_LATEST.yaml` success criteria / `in_scope` entries338- In/out of scope → `in_scope` / `out_of_scope` sections339- Domain terms / glossary → `requirements/GLOSSARY_LATEST.yaml`340- Problem statement / vision → `requirements/VISION_LATEST.yaml`341342### `plan.md` → `specs/tech-architecture/TECH_STACK_LATEST.md` + `specs/release-plan.yaml` + `specs/epics/`343344spec-kit `plan.md` covers: technology stack, architectural patterns, implementation constraints.345346Transform:347- Technology decisions → `plans/TECH_STACK_LATEST.md` Technology section348- Architecture patterns → Architecture section349- Hard decisions with trade-offs → `specs/adr/NNNN-{slug}.md`350- Phased approach / milestones → `release-plan.yaml` epic entries351- Implementation steps → `epics/eNN-*.yaml` task list with `verify:`352353### `tasks.md` → `specs/epics/` (via slice-tasks)354355spec-kit tasks are atomic, verifiable in isolation — same principle as bigpowers `verify:` mandate.356357Transform:358- Copy tasks into epic shard `tasks[]`; preserve task numbers359- Add `verify:` line if spec-kit task has an acceptance criterion360- Group into epics matching `release-plan.yaml` entries361362### `.specify/` state363364Discard — workflow engine state; not meaningful in the bigpowers skill model.365366---367368## BMAD → bigpowers Mapping369370### Artifact Locations371372```373project-root/374├── _bmad/bmm/config.yaml375├── _bmad-output/376│ ├── product-brief.md377│ ├── prfaq-{project}.md378│ ├── prd.md379│ ├── addendum.md380│ ├── decision-log.md381│ ├── ux-spec.md382│ └── architecture.md383├── project-context.md384└── docs/385 ├── epic-{slug}.md386 └── story-{slug}.md387```388389### `product-brief.md` / `prfaq-{project}.md` → `specs/product/VISION_LATEST.yaml`390391Transform:392- Vision + core value → `VISION_LATEST.yaml` north_star / success_criteria393- Target users → notes in VISION or SCOPE394- prfaq customer FAQ → can inform success criteria in SCOPE395396### `prd.md` → `specs/product/SCOPE_LATEST.yaml` + `GLOSSARY_LATEST.yaml`397398BMAD `prd.md` has: Glossary, FR-XX functional requirements, UJ-XX user journeys, NFRs, assumptions.399400Transform:401- Glossary → `GLOSSARY_LATEST.yaml`402- FR-XX items → `in_scope` with IDs preserved403- UJ-XX user journeys → success criteria404- NFRs → `constraints` section405- `[ASSUMPTION: ...]` inline tags → collected in scope YAML406- Out-of-scope features → `out_of_scope`407408### `addendum.md` + `decision-log.md` → `specs/adr/` + `specs/DECISION-LOG_LATEST.md`409410Transform:411- Hard, irreversible, surprising decisions → individual `specs/adr/NNNN-{slug}.md`412- Lightweight decisions → `specs/DECISION-LOG_LATEST.md` (date | decision | rationale)413- `addendum.md` change signals → note in `SCOPE_LATEST.yaml` metadata414415### `architecture.md` → `specs/tech-architecture/TECH_STACK_LATEST.md` + `specs/adr/`416417Transform:418- ADR sections → individual `specs/adr/NNNN-{slug}.md` files419- System overview / data models → TECH_STACK Architecture section420- API contracts → keep at `docs/api.md` or similar; link from TECH_STACK421422### `epic-*.md` → `specs/release-plan.yaml` + `specs/epics/eNN-*.yaml`423424Each epic → one release-plan entry + one epic shard. Acceptance criteria → story tasks with `verify:`.425426### `story-*.md` → `specs/epics/` stories427428Each story → one story entry in epic shard. Acceptance criteria → `verify:` lines.429430### `project-context.md` → `CLAUDE.md`431432Add a "## Project Context" section to `CLAUDE.md`. Copy tech stack, coding rules, preferences verbatim.433434---435436## Learnings to Adopt437438Optional enhancements to offer the user after migration. Present as checkboxes.439440### From GSD441442- [x] **`specs/tech-architecture/METHODOLOGY_LATEST.md`** — Standing analytical lenses. Agents read before planning. (adopted: optional Step 8 template scaffold)443- [x] **`handoff` block in state.yaml** — Last skill, last step, required reading for next session. (adopted: mandatory in Step 4 output)444- [x] **ID tracking in SCOPE_LATEST.yaml** — FR/UJ IDs for spec → plan → verification traceability. (adopted in Step 3 transform)445446### From spec-kit447448- [x] **Two-pass spec writing** — User-journey pass first, then technical-decisions pass. (adopted: optional post-migration gate)449- [ ] **Explicit inter-phase gate** — "Approve to proceed?" at end of `elaborate-spec`.450- [ ] **Epic task isolation** — Each task completable in isolation; `depends-on` explicit in epic YAML.451452### From BMAD453454- [x] **FR-XX + UJ-XX in SCOPE_LATEST.yaml** — Rigorous traceability. (adopted: REQUIREMENTS_TRACE.yaml emitted on migration)455- [ ] **`specs/DECISION-LOG_LATEST.md`** — Lightweight decisions below ADR threshold.456- [x] **Adversarial review pass** — Critique epic shard before `develop-tdd`. (adopted: optional Step 6 in migration)457458---459460## Output Formats461462### ADR format (bigpowers)463464Use `model-domain/ADR-FORMAT.md`. Only create when all three apply: hard to reverse, surprising without context, result of a real trade-off.465466```markdown467# ADR-NNNN: {Title}468469**Status:** Accepted470**Date:** YYYY-MM-DD471472## Context473[What situation forced this decision?]474475## Decision476[What was decided?]477478## Consequences479[What becomes easier or harder?]480```481482### DECISION-LOG.md format483484For lightweight decisions that don't warrant a full ADR:485486```markdown487# Decision Log488489| Date | Decision | Rationale | Alternatives |490|------|----------|-----------|--------------|491| 2026-05-19 | Use Postgres | Existing ops expertise | SQLite (limited), DynamoDB (no local dev) |492```493494### MIGRATION-AUDIT.md format495496Post-migration adversarial review report. Written to `specs/archive/MIGRATION-AUDIT.md` when Step 6 runs:497498```markdown499# Migration Audit — <project-name>500501**Source Framework:** <GSD|spec-kit|BMAD>502**Date:** <ISO 8601>503**Status:** <Pass|Findings|Critical>504505## Summary506507- TODO markers: N508- FIXME markers: N509- MISSING markers: N510- Epics without verify: N511512## High Priority Findings513514- **Artifact:** specs/epics/e02-auth-ui/epic.yaml515 **Issue:** Story e02s01 has no verify: commands in tasks516 **Recommendation:** Add runnable verify command before develop-tdd517518- **Artifact:** specs/state.yaml519 **Issue:** open_decisions list empty without comment explanation520 **Recommendation:** Add # comment if all decisions were resolved during migration521522## Information523524- Artifact specs/epics/e01-auth/epic.yaml contains TODO: "Define Neon Auth client URL injection" (normal for fresh migration)525526## Next Steps5275281. Address high-priority findings before plan-work5292. Run bash scripts/audit-compliance.sh to enforce code quality gates5303. Begin develop-tdd on highest-WSJF epic531```532533### in_scope format with ID tracking534535Source IDs (REQ-XX, FR-XX, UJ-XX) are emitted as first-class YAML fields:536537```yaml538in_scope:539 - id: REQ-001540 description: "User can register with email and password"541 source: "REQUIREMENTS.md"542 - id: FR-015543 description: "Auth service must support OAuth2 token flow"544 source: "prd.md"545 - id: REQ-AUTO-002 # auto-generated when source had no ID546 description: "Dashboard displays user profile"547 # auto-generated: true (optional comment for tracking)548```549550**When source has no IDs:** If the user opts in, auto-generated IDs follow the `REQ-{NNN}` format with an optional `# auto-generated` comment.551552**When source has mixed IDs:** Entries with source IDs get `id:` fields; entries without IDs receive auto-generated IDs. A comment block at the top of `in_scope` documents which IDs were auto-generated.553554### REQUIREMENTS_TRACE.yaml format555556Emitted when source has FR-XX (functional requirement) or UJ-XX (user journey) IDs. Maps source requirements to bigpowers epic/story structure and verification commands:557558```yaml559trace:560 # Functional Requirements561 - id: FR-001562 type: functional_requirement563 description: "User can register with email/password"564 source_artifact: "prd.md"565 epic: "e02-auth-ui"566 story: "e02s01"567 verify: "grep -q 'FR-001' specs/product/SCOPE_LATEST.yaml && echo OK"568569 # User Journeys570 - id: UJ-001571 type: user_journey572 description: "New user completes registration flow"573 source_artifact: "epic-auth-ui.md"574 epic: "e02-auth-ui"575 story: "e02s01"576 verify: "grep -q 'UJ-001' specs/epics/e02-auth-ui/epic.yaml && echo OK"577578metadata:579 source_framework: "BMAD"580 migrated_at: "2026-06-26T12:00:00Z"581 total_requirements: 2582 coverage: "All FR-XX and UJ-XX IDs from source mapped"583```584585**When source has no FR-XX/UJ-XX:** Skip REQUIREMENTS_TRACE.yaml. Add note to `state.yaml` handoff: "No FR-XX/UJ-XX IDs found — traceability file skipped".586587**Existing trace file:** If REQUIREMENTS_TRACE.yaml exists, prompt user: "Overwrite? [yes / merge / skip]". Merge appends new entries; skip leaves existing file intact.588589### `specs/state.yaml` template format590591Generated during Step 4 of migration. Regenerate from scratch in bigpowers YAML format. The **handoff block is mandatory**:592593```yaml594active_flow: null595active_epic_id: null596active_story_id: null597completed_epic: false598599epic_cycle:600 current_step: null601 next_skill: null602 story_bcps: null603 completed_steps: []604 audit_result: null605606bug_cycle:607 current_step: null608 completed_steps: []609610release:611 target_version: null612 last_tag: null613 last_publish: null614 ci_verified: false615616metrics:617 story_start: null618 story_end: null619 cycle_minutes: null620 bcp_per_hour: null621622git:623 branch: <current branch>624 hash: <git rev-parse HEAD>625 pushed: false626627handoff:628 last_step_completed: "Migrated from <framework> on <date>"629 open_decisions: [] # Empty if all decisions resolved during migration630 required_reading:631 - specs/product/VISION_LATEST.yaml632 - specs/product/SCOPE_LATEST.yaml633 - specs/tech-architecture/TECH_STACK_LATEST.md634 - specs/release-plan.yaml635 next_skill: survey-context636637two_pass_spec: # Optional: only if user activates two-pass spec writing gate638 journey_pass: pending639 technical_pass: pending640 approved_at: null641```642643---644645## Reference block 1646647```648Detected: GSD649Found:650 ✓ .planning/ROADMAP.md651 ✓ .planning/REQUIREMENTS.md (12 REQ-XX items)652 ✓ .planning/state.yaml653 ✓ .planning/phases/01-auth/01-CONTEXT.md654 ✗ .planning/METHODOLOGY.md (not present)655656Skipping:657 .planning/phases/01-auth/01-01-SUMMARY.md (execution record; archived only)658659Proceed with migration? [yes / skip <artifact> / abort]660```661662---663664## Reference block 2665666```yaml667# CORRECT — first-class id: field668in_scope:669 - id: REQ-001670 description: "User can register with email/password"671 source: "REQUIREMENTS.md"672673# DEPRECATED — comment-only674in_scope:675 - "User can register with email/password" # REQ-001676```677678---679680## Reference block 3681682```yaml683trace:684 - id: FR-001685 type: functional_requirement686 description: "User can register with email/password"687 epic: e02-auth-ui688 story: e02s01689 verify: "grep -q 'FR-001' specs/product/SCOPE_LATEST.yaml && echo OK"690 - id: UJ-001691 type: user_journey692 description: "New user completes registration flow"693 epic: e02-auth-ui694 story: e02s01695```696697---698699## Reference block 4700701```yaml702active_flow: null703active_epic_id: null704active_story_id: null705706# ... other state fields ...707708handoff:709 last_step_completed: "Migrated from <framework> on <date>"710 open_decisions:711 - "decision text here"712 required_reading:713 - specs/product/VISION_LATEST.yaml714 - specs/product/SCOPE_LATEST.yaml715 - specs/tech-architecture/TECH_STACK_LATEST.md716 - specs/release-plan.yaml717 next_skill: survey-context718```719720---721722## Reference block 5723724```markdown725# Migration Audit — <project-name> from <framework>726727**Date:** <ISO 8601 timestamp>728**Status:** Pass / Fail with findings729730## Findings731732### High Priority733- Artifact: specs/epics/e02-auth-ui/epic.yaml734 Finding: No verify: commands in story tasks735 Recommendation: Add `verify:` to each task before develop-tdd736737### Information738- Count of TODO markers: 3 (normal for fresh migration)739```740741---742743## Reference block 6744745```746Which lenses to include in specs/tech-architecture/METHODOLOGY_LATEST.md?747748[x] Cost of Delay (CD3) — Priority & trade-off assessment749[ ] STRIDE — Security threat modeling750[ ] F.I.R.S.T — Test quality principles751[ ] Bayesian Updating — Probabilistic decision-making752[ ] OWASP Top 10 — Web security framework753```754755---756757### Step 7 — Post-migration: Optional two-pass spec writing gate758759After Steps 1–6, offer the user an optional two-pass spec writing workflow (spec-kit learning):760761Prompt: "Use two-pass spec writing (user journeys first, then technical)? [yes / no]"762763If **yes**, initialize the gate in `specs/state.yaml`:764765```yaml766two_pass_spec:767 journey_pass: pending768 technical_pass: pending769 approved_at: null770```771772The journey pass must be marked "complete" by the user (after stakeholder approval of user-journey specs) before the technical pass begins:773774```yaml775two_pass_spec:776 journey_pass: complete777 approved_at: "2026-06-26T12:00:00Z"778 technical_pass: pending779```780781Inform the user: "Journey pass is pending. Run `elaborate-spec` for user journeys, get stakeholder approval, then update `two_pass_spec.journey_pass: complete` in state.yaml before proceeding to technical specs."782783If **no**, skip the two-pass gate. Proceed directly to plan-work.784785→ verify: `grep -q 'two_pass_spec:' specs/state.yaml && echo "two-pass gate initialized" || echo "two-pass gate not activated"`786787788---789790### Step 8 — Post-migration: Optional methodology doc template791792After Steps 1–7, offer the user an optional analytical framework scaffold (GSD learning):793794Prompt: "Create a methodology doc? [yes / no]"795796If **yes**, present a checklist of analytical lenses:797798```799Which lenses to include in specs/tech-architecture/METHODOLOGY_LATEST.md?800801[x] Cost of Delay (CD3) — Priority & trade-off assessment802[ ] STRIDE — Security threat modeling803[ ] F.I.R.S.T — Test quality principles804[ ] Bayesian Updating — Probabilistic decision-making805[ ] OWASP Top 10 — Web security framework806```807808Copy the template from `migrate-spec/templates/METHODOLOGY_LATEST.md` to `specs/tech-architecture/METHODOLOGY_LATEST.md`.809- Active lenses remain uncommented810- Unselected lenses are left commented out811- Populate `{{project_name}}` with the migrated project's name812813If **no**, skip. Add note to handoff: "Methodology doc: skipped — can be added later via `cp migrate-spec/templates/METHODOLOGY_LATEST.md specs/tech-architecture/`"814815→ verify: `test -f specs/tech-architecture/METHODOLOGY_LATEST.md && echo "methodology doc created" || echo "methodology doc skipped"`816817---818819820---821822## Artifact Mapping Summary823824Full mapping tables: [REFERENCE-GSD.md](./REFERENCE-GSD.md) (GSD) · [REFERENCE.md](./REFERENCE.md) (spec-kit, BMAD, learnings).825826| Source | Target |827|--------|--------|828| GSD `ROADMAP.md` | `specs/release-plan.yaml + epic shards` |829| GSD `REQUIREMENTS.md` | `specs/product/SCOPE_LATEST.yaml` |830| GSD `CONTEXT.md` (phases) | `specs/tech-architecture/tech-stack.md` + `specs/adr/` |831| GSD `PLAN.md` | `specs/epics/eNN-slug/epic.yaml` (tasks with verify in `-tasks.yaml`) |832| GSD `METHODOLOGY.md` | `specs/tech-architecture/tech-stack.md` |833| spec-kit `spec.md` | `specs/product/SCOPE_LATEST.yaml` + `specs/tech-architecture/tech-stack.md` |834| spec-kit `plan.md` | `specs/tech-architecture/tech-stack.md` + `specs/release-plan.yaml` + `specs/epics/` |835| spec-kit `tasks.md` | `specs/epics/ (see slice-tasks)` |836| BMAD `prd.md` | `specs/product/SCOPE_LATEST.yaml` |837| BMAD `architecture.md` | `specs/tech-architecture/tech-stack.md` + `specs/adr/` |838| BMAD `epic-*.md` | `specs/release-plan.yaml + epic shards` |839| BMAD `story-*.md` | `specs/epics/ (see slice-tasks)` |840| BMAD `project-context.md` | `CLAUDE.md` (append project-specific section) |841| BMAD `decision-log.md` | `specs/adr/` (one ADR per logged decision) |842843---844845846---847848## Rules849850- **Preserve source IDs** — REQ-XX, FR-XX, UJ-XX are emitted as first-class `id:` fields in bigpowers YAML targets (e.g., `in_scope` entries). Never silently renumber. See Step 3 ID Tracking subsection for details.851- **Never merge contradictory docs** — if source has both `CONTEXT.md` and `architecture.md`, create sections in bigpowers `CONTEXT.md`; don't collapse them.852- **ADRs are opt-in** — only create an ADR when: hard to reverse, surprising without context, result of a real trade-off. Lightweight decisions go to `specs/DECISION-LOG_LATEST.md`.853- **state.yaml is always regenerated** — never migrate source STATE verbatim; bigpowers state.yaml needs its own format.854- **specs/ is the only output location** — no files are created outside `specs/` and `CLAUDE.md`.855856---857858### Step 5 — Surface learnings (optional)859860After migration, offer the user a brief analysis of what the source framework did that bigpowers doesn't have yet.861862Use the learnings table from [REFERENCE.md](./REFERENCE.md#learnings-to-adopt). Present as checkboxes so the user can decide which to adopt.863864→ verify: `grep -c "\- \[ \]" specs/state.yaml 2>/dev/null && echo "pending items recorded" || echo "no pending items in state.yaml"`865866867---868869### Step 6 — Adversarial review (optional)870871Before the user runs `plan-work`, offer an optional lightweight audit of the migrated artifacts. This catches common migration errors early — incomplete specs, missing verification commands, unresolved decisions.872873Prompt: "Run adversarial review of migrated artifacts? [yes / skip]"874875If yes, perform these checks:8768771. **Scan for incomplete markers** — Find TODO, FIXME, MISSING in specs/8782. **Verify every epic has `verify:` commands** — Parse all `eNN-*/epic.yaml` files8793. **Check state.yaml handoff** — Ensure `open_decisions` is documented (even if empty)880881Collect findings and write to `specs/archive/MIGRATION-AUDIT.md`:882883```markdown884# Migration Audit — <project-name> from <framework>885886**Date:** <ISO 8601 timestamp>887**Status:** Pass / Fail with findings888889890---891892## Findings893894### High Priority895- Artifact: specs/epics/e02-auth-ui/epic.yaml896 Finding: No verify: commands in story tasks897 Recommendation: Add `verify:` to each task before develop-tdd898899### Information900- Count of TODO markers: 3 (normal for fresh migration)901```902903If findings exist, the handoff block should note: "Adversarial review: N findings — see `specs/archive/MIGRATION-AUDIT.md`"904905If skip is chosen, add to handoff: "Adversarial review: skipped — review manually before plan-work"906907→ verify: `test -f specs/archive/MIGRATION-AUDIT.md && echo "audit completed" || echo "audit skipped or not performed"`908
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| danielvm-git/bigpowers.cursor/rules/simple-english.mdc · 139 | Cursor rules | styletypesgitdatabase+6 | 47/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/assess-impact.mdc · 139 | Cursor rules | testtesting-strategydeployment | 66/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/audit-plan.mdc · 139 | Cursor rules | buildteststylegit | 74/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/build-epic.mdc · 139 | Cursor rules | buildgit | 58/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/change-request.mdc · 139 | Cursor rules | no sections | 48/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/commit-message.mdc · 139 | Cursor rules | lint-formatstyletypesgit+3 | 82/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/compose-workflow.mdc · 139 | Cursor rules | styledo-notagent-behaviour | 65/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/context7-mcp.mdc · 139 | Cursor rules | style | 54/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/deepen-architecture.mdc · 139 | Cursor rules | testtesting-strategydo-not | 57/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/define-language.mdc · 139 | Cursor rules | lint-formatdo-not | 65/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/define-success.mdc · 139 | Cursor rules | no sections | 4/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/delegate-task.mdc · 139 | Cursor rules | git | 62/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/deploy.mdc · 139 | Cursor rules | setupbuildtestdeployment | 77/100 | 14 days ago | |
| danielvm-git/bigpowers.windsurf/rules/verify-work.md · 139 | Windsurf rules | buildtestlint-formatagent-behaviour | 74/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/develop-tdd.mdc · 139 | Cursor rules | teststylearchtesting-strategy+5 | 85/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/diagnose-root.mdc · 139 | Cursor rules | no sections | 39/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/diagnose-stall.mdc · 139 | Cursor rules | no sections | 44/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/dispatch-agents.mdc · 139 | Cursor rules | git | 54/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/edit-document.mdc · 139 | Cursor rules | no sections | 39/100 | 14 days ago | |
| danielvm-git/bigpowers.cursor/rules/elaborate-spec.mdc · 139 | Cursor rules | test | 58/100 | 14 days ago |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| hiromaily/go-crypto-wallet.cursor/rules/typescript.mdc · 126 | Cursor rules | setupbuildtestlint-format+6 | 100/100 | 14 days ago | |
| TechSquidTV/Hermes.cursor/rules/10-hermes-api.mdc · 46 | Cursor rules | testlint-formatstylearch+5 | 100/100 | 14 days ago | |
| Allymahmoud/case-intake-platform.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| deifos/clipmira-subtitles.cursor/rules/frontend.mdc · 1 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| dodgecfr/combatfilms-webapp.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 14 days ago | |
| markstev/mark-starter.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+6 | 99/100 | 14 days ago | |
| langflow-ai/langflow.cursor/rules/docs_development.mdc · 153k | Cursor rules | setupbuildtestlint-format+7 | 97/100 | 14 days ago | |
| bybren-llc/safe-agentic-workflow.cursor/rules/10-backend-python.mdc · 399 | Cursor rules | testlint-formatstylegit+4 | 97/100 | today |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/danielvm-git-bigpowers-cursor-rules-migrate-spec)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.