@limina-labs/momentum 0.30.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +214 -0
  3. package/adapters/antigravity/adapter.js +196 -0
  4. package/adapters/antigravity/hooks.json +39 -0
  5. package/adapters/antigravity/instructions/AGENTS.md +638 -0
  6. package/adapters/antigravity/instructions/header.md +3 -0
  7. package/adapters/antigravity/instructions/surfaces.md +153 -0
  8. package/adapters/antigravity/instructions/vars.json +1 -0
  9. package/adapters/antigravity/scripts/antigravity-hook-adapter.sh +147 -0
  10. package/adapters/antigravity/skills/momentum-orient/SKILL.md +29 -0
  11. package/adapters/antigravity/skills/momentum-reviewer-architecture/SKILL.md +39 -0
  12. package/adapters/antigravity/skills/momentum-reviewer-qa/SKILL.md +38 -0
  13. package/adapters/antigravity/skills/momentum-reviewer-security/SKILL.md +42 -0
  14. package/adapters/antigravity/skills/swarm-supervisor/SKILL.md +75 -0
  15. package/adapters/antigravity/workflows/continue.md +39 -0
  16. package/adapters/antigravity/workflows/dispatch.md +49 -0
  17. package/adapters/antigravity/workflows/handoff.md +38 -0
  18. package/adapters/antigravity/workflows/review-code.md +84 -0
  19. package/adapters/antigravity/workflows/scout.md +42 -0
  20. package/adapters/antigravity/workflows/swarm.md +203 -0
  21. package/adapters/claude-code/adapter.js +148 -0
  22. package/adapters/claude-code/commands/continue.md +82 -0
  23. package/adapters/claude-code/commands/dispatch.md +154 -0
  24. package/adapters/claude-code/commands/handoff.md +85 -0
  25. package/adapters/claude-code/commands/review-code.md +194 -0
  26. package/adapters/claude-code/commands/scout.md +119 -0
  27. package/adapters/claude-code/commands/swarm.md +242 -0
  28. package/adapters/claude-code/instructions/header.md +3 -0
  29. package/adapters/claude-code/instructions/vars.json +1 -0
  30. package/adapters/claude-code/settings.json +36 -0
  31. package/adapters/codex/adapter.js +225 -0
  32. package/adapters/codex/agents/momentum-reviewer-architecture.toml +57 -0
  33. package/adapters/codex/agents/momentum-reviewer-qa.toml +52 -0
  34. package/adapters/codex/agents/momentum-reviewer-security.toml +57 -0
  35. package/adapters/codex/agents/swarm-supervisor.toml +76 -0
  36. package/adapters/codex/commands/continue.md +40 -0
  37. package/adapters/codex/commands/dispatch.md +111 -0
  38. package/adapters/codex/commands/handoff.md +57 -0
  39. package/adapters/codex/commands/scout.md +90 -0
  40. package/adapters/codex/commands/swarm.md +334 -0
  41. package/adapters/codex/hooks.json +36 -0
  42. package/adapters/codex/instructions/AGENTS.md +691 -0
  43. package/adapters/codex/instructions/header.md +3 -0
  44. package/adapters/codex/instructions/surfaces.md +206 -0
  45. package/adapters/codex/instructions/vars.json +1 -0
  46. package/adapters/codex/skills/momentum-orient/SKILL.md +29 -0
  47. package/adapters/opencode/adapter.js +224 -0
  48. package/adapters/opencode/agents/momentum-reviewer-architecture.md +54 -0
  49. package/adapters/opencode/agents/momentum-reviewer-qa.md +48 -0
  50. package/adapters/opencode/agents/momentum-reviewer-security.md +48 -0
  51. package/adapters/opencode/agents/swarm-supervisor.md +51 -0
  52. package/adapters/opencode/commands/continue.md +40 -0
  53. package/adapters/opencode/commands/dispatch.md +111 -0
  54. package/adapters/opencode/commands/handoff.md +57 -0
  55. package/adapters/opencode/commands/review-code.md +194 -0
  56. package/adapters/opencode/commands/scout.md +90 -0
  57. package/adapters/opencode/commands/swarm.md +334 -0
  58. package/adapters/opencode/instructions/AGENTS.md +604 -0
  59. package/adapters/opencode/instructions/header.md +3 -0
  60. package/adapters/opencode/instructions/surfaces.md +119 -0
  61. package/adapters/opencode/instructions/vars.json +1 -0
  62. package/adapters/opencode/plugins/momentum.js +219 -0
  63. package/adapters/opencode/skills/momentum-lanes/SKILL.md +30 -0
  64. package/adapters/opencode/skills/momentum-orient/SKILL.md +29 -0
  65. package/adapters/opencode/skills/momentum-track/SKILL.md +28 -0
  66. package/adapters/opencode/skills/momentum-validate/SKILL.md +31 -0
  67. package/bin/antigravity.js +112 -0
  68. package/bin/ecosystem.js +1302 -0
  69. package/bin/lanes.js +300 -0
  70. package/bin/momentum.js +1857 -0
  71. package/bin/okf.js +72 -0
  72. package/bin/orchestration-commands.js +305 -0
  73. package/bin/state-commands.js +218 -0
  74. package/bin/swarm.js +1104 -0
  75. package/bin/waves.js +147 -0
  76. package/core/adapter-capabilities.md +112 -0
  77. package/core/adapter-parity-matrix.md +170 -0
  78. package/core/commands/brainstorm-idea.md +98 -0
  79. package/core/commands/brainstorm-phase.md +129 -0
  80. package/core/commands/complete-phase.md +130 -0
  81. package/core/commands/ecosystem.md +161 -0
  82. package/core/commands/hotfix.md +64 -0
  83. package/core/commands/initiative.md +119 -0
  84. package/core/commands/lanes.md +94 -0
  85. package/core/commands/log.md +45 -0
  86. package/core/commands/migrate.md +70 -0
  87. package/core/commands/review.md +31 -0
  88. package/core/commands/session.md +79 -0
  89. package/core/commands/start-phase.md +161 -0
  90. package/core/commands/start-project.md +142 -0
  91. package/core/commands/sync-docs.md +81 -0
  92. package/core/commands/systematic-debug.md +46 -0
  93. package/core/commands/track.md +54 -0
  94. package/core/commands/validate.md +96 -0
  95. package/core/ecosystem/layout.md +128 -0
  96. package/core/ecosystem/lib/index.js +245 -0
  97. package/core/ecosystem/lib/initiative.js +258 -0
  98. package/core/ecosystem/lib/pointer.js +198 -0
  99. package/core/ecosystem/lib/state.js +295 -0
  100. package/core/ecosystem/schema/ecosystem.schema.json +85 -0
  101. package/core/ecosystem/schema/initiative.schema.json +61 -0
  102. package/core/ecosystem/scripts/session-append.sh +167 -0
  103. package/core/ecosystem/templates/ecosystem-agents.md +79 -0
  104. package/core/ecosystem/templates/ecosystem-claude.md +79 -0
  105. package/core/ecosystem/templates/ecosystem-settings-claude.json +14 -0
  106. package/core/ecosystem/templates/initiative-template.md +50 -0
  107. package/core/engines/subagent-dispatch.md +80 -0
  108. package/core/git-hooks/commit-msg +14 -0
  109. package/core/git-hooks/contract.js +176 -0
  110. package/core/git-hooks/pre-push +15 -0
  111. package/core/git-hooks/run-check.js +160 -0
  112. package/core/instructions/legacy-project-md-hashes.json +12 -0
  113. package/core/instructions/navigation.md +14 -0
  114. package/core/instructions/rules-body.md +454 -0
  115. package/core/lanes/lib/board.js +161 -0
  116. package/core/lanes/lib/land.js +301 -0
  117. package/core/lanes/lib/signals.js +207 -0
  118. package/core/lanes/lib/state.js +325 -0
  119. package/core/lib/frontmatter.js +163 -0
  120. package/core/lib/okf-migrate.js +374 -0
  121. package/core/lib/okf-types.js +61 -0
  122. package/core/lifecycle-contract.md +59 -0
  123. package/core/orchestration/capability-routing.js +120 -0
  124. package/core/orchestration/continue.js +102 -0
  125. package/core/orchestration/dispatch.js +366 -0
  126. package/core/orchestration/events.js +197 -0
  127. package/core/orchestration/handoff.js +317 -0
  128. package/core/orchestration/index.js +50 -0
  129. package/core/orchestration/run-artifact.js +93 -0
  130. package/core/orchestration/scout.js +327 -0
  131. package/core/orchestration/session-log.js +123 -0
  132. package/core/orchestration/tracking.js +180 -0
  133. package/core/orchestration/types.js +131 -0
  134. package/core/scripts/brainstorm-gate.sh +157 -0
  135. package/core/scripts/check-history-reminder.sh +110 -0
  136. package/core/scripts/sessionstart-handoff.sh +180 -0
  137. package/core/specs-templates/CLAUDE.md +484 -0
  138. package/core/specs-templates/README.md +32 -0
  139. package/core/specs-templates/specs/README.md +30 -0
  140. package/core/specs-templates/specs/adhoc/README.md +31 -0
  141. package/core/specs-templates/specs/adhoc/_TEMPLATE.md +29 -0
  142. package/core/specs-templates/specs/architecture/ecosystem.md +214 -0
  143. package/core/specs-templates/specs/backlog/backlog.md +46 -0
  144. package/core/specs-templates/specs/backlog/details/.gitkeep +0 -0
  145. package/core/specs-templates/specs/changelog/.gitkeep +0 -0
  146. package/core/specs-templates/specs/decisions/0000-template.md +33 -0
  147. package/core/specs-templates/specs/decisions/README.md +29 -0
  148. package/core/specs-templates/specs/decisions/impact-map.md +14 -0
  149. package/core/specs-templates/specs/decisions/index.md +4 -0
  150. package/core/specs-templates/specs/index.md +16 -0
  151. package/core/specs-templates/specs/phases/README.md +41 -0
  152. package/core/specs-templates/specs/phases/index.md +6 -0
  153. package/core/specs-templates/specs/planning/roadmap.md +23 -0
  154. package/core/specs-templates/specs/status.md +70 -0
  155. package/core/specs-templates/specs/vision/principles.md +16 -0
  156. package/core/specs-templates/specs/vision/project-charter.md +35 -0
  157. package/core/specs-templates/specs/vision/success-criteria.md +19 -0
  158. package/core/swarm/absorb.js +294 -0
  159. package/core/swarm/conductor.js +499 -0
  160. package/core/swarm/focus.js +151 -0
  161. package/core/swarm/inbox.js +222 -0
  162. package/core/swarm/join.js +138 -0
  163. package/core/swarm/lib/board.js +178 -0
  164. package/core/swarm/lib/brief.js +157 -0
  165. package/core/swarm/lib/git-sha-cache.js +71 -0
  166. package/core/swarm/lib/incremental-log.js +117 -0
  167. package/core/swarm/lib/manifest.js +578 -0
  168. package/core/swarm/lib/pre-merge.js +112 -0
  169. package/core/swarm/lib/saga.js +146 -0
  170. package/core/swarm/lib/sessions.js +83 -0
  171. package/core/swarm/lib/tokens.js +255 -0
  172. package/core/swarm/lib/wave-ordering.js +55 -0
  173. package/core/swarm/schema/board.schema.json +54 -0
  174. package/core/swarm/schema/contract.schema.json +56 -0
  175. package/core/swarm/schema/dispatch-run.schema.json +70 -0
  176. package/core/swarm/schema/manifest.schema.json +234 -0
  177. package/core/swarm/schema/signal.schema.json +61 -0
  178. package/core/swarm/signals.js +296 -0
  179. package/core/swarm/supervise.md +81 -0
  180. package/core/waves/lib/plan-graph.js +175 -0
  181. package/core/waves/lib/waves.js +83 -0
  182. package/package.json +46 -0
