codecartographer-pi 0.16.0 → 0.17.0

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 (40) hide show
  1. package/.codecarto/GUIDE.md +15 -2
  2. package/.codecarto/README.md +3 -0
  3. package/.codecarto/broadside/SKILL.md +143 -0
  4. package/.codecarto/broadside/config.yaml +104 -0
  5. package/.codecarto/findings/broadside-scout/README.md +20 -0
  6. package/.codecarto/findings/broadside-scout/SKILL.md +101 -0
  7. package/.codecarto/skills/spec-delta-application/SKILL.md +3 -1
  8. package/.codecarto/templates/backlog-project.md +51 -0
  9. package/.codecarto/templates/broadside-scout-brief.md +97 -0
  10. package/.codecarto/{THREAD_LOG.md → templates/thread-log.md} +2 -5
  11. package/.codecarto/workflow/pipeline-scout-first.yaml +271 -0
  12. package/.codecarto/workflow/scaffold-version.yaml +1 -1
  13. package/README.md +47 -2
  14. package/agent-skill/codecartographer/SKILL.md +3 -1
  15. package/agent-skill/codecartographer/references/broadside.md +115 -0
  16. package/agent-skill/codecartographer/references/library.md +1 -1
  17. package/agent-skill/codecartographer/references/pipeline-selection.md +14 -0
  18. package/dist/core/broadside.d.ts +421 -0
  19. package/dist/core/broadside.js +2349 -0
  20. package/dist/core/completion.js +20 -4
  21. package/dist/core/index.d.ts +1 -0
  22. package/dist/core/index.js +1 -0
  23. package/dist/core/library.d.ts +22 -0
  24. package/dist/core/library.js +101 -1
  25. package/dist/core/orchestrator-config.js +5 -2
  26. package/dist/core/pipeline.js +1 -0
  27. package/dist/core/status.js +9 -1
  28. package/dist/core/utils.js +7 -1
  29. package/dist/core/workspace.d.ts +17 -0
  30. package/dist/core/workspace.js +68 -2
  31. package/dist/extensions/codecarto/agent-runner.js +6 -0
  32. package/dist/extensions/codecarto/broadside-flags.d.ts +21 -0
  33. package/dist/extensions/codecarto/broadside-flags.js +116 -0
  34. package/dist/extensions/codecarto/index.js +232 -4
  35. package/dist/mcp-server/server.d.ts +22 -0
  36. package/dist/mcp-server/server.js +218 -11
  37. package/package.json +10 -1
  38. package/.codecarto/BACKLOG.md +0 -184
  39. package/.codecarto/CHANGELOG-2026-05-02-feedback-pass.md +0 -118
  40. package/.codecarto/closeouts/2026-05-02-framework-feedback-pass.md +0 -111
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codecartographer-pi",
3
- "version": "0.16.0",
3
+ "version": "0.17.0",
4
4
  "mcpName": "io.github.HuginnIndustries/codecartographer",
5
5
  "description": "Turn an unfamiliar codebase into a validated reimplementation spec, then synthesize confirmed specs and a product vision into a traceable plan.",
6
6
  "type": "module",
@@ -35,6 +35,14 @@
35
35
  },
36
36
  "files": [
37
37
  ".codecarto/**/*",
38
+ "!.codecarto/BACKLOG.md",
39
+ "!.codecarto/THREAD_LOG.md",
40
+ "!.codecarto/CONVENTIONS.md",
41
+ "!.codecarto/DECISIONS.md",
42
+ "!.codecarto/closeouts/**",
43
+ "!.codecarto/broadside/**",
44
+ ".codecarto/broadside/SKILL.md",
45
+ ".codecarto/broadside/config.yaml",
38
46
  "agent-skill/**/*",
39
47
  "dist/**/*",
40
48
  "assets/logo.svg",
@@ -49,6 +57,7 @@
49
57
  "prepublishOnly": "npm run build",
50
58
  "test": "node --experimental-strip-types --disable-warning=ExperimentalWarning --test tests/*.test.mjs",
51
59
  "smoke": "node scripts/smoke-mcp.mjs",
60
+ "smoke:broadside": "node scripts/smoke-broadside.mjs",
52
61
  "demo:synthesis": "npm run build && node scripts/create-synthesis-demo.mjs"
53
62
  },
