The PM-flow ecosystem
A task comes in. The hub classifies it, wakes only the right skills, routes it through the right slice of the lifecycle, and loops evidence back into the next request.
This is your home base. The PM-flow ecosystem — phases, skills, handoffs, and shared state — is how disciplined product development runs end to end. It led the framework; the engineering exists to serve it.
The process is a cycle, not a pipeline.
Product development never ends with shipping. It loops back through monitoring, feedback, and analysis into the next iteration. The inner ring below shows the 10 phases. After P8 Release, three feedback skills (CX, Ops, Marketing) observe the shipped product and feed signals back to Research and Learn — closing the loop. A separate Docs satellite sits off-cycle, carrying internal artifacts (PRDs, QA reports, runbooks) bidirectionally between PRD, Tasks, UX, and Test.
New capability — research, PRD, design, build, measure.
Two-ring lifecycle diagram. Inner ring: ten forward phases — Research, PRD, Tasks, UX, Implement, Test, Review, Merge, Release, Learn — clockwise. After Release at P8, three feedback skills (Marketing, Ops, CX) observe the shipped product and feed back into Research and Learn, closing the loop. A separate Docs satellite sits off-cycle, flowing artifacts between PRD, Tasks, UX, and Test. Hover or focus the Release phase or any feedback pill to see the fan-out and return arrows; hover the Docs satellite to see its connectors.Hover or focus P8 Release or any feedback pill to see the ship-fan-out and feedback-return arrows. Hover the Docs satellite to see which phases produce and consume internal artifacts.
- Feature10 phases
New capability — research, PRD, design, build, measure.
P0P1P2P3P4P5P6P7P8P9 - Enhancement4 phases
Improve a shipped feature. Parent PRD already exists.
P2P4P5P7 - Fix2 phases
Bug fix, security patch, error handling.
P4P5 - Chore1 phase
Docs, config, refactor, dependency bump.
P4
Not every work item runs all ten phases. Features get the full lifecycle; smaller work skips the upstream phases it doesn't need. Pick a type above to see which phases fire.
Every skill stands alone. All skills fit together.
Each skill is a Lego brick — it works on its own AND it snaps into the 10-phase lifecycle (the hub-and-spoke topology). Toggle Scattered to see them standalone; toggle Assembled to see them fit into phase columns. Click any brick to flip it and read the details.
Click a brick to flip • Esc to close
How the ecosystem grew
From a single monolithic skill in v1.0 to a hub-and-spoke topology by v4.3, then SoC-on-software optimizations, dispatch intelligence, and hardware-aware dispatch. Six milestones that matter most.
- v1.0 · 2026-04-02Monolithic /pm-workflow
A single skill did everything inline — research, PRD, UX, code review, testing, docs. The ecosystem was one very large file.
- v2.0 · 2026-04-07/ux splits from /design
First spoke extracted. /ux owns what & why; /design owns how it looks. Signal that the monolith could decompose.
- v4.3 · 2026-04-11Hub-and-spoke topology formalized
6 refactors validated the pattern. 6.5× measured speedup vs. the monolith. 12 skills in the topology (as of 2026-05-14 +/brainstorm-pm).
- v5.0 · 2026-04-14SoC-on-software
Skill-on-demand loading + cache compression. ~54K context tokens reclaimed. Chip architecture principles applied to software.
- v5.2 · 2026-04-16Dispatch intelligence + write safety
3-stage pre-flight: complexity scoring → model routing → tool budgets. Snapshot/rollback + mirror pattern for parallel writes.
- v7.0 · 2026-04-16V7.0 HADF — hardware-aware dispatch
17 chip profiles + 7 cloud signatures. Mahalanobis fingerprinting picks the right model tier for the detected environment.
- v7.5 · 2026-04-24V7.5 — Data Integrity Framework
Gemini-audit response. Pre-commit PR-number verification, contemporaneous logging (5 live), measurement-adoption ledger. Exposed that cache_hits was 0 of 40 across the corpus — filed honestly as issue #140.
- v4.X (skill) · 2026-05-06V4.X — UX/Design preflight + auto Figma build + pre-merge UI review
4 new sub-commands (/ux preflight, /ux pre-merge-review, /design preflight, /design pre-merge-review) + /design build auto-dispatch with Figma node ID write-back. Phase 3 chain extends 7→11 steps; Phase 6 chain 4→5 steps. Phase 7 BLOCKED unless both pre-merge reviews pass. Trigger: import-training-plan resume audit caught 4 P0 spec errors before any code was written.
- v4.X + CC · 2026-05-09Cross-repo Figma Code Connect
Figma library frames now map to React components (web, file fsjHfFLAHELACZHku8Rfcl) AND SwiftUI Views (iOS, file 0Ai7s3fCFqR5JXDW8JvgmD) via .figma.tsx + .figma.swift template files. Build-safety wrapper (#if canImport(Figma) on iOS, parser-excluded tsx on web) keeps everything compiling without the toolchain. Companion scaffold scripts auto-generate mapping files from state.json::figma_node_ids. Planned: /design build auto-invokes scaffold (Layer B); CI publish on merge (Layer C). Closes the design↔code loop in both directions.
- v7.9 · 2026-05-21Promotion Release — 3 gates flip to enforced
Single-line change at scripts/check-state-schema.py:132 (BRANCH_ISOLATION_ADVISORY_MODE = True → False) promotes 3 v7.8.1 advisory gates to enforced simultaneously: BRANCH_ISOLATION_VIOLATION Mode B + Mode C + FEATURE_CLOSURE_COMPLETENESS. All 4 §2.2 promotion criteria met after 14-day Mechanism A telemetry calibration (18 + 13 + 13 firings, 0 zero-candidate). First real-world Mode C gate fire caught + resolved same-session. 37 mechanical gates + 5 advisories post-promotion. Phase E validation soak 2026-05-21 → 06-04 PASSED (16 gates with telemetry, 0 GATE_COVERAGE_ZERO, 0 data regressions); v7.9.1 build window open. Honesty ledger entry FT2-FH-003 codifies the calibration discipline.
- v7.10 · 2026-06-10GATE_COVERAGE_ZERO observability + field-rename closure
Hardens the observability of the gates themselves. GATE_COVERAGE_ZERO gains a 0-candidate mis-wire detector (a gate registered in the F17 index with candidates==checked==skipped==0 runs but never reaches a candidate — the cache_hits-keying / unreachable-loop class), and three cycle-time checks (BROKEN_PR_CITATION / CASE_STUDY_MISSING_TIER_TAGS / PATTERN_SKILL_UNMAPPED) that previously emitted no Mechanism A coverage now emit mode="cycle" so the meta-check can watch them. Observed-patterns #24 codifies the field-rename silent-pass in a READER/INDEX — two instances fixed: cu_v2 (top-level vs legacy complexity.cu_version, halving adoption; post-v6 fully-adopted 3→6) and w9.auto_isolate (ts vs timestamp, 30 rows dropped). Plus a second what-if self-test across every layer (iOS build + 672 tests, ai-engine 34/34, web 286/289, framework 0 findings) that fixed verify-local dep-skip ergonomics, and T10 — the AI golden-set eval harness (the FitMe AI is deterministic, not generative, so a deterministic golden set is a hard PR gate: 24 cases, ai-engine suite 60 pass).
- v8.x build window · 2026-06-17v8.x build window — F16 enforced + roadmap-realism gates
The v8.x build window opened once the kickoff gate cleared. F16, the try-repo pre-commit harness (the 3rd gate-test layer that spawns a throwaway git repo and runs the real pre-commit hook via subprocess), was promoted advisory→enforced one day early — not via a code flag but by adding the try-repo-harness CI job to main's required status checks via gh api branch protection (an integration-test gate at the CI layer). Calibration: K2 false-positive rate 0% over 60 CI runs / 13 days, so a gate's integration surface can no longer regress silently into main. Three v8.x ready-now roadmap-realism advisory gates shipped alongside: F4 FRAMEWORK_VERSION_STALE (write-time, PR #740, fires when a feature is advanced while its framework_version is older than canonical — detection only, advisory→enforced 2026-07-08 PR #858), F1 STATE_TASKS_FILESYSTEM_DRIFT (cycle-time advisory-permanent, PR #752), and F3 DEPENDENCY_GRAPH_CYCLE (cycle-time advisory-permanent, PR #753). T14 PLATFORMS_TESTED was promoted advisory→enforced 2026-06-21 (PR #781), joining F16 (enforced 2026-06-17). SCHEMA_DIFF (T12) shipped 2026-07-09 as the 34th live gate; CSV_TAXONOMY_DRIFT (AN-1B.1) promoted advisory→enforced 2026-07-13 (cadence B16). Canonical counts: 131 features tracked, 32 instrumented / 34 live gates (20 write-time + 9 cycle-time + 2 W9 hooks + 1 standalone).
The files the skills speak through.
Skills do not call each other directly — they read and write shared JSON files in .claude/shared/. Decoupling by design. Any skill can run standalone because every skill just reads state and writes state. The colored dots show which skills touch each file.
Global product context — personas, mission, top-level goals.
Master list of all features, their phase, branch, and current state.
Maps each phase to 1-2 skills the hub loads on-demand.
Canonical version + structural metadata for the framework.
Every feature opens an entry here — process + quality metrics become case studies.
Token inventory, component catalog, WCAG compliance status.
Per-feature test counts, coverage percentages, CI status.
Current value of every tracked product metric vs PRD targets.
App-store reviews, NPS, sentiment, post-deployment feedback.
Marketing campaigns in flight + post-campaign performance.
Infrastructure health — crash-free rate, uptime, error-tracking signals.
Per-version changelog — auto-generated from merged features.
Context-window usage tracking per skill per session.
17 chip profiles + 7 cloud signatures for V7.0 HADF hardware-aware dispatch.
Linear + Notion sync snapshot — detects workspace drift.
Three cache tiers, just like a CPU.
The framework borrows the L1/L2/L3 cache hierarchy directly from CPU architecture. L1 is per-skill (fastest), L2 is shared across skills, L3 is project-wide lore. When a skill needs context, it checks L1 first — if it misses, it tries L2, then L3.
.claude/cache/{skill}/Per-skill cache. Fastest to hit. Holds skill-specific recent patterns.
.claude/cache/_shared/Cross-skill shared patterns. Hit when L1 misses.
.claude/cache/_project/Project-wide lore. Slowest tier. Cache of last resort.
Code is the source of truth; Figma mirrors it.
The /design build skill pushes screens into Figma via the Figma plugin API. A Code Connect bridge was prototyped (2026-05-09) to close the other direction — surfacing each component's code snippet in Figma Dev Mode — but Figma Code Connect requires an Organization/Enterprise plan, and this project runs on Figma Pro. Code Connect publishing is disabled as of 2026-06-15; the mapping files below remain as documentation of intent. The design systems themselves — tokens and components, in code — are fully operational and CI-gated.
.figma.tsx files map React components to Figma file fsjHfFLAHELACZHku8Rfcl (FitMe Story Web — Design System). Parsed by the @figma/code-connect npm package.
17 component mapping files authored (3 buttons · 3 tags · 5 callouts · 2 cards · 2 search · 2 layouts) — documentation-only; not published (Code Connect needs an Org/Enterprise plan).
.figma.swift files map SwiftUI Views to Figma file 0Ai7s3fCFqR5JXDW8JvgmD (FitTracker Design System Library). Build-safety wrapper #if canImport(Figma) keeps Xcode green without the toolchain.
5 screen-level mapping files authored from features' state.json::figma_node_ids — documentation-only (publishing is disabled on Figma Pro).
The scaffold + skill automation (scripts/scaffold-figma-mapping.{py,mjs}, Layers A/B) shipped, and the CI publish workflow (Layer C) exists — but the final figma connect publish step never succeeded: it requires the code_connect:write scope, which Figma only grants on Organization/Enterprise plans. On Pro, the workflow is a disabled stub. Figma is instead maintained as a visual mirror via the Figma plugin API; code stays the source of truth.
Every skill knows the patterns that can block its work.
The framework keeps a single, append-only Observed Patterns Catalog — 64 entries today (25 gate-firing patterns + 39 workflow patterns W1–W39), each documenting a recognized failure-mode (a gate that fires, a launchd quirk, an MDX gotcha) with a trigger description, a why-expected classification, and a silence path. Before v7.9.1, those entries lived in a flat catalog and were consulted reactively — after something broke. Since 2026-06-04, each entry now declares which of the 12 skills it is most relevant to, and each skill carries the inverse map: here are the patterns my work is exposed to.
The wiring is bidirectional and self-auditing: run make skill-preflight SKILL=<name> and that skill probes its mechanized patterns live (23 of the 63 mapped entries have a script detector) and emits an awareness checklist for the rest. A PATTERN_SKILL_UNMAPPEDadvisory surfaces any new catalog entry that hasn't been mapped yet, so the bidirectional invariant can't silently drift.
pattern-skill-map.json63 entries — each carries {id, title, detector, blocker, autoheal, skills[], remediation}. Many-to-many — a pattern can block several skills.
make skill-preflightRuns the mechanized detectors for the skill's patterns + emits manual checklists for the rest. Writes an additive overlay into preflight-cache.json.
PATTERN_SKILL_UNMAPPEDCycle-time advisory: catches a new catalog entry without a corresponding map entry. Catalog growth and map growth stay in lockstep.
One catalog entry (W33) documents the overlay tool itself, exempted from the advisory via a single-element SELF_DOC_EXEMPT set — so 63 of the 64 entries are mapped. The map will eventually be the build-time input for an Acts III–V overlay on the framework universe visualization (3D feature, Phase 2).
Want this pattern in your own setup?
- Start with one hub skill + one phase. Do not try to stand up the whole ten-phase lifecycle on day one.
- Shared-state-first. Skills read and write JSON state. They never call each other directly — that decoupling is what makes the ecosystem composable.
- Add phases and spokes incrementally. The evolution strip above is a real receipt of how this grew. Iteration, not planning.
The skill source files are open under CC-BY-4.0 at github.com/Regevba/FitTracker2 — .claude/skills.