@smartmemory/compose 0.1.1-beta → 0.1.3-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.
- package/.claude/skills/bug-fix/SKILL.md +143 -0
- package/.claude/skills/compose/SKILL.md +604 -0
- package/.compose-deps.json +89 -0
- package/README.md +47 -983
- package/bin/compose.js +473 -0
- package/contracts/comp-obs-contract.schema.json +362 -0
- package/contracts/cross-model-review-result.json +78 -0
- package/contracts/review-result.json +126 -0
- package/dist/assets/{_baseUniq-CQwX6VLz.js → _baseUniq-D-avYfn5.js} +1 -1
- package/dist/assets/{arc-SxJ2J1sh.js → arc-BC4dfQ-X.js} +1 -1
- package/dist/assets/{architectureDiagram-Q4EWVU46-BykunY1F.js → architectureDiagram-Q4EWVU46-BZmFXnGI.js} +1 -1
- package/dist/assets/{blockDiagram-DXYQGD6D-ohAKBOUw.js → blockDiagram-DXYQGD6D-DlfWSuux.js} +1 -1
- package/dist/assets/{c4Diagram-AHTNJAMY-DBDC3ENB.js → c4Diagram-AHTNJAMY-Y__uJrRx.js} +1 -1
- package/dist/assets/channel-LRG9kHqJ.js +1 -0
- package/dist/assets/{chunk-4BX2VUAB-Cv93Z7uM.js → chunk-4BX2VUAB-BfMePfTp.js} +1 -1
- package/dist/assets/{chunk-4TB4RGXK-DE0WBDkj.js → chunk-4TB4RGXK-BdlMSdEA.js} +1 -1
- package/dist/assets/{chunk-55IACEB6-CE1EXenG.js → chunk-55IACEB6-vrQHZTdv.js} +1 -1
- package/dist/assets/{chunk-EDXVE4YY-DA7Ana6H.js → chunk-EDXVE4YY-B8wioVlW.js} +1 -1
- package/dist/assets/{chunk-FMBD7UC4-CTDIPA3p.js → chunk-FMBD7UC4-Cd6Hrux2.js} +1 -1
- package/dist/assets/{chunk-OYMX7WX6-uGBaPaTX.js → chunk-OYMX7WX6-CfrhdQXY.js} +1 -1
- package/dist/assets/{chunk-QZHKN3VN-CYlnXuUO.js → chunk-QZHKN3VN-B9JQerOU.js} +1 -1
- package/dist/assets/{chunk-YZCP3GAM-ojGkzcZK.js → chunk-YZCP3GAM-DFN9X99H.js} +1 -1
- package/dist/assets/classDiagram-6PBFFD2Q-BC9a6pDE.js +1 -0
- package/dist/assets/classDiagram-v2-HSJHXN6E-BC9a6pDE.js +1 -0
- package/dist/assets/clone-dRxgFrBv.js +1 -0
- package/dist/assets/{cose-bilkent-S5V4N54A-Bktn9hL-.js → cose-bilkent-S5V4N54A-BAn0ap_E.js} +1 -1
- package/dist/assets/{dagre-KV5264BT-DFaSzuRF.js → dagre-KV5264BT-DyxnVq1g.js} +1 -1
- package/dist/assets/{diagram-5BDNPKRD-DnfmDzEm.js → diagram-5BDNPKRD-XCrzqski.js} +1 -1
- package/dist/assets/{diagram-G4DWMVQ6-Bm8W9YnG.js → diagram-G4DWMVQ6-MBCAXft_.js} +1 -1
- package/dist/assets/{diagram-MMDJMWI5-B5-TSKvp.js → diagram-MMDJMWI5-DbtB2yS6.js} +1 -1
- package/dist/assets/{diagram-TYMM5635-ls4rqlky.js → diagram-TYMM5635-Bb5NzX61.js} +1 -1
- package/dist/assets/{erDiagram-SMLLAGMA-giG6WO-r.js → erDiagram-SMLLAGMA-CpIeCOh2.js} +1 -1
- package/dist/assets/{flowDiagram-DWJPFMVM-XvlUuz-7.js → flowDiagram-DWJPFMVM-CHyoKnhW.js} +1 -1
- package/dist/assets/{ganttDiagram-T4ZO3ILL-hLBV57oV.js → ganttDiagram-T4ZO3ILL-DErKteO_.js} +1 -1
- package/dist/assets/{gitGraphDiagram-UUTBAWPF-BHu3s_Gn.js → gitGraphDiagram-UUTBAWPF-KFVAtj2F.js} +1 -1
- package/dist/assets/{graph-D0Cfv00Y.js → graph-CRnO_ifT.js} +1 -1
- package/dist/assets/index-DKBsEUJ-.css +1 -0
- package/dist/assets/index-DkRKLuNr.js +1144 -0
- package/dist/assets/{infoDiagram-42DDH7IO-DbqRsOo3.js → infoDiagram-42DDH7IO-BZFnuSp5.js} +1 -1
- package/dist/assets/{ishikawaDiagram-UXIWVN3A-DnCdx7zb.js → ishikawaDiagram-UXIWVN3A-4Xe2Szde.js} +1 -1
- package/dist/assets/{journeyDiagram-VCZTEJTY-CfD7eNcP.js → journeyDiagram-VCZTEJTY-CZRByfS-.js} +1 -1
- package/dist/assets/{kanban-definition-6JOO6SKY-BYaO9-mK.js → kanban-definition-6JOO6SKY-B95sk6Fk.js} +1 -1
- package/dist/assets/{layout-Bj72wOEB.js → layout-BqNQzxWT.js} +1 -1
- package/dist/assets/{linear-BRFo114D.js → linear-CUh7qb64.js} +1 -1
- package/dist/assets/{min-GCHnKlJS.js → min-wXgOS3ig.js} +1 -1
- package/dist/assets/{mindmap-definition-QFDTVHPH-n0PMebY4.js → mindmap-definition-QFDTVHPH-DB6iaAbO.js} +1 -1
- package/dist/assets/{pieDiagram-DEJITSTG-pN4CljHF.js → pieDiagram-DEJITSTG-CHkZHrTW.js} +1 -1
- package/dist/assets/{quadrantDiagram-34T5L4WZ-DNoAy8-D.js → quadrantDiagram-34T5L4WZ-DoTEO8e3.js} +1 -1
- package/dist/assets/{requirementDiagram-MS252O5E-BhtY05PT.js → requirementDiagram-MS252O5E-Dn8peXYp.js} +1 -1
- package/dist/assets/{sankeyDiagram-XADWPNL6-B6AD-16A.js → sankeyDiagram-XADWPNL6-DRXs6Ipb.js} +1 -1
- package/dist/assets/{sequenceDiagram-FGHM5R23-DShHM-uk.js → sequenceDiagram-FGHM5R23-wBBYZ0aq.js} +1 -1
- package/dist/assets/{stateDiagram-FHFEXIEX-DMxn7HTo.js → stateDiagram-FHFEXIEX-DPlBNGmf.js} +1 -1
- package/dist/assets/stateDiagram-v2-QKLJ7IA2-BW0ezXb4.js +1 -0
- package/dist/assets/{timeline-definition-GMOUNBTQ-Cdu6uq52.js → timeline-definition-GMOUNBTQ-CbbyTlHk.js} +1 -1
- package/dist/assets/{vennDiagram-DHZGUBPP-CpK29iRe.js → vennDiagram-DHZGUBPP-Bj4GaFfj.js} +1 -1
- package/dist/assets/{wardley-RL74JXVD-BQgSkdcO.js → wardley-RL74JXVD-RtNzq8KU.js} +55 -55
- package/dist/assets/{wardleyDiagram-NUSXRM2D-DJHYev6O.js → wardleyDiagram-NUSXRM2D-CDfE3zSj.js} +1 -1
- package/dist/assets/{xychartDiagram-5P7HB3ND-1d75pbaO.js → xychartDiagram-5P7HB3ND-CZXHHYD5.js} +1 -1
- package/dist/index.html +2 -2
- package/lib/budget-ledger.js +45 -0
- package/lib/bug-bisect.js +292 -0
- package/lib/bug-checkpoint.js +191 -0
- package/lib/bug-escalation.js +306 -0
- package/lib/bug-index-gen.js +136 -0
- package/lib/bug-ledger.js +126 -0
- package/lib/build-stream-schema.js +176 -0
- package/lib/build-stream-writer.js +3 -1
- package/lib/build.js +854 -284
- package/lib/connector-factory-shim.js +167 -0
- package/lib/constants.js +18 -0
- package/lib/debug-discipline.js +176 -27
- package/lib/deps.js +205 -0
- package/lib/health-score.js +4 -4
- package/lib/import.js +26 -13
- package/lib/inject-schema.js +21 -0
- package/lib/new.js +27 -53
- package/lib/result-normalizer.js +160 -144
- package/lib/review-lenses.js +5 -5
- package/lib/review-normalize.js +413 -0
- package/lib/review-prompt.js +163 -0
- package/lib/sections.js +325 -0
- package/lib/step-prompt.js +21 -1
- package/lib/step-validator.js +5 -3
- package/lib/stratum-mcp-client.js +172 -7
- package/package.json +14 -3
- package/pipelines/bug-fix.stratum.yaml +39 -1
- package/pipelines/build.stratum.yaml +28 -45
- package/pipelines/review-fix.stratum.yaml +1 -1
- package/presets/team-review.stratum.yaml +21 -14
- package/server/build-stream-bridge.js +28 -0
- package/server/cc-session-feature-resolver.js +111 -0
- package/server/cc-session-reader.js +327 -0
- package/server/cc-session-watcher.js +318 -0
- package/server/compose-mcp-tools.js +0 -125
- package/server/compose-mcp.js +2 -4
- package/server/contract-diff.js +192 -0
- package/server/decision-event-emit.js +175 -0
- package/server/decision-event-id.js +64 -0
- package/server/decision-events-snapshot.js +166 -0
- package/server/design-routes.js +92 -49
- package/server/drift-axes.js +365 -0
- package/server/drift-emit.js +121 -0
- package/server/gate-log-store.js +102 -0
- package/server/lifecycle-phase-history.js +44 -0
- package/server/open-loops-store.js +102 -0
- package/server/schema-validator.js +49 -0
- package/server/status-emit.js +27 -0
- package/server/status-snapshot.js +218 -0
- package/server/vision-routes.js +332 -4
- package/server/vision-server.js +104 -12
- package/server/vision-store.js +21 -0
- package/dist/assets/channel-DGElom1e.js +0 -1
- package/dist/assets/classDiagram-6PBFFD2Q-KqWP9wWZ.js +0 -1
- package/dist/assets/classDiagram-v2-HSJHXN6E-KqWP9wWZ.js +0 -1
- package/dist/assets/clone-DUJKJXd7.js +0 -1
- package/dist/assets/index-CUd6pFGF.css +0 -1
- package/dist/assets/index-DReRlzZI.js +0 -1144
- package/dist/assets/stateDiagram-v2-QKLJ7IA2-o6PnCs4e.js +0 -1
- package/server/connectors/agent-connector.js +0 -78
- package/server/connectors/claude-sdk-connector.js +0 -198
- package/server/connectors/codex-connector.js +0 -240
- package/server/connectors/connector-discovery.js +0 -18
- package/server/connectors/connector-runtime.js +0 -13
- 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 |
|