54
63
  "dependencies": {
@@ -1,184 +0,0 @@
1
- # Backlog
2
-
3
- Deferred framework improvements with rationale and source feedback files. Items here were
4
- proposed by one or more agents in the feedback corpus but were not load-bearing enough to land
5
- in the 2026-05-02 framework feedback pass. Each item is a candidate for a future pass.
6
-
7
- Format per entry: rationale + which feedback file(s) raised it + what the smallest viable form
8
- of the change would look like.
9
-
10
- ---
11
-
12
- ## B1. Spike template + first-class spike concept — SHIPPED in smallest viable form (v0.15.0, issue #101)
13
-
14
- Landed exactly as scoped: `templates/spike-report.md` (Goal / Method / Measurements / Findings / Recommended Deltas) with the `scratch/spikes/<spike-id>/<scenario>.md` convention documented in GUIDE.md and the spec-delta-application skill. No workflow machinery; spikes stay registered as `post_pipeline` entries (`kind: spike`), their findings flow to the spec through spec-delta-application and to `status.yaml` through `codecarto_amend`. Status.yaml spike tracking remains deferred until a project demonstrates the need.
15
-
16
- ---
17
-
18
- ## B2. Amendments mechanic — SHIPPED (v0.15.0, issue #99)
19
-
20
- Landed as `codecarto_amend` over `scratch/amendments/<slug>.yaml` (see `templates/amendment.yaml`): post-pipeline open-question closures and post_pipeline backlog retirement, applied to `workflow/status.yaml` under the completion lock with an amendment closeout and THREAD_LOG entry. The narrower back-amendment question ("a later phase says a prior output is wrong") remains open — a real run handled it with a correction section in the later report plus a delta-application pass, which worked; promote that pattern only if it recurs.
21
-
22
- ---
23
-
24
- ## B3. Cross-CodeCartographer-workspace references in status.yaml
25
-
26
- **Raised by:** `Agent on reimplementation spec - reimplementation spec.txt` (1 agent)
27
-
28
- **Why deferred:** Single-agent ask. The use case (one CodeCarto workspace cites another) is real but rare. Most projects have one CodeCarto workspace. Designing a citation format that works across workspaces (relative paths? URLs? content-addressed IDs?) is non-trivial.
29
-
30
- **Smallest viable form:** A documented convention for citing across workspaces using `<other-workspace-path>/<phase>/<output>.md#<anchor>` paths, without machinery. If a project demonstrates the need, formalize.
31
-
32
- ---
33
-
34
- ## B4. 1–5 coverage-depth score (alternative to PASS WITH GAPS)
35
-
36
- **Raised by:** `Agent on reimplementation spec - reimplementation spec.txt` (1 agent)
37
-
38
- **Why deferred:** Validation is currently structural (PASS / PARTIAL / FAIL with criterion-by-criterion check). A semantic depth score is a real ask but conflicts with the framework's posture that "honest output is the default" — a 1–5 score invites grade inflation in a way the binary criteria do not. Worth more thought before landing.
39
-
40
- **Smallest viable form:** Optional second column in the validation block: "Depth: 1–5" with a rubric (1 = section header only; 5 = exhaustive). Use only when the team agrees on the rubric.
41
-
42
- ---
43
-
44
- ## B5. Programmatic markdown-regex validator
45
-
46
- **Raised by:** `Agent on Deep Defect Scan - defect-scan-deep.txt`, `Agent on broad Defect Scan - defect-scan-broad.txt` (2 agents)
47
-
48
- **Why deferred:** A real validator (parses status.yaml, checks output paths, verifies validation blocks exist with correct criterion counts, etc.) is a separate tooling project — more than a SKILL/template change. It deserves its own scoping.
49
-
50
- **Smallest viable form:** A `scripts/validate.sh` that runs `yq` + `grep` checks for the most common gates (every primary_output exists; every validation block has at least N rows; every status.yaml phase has a status field). Document, don't ship without consensus on scope.
51
-
52
- ---
53
-
54
- ## B6. CI grep gate for tripwire-named functions
55
-
56
- **Raised by:** `Agent on fifth module work - thaum-state.txt` (1 agent — project-level concern)
57
-
58
- **Why deferred:** This is a *project*-level CI concern (Thaumaturge), not a framework concern. The framework's job is to surface the convention (which the orchestrator does in CONVENTIONS.md); the project's job is to gate it. Documented for the orchestrator to pick up at the project level.
59
-
60
- **Smallest viable form:** Document in CONVENTIONS.md template's example entry that "production code path importing any tripwire-named function should fail the build" is a known follow-up. No framework artifact.
61
-
62
- ---
63
-
64
- ## B7. Append-mode supersession rule (consolidate vs append)
65
-
66
- **Raised by:** `Agent on porting phase - porting.txt`, `Agent on protocols phase - protocols.txt`, `Agent on contracts phase - contracts.txt` (3 agents — at threshold but defers per scope)
67
-
68
- **Why deferred:** Real friction: secondary outputs accumulate overlapping descriptions and recency wins by unwritten convention. A "supersedes" marker would land cleanly, but it also implies a reconciliation pass before reimplementation-spec, which is a phase-shape change. Worth landing in a follow-up pass that focuses on append-mode discipline holistically.
69
-
70
- **Smallest viable form:** A `> SUPERSEDES <date>:<reason>` block convention at the top of each new dated section in append-mode files, plus a paragraph in GUIDE.md describing it. No machinery; just convention.
71
-
72
- ---
73
-
74
- ## B8. Validation as semantic check (not just structural / completeness)
75
-
76
- **Raised by:** `Agent on broad Defect Scan - defect-scan-broad.txt`, `Agent on Deep Defect Scan - defect-scan-deep.txt`, `Agent on porting phase - porting.txt`, `Agent on protocols phase - protocols.txt` (4 agents — at-threshold)
77
-
78
- **Why deferred:** "LLM grades its own homework" is a real gap. The fix is either a quality-subagent (a separate LLM pass that grades against the criteria) or a coverage-depth score (B4). Both are larger changes than this pass should land. The structural check at minimum prevents the worst failure mode (skipping the criterion entirely).
79
-
80
- **Smallest viable form:** A `quality-review` skill that delegates to a subagent for criterion-by-criterion semantic check. Optional; not in the default closeout ritual.
81
-
82
- ---
83
-
84
- ## B9. Spec file split (single 1000+ line file → spec/ directory)
85
-
86
- **Raised by:** `Agent on fourth module work - thaum-engine.txt`, `Agent on second module work - thaum-providers-ollama.txt`, `Run three Thaumaturge implementation spikes.txt` (3 agents — at-threshold)
87
-
88
- **Why deferred:** This is a *project*-level concern (Thaumaturge's reimplementation-spec.md is 1300+ lines). The framework's template doesn't enforce a single file; a project can split. Documented for the orchestrator to pick up at the project level.
89
-
90
- **Smallest viable form:** A documented convention in the opinionated reimpl-spec template that says "if the spec exceeds N lines, split into spec/ with INDEX.md anchored to original section IDs." No framework machinery.
91
-
92
- ---
93
-
94
- ## B10. SKILL.md and template files redundancy / consolidation
95
-
96
- **Raised by:** `Agent on porting phase - porting.txt`, `Agent on protocols phase - protocols.txt`, `Agent on contracts phase - contracts.txt` (3 agents — at-threshold)
97
-
98
- **Why deferred:** "SKILL says X, template says X — agent reads both and reconciles" is a real cost. But the framework's posture is that SKILL.md is the *how* (analysis instructions) and template is the *shape* (output skeleton). Collapsing them risks losing the separation. A surgical edit (de-duplicate the obvious overlaps without merging) is hard to do without per-file judgment.
99
-
100
- **Smallest viable form:** A pass that inspects each SKILL/template pair and removes section headers from the SKILL that exactly match the template (the template alone is canonical for shape). Per-file work; not a single sweep.
101
-
102
- ---
103
-
104
- ## B11. Defect-pass-N append discipline (multi-pass defect-scan)
105
-
106
- **Raised by:** `Agent on Deep Defect Scan - defect-scan-deep.txt`, `Agent on broad Defect Scan - defect-scan-broad.txt` (2 agents)
107
-
108
- **Why deferred:** Defect-scan today expects "one pass = one phase output." Multi-pass (broad → deep) is a real pattern that emerged in Thaumaturge. Partially blessed in 2026-05-04 by `pipeline-full-with-deep-audit.yaml`, which splits the scan into mechanical (passes 1, 2, 6 — after architecture, before contracts) and semantic (passes 3, 4, 5 — after protocols, before porting) phases. Different mechanism than the originally-proposed within-phase pass-N append, but it covers the broad→deep use case. Open question: do projects still need the within-phase append pattern?
109
-
110
- **Smallest viable form:** A `templates/defect-report-pass-N.md` template with a `findings/defect-scan/passes/<pass-id>.md` directory convention. Documented; not pre-applied.
111
-
112
- ---
113
-
114
- ## B12. Resolutions footer / phase resolution mechanic
115
-
116
- **Raised by:** `Agent coordinating results - coordinating.txt`, `Agent on contracts phase - contracts.txt` (2 agents)
117
-
118
- **Why deferred:** Partially resolved by `carry_forward` in this pass — the routing-and-resolution loop now exists. The remaining ask (a "previously resolved" footer in each output, or a resolutions/ directory) may be obviated by `carry_forward` in practice. Wait for next-pass feedback before adding more machinery.
119
-
120
- ---
121
-
122
- ## B13. Engine→leaf seam contracts table
123
-
124
- **Raised by:** `Agent on fifth module work - thaum-state.txt` (1 agent — project-level)
125
-
126
- **Why deferred:** Project-level (Thaumaturge-specific). The framework's job is to surface the convention; CONVENTIONS.md template now has the shape for it. The actual SEAMS.md would live at the project level.
127
-
128
- ---
129
-
130
- ## B14. Cross-phase consistency check
131
-
132
- **Raised by:** `Agent on protocols phase - protocols.txt` (1 agent)
133
-
134
- **Why deferred:** "Contracts and protocols both touch dispatcher / redaction / SSE and must stay aligned" — the proposed consistency check is a pre-reimpl-spec reconciliation pass. Related to B7 (append-mode supersession). Bundle into the same future pass.
135
-
136
- ---
137
-
138
- ## B15. spec-delta-application SKILL canonical refinements (first-run friction)
139
-
140
- **Raised by:** `Spec-delta-3 application - 2026-05-03.txt` (1 agent — first real run of the SKILL post-2026-05-02 framework pass; high-signal because the SKILL had no field exposure before this)
141
-
142
- **Why deferred:** Six small refinements to the same SKILL.md / templates pair, all visible only after a non-spike-sourced run. Bundling makes the next pass cheap; piecemeal would churn the SKILL repeatedly.
143
-
144
- **Smallest viable form:** A surgical pass over `skills/spec-delta-application/SKILL.md` and `templates/deltas-applied.md` covering:
145
- - **Citation forms** — canonicalize a small family beyond the spike-sourced `[revised per <file> §<delta-id>]`. Round-3 introduced `[revised per DECISIONS.md D5XX (Δ-N), round-N]` for D-entry-sourced deltas and `[revised per closeouts/<file> §<id>, round-N]` for closeout-sourced deltas. Document both as canonical, alongside the spike form.
146
- - **Audit file path** — explicitly cover the non-spike case. Round-3 used `findings/deltas-applied/round-N.md` (directory convention) when the deltas weren't spike-driven; the existing "sibling-of-spec DELTAS-APPLIED.md" remains a special case for spike rounds.
147
- - **Closeout filename** — round-numbered (`closeouts/<YYYY-MM-DD>-spec-delta-N.md`) avoids the collision risk of the current `closeouts/<YYYY-MM-DD>-spec-deltas.md` when two passes happen on the same day.
148
- - **§header naming** — the spec's `## Post-Spike Revisions` header doesn't generalize for non-spike rounds. Rename to `## Post-Pipeline Revisions` (or similar) so post-pipeline non-spike rounds don't have to add explanatory paragraphs about why "Post-Spike" still applies.
149
- - **Step 6 prominence** — add a sentence to Step 6 ("Update the spec's front-matter citation conventions list") emphasizing this is required when the application introduces new citation forms; otherwise the audit-table marker list is unanchored.
150
- - **APPLY may refine the proposal** — Δ-36's literal D501 text was "map to 'error'" but the application refined to "emit error event + done(error)" mirroring the existing in-stream-error pattern. The four-bucket matrix's APPLY bucket implicitly permits refinement, but the SKILL should make it explicit: APPLY may include refinements beyond the literal proposal text, with the refinement captured as a Decision-Beyond-Triage in the closeout.
151
-
152
- ---
153
-
154
- ## B16. Project-level BACKLOG.md template + GUIDE.md project-vs-framework-level clarification
155
-
156
- **Raised by:** `Spec-delta-3 application - 2026-05-03.txt` (1 agent — first-run-of-SKILL friction)
157
-
158
- **Why deferred:** The SKILL says "DEFER → Add to BACKLOG.md with rationale and a back-reference," but the codex workspace had no project-level BACKLOG.md and the upstream `.codecarto/BACKLOG.md` is for framework-feedback deferrals (correctly excluded from project sync). Round-3 created `.codecarto/BACKLOG.md` from scratch with a project-scoped shape. Future projects will hit the same bootstrap gap.
159
-
160
- **Smallest viable form:**
161
- - Ship `templates/backlog-project.md` skeleton with header + format-per-entry note + an example entry. Format-per-entry should include: rationale, raised-by (closeout file or D-entry), preconditions (which modules / artifacts need to land before the deferral can be revisited — Δ-38 demonstrated this field's value), and "smallest viable form."
162
- - Add one paragraph to `GUIDE.md` clarifying the project-level vs framework-level distinction: framework `.codecarto/BACKLOG.md` is for framework-feedback deferrals (raised by agents about CodeCartographer itself); project `.codecarto/BACKLOG.md` is for project-decision deferrals (raised during the project's own work).
163
- - SKILL Step 7 (DEFER bucket) explicitly references the project template.
164
-
165
- ---
166
-
167
- ## B17. SKILL clarification — DECISIONS.md vs BACKLOG.md semantics for DEFER
168
-
169
- **Raised by:** `Spec-delta-3 application - 2026-05-03.txt` (1 agent — first-run-of-SKILL semantic ambiguity)
170
-
171
- **Why deferred:** The SKILL's DEFER guidance and its "append numbered entries to DECISIONS.md for any decisions made during triage that weren't already in the deltas" instruction left ambiguous whether DEFER-with-rationale belongs in DECISIONS.md or BACKLOG.md. Round-3 chose: DECISIONS.md is for things the project decided to **DO** (including refinements made during application — e.g., D501's refinement); BACKLOG.md is for things the project decided to **DEFER**. DEFERs do not get a D5xx number, and DECISIONS.md's "pending spec deltas" subsection only tracks proposed → applied lifecycle.
172
-
173
- **Smallest viable form:** A two-sentence clarification in SKILL Step 7's DEFER bucket: DEFER → BACKLOG.md (no D-number); refinements made during APPLY → DECISIONS.md "Decisions Beyond Triage" section in the audit file, lifted to DECISIONS.md only if cross-cutting. Existing D-entries for proposed deltas get their disposition updated in place (e.g., "APPLIED 2026-05-03 round-3"); they do not get superseded by new D-entries when applied.
174
-
175
- ---
176
-
177
- ## How to use this backlog
178
-
179
- A future framework-feedback pass picks items up from here. Each item has a "Smallest viable
180
- form" line so the pass doesn't have to re-design from scratch — the design work was done in this
181
- pass; the next pass executes.
182
-
183
- Add new entries below as agents raise items in future feedback files. When promoting an item to
184
- "applied," remove the entry from this file and document in the relevant CHANGELOG.
@@ -1,118 +0,0 @@
1
- # Changelog — 2026-05-02 Framework Feedback Pass
2
-
3
- Audit of which proposals from the agent feedback corpus (`Feedback From Agents/`) were applied,
4
- clarified, deferred, or rejected in this pass. Same format as Thaumaturge's `DELTAS-APPLIED.md`
5
- audit. Future revision passes read this file to know which proposals have already been
6
- processed.
7
-
8
- ## Sources
9
-
10
- | Source | Notes |
11
- |---|---|
12
- | `Feedback From Agents/FEEDBACK_INDEX.md` | Cross-cutting themes table is the load-bearing input. |
13
- | `Feedback From Agents/Agent coordinating results - coordinating.txt` | Most synthesized single feedback file. |
14
- | `Feedback From Agents/Agent on fifth module work - thaum-state.txt` | Most recent and most detailed module-work feedback. |
15
- | `Feedback From Agents/Apply 20 spec deltas to Thaumaturge.txt` | Names the missing spec-delta-application skill explicitly. |
16
- | (Plus the 9 other feedback files indexed in FEEDBACK_INDEX.md.) | Read at index level; specific items pulled when needed. |
17
-
18
- ## Triage Discipline Applied
19
-
20
- Same discipline as `spec-delta-application`:
21
-
22
- - **APPLY** = spec-blocker (raised by 3+ agents AND clean concrete edit) OR explicitly user-mandated.
23
- - **CLARIFY** = mechanical edit; meaning is right but wording or shape is missing.
24
- - **DEFER** = real improvement, not load-bearing for next session, written into `BACKLOG.md`.
25
- - **REJECT** = wrong on close reading or out of scope for the framework.
26
-
27
- ## Triage Summary
28
-
29
- | Bucket | Count | Notes |
30
- |---|---|---|
31
- | APPLY | 6 | Spec-blockers — see Applied table below. |
32
- | CLARIFY | 5 | Mechanical edits — see Clarifications table. |
33
- | DEFER | 14 | Recorded in BACKLOG.md (B1–B14). |
34
- | REJECT | 0 | (Nothing rejected; deferred items are deferred, not rejected.) |
35
- | **Total** | 25 | |
36
-
37
- ---
38
-
39
- ## Applied (spec-blockers)
40
-
41
- | # | Proposal | Source(s) | Edit |
42
- |---|---|---|---|
43
- | 1 | **Schema-split `open_questions` into `open_questions` + `carry_forward`** with structured shape `{id, kind, target_phase, deferred_reason}`. | coordinating, broad defect, deep defect, porting (4 agents) | `workflow/status.yaml` schema updated; `workflow/VALIDATE.md` references both lists; `templates/architecture-map.md`, `behavioral-contracts.md`, `protocols-and-state.md`, `reverse-engineering-bundle.md`, `reimplementation-spec.md` all gained Carry-Forward section; GUIDE.md gained "Open Questions vs Carry-Forward" subsection; `kind` enum specified (`needs-runtime-test`, `needs-maintainer-decision`, `needs-spec-ruling`, `defer-to-phase`, `needs-fixture-capture`). |
44
- | 2 | **`CONVENTIONS.md` and `DECISIONS.md` as first-class framework artifacts.** | thaum-engine, thaum-state, thaum-ollama (3 agents) | Created `templates/conventions-template.md` and `templates/decisions-template.md` as project-level skeletons; GUIDE.md trust-boundaries table updated to include both as "orchestrator-maintained"; GUIDE.md gained "Orchestrator-Maintained Artifacts" subsection; closeout ritual now mentions proposing entries to both. |
45
- | 3 | **Subagent-delegation paragraph** under Context Budget for codebases over ~50 source files. | coordinating, broad defect, contracts, protocols, deep defect (5 agents) | GUIDE.md "Context Budget" gained "Subagent Delegation for Large Codebases" subsection. |
46
- | 4 | **Per-session closeouts pattern** (`closeouts/<date>-<phase>.md`) replacing monolithic THREAD_LOG.md body. | thaum-ollama, thaum-engine, thaum-state, coordinating, spikes, porting (6 agents — top theme) | Created `templates/closeout-template.md`; rewrote `THREAD_LOG.md` as one-line-pointer index; updated `templates/thread-log-entry-template.md` to be the legacy one-line index entry; GUIDE.md Session Update Protocol and Output Placement Rules updated; folder layout in GUIDE.md updated. |
47
- | 5 | **`spec-delta-application` SKILL** for the apply-deltas pattern (codifying the discipline used for the Thaumaturge 20-delta pass). | deltas (1 agent — user-mandated) | Created `skills/spec-delta-application/SKILL.md` and `templates/deltas-applied.md`. Skill location is a new top-level `skills/` directory (sibling of `findings/`) — chosen because spec-delta-application is post-pipeline, not phase-bound, so it doesn't fit `findings/<phase>/SKILL.md`. GUIDE.md trust-boundaries table updated with `skills/*/SKILL.md`. |
48
- | 6 | **Dual-mode reimpl-spec template** — opinionated variant when stack/identity are pre-locked. | reimpl-spec, coordinating (2 agents) | Created `templates/reimplementation-spec-opinionated.md` as sibling of the language-agnostic default; GUIDE.md Session Update Protocol gained "Strategic Alignment Hook" subsection that picks between the two. |
49
-
50
- ## Clarifications (mechanical)
51
-
52
- | # | Proposal | Source(s) | Edit |
53
- |---|---|---|---|
54
- | 7 | **Strategic-alignment hook** before reimplementation-spec phase. | coordinating (1 agent) | Folded into spec-blocker #6 — the Strategic Alignment Hook subsection in GUIDE.md is the hook *and* selects the template variant. |
55
- | 8 | **Primary vs secondary output relationship** documentation in GUIDE.md (two-paragraph rule). | coordinating, porting (2 agents) | GUIDE.md gained "Primary vs Secondary Output Relationship" subsection under Evaluation Objective. |
56
- | 9 | **File-system-sync warning paragraph** in session-prompt boilerplate. | thaum-engine, thaum-state (2 agents) | NEW_THREAD_BLURB.md gained "File-System Sync Warning" section with concrete mitigations. |
57
- | 10 | **THREAD_LOG dedup linter** as a one-line script in the framework. | deltas (1 agent) | CONTRIBUTING.md gained "THREAD_LOG.md de-dup check" with the `grep ... | sort | uniq -d` one-liner. THREAD_LOG.md itself documents the human-discipline rule. |
58
- | 11 | **VALIDATE.md PARTIAL example.** | deep defect (1 agent) | VALIDATE.md gained "Worked PARTIAL Example" section with a full PASS-WITH-GAPS validation block AND the matching `carry_forward` entry showing how the gap is routed downstream. |
59
-
60
- ## Deferred (in BACKLOG.md)
61
-
62
- | # | Proposal | Source(s) | Backlog ID |
63
- |---|---|---|---|
64
- | 12 | Spike template + first-class spike concept | spikes, deltas, protocols (3) | B1 |
65
- | 13 | Amendments mechanic (`findings/amendments/`) | spikes, protocols (2) | B2 |
66
- | 14 | Cross-CodeCartographer references in status.yaml | reimpl-spec (1) | B3 |
67
- | 15 | 1–5 coverage-depth score | reimpl-spec (1) | B4 |
68
- | 16 | Programmatic markdown-regex validator | broad defect, deep defect (2) | B5 |
69
- | 17 | CI grep gate for tripwire-named functions | thaum-state (1, project-level) | B6 |
70
- | 18 | Append-mode supersession rule | porting, protocols, contracts (3) | B7 |
71
- | 19 | Validation as semantic check (not just structural) | broad defect, deep defect, porting, protocols (4) | B8 |
72
- | 20 | Spec file split into spec/ directory | thaum-engine, thaum-ollama, spikes (3, project-level) | B9 |
73
- | 21 | SKILL.md + template consolidation | porting, protocols, contracts (3) | B10 |
74
- | 22 | Defect-pass-N append discipline | broad defect, deep defect (2) | B11 |
75
- | 23 | Resolutions footer / phase resolution mechanic | coordinating, contracts (2) | B12 (partially obviated by carry_forward — wait for re-feedback) |
76
- | 24 | Engine→leaf seam contracts table | thaum-state (1, project-level) | B13 |
77
- | 25 | Cross-phase consistency check | protocols (1) | B14 |
78
-
79
- ## What This Pass Did Not Touch
80
-
81
- Per the prompt's "do not modify" list (the unanimous-defenders list at the bottom of
82
- `FEEDBACK_INDEX.md`):
83
-
84
- - **Validation gate** (PASS / PASS WITH GAPS / FAIL) — UNCHANGED. (Rules around it were extended; the gate's shape is preserved.)
85
- - **Append-mode discipline** for secondary outputs — UNCHANGED.
86
- - **Trust-boundaries table** — EXTENDED with new categories (closeouts, conventions, decisions, backlog), not modified in shape.
87
- - **Pipeline variants** (5) — UNCHANGED. None added, none removed, none restructured.
88
- - **Evidence-level discipline** (`observed fact` / `strong inference` / `portability hazard` / `open question`) — UNCHANGED.
89
- - **Closeout ritual** — EXTENDED to include conventions/decisions promotion and per-session closeout files; the ritual's shape (validation → status.yaml → per-session record → next pointer) is preserved.
90
- - **status.yaml-as-handoff-baton** — UNCHANGED in role; schema split adds `carry_forward` alongside existing fields.
91
-
92
- ## Re-Validation Result
93
-
94
- The framework's own `.codecarto/` is the framework applied to itself. After this pass:
95
-
96
- - Every file path referenced in GUIDE.md, CONTRIBUTING.md, NEW_THREAD_BLURB.md, VALIDATE.md, and the pipeline YAMLs still exists.
97
- - Every template file referenced in pipeline YAMLs (`templates/architecture-map.md`, etc.) still exists and is well-formed.
98
- - New files (`templates/closeout-template.md`, `templates/conventions-template.md`, `templates/decisions-template.md`, `templates/deltas-applied.md`, `templates/reimplementation-spec-opinionated.md`, `skills/spec-delta-application/SKILL.md`, `BACKLOG.md`, this CHANGELOG, the rewritten `THREAD_LOG.md`) are all present.
99
- - `workflow/status.yaml` schema split is consistent with the templates and GUIDE.md.
100
- - `Feedback From Agents/FEEDBACK_INDEX.md` cross-cutting-themes table has been annotated with resolution markers (✓ APPLIED / ◑ CLARIFIED / ➜ DEFERRED-Bxx).
101
-
102
- The pass is internally consistent. The framework's own self-application still hangs together.
103
-
104
- ## Net
105
-
106
- - 6 spec-blockers landed.
107
- - 5 spec-clarifications applied (one folded into a blocker; 4 standalone mechanical edits).
108
- - 14 nice-to-haves recorded in BACKLOG.md with smallest-viable-form sketches.
109
- - 0 rejections.
110
-
111
- The framework now formalizes the orchestrator role (CONVENTIONS.md + DECISIONS.md +
112
- spec-delta-application skill), formalizes the schema split that has been requested since session
113
- 1 (open_questions vs carry_forward), and replaces the monolithic THREAD_LOG body with a
114
- per-session closeouts pattern that scales forever.
115
-
116
- The next concrete step after this pass is back to project-level work (e.g., Thaumaturge module
117
- work — `thaum-tools`) — but now with the upgraded framework as the base and the
118
- orchestrator-discipline artifacts as first-class supporting structure.
@@ -1,111 +0,0 @@
1
- # Closeout — 2026-05-02 — framework-feedback-pass
2
-
3
- ## Summary
4
-
5
- This was a meta-session: instead of using CodeCartographer to analyze a codebase, the session edited CodeCartographer based on accumulated feedback from 13 prior agent sessions. Six spec-blockers landed, five spec-clarifications applied, fourteen nice-to-haves recorded in `BACKLOG.md`. The framework now formalizes the orchestrator role (CONVENTIONS.md + DECISIONS.md + spec-delta-application skill), schema-splits open_questions into open_questions + carry_forward, and replaces the monolithic THREAD_LOG body with a per-session closeouts pattern. Next session is back to project-level work (Thaumaturge `thaum-tools`) with the upgraded framework as the base.
6
-
7
- ## Files Touched
8
-
9
- - **Added:**
10
- - `.codecarto/templates/closeout-template.md`
11
- - `.codecarto/templates/conventions-template.md`
12
- - `.codecarto/templates/decisions-template.md`
13
- - `.codecarto/templates/deltas-applied.md`
14
- - `.codecarto/templates/reimplementation-spec-opinionated.md`
15
- - `.codecarto/skills/spec-delta-application/SKILL.md`
16
- - `.codecarto/BACKLOG.md`
17
- - `.codecarto/CHANGELOG-2026-05-02-feedback-pass.md`
18
- - `.codecarto/closeouts/2026-05-02-framework-feedback-pass.md` (this file)
19
- - `Feedback From Agents/Framework feedback pass - 2026-05-02.txt`
20
- - **Modified:**
21
- - `.codecarto/GUIDE.md` (trust-boundaries table extended; new subsections: Primary vs Secondary, Orchestrator-Maintained Artifacts, Subagent Delegation, Open Questions vs Carry-Forward, Strategic Alignment Hook; Session Update Protocol updated; folder layout updated)
22
- - `.codecarto/workflow/status.yaml` (open_questions/carry_forward schema split)
23
- - `.codecarto/workflow/VALIDATE.md` (carry_forward routing rule + worked PARTIAL example)
24
- - `.codecarto/templates/architecture-map.md` (Carry-Forward section)
25
- - `.codecarto/templates/behavioral-contracts.md` (Carry-Forward section)
26
- - `.codecarto/templates/protocols-and-state.md` (Carry-Forward section)
27
- - `.codecarto/templates/reverse-engineering-bundle.md` (Carry-Forward section)
28
- - `.codecarto/templates/reimplementation-spec.md` (Known Unknowns + Carry-Forward shapes)
29
- - `.codecarto/templates/thread-log-entry-template.md` (repurposed as legacy one-line index entry template)
30
- - `.codecarto/THREAD_LOG.md` (rewritten as one-line-pointer index)
31
- - `.codecarto/CONTRIBUTING.md` (THREAD_LOG dedup linter; carry_forward in testing checklist)
32
- - `.codecarto/NEW_THREAD_BLURB.md` (carry_forward routing; per-session closeout pattern; file-system-sync warning)
33
- - `Feedback From Agents/FEEDBACK_INDEX.md` (cross-cutting-themes table annotated with resolution markers; entry 15 added)
34
- - **Deleted:** none.
35
-
36
- ## Tests / Gates
37
-
38
- | Gate | Result | Notes |
39
- |---|---|---|
40
- | File-path consistency | PASS | Every path referenced in GUIDE.md, NEW_THREAD_BLURB.md, VALIDATE.md, CONTRIBUTING.md, and pipeline YAMLs resolves to a real file. |
41
- | Schema consistency (status.yaml ↔ templates) | PASS | The `{id, kind, target_phase, deferred_reason}` shape is consistent across status.yaml, all 5 templates' Carry-Forward sections, GUIDE.md "Open Questions vs Carry-Forward", and VALIDATE.md's worked example. |
42
- | Trust-boundaries table coverage | PASS | New artifacts (closeouts, CONVENTIONS.md, DECISIONS.md, BACKLOG.md) all listed with access columns. |
43
- | Closeout-template self-application | PASS | This closeout file uses `templates/closeout-template.md`. |
44
- | FEEDBACK_INDEX.md self-awareness | PASS | Cross-cutting-themes table now carries APPLIED / CLARIFIED / DEFERRED-Bxx markers; entry 15 added. |
45
-
46
- ## Decisions Beyond Prompt
47
-
48
- - **D-meta-1** | The `spec-delta-application` skill lives at a new top-level `.codecarto/skills/` directory (sibling of `findings/`), not inside `findings/`. | The prompt suggested "or a new top-level skills location — propose where" — chosen because spec-delta-application is post-pipeline (not phase-bound), so `findings/<phase>/SKILL.md` would mis-locate it. Trust-boundaries table updated to include `skills/*/SKILL.md`.
49
- - **D-meta-2** | Rather than create CONVENTIONS.md and DECISIONS.md as filled-in framework artifacts, the framework ships them as `templates/conventions-template.md` and `templates/decisions-template.md` (skeletons that projects copy to `.codecarto/CONVENTIONS.md` / `.codecarto/DECISIONS.md`). | Per the prompt's "generalize from working examples, don't copy" — the codex artifacts are 600+ lines of Thaumaturge-specific content. The framework version should be the skeleton (~150 lines) that projects fork.
50
- - **D-meta-3** | Schema split landed under both fields (`open_questions` AND `carry_forward`), not as a renaming. | A renaming would have broken the convention "open_questions field is the in-your-face honesty hook." Adding `carry_forward` as a sibling preserves the friction-driving job of `open_questions` (genuinely unknown) while solving the "two jobs" problem.
51
- - **D-meta-4** | THREAD_LOG.md was rewritten as an index, not migrated. | The framework's THREAD_LOG.md was empty (only the example comment block), so there was no historical content to migrate. A real project's THREAD_LOG.md migration is a separate, project-level operation; documented in the THREAD_LOG.md header.
52
- - **D-meta-5** | The Strategic Alignment Hook and the dual-mode reimpl-spec template land together as one feature, not two. | The hook *picks between* the two templates. Splitting them across two backlog items would have split the user experience.
53
- - **D-meta-6** | The "Append-mode supersession rule" (3 agents) was deferred to backlog (B7) despite meeting the 3-agent threshold. | The prompt said "Spec-blocker = raised by 3+ agents AND clean concrete edit." Append-mode supersession does not have a clean concrete edit — it implies a reconciliation pass, which is phase-shape change. Defer per the AND clause.
54
- - **D-meta-7** | "Validation as semantic check" (4 agents) was deferred to backlog (B8) despite the highest agent-count after THREAD_LOG scaling. | Same reasoning — no clean concrete edit; the proposed solutions (quality subagent, 1–5 score) are themselves design questions.
55
- - **D-meta-8** | The Resolutions footer (B12) is partially obviated by the new `carry_forward` field. | Documented in BACKLOG.md to wait for the next round of feedback before adding more machinery.
56
-
57
- ## Proposed Conventions
58
-
59
- ### CO-1 (framework-level) — "Schema-split a one-job-too-many field rather than renaming"
60
-
61
- **Why:** When a field is doing two distinct jobs (e.g., `open_questions` carrying both "still unknown" and "deferred to later phase" items), the cleaner fix is to add a sibling field rather than rename or restructure. Renaming breaks discoverability and history; adding a sibling preserves the original field's identity and the muscle-memory of past sessions while resolving the conflation.
62
-
63
- **How to apply:** When agent feedback consistently identifies a field as doing two jobs, prefer "split into A + B siblings" over "rename A to A1 and A2" or "restructure into a nested map." Tested in this pass with `open_questions` + `carry_forward`.
64
-
65
- (This is a framework-level convention, not a project-level one. It would land in a hypothetical `.codecarto-framework/CONVENTIONS.md` if such a file existed; for now, document in CHANGELOG.)
66
-
67
- ### CO-2 (framework-level) — "Defer per AND, not OR, when a proposal mentions multiple criteria"
68
-
69
- **Why:** The triage discipline ("3+ agents AND clean concrete edit") is an AND, not an OR. Two proposals that hit 3+ agents but lacked clean concrete edits (B7, B8) deferred this pass — preserving the apply-in-good-faith posture rather than landing speculative changes.
70
-
71
- **How to apply:** Future framework-feedback passes treat the two clauses as conjoined. A proposal raised by many agents but lacking a clean edit goes to backlog with a smallest-viable-form sketch (which then unblocks the next pass).
72
-
73
- ## Open Questions Left Behind
74
-
75
- | ID | Kind | Description | Deferred Reason |
76
- |---|---|---|---|
77
- | FW-OQ1 | needs-feedback | Whether the per-session closeout pattern actually feels lighter than monolithic THREAD_LOG once a project accumulates >20 closeout files. | Need real-world usage data; revisit after Thaumaturge accumulates 10–15 more closeouts. |
78
- | FW-OQ2 | needs-feedback | Whether the `kind` enum on open_questions/carry_forward entries is the right granularity. | Five values feels right but could prove too coarse (e.g., should `defer-to-phase` distinguish "rubric-fit" from "sequencing"?). Evaluate after 5+ projects use it. |
79
- | FW-OQ3 | needs-feedback | Whether the spec-delta-application skill being at `skills/` (sibling of `findings/`) is the right home, or if a `skills/post-pipeline/` subdirectory is needed once more post-pipeline skills land. | One skill in the directory today; revisit when a second one (e.g., spike-template) lands. |
80
-
81
- ## Carry-Forward Routed
82
-
83
- | ID | Target Phase | Description | Deferred Reason |
84
- |---|---|---|---|
85
- | FW-CF1 | future-feedback-pass | The 14 BACKLOG.md items each have a "smallest viable form" sketch — they're ready for the next pass to execute. | Bundle scope: ship one pass per category (e.g., next pass = "post-pipeline machinery": spike template + amendments + defect-pass-N). |
86
-
87
- ## Framework Feedback (the meta-meta layer)
88
-
89
- The framework-feedback pattern (this session) is itself a CodeCarto-style activity that the
90
- framework currently has no first-class concept of. Things I noticed running it:
91
-
92
- 1. **The triage discipline (apply / clarify / defer / reject) ported cleanly from spec-delta-application to framework-delta-application.** The same four buckets, the same "don't rubber-stamp" posture. The fact that the pattern transfers is evidence it's load-bearing — worth pinning explicitly. Suggestion for next pass: lift the triage discipline into a shared sub-skill that both `spec-delta-application` and a future `framework-feedback-pass` skill reference. Today the discipline lives only in prompts.
93
-
94
- 2. **The "do not modify" list at the bottom of FEEDBACK_INDEX.md was load-bearing.** Without it I would have rewritten the validation gate in the name of "improvement." The unanimous-defenders list is the framework's immune system. Worth promoting to a permanent fixture in CONTRIBUTING.md (currently lives only in the index).
95
-
96
- 3. **The cross-cutting-themes table at the bottom of FEEDBACK_INDEX.md is the actual spec for this kind of pass.** Per-file feedback summaries are useful for context but the table is what drove triage. Suggestion: future framework changes should update the cross-cutting-themes table in the same edit (which this pass did, via the resolution markers — but that pattern should be standard, not invented per-pass).
97
-
98
- 4. **The framework's self-applied `.codecarto/` is a real sanity test.** Editing GUIDE.md broke nothing because the framework's own self-application is structurally trivial (no findings, no closeouts before this session). For a richer self-application, edits to the framework would have a sharper feedback loop. Suggestion for future: maintain a synthetic example project (`examples/<small-codebase>/`) with a populated `.codecarto/` so framework edits can be smoke-tested against a real artifact.
99
-
100
- 5. **There's no skill for "framework-feedback-pass" itself.** This session ran on the discipline embedded in the prompt — apply blockers, defer nice-to-haves, preserve unanimous-defenders, write a CHANGELOG with the same shape as DELTAS-APPLIED.md, update the index with resolution markers. That's a reusable workflow. Worth codifying as a skill the same way `spec-delta-application` was codified this pass. Maybe `skills/framework-feedback-pass/SKILL.md` is the next entry in `skills/`.
101
-
102
- ## Next Session Pointer
103
-
104
- Next concrete step: back to **Thaumaturge module work — `thaum-tools`** — but now with the
105
- upgraded framework as the base. Specifically the next session should:
106
-
107
- 1. Read this closeout file plus `.codecarto/CHANGELOG-2026-05-02-feedback-pass.md` to inherit the framework changes.
108
- 2. The codex `.codecarto/CONVENTIONS.md` and `DECISIONS.md` artifacts are now the *project-level* artifacts; the framework-level skeletons are in `templates/conventions-template.md` and `templates/decisions-template.md`. The orchestrator's discipline maintaining those project files is now first-class.
109
- 3. The `carry_forward` schema split is now usable — items routed across phases get explicit `target_phase` IDs. Use it in the next session's status.yaml updates.
110
- 4. The per-session closeout pattern means `closeouts/2026-05-XX-thaum-tools.md` is the next file to write at session close, not an append to a monolithic THREAD_LOG.
111
- 5. Pending: Δ-36 (Ollama unknown done_reason) and Δ-37 (allowed-loopback wire shape) noted as D501/D502 in codex's DECISIONS.md — next spec-revision pass picks these up using the new `spec-delta-application` skill.