@@ -0,0 +1,214 @@
1
+ ---
2
+ type: Architecture Spec
3
+ ---
4
+
5
+ # Ecosystem Layer — Reference
6
+
7
+ > Single source of truth for how momentum models multi-repo
8
+ > coordination. Shipped with `momentum init` (Phase 9, v0.12.0+).
9
+ > Member repos read this when they need to understand the cross-repo
10
+ > contract; the runtime helpers live in the momentum package itself
11
+ > at `core/ecosystem/`.
12
+
13
+ ## When to use ecosystem mode
14
+
15
+ | You have… | Use mode | First command |
16
+ |---|---|---|
17
+ | One project | **Single-project** *(default)* | `momentum init` |
18
+ | Several related projects working as one product | **Ecosystem** | `momentum init --ecosystem <name>` |
19
+ | An existing momentum project that should join an existing ecosystem | **Ecosystem** *(join)* | `momentum join <ecosystem-path>` |
20
+ | A member repo you want to detach from its ecosystem | **Standalone** *(leave)* | `momentum leave` |
21
+ | Confusion about what state a repo is in | **Diagnostic** | `momentum doctor` |
22
+
23
+ **Single-project usage is fully supported and is the default.** Ecosystem mode is strictly additive — when no ecosystem.json is reachable, every `momentum` and slash command behaves identically to single-project use. There is no cost to ignoring this entire document if you only have one project.
24
+
25
+ ## What an ecosystem is
26
+
27
+ A **momentum ecosystem** is a sibling git repo that coordinates a set
28
+ of related momentum-installed repos as one logical product. It holds
29
+ three things:
30
+
31
+ 1. A **manifest** (`ecosystem.json`) — declares members + roles +
32
+ dependency edges.
33
+ 2. **Initiatives** (`initiatives/NNNN-<slug>.md`) — first-class records
34
+ of features that span multiple member repos.
35
+ 3. A **daily session log** (`sessions/YYYY-MM-DD.md`) — auto-appended
36
+ by each member's PostToolUse hook on `git commit` / `gh pr` events.
37
+
38
+ The ecosystem layer is **strictly additive**. It never writes into a
39
+ member's `specs/`. The only touch on a member is one fenced line in
40
+ its `CLAUDE.md` / `AGENTS.md` pointing back at the ecosystem.
41
+
42
+ ## Layout
43
+
44
+ ```
45
+ <ecosystem-root>/ ← its own git repo
46
+ ├── ecosystem.json ← manifest (members, roles, edges)
47
+ ├── README.md
48
+ ├── initiatives/
49
+ │ ├── README.md
50
+ │ └── NNNN-<slug>.md
51
+ ├── sessions/
52
+ │ └── YYYY-MM-DD.md
53
+ ├── .state/ ← gitignored runtime
54
+ │ ├── active-initiative
55
+ │ └── last-session
56
+ └── .gitignore
57
+ ```
58
+
59
+ ## Member opt-in / opt-out
60
+
61
+ ```bash
62
+ # From inside the ecosystem root:
63
+ momentum ecosystem init <name> # scaffold a new ecosystem
64
+ momentum ecosystem add ../<repo> # register a member
65
+ momentum ecosystem add ../<repo> --role infra # with explicit role
66
+ momentum ecosystem remove <id> # unregister
67
+ momentum ecosystem status # print state
68
+ ```
69
+
70
+ After `add`, the target repo's CLAUDE.md / AGENTS.md gains:
71
+
72
+ ```html
73
+ <!-- ecosystem:begin -->
74
+ > Member of `<name>` ecosystem at `../<name>`.
75
+ > See ecosystem.json for siblings and `momentum ecosystem status` for live state.
76
+ <!-- ecosystem:end -->
77
+ ```
78
+
79
+ Re-running `add` is a no-op. `remove` strips both the manifest entry
80
+ and the fenced block from the member.
81
+
82
+ ## Initiatives
83
+
84
+ A cross-repo feature is one markdown file at
85
+ `initiatives/NNNN-<slug>.md`. Frontmatter:
86
+
87
+ ```yaml
88
+ ---
89
+ id: 1
90
+ slug: memory-module
91
+ status: in-progress # | closed | abandoned
92
+ started: 2026-06-07
93
+ closed: # required when status=closed
94
+ owner: avinash
95
+ repos: [sapience, frontend, infra]
96
+ title: "Memory module v1"
97
+ ---
98
+ ```
99
+
100
+ Body sections are fixed: **Why** · **Per-repo contributions** ·
101
+ **Linked decisions** · **Deploy chronology** · **Close**. See the
102
+ template at `core/ecosystem/templates/initiative-template.md`.
103
+
104
+ The slash-command surface is `/initiative create|status|close|list`
105
+ (see the `/initiative` recipe). Numbering is monotonically increasing
106
+ across the ecosystem; the slug is for human readability.
107
+
108
+ ## Session log
109
+
110
+ Auto-populated by each member repo's PostToolUse hook. Triggers:
111
+
112
+ | Trigger | Line emitted |
113
+ |---|---|
114
+ | `git commit` (via Bash tool) | `HH:MMZ [<member>] commit: <subject> (<sha>)` |
115
+ | `gh pr create` / `gh pr merge` (via Bash tool) | `HH:MMZ [<member>] pr: <cmd-preview>` |
116
+ | `/session log <message>` | `HH:MMZ [<member>] note: <message>` |
117
+
118
+ First write of the day prepends a header:
119
+
120
+ ```markdown
121
+ # Session YYYY-MM-DD
122
+ Active initiative: <slug> # only when .state/active-initiative is set
123
+ ```
124
+
125
+ Outside any ecosystem the hook is a silent no-op — single-repo
126
+ momentum projects see no change.
127
+
128
+ ## How discovery works
129
+
130
+ Every command (CLI or hook) finds the ecosystem root via a
131
+ bounded upward walk. From `$PWD`, climb up to 5 parents by default
132
+ (configurable via the `MOMENTUM_MAX_PARENT_WALK` env var) looking for
133
+ a directory whose **siblings** contain an `ecosystem.json`. First hit
134
+ wins; cached per-process.
135
+
136
+ This means the ecosystem repo and member repos live as **siblings**
137
+ under one parent directory:
138
+
139
+ ```
140
+ <parent>/
141
+ ├── <ecosystem>/ ← contains ecosystem.json
142
+ ├── <member-1>/ ← contains CLAUDE.md + the ecosystem pointer
143
+ ├── <member-2>/
144
+ └── <member-3>/
145
+ ```
146
+
147
+ ## What stays per-repo (unchanged)
148
+
149
+ | Per-repo (member) | Cross-repo (ecosystem) |
150
+ |---|---|
151
+ | `specs/status.md` | `ecosystem.json` |
152
+ | `specs/phases/*` | `initiatives/*` |
153
+ | `specs/backlog/` | (Tier 2) — backlog aggregation |
154
+ | `specs/changelog/` | `sessions/` |
155
+ | `specs/decisions/` (ADRs) | (Tier 2) — federated impact-map |
156
+ | `/track`, `/brainstorm-phase`, `/start-phase`, `/complete-phase`, `/sync-docs` | `/ecosystem`, `/initiative`, `/session` |
157
+
158
+ ## What's NOT in Tier 1
159
+
160
+ The following are deferred to a future phase ("Tier 2"):
161
+
162
+ - `/switch-repo` with context carry-over between repos.
163
+ - Federated impact-map and cross-repo `/sync-docs`.
164
+ - Shared rules of record (a single source of truth for Rules 1–12).
165
+ - Deploy-order awareness (e.g. "platform must deploy before client").
166
+ - Multi-repo `/review-code`.
167
+ - Inter-repo parallel agent orchestration (extending Phase 8
168
+ worktrees across repos).
169
+
170
+ ## Orchestration (Phase 11, v0.14.0+)
171
+
172
+ Once an ecosystem is set up, momentum gives you three primitives for
173
+ working across member repos from one agent session — three doors into
174
+ one shared library.
175
+
176
+ | Primitive | Behaviour | Where it lands |
177
+ |---|---|---|
178
+ | `scout <repo> "<prompt>"` | Read-only context fetch from one member | `.momentum/runs/scout-NNN.md` in originating repo; one line in ecosystem session log; `[DISCOVERY]` in scouted repo's active phase history if a meaningful finding |
179
+ | `dispatch <r1> <r2> … --prompt "<text>"` | Parallel fan-out + synthesis across members; sequential fallback labeled when adapter doesn't support parallel sub-agents | `.momentum/runs/dispatch-NNN.md`; one session log line; per-repo `[DISCOVERY]` for meaningful findings; `[NOTE]` in originating phase history for the synthesis |
180
+ | `handoff <repo>` | Cross-session control transfer with a structured context block | `<receiving repo>/.momentum/inbox/handoff-NNN.md`; one session log line; `[DECISION]` in originating phase history |
181
+ | `continue [--handoff <id>]` | Pick up a pending handoff in the current repo | Inbox file moved to `.momentum/inbox/read/`; `[NOTE]` in receiving phase history |
182
+
183
+ **Three doors, identical output shape:**
184
+
185
+ - **Slash command** (Claude Code, Codex): `/scout`, `/dispatch`, `/handoff`, `/continue`.
186
+ - **Natural-language inference**: describe the task; the agent picks the primitive ("inferred: scout (single repo, read-only)").
187
+ - **CLI**: `momentum scout|dispatch|handoff|continue` — universal floor, works on every adapter including chat-driven ones.
188
+
189
+ **Tracking contract — auto when meaningful, never noise:**
190
+
191
+ - **Cheap layer (always auto):** ecosystem session log line + `.momentum/runs/` artifact + handoff inbox file.
192
+ - **Curated layer (auto when meaningful):** `[DISCOVERY]` / `[DECISION]` / `[NOTE]` entries in the relevant repo's active phase `history.md`, applying Rule 3 thresholds (real bug, real tech debt, real enhancement, real cross-repo decision). **No new entry types.**
193
+ - **Never auto:** `backlog.md` writes — tracking proposes; the user confirms.
194
+
195
+ **Capability-driven routing.** Some adapters don't support parallel
196
+ sub-agent fan-out (Codex today, until parallel dispatch is validated
197
+ in CI) or SessionStart hooks (Antigravity). The router degrades
198
+ gracefully and labels the degraded mode up front, e.g.:
199
+
200
+ ```
201
+ ▸ note: this adapter does not declare parallel subagents — running sequentially
202
+ ```
203
+
204
+ The user sees output of the same shape; just slower in degraded mode.
205
+
206
+ ## Failure modes (operator playbook)
207
+
208
+ | Symptom | Cause | Fix |
209
+ |---|---|---|
210
+ | `not inside an ecosystem root` | cwd is not in/under a known ecosystem | `cd` into one, or `momentum ecosystem init <name>` |
211
+ | `target doesn't look momentum-installed` | `add`'s target lacks CLAUDE.md/AGENTS.md | run `momentum init` on the target first |
212
+ | `member id already registered` | id collision in manifest | `--id <different>` or `remove` first |
213
+ | Session log not updating | hook script missing or unreadable; member not registered | `cat scripts/check-history-reminder.sh`; verify with `momentum ecosystem status` |
214
+ | Manifest rejected by `add` | schema violation in the new state | read the per-path error list; fix `ecosystem.json` by hand or call `remove` then `add` |
@@ -0,0 +1,46 @@
1
+ ---
2
+ type: Backlog
3
+ ---
4
+
5
+ # Backlog
6
+
7
+ > **Last Updated**: YYYY-MM-DD
8
+
9
+ ---
10
+
11
+ ## Priority Levels
12
+
13
+ | Level | Meaning |
14
+ |-------|---------|
15
+ | **P0** | Critical — blocks current phase |
16
+ | **P1** | High — address in current/next phase |
17
+ | **P2** | Medium — within 2 phases |
18
+ | **P3** | Low — nice to have |
19
+
20
+ **Status**: `open` | `in-progress` | `resolved` | `deferred` | `deprecated`
21
+
22
+ ---
23
+
24
+ ## Bugs
25
+
26
+ | ID | Title | Priority | Status | Phase | Detail |
27
+ |----|-------|----------|--------|-------|--------|
28
+ | _(none)_ | | | | | |
29
+
30
+ ## Features
31
+
32
+ | ID | Title | Priority | Status | Phase | Detail |
33
+ |----|-------|----------|--------|-------|--------|
34
+ | _(none)_ | | | | | |
35
+
36
+ ## Tech Debt
37
+
38
+ | ID | Title | Priority | Status | Phase | Detail |
39
+ |----|-------|----------|--------|-------|--------|
40
+ | _(none)_ | | | | | |
41
+
42
+ ## Enhancements
43
+
44
+ | ID | Title | Priority | Status | Phase | Detail |
45
+ |----|-------|----------|--------|-------|--------|
46
+ | _(none)_ | | | | | |
File without changes
@@ -0,0 +1,33 @@
1
+ ---
2
+ type: Decision
3
+ ---
4
+
5
+ # NNNN — Decision Title
6
+
7
+ > **Status**: proposed | accepted | superseded | deprecated
8
+ > **Date**: YYYY-MM-DD
9
+ > **Deciders**: <!-- names or roles -->
10
+
11
+ ## Context
12
+
13
+ <!-- What is the problem or situation that requires a decision? What forces are at play? -->
14
+
15
+ ## Options Considered
16
+
17
+ ### Option A — Name
18
+ <!-- Describe the option. -->
19
+ **Pros:** …
20
+ **Cons:** …
21
+
22
+ ### Option B — Name
23
+ <!-- Describe the option. -->
24
+ **Pros:** …
25
+ **Cons:** …
26
+
27
+ ## Decision
28
+
29
+ <!-- What was chosen and why? -->
30
+
31
+ ## Consequences
32
+
33
+ <!-- What are the positive and negative results of this decision? What becomes easier or harder? -->
@@ -0,0 +1,29 @@
1
+ ---
2
+ type: Guide
3
+ ---
4
+
5
+ # Architecture Decision Records
6
+
7
+ > Lightweight ADRs — one file per decision, append-only once accepted.
8
+
9
+ ## Index
10
+
11
+ | ID | Title | Status | Date |
12
+ |----|-------|--------|------|
13
+ | [0000](0000-template.md) | ADR Template | template | — |
14
+
15
+ ## Process
16
+
17
+ 1. Copy `0000-template.md` → `NNNN-short-title.md`
18
+ 2. Fill in context, options, and decision
19
+ 3. Add a row to the index above
20
+ 4. Add affected topics to the `impact-map.md` table
21
+
22
+ ## Status Values
23
+
24
+ | Status | Meaning |
25
+ |--------|---------|
26
+ | `proposed` | Under discussion |
27
+ | `accepted` | Decided, in effect |
28
+ | `superseded` | Replaced by a later ADR |
29
+ | `deprecated` | No longer applicable |
@@ -0,0 +1,14 @@
1
+ ---
2
+ type: Impact Map
3
+ title: Decision Impact Map
4
+ description: "Topic keywords → spec files/sections, consumed by /sync-docs."
5
+ ---
6
+
7
+ # Impact Map
8
+
9
+ Maps topic keywords to the spec files/sections they affect. Used by
10
+ `/sync-docs` to find documents needing updates when a phase history
11
+ entry carries matching `Topics:`.
12
+
13
+ | Topic | File | Section |
14
+ |-------|------|---------|
@@ -0,0 +1,4 @@
1
+ # Decisions
2
+
3
+ * [NNNN — Decision Title](/decisions/0000-template.md)
4
+ * [Decision Impact Map](/decisions/impact-map.md) - Topic keywords → spec files/sections, consumed by /sync-docs.
@@ -0,0 +1,16 @@
1
+ ---
2
+ okf_version: "0.1"
3
+ ---
4
+
5
+ # Specs
6
+
7
+ * [Status](/status.md) - current project state — the first file to read
8
+ * [Backlog](/backlog/backlog.md) - bugs, features, tech debt, enhancements
9
+ * [Roadmap](/planning/roadmap.md) - phase timeline and upcoming work
10
+
11
+ # Directories
12
+
13
+ * [Phases](/phases/index.md) - one directory per phase (overview, plan, tasks, history)
14
+ * [Decisions](/decisions/index.md) - architecture decision records + impact map
15
+ * [Ad-hoc work](/adhoc/) - quick-task and spike records (Rule 14)
16
+ * [Changelog](/changelog/) - month-by-month change log
@@ -0,0 +1,41 @@
1
+ ---
2
+ type: Guide
3
+ ---
4
+
5
+ # Phases Index
6
+
7
+ | Phase | Name | Status | Directory |
8
+ |-------|------|--------|-----------|
9
+ | _(none yet)_ | | | |
10
+
11
+ ## Phase Structure
12
+
13
+ Each phase directory contains:
14
+
15
+ | File | Purpose |
16
+ |------|---------|
17
+ | `overview.md` | Goal, scope, deliverables, acceptance criteria |
18
+ | `plan.md` | Group execution pattern with tasks |
19
+ | `tasks.md` | Checklist `[ ]` / `[x]` |
20
+ | `history.md` | Append-only log |
21
+ | `retrospective.md` | Post-completion review (created by /complete-phase) |
22
+
23
+ ## Swarm-member briefs (optional)
24
+
25
+ When a phase is driven by a swarm conductor (Phase 17+), `overview.md`
26
+ MAY carry an optional YAML frontmatter block declaring its swarm
27
+ context. Solo briefs omit this entirely — they remain plain markdown.
28
+
29
+ ```yaml
30
+ ---
31
+ swarm: 0007-user-auth
32
+ wave: 2
33
+ initiative: user-auth
34
+ claimed_by_session: <session-uuid>
35
+ ---
36
+ ```
37
+
38
+ `/start-phase` populates these when invoked from a swarm context.
39
+ `/validate` checks that `swarm:` resolves to a real swarm manifest,
40
+ that `wave:` matches the wave the swarm has assigned this repo, and
41
+ that `initiative:` matches the swarm's initiative.
@@ -0,0 +1,6 @@
1
+ # Phases
2
+
3
+
4
+ # Guides
5
+
6
+ * [Phases guide](/phases/README.md) - conventions for phase directories
@@ -0,0 +1,23 @@
1
+ ---
2
+ type: Roadmap
3
+ ---
4
+
5
+ # Roadmap
6
+
7
+ > **Last Updated**: YYYY-MM-DD
8
+
9
+ ## Vision
10
+
11
+ <!-- One sentence: what does this project become at full maturity? -->
12
+
13
+ ## Release Plan
14
+
15
+ | Version | Phase | Key Deliverables | Target |
16
+ |---------|-------|-----------------|--------|
17
+ | v0.1.0 | Phase 0 — Bootstrap | _(TBD)_ | _(TBD)_ |
18
+
19
+ ## Guiding Principles
20
+
21
+ 1. Ship working software in every phase
22
+ 2. Each phase leaves the project in a releasable state
23
+ 3. Defer scope, not quality
@@ -0,0 +1,70 @@
1
+ ---
2
+ type: Status
3
+ ---
4
+
5
+ # Project Status
6
+
7
+ > **Last Updated**: YYYY-MM-DD
8
+ > **Current Phase**: Phase 0 — Bootstrap (`not started`)
9
+ > **Latest Release**: None
10
+ > **Health**: On Track
11
+
12
+ ## Summary
13
+
14
+ <!-- One paragraph describing what this project is and what it does. -->
15
+
16
+ ## Completed Phases
17
+
18
+ | Phase | Name | Status | Released |
19
+ |-------|------|--------|---------|
20
+ | _(none yet)_ | | | |
21
+
22
+ ## Ad-hoc / Patch Releases
23
+
24
+ > Releases NOT tied to a numbered phase — hotfixes, patch/audit releases,
25
+ > chores. Keep these out of the Completed Phases table. Work records live in
26
+ > `specs/adhoc/`. See Rule 14 for when ad-hoc work must become a phase instead.
27
+
28
+ | Version | Date | Type | Summary |
29
+ |---------|------|------|---------|
30
+ | _(none yet)_ | | | |
31
+
32
+ ## Active Phase
33
+
34
+ > One row per active lane (Rule 15, ADR-0001). Each session's phase is the
35
+ > one bound to its branch; this table is the cross-lane overview and the
36
+ > fallback for branches that don't resolve. Lanes touch only their own row.
37
+
38
+ | Phase | Branch | Status | Progress |
39
+ |-------|--------|--------|----------|
40
+ | _(none — no active phase)_ | | | |
41
+
42
+ ## Upcoming Phases
43
+
44
+ | Phase | Name | Status | Key Deliverables |
45
+ |-------|------|--------|-----------------|
46
+ | _(TBD)_ | | | |
47
+
48
+ ## Blockers
49
+
50
+ | ID | Description | Severity |
51
+ |----|-------------|----------|
52
+ | _(none)_ | | |
53
+
54
+ ## Critical Items (P0)
55
+
56
+ | ID | Type | Description |
57
+ |----|------|-------------|
58
+ | _(none)_ | | |
59
+
60
+ ## Next Actions
61
+
62
+ 1. Run `/brainstorm-idea` to explore the concept, then `/start-project` to scaffold
63
+
64
+ ## Key Decisions Made
65
+
66
+ _(none yet)_
67
+
68
+ ## Recent Changes
69
+
70
+ _(none yet)_
@@ -0,0 +1,16 @@
1
+ ---
2
+ type: Vision
3
+ ---
4
+
5
+ # Principles
6
+
7
+ > Guiding decisions throughout the project. When trade-offs arise, these resolve them.
8
+
9
+ ## Core Principles
10
+
11
+ 1. **Simplicity first** — the simplest solution that solves the problem is the right one
12
+ 2. **Ship incrementally** — each phase leaves the project in a releasable state
13
+ 3. **Defer scope, not quality** — cut features before cutting correctness
14
+ 4. **Document decisions** — every significant choice gets an ADR
15
+
16
+ <!-- Add or replace principles to match this project's values. -->
@@ -0,0 +1,35 @@
1
+ ---
2
+ type: Vision
3
+ ---
4
+
5
+ # Project Charter
6
+
7
+ > **Project**: <Project Name>
8
+ > **Created**: YYYY-MM-DD
9
+
10
+ ## Problem Statement
11
+
12
+ <!-- What problem does this project solve? Who has this problem? Why does it matter? -->
13
+
14
+ ## Solution
15
+
16
+ <!-- What does this project build or do? How does it solve the problem? -->
17
+
18
+ ## Stakeholders
19
+
20
+ | Role | Name / Team | Responsibility |
21
+ |------|-------------|----------------|
22
+ | Owner | _(TBD)_ | Final decisions |
23
+ | Users | _(TBD)_ | Primary audience |
24
+
25
+ ## Scope
26
+
27
+ ### In
28
+ - _(TBD)_
29
+
30
+ ### Out
31
+ - _(TBD)_
32
+
33
+ ## Success
34
+
35
+ <!-- How will you know this project succeeded? See `success-criteria.md` for measurable targets. -->
@@ -0,0 +1,19 @@
1
+ ---
2
+ type: Vision
3
+ ---
4
+
5
+ # Success Criteria
6
+
7
+ > Measurable targets. When all are met, the project has achieved its goals.
8
+
9
+ ## Phase 0 Targets
10
+
11
+ | Criterion | Target | How to Measure |
12
+ |-----------|--------|----------------|
13
+ | _(TBD)_ | _(TBD)_ | _(TBD)_ |
14
+
15
+ ## Long-Term Targets
16
+
17
+ | Criterion | Target | How to Measure |
18
+ |-----------|--------|----------------|
19
+ | _(TBD)_ | _(TBD)_ | _(TBD)_ |