@smartmemory/compose 0.1.1-beta → 0.1.2-beta

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 (124) hide show
  1. package/.claude/skills/bug-fix/SKILL.md +143 -0
  2. package/.claude/skills/compose/SKILL.md +604 -0
  3. package/.compose-deps.json +89 -0
  4. package/README.md +14 -3
  5. package/bin/compose.js +473 -0
  6. package/contracts/comp-obs-contract.schema.json +362 -0
  7. package/contracts/cross-model-review-result.json +78 -0
  8. package/contracts/review-result.json +126 -0
  9. package/dist/assets/{_baseUniq-CQwX6VLz.js → _baseUniq-D-avYfn5.js} +1 -1
  10. package/dist/assets/{arc-SxJ2J1sh.js → arc-BC4dfQ-X.js} +1 -1
  11. package/dist/assets/{architectureDiagram-Q4EWVU46-BykunY1F.js → architectureDiagram-Q4EWVU46-BZmFXnGI.js} +1 -1
  12. package/dist/assets/{blockDiagram-DXYQGD6D-ohAKBOUw.js → blockDiagram-DXYQGD6D-DlfWSuux.js} +1 -1
  13. package/dist/assets/{c4Diagram-AHTNJAMY-DBDC3ENB.js → c4Diagram-AHTNJAMY-Y__uJrRx.js} +1 -1
  14. package/dist/assets/channel-LRG9kHqJ.js +1 -0
  15. package/dist/assets/{chunk-4BX2VUAB-Cv93Z7uM.js → chunk-4BX2VUAB-BfMePfTp.js} +1 -1
  16. package/dist/assets/{chunk-4TB4RGXK-DE0WBDkj.js → chunk-4TB4RGXK-BdlMSdEA.js} +1 -1
  17. package/dist/assets/{chunk-55IACEB6-CE1EXenG.js → chunk-55IACEB6-vrQHZTdv.js} +1 -1
  18. package/dist/assets/{chunk-EDXVE4YY-DA7Ana6H.js → chunk-EDXVE4YY-B8wioVlW.js} +1 -1
  19. package/dist/assets/{chunk-FMBD7UC4-CTDIPA3p.js → chunk-FMBD7UC4-Cd6Hrux2.js} +1 -1
  20. package/dist/assets/{chunk-OYMX7WX6-uGBaPaTX.js → chunk-OYMX7WX6-CfrhdQXY.js} +1 -1
  21. package/dist/assets/{chunk-QZHKN3VN-CYlnXuUO.js → chunk-QZHKN3VN-B9JQerOU.js} +1 -1
  22. package/dist/assets/{chunk-YZCP3GAM-ojGkzcZK.js → chunk-YZCP3GAM-DFN9X99H.js} +1 -1
  23. package/dist/assets/classDiagram-6PBFFD2Q-BC9a6pDE.js +1 -0
  24. package/dist/assets/classDiagram-v2-HSJHXN6E-BC9a6pDE.js +1 -0
  25. package/dist/assets/clone-dRxgFrBv.js +1 -0
  26. package/dist/assets/{cose-bilkent-S5V4N54A-Bktn9hL-.js → cose-bilkent-S5V4N54A-BAn0ap_E.js} +1 -1
  27. package/dist/assets/{dagre-KV5264BT-DFaSzuRF.js → dagre-KV5264BT-DyxnVq1g.js} +1 -1
  28. package/dist/assets/{diagram-5BDNPKRD-DnfmDzEm.js → diagram-5BDNPKRD-XCrzqski.js} +1 -1
  29. package/dist/assets/{diagram-G4DWMVQ6-Bm8W9YnG.js → diagram-G4DWMVQ6-MBCAXft_.js} +1 -1
  30. package/dist/assets/{diagram-MMDJMWI5-B5-TSKvp.js → diagram-MMDJMWI5-DbtB2yS6.js} +1 -1
  31. package/dist/assets/{diagram-TYMM5635-ls4rqlky.js → diagram-TYMM5635-Bb5NzX61.js} +1 -1
  32. package/dist/assets/{erDiagram-SMLLAGMA-giG6WO-r.js → erDiagram-SMLLAGMA-CpIeCOh2.js} +1 -1
  33. package/dist/assets/{flowDiagram-DWJPFMVM-XvlUuz-7.js → flowDiagram-DWJPFMVM-CHyoKnhW.js} +1 -1
  34. package/dist/assets/{ganttDiagram-T4ZO3ILL-hLBV57oV.js → ganttDiagram-T4ZO3ILL-DErKteO_.js} +1 -1
  35. package/dist/assets/{gitGraphDiagram-UUTBAWPF-BHu3s_Gn.js → gitGraphDiagram-UUTBAWPF-KFVAtj2F.js} +1 -1
  36. package/dist/assets/{graph-D0Cfv00Y.js → graph-CRnO_ifT.js} +1 -1
  37. package/dist/assets/index-DKBsEUJ-.css +1 -0
  38. package/dist/assets/index-DkRKLuNr.js +1144 -0
  39. package/dist/assets/{infoDiagram-42DDH7IO-DbqRsOo3.js → infoDiagram-42DDH7IO-BZFnuSp5.js} +1 -1
  40. package/dist/assets/{ishikawaDiagram-UXIWVN3A-DnCdx7zb.js → ishikawaDiagram-UXIWVN3A-4Xe2Szde.js} +1 -1
  41. package/dist/assets/{journeyDiagram-VCZTEJTY-CfD7eNcP.js → journeyDiagram-VCZTEJTY-CZRByfS-.js} +1 -1
  42. package/dist/assets/{kanban-definition-6JOO6SKY-BYaO9-mK.js → kanban-definition-6JOO6SKY-B95sk6Fk.js} +1 -1
  43. package/dist/assets/{layout-Bj72wOEB.js → layout-BqNQzxWT.js} +1 -1
  44. package/dist/assets/{linear-BRFo114D.js → linear-CUh7qb64.js} +1 -1
  45. package/dist/assets/{min-GCHnKlJS.js → min-wXgOS3ig.js} +1 -1
  46. package/dist/assets/{mindmap-definition-QFDTVHPH-n0PMebY4.js → mindmap-definition-QFDTVHPH-DB6iaAbO.js} +1 -1
  47. package/dist/assets/{pieDiagram-DEJITSTG-pN4CljHF.js → pieDiagram-DEJITSTG-CHkZHrTW.js} +1 -1
  48. package/dist/assets/{quadrantDiagram-34T5L4WZ-DNoAy8-D.js → quadrantDiagram-34T5L4WZ-DoTEO8e3.js} +1 -1
  49. package/dist/assets/{requirementDiagram-MS252O5E-BhtY05PT.js → requirementDiagram-MS252O5E-Dn8peXYp.js} +1 -1
  50. package/dist/assets/{sankeyDiagram-XADWPNL6-B6AD-16A.js → sankeyDiagram-XADWPNL6-DRXs6Ipb.js} +1 -1
  51. package/dist/assets/{sequenceDiagram-FGHM5R23-DShHM-uk.js → sequenceDiagram-FGHM5R23-wBBYZ0aq.js} +1 -1
  52. package/dist/assets/{stateDiagram-FHFEXIEX-DMxn7HTo.js → stateDiagram-FHFEXIEX-DPlBNGmf.js} +1 -1
  53. package/dist/assets/stateDiagram-v2-QKLJ7IA2-BW0ezXb4.js +1 -0
  54. package/dist/assets/{timeline-definition-GMOUNBTQ-Cdu6uq52.js → timeline-definition-GMOUNBTQ-CbbyTlHk.js} +1 -1
  55. package/dist/assets/{vennDiagram-DHZGUBPP-CpK29iRe.js → vennDiagram-DHZGUBPP-Bj4GaFfj.js} +1 -1
  56. package/dist/assets/{wardley-RL74JXVD-BQgSkdcO.js → wardley-RL74JXVD-RtNzq8KU.js} +55 -55
  57. package/dist/assets/{wardleyDiagram-NUSXRM2D-DJHYev6O.js → wardleyDiagram-NUSXRM2D-CDfE3zSj.js} +1 -1
  58. package/dist/assets/{xychartDiagram-5P7HB3ND-1d75pbaO.js → xychartDiagram-5P7HB3ND-CZXHHYD5.js} +1 -1
  59. package/dist/index.html +2 -2
  60. package/lib/budget-ledger.js +45 -0
  61. package/lib/bug-bisect.js +292 -0
  62. package/lib/bug-checkpoint.js +191 -0
  63. package/lib/bug-escalation.js +306 -0
  64. package/lib/bug-index-gen.js +136 -0
  65. package/lib/bug-ledger.js +126 -0
  66. package/lib/build-stream-schema.js +176 -0
  67. package/lib/build-stream-writer.js +3 -1
  68. package/lib/build.js +854 -284
  69. package/lib/connector-factory-shim.js +167 -0
  70. package/lib/constants.js +18 -0
  71. package/lib/debug-discipline.js +176 -27
  72. package/lib/deps.js +205 -0
  73. package/lib/health-score.js +4 -4
  74. package/lib/import.js +26 -13
  75. package/lib/inject-schema.js +21 -0
  76. package/lib/new.js +27 -53
  77. package/lib/result-normalizer.js +160 -144
  78. package/lib/review-lenses.js +5 -5
  79. package/lib/review-normalize.js +413 -0
  80. package/lib/review-prompt.js +163 -0
  81. package/lib/sections.js +325 -0
  82. package/lib/step-prompt.js +21 -1
  83. package/lib/step-validator.js +5 -3
  84. package/lib/stratum-mcp-client.js +172 -7
  85. package/package.json +14 -3
  86. package/pipelines/bug-fix.stratum.yaml +39 -1
  87. package/pipelines/build.stratum.yaml +28 -45
  88. package/pipelines/review-fix.stratum.yaml +1 -1
  89. package/presets/team-review.stratum.yaml +21 -14
  90. package/server/build-stream-bridge.js +28 -0
  91. package/server/cc-session-feature-resolver.js +111 -0
  92. package/server/cc-session-reader.js +327 -0
  93. package/server/cc-session-watcher.js +318 -0
  94. package/server/compose-mcp-tools.js +0 -125
  95. package/server/compose-mcp.js +2 -4
  96. package/server/contract-diff.js +192 -0
  97. package/server/decision-event-emit.js +175 -0
  98. package/server/decision-event-id.js +64 -0
  99. package/server/decision-events-snapshot.js +166 -0
  100. package/server/design-routes.js +92 -49
  101. package/server/drift-axes.js +365 -0
  102. package/server/drift-emit.js +121 -0
  103. package/server/gate-log-store.js +102 -0
  104. package/server/lifecycle-phase-history.js +44 -0
  105. package/server/open-loops-store.js +102 -0
  106. package/server/schema-validator.js +49 -0
  107. package/server/status-emit.js +27 -0
  108. package/server/status-snapshot.js +218 -0
  109. package/server/vision-routes.js +332 -4
  110. package/server/vision-server.js +104 -12
  111. package/server/vision-store.js +21 -0
  112. package/dist/assets/channel-DGElom1e.js +0 -1
  113. package/dist/assets/classDiagram-6PBFFD2Q-KqWP9wWZ.js +0 -1
  114. package/dist/assets/classDiagram-v2-HSJHXN6E-KqWP9wWZ.js +0 -1
  115. package/dist/assets/clone-DUJKJXd7.js +0 -1
  116. package/dist/assets/index-CUd6pFGF.css +0 -1
  117. package/dist/assets/index-DReRlzZI.js +0 -1144
  118. package/dist/assets/stateDiagram-v2-QKLJ7IA2-o6PnCs4e.js +0 -1
  119. package/server/connectors/agent-connector.js +0 -78
  120. package/server/connectors/claude-sdk-connector.js +0 -198
  121. package/server/connectors/codex-connector.js +0 -240
  122. package/server/connectors/connector-discovery.js +0 -18
  123. package/server/connectors/connector-runtime.js +0 -13
  124. package/server/connectors/opencode-connector.js +0 -200
@@ -0,0 +1,143 @@
1
+ ---
2
+ name: bug-fix
3
+ description: DEPRECATED — use `/compose fix <bug-ref>` instead. The bug-fix lifecycle is now a mode of the Compose skill. This skill remains as a redirect for muscle memory.
4
+ ---
5
+
6
+ # Bug Fix Lifecycle (DEPRECATED — see `/compose fix`)
7
+
8
+ > **Deprecation notice (2026-05-01):** the bug-fix lifecycle has been folded into Compose as `/compose fix <bug-ref>`. Use that instead. The phases and gate protocol below are preserved verbatim because Compose's fix mode delegates here for the per-phase logic — but the canonical entry point is `/compose fix`, not direct invocation of this skill. When invoked directly, redirect the user to `/compose fix`.
9
+
10
+ ## When to Use
11
+
12
+ - Bug report (from user, tests, monitoring, code review)
13
+ - Test failure with unknown cause
14
+ - Production issue or hotfix
15
+ - Regression after a deploy or merge
16
+
17
+ **Skip this for:** typos, obvious one-liners where you can see the fix immediately. Just fix those.
18
+
19
+ **Use `/compose` instead when:** the "bug" is actually a missing feature, or the fix requires architectural changes spanning 3+ files with design decisions.
20
+
21
+ ## Gate Protocol
22
+
23
+ Same as `/compose`. Every phase transition is a gate. The agent always proposes with rationale — gates are "block until human approves," not "block until human initiates."
24
+
25
+ - **Gate:** Agent proposes, human decides
26
+ - **Flag:** Agent decides, human gets notified with rationale
27
+ - **Skip:** Agent decides silently
28
+
29
+ Default mode: **Gate** for triage and investigation conclusions, **Flag** for fix and verify, **Gate** for ship. Projects can override per the 3-mode dial.
30
+
31
+ ## Paths
32
+
33
+ Triage determines the path. The agent proposes the path; the human approves.
34
+
35
+ | Path | When | Phases |
36
+ |------|------|--------|
37
+ | **Quick** | Clear reproduction, obvious root cause, single file | Triage → Fix → Ship |
38
+ | **Standard** | Non-trivial root cause, multi-file, needs investigation | Triage → Investigate → Fix → Verify → Ship |
39
+ | **Hotfix** | Production-critical, time-sensitive | Triage → Investigate (time-boxed) → Fix → Verify → Ship (+cleanup) |
40
+
41
+ ## Phases
42
+
43
+ ### Phase 1: Triage
44
+
45
+ Gather enough information to select a path. Ask (or determine from context):
46
+
47
+ 1. **What broke?** — Observed behavior vs expected behavior
48
+ 2. **Reproduction** — Steps to reproduce, or failing test
49
+ 3. **Severity** — Trivial (cosmetic), Normal (broken but workaround exists), Critical (production down, data loss, security)
50
+ 4. **Scope** — Single file, multi-file, unknown
51
+ 5. **Root cause hypothesis** — Do you already know what's wrong?
52
+
53
+ **Path selection:**
54
+ - Known root cause + single file → **Quick**
55
+ - Unknown root cause OR multi-file → **Standard**
56
+ - Severity is Critical → **Hotfix** (regardless of scope)
57
+
58
+ **Gate:** Agent proposes path with rationale: "This is a [severity] bug in [scope]. Root cause is [known/unknown]. Recommending [path] because [reason]." Human approves path or redirects.
59
+
60
+ ### Phase 2: Investigate
61
+
62
+ **Skill:** `superpowers:systematic-debugging`
63
+
64
+ Follow the debugging methodology:
65
+ 1. **Reproduce** — Get a failing test or reliable reproduction
66
+ 2. **Hypothesize** — Form a theory about root cause
67
+ 3. **Verify** — Confirm or eliminate the hypothesis with evidence
68
+ 4. **Repeat** — If hypothesis was wrong, form the next one
69
+
70
+ Follow `~/.claude/rules/correct-over-quick.md` — check the contract first, then spec, then code, then test. Don't assume the code is right and the test is wrong.
71
+
72
+ Follow `~/.claude/rules/test-architecture-first.md` — if a test is failing, understand what behavior it specifies before changing anything.
73
+
74
+ **For Hotfix path:** Time-box investigation. If root cause isn't found within reasonable effort, fix the symptom (with a clear comment explaining the workaround) and create a follow-up task for proper root cause analysis.
75
+
76
+ **Gate:** Present root cause findings: "Root cause: [what's wrong]. The fix is [approach]. This touches [files]. Risk: [low/medium/high]." For hotfix: also state whether this is a proper fix or a workaround, and what cleanup is deferred. Human approves fix approach.
77
+
78
+ **Skip when:** Quick path (root cause already known from triage).
79
+
80
+ ### Phase 3: Fix
81
+
82
+ **Skill:** `superpowers:test-driven-development`
83
+
84
+ 1. **Write a failing test** that reproduces the bug — this is the spec for "fixed"
85
+ 2. **Implement the fix**
86
+ 3. **Verify the test passes**
87
+ 4. **Run the full test suite** — ensure no regressions
88
+
89
+ Follow the testing philosophy in `~/.claude/rules/testing.md` — prefer integration tests with real resources over mocks. The bug-reproduction test should test behavior, not implementation details.
90
+
91
+ **Do NOT:**
92
+ - Fix the test to match broken code
93
+ - Weaken assertions to make them pass
94
+ - Skip writing the reproduction test ("it's obvious")
95
+ - Fix unrelated code you noticed while investigating (note it, don't fix it)
96
+
97
+ **Flag:** After fix is implemented and tests pass, notify: "Fix implemented. [N] tests pass, [M] new. Changes in [files]." Human is notified, agent proceeds to verify.
98
+
99
+ ### Phase 4: Verify
100
+
101
+ **Skill:** `superpowers:verification-before-completion`
102
+
103
+ 1. Run all tests — not just the new one
104
+ 2. Verify the original reproduction steps no longer trigger the bug
105
+ 3. Check for related edge cases the same root cause could affect
106
+
107
+ **For Standard/Hotfix path:** Also run `superpowers:requesting-code-review` — a second pass catches fixes that introduce new issues.
108
+
109
+ **Flag:** Present verification results: "All [N] tests pass. Original reproduction confirmed fixed. [Edge cases checked/found]." Human is notified, agent proceeds to ship.
110
+
111
+ **Skip when:** Quick path (test suite passing is sufficient verification).
112
+
113
+ ### Phase 5: Ship
114
+
115
+ **Gate:** Present the fix for final approval before committing:
116
+ - Summary: what was broken, why, what the fix does
117
+ - Files changed (with line counts)
118
+ - Tests added/modified
119
+ - For Hotfix: list any deferred cleanup as follow-up tasks
120
+
121
+ Human approves → commit. Human may request changes → loop back to Fix.
122
+
123
+ 1. **Commit** — test + fix in the same commit. Follow project commit conventions.
124
+ 2. **Update tracker** — if the bug has a tracker item, update its status
125
+ 3. **For Hotfix:** Document any deferred cleanup as follow-up tasks. A hotfix workaround is tech debt — track it.
126
+
127
+ ## Cross-Cutting Skills
128
+
129
+ | Skill | When |
130
+ |-------|------|
131
+ | `superpowers:systematic-debugging` | Phase 2 (investigation) |
132
+ | `superpowers:test-driven-development` | Phase 3 (fix) |
133
+ | `superpowers:verification-before-completion` | Phase 4 (verify) |
134
+ | `superpowers:requesting-code-review` | Phase 4 (standard + hotfix paths) |
135
+
136
+ ## Rules Referenced
137
+
138
+ | Rule | Applies to |
139
+ |------|-----------|
140
+ | `~/.claude/rules/correct-over-quick.md` | Phase 2 — decision order when test and code disagree |
141
+ | `~/.claude/rules/test-architecture-first.md` | Phase 2 — understand test intent before changing |
142
+ | `~/.claude/rules/testing.md` | Phase 3 — integration tests, golden flows, error-path harness |
143
+ | `~/.claude/rules/planning-standards.md` | Phase 5 — if the fix needs a follow-up plan |