codecartographer-pi 0.11.0 → 0.12.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.
- package/.codecarto/GUIDE.md +30 -15
- package/.codecarto/README.md +3 -0
- package/.codecarto/findings/goal-synthesis/README.md +3 -0
- package/.codecarto/findings/goal-synthesis-finalize/SKILL.md +30 -0
- package/.codecarto/findings/goal-synthesis-propose/SKILL.md +24 -0
- package/.codecarto/findings/spec-merge/README.md +3 -0
- package/.codecarto/findings/spec-merge/SKILL.md +23 -0
- package/.codecarto/findings/vision-capture/README.md +3 -0
- package/.codecarto/findings/vision-capture/SKILL.md +26 -0
- package/.codecarto/inputs/vision.md +11 -0
- package/.codecarto/templates/merged-spec.md +58 -0
- package/.codecarto/templates/phase-handoff.yaml +22 -0
- package/.codecarto/templates/project-plan.md +70 -0
- package/.codecarto/templates/proposal.md +43 -0
- package/.codecarto/templates/vision.md +63 -0
- package/.codecarto/workflow/pipeline-synthesis.yaml +105 -0
- package/.codecarto/workflow/status.yaml +2 -0
- package/README.md +52 -6
- package/dist/core/completion.d.ts +6 -0
- package/dist/core/completion.js +127 -0
- package/dist/core/dashboard.js +19 -2
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +2 -0
- package/dist/core/pipeline.js +1 -0
- package/dist/core/prompts.d.ts +9 -3
- package/dist/core/prompts.js +37 -26
- package/dist/core/status.d.ts +7 -1
- package/dist/core/status.js +187 -2
- package/dist/core/synthesis.d.ts +31 -0
- package/dist/core/synthesis.js +140 -0
- package/dist/core/types.d.ts +29 -1
- package/dist/core/workspace.d.ts +3 -1
- package/dist/core/workspace.js +39 -3
- package/dist/core/yaml.js +24 -0
- package/dist/extensions/codecarto/auto-runner.d.ts +3 -1
- package/dist/extensions/codecarto/auto-runner.js +20 -68
- package/dist/extensions/codecarto/index.js +125 -11
- package/dist/mcp-server/server.js +24 -68
- package/package.json +3 -2
package/.codecarto/GUIDE.md
CHANGED
|
@@ -6,6 +6,8 @@ This is a structured reverse-engineering workspace embedded inside a repository.
|
|
|
6
6
|
|
|
7
7
|
All CodeCartographer files live inside this `.codecarto/` folder. The source code is everything outside it.
|
|
8
8
|
|
|
9
|
+
**Synthesis exception.** When `workflow/status.yaml` selects `workflow/pipeline-synthesis.yaml`, this workspace is planning a new product rather than reverse-engineering the surrounding repository. Use `inputs/vision.md` and the read-only library paths supplied by the executable host. Do not treat the parent directory as source evidence for synthesis.
|
|
10
|
+
|
|
9
11
|
Work in explicit phases. Do not try to do everything at once.
|
|
10
12
|
|
|
11
13
|
## Roles
|
|
@@ -76,9 +78,11 @@ Some files in this workspace are **read-only instructions** and must not be modi
|
|
|
76
78
|
| Templates (read-only) | `templates/*.md` | Read only. Never modify. |
|
|
77
79
|
| Pipeline definitions (read-only) | `workflow/pipeline*.yaml`, `workflow/VALIDATE.md` | Read only. Never modify. |
|
|
78
80
|
| Source code (read-only) | `../` (everything outside `.codecarto/`) | Read only. Analyze but never modify. |
|
|
79
|
-
|
|
|
81
|
+
| Synthesis input (user-maintained) | `inputs/vision.md` | The user fills this before the synthesis pipeline starts. Implementing phases read it but do not rewrite the raw brief. |
|
|
82
|
+
| Workflow state (framework-owned) | `workflow/status.yaml` | Read to understand progress. Implementing sessions never edit it directly; completion applies a validated phase handoff under a lock. |
|
|
80
83
|
| Findings (read-write) | `findings/<phase>/<primary-output>.md`, secondary output files | Create and update during phases. |
|
|
81
|
-
|
|
|
84
|
+
| Phase handoff (read-write) | `scratch/handoffs/<phase>.yaml` | Implementing sessions propose state changes and closeout content here. The framework validates and applies them. |
|
|
85
|
+
| Closeouts (framework-owned) | `closeouts/<date>-<phase-or-module>.md`, `THREAD_LOG.md` | Completion writes or updates one canonical closeout and one idempotent index entry. |
|
|
82
86
|
| Conventions (orchestrator-maintained) | `CONVENTIONS.md` | Cross-cutting patterns promoted to project-wide invariants. Implementing sessions propose; the orchestrator writes. |
|
|
83
87
|
| Decisions (orchestrator-maintained, append-only) | `DECISIONS.md` | Numbered log of decisions that diverge from spec, prompt, or obvious-default. Appended at session close. |
|
|
84
88
|
| Backlog (read-write) | `BACKLOG.md` | Deferred items with rationale. |
|
|
@@ -88,7 +92,7 @@ If you are uncertain whether a file should be modified, treat it as read-only.
|
|
|
88
92
|
|
|
89
93
|
## Pipeline Selection
|
|
90
94
|
|
|
91
|
-
|
|
95
|
+
Seven pipeline variants are available. Check the `pipeline` field in `workflow/status.yaml` to see which is active.
|
|
92
96
|
|
|
93
97
|
- If the field is **empty**, ask the user which scope to use.
|
|
94
98
|
- If the field points to a **file that does not exist**, stop and ask the user to correct it. Do not guess or fall back to the default pipeline.
|
|
@@ -101,6 +105,7 @@ Six pipeline variants are available. Check the `pipeline` field in `workflow/sta
|
|
|
101
105
|
| Defect scan | `workflow/pipeline-defect-scan.yaml` | architecture → defect-scan | Maintenance audit to surface latent problems |
|
|
102
106
|
| Lite | `workflow/pipeline-lite.yaml` | architecture → contracts → protocols | Understanding behavior without porting plans |
|
|
103
107
|
| Architecture only | `workflow/pipeline-architecture-only.yaml` | architecture | Quick structural overview |
|
|
108
|
+
| Synthesis | `workflow/pipeline-synthesis.yaml` | vision-capture → goal-synthesis-propose → spec-merge → goal-synthesis-finalize | Convert a user vision and explicitly confirmed library specs into a provenance-backed project plan; requires Pi or MCP |
|
|
104
109
|
|
|
105
110
|
## Evaluation Objective
|
|
106
111
|
|
|
@@ -119,6 +124,9 @@ Produce a reusable evaluation bundle for the repository. The bundle has two purp
|
|
|
119
124
|
| Protocols and state | `findings/protocols/protocols-and-state.md` |
|
|
120
125
|
| Reverse-engineering bundle | `findings/porting/reverse-engineering-bundle.md` |
|
|
121
126
|
| Reimplementation spec | `findings/reimplementation-spec/reimplementation-spec.md` |
|
|
127
|
+
| Synthesis proposal | `findings/goal-synthesis/proposal.md` |
|
|
128
|
+
| Merged specification | `findings/spec-merge/merged-spec.md` |
|
|
129
|
+
| Evidence-backed project plan | `findings/goal-synthesis/project-plan.md` |
|
|
122
130
|
|
|
123
131
|
Not all deliverables apply to every pipeline variant. Check your active pipeline YAML for which phases and outputs are included.
|
|
124
132
|
|
|
@@ -161,7 +169,7 @@ Before beginning a phase, estimate how much source material you need to read. Fo
|
|
|
161
169
|
- Defer deep reads until the current phase actually needs them.
|
|
162
170
|
- For long phases, update `scratch/checkpoints/<phase>.md` after each major subsystem or output section. Pi writes a phase-aware checkpoint automatically after phase compaction; other hosts should use `templates/phase-checkpoint.md` manually.
|
|
163
171
|
- Every primary output must include `Coverage and limits`: inspected scope, skipped scope, evidence basis, known blind spots, and a `COMPLETE` or `PARTIAL` disposition.
|
|
164
|
-
- If you are running low on context, finish the current section, write a PARTIAL validation, and document what remains in `open_questions` (truly unknown) or `carry_forward` (deferred to a specific later phase) in
|
|
172
|
+
- If you are running low on context, finish the current section, write a PARTIAL validation, and document what remains in `open_questions` (truly unknown) or `carry_forward` (deferred to a specific later phase) in the phase handoff. See "Open Questions vs Carry-Forward" below.
|
|
165
173
|
|
|
166
174
|
### Synthesis compression boundary
|
|
167
175
|
|
|
@@ -177,8 +185,9 @@ For codebases over roughly 50 source files or 100K LOC, do not burn primary cont
|
|
|
177
185
|
|
|
178
186
|
- **`open_questions`** — items that are *still genuinely unknown*. Need more evidence (a runtime test, a maintainer decision, a spec ruling). Not resolvable by any later phase in the current pipeline.
|
|
179
187
|
- **`carry_forward`** — items that are deferred to a specific later phase because the current phase can't responsibly close them but the pipeline naturally will. Each entry has a target phase.
|
|
188
|
+
- **`post_pipeline`** — optional work after the active pipeline: spikes, amendments, deltas, maintainer rulings, or opinionated reruns. These items do not make pipeline completion partial and must not be disguised as carry-forward targets.
|
|
180
189
|
|
|
181
|
-
|
|
190
|
+
All three collections carry structured entries. Recommended phase-state shape:
|
|
182
191
|
|
|
183
192
|
```yaml
|
|
184
193
|
open_questions:
|
|
@@ -192,9 +201,13 @@ carry_forward:
|
|
|
192
201
|
target_phase: defect-scan
|
|
193
202
|
description: The `loadConfig()` callsite returns `{}` on both ENOENT and parse-error — can't tell absent from corrupt.
|
|
194
203
|
deferred_reason: framing this as a defect requires the defect-scan rubric; flagged here so defect-scan picks it up.
|
|
204
|
+
post_pipeline:
|
|
205
|
+
- id: post-runtime-1
|
|
206
|
+
kind: spike
|
|
207
|
+
description: Capture restart behavior against a packaged build after the pipeline is complete.
|
|
195
208
|
```
|
|
196
209
|
|
|
197
|
-
`kind` is one of: `needs-runtime-test`, `needs-maintainer-decision`, `needs-spec-ruling`, `defer-to-phase`, `needs-fixture-capture
|
|
210
|
+
`kind` is one of: `needs-runtime-test`, `needs-maintainer-decision`, `needs-spec-ruling`, `defer-to-phase`, `needs-fixture-capture`, or a post-pipeline work kind such as `spike` or `amendment`. Every new `carry_forward.target_phase` must be an ID in the active pipeline. Every `post_pipeline` entry requires a stable ID. Open questions should carry a stable `id` (e.g. `q-loadconfig-ambiguity`); if omitted, the framework auto-assigns one. When a later phase resolves an open question, list its id in `open_question_closures` to remove it from all phases. The downstream phase records resolved carry-forward IDs in `carry_forward_closures`; completion removes those entries atomically.
|
|
198
211
|
|
|
199
212
|
## Phase Selection Logic
|
|
200
213
|
|
|
@@ -205,9 +218,9 @@ carry_forward:
|
|
|
205
218
|
5. Load that phase's `skill_path` and all files listed in `required_reads`.
|
|
206
219
|
6. Run the phase. Write output to `primary_output`.
|
|
207
220
|
7. Run validation per `workflow/VALIDATE.md`. Append the validation block to the output.
|
|
208
|
-
8.
|
|
221
|
+
8. Write `scratch/handoffs/<phase>.yaml`, then run completion. The framework verifies the primary output and validation, applies the handoff to `status.yaml`, and maintains the closeout and `THREAD_LOG.md` entry.
|
|
209
222
|
|
|
210
|
-
**Parallel
|
|
223
|
+
**Parallel phases:** Some phases share the same `depends_on` and can run concurrently. Each session writes only its phase handoff; completion serializes canonical state changes with a filesystem lock so sibling phase state is preserved.
|
|
211
224
|
|
|
212
225
|
## Session Update Protocol
|
|
213
226
|
|
|
@@ -224,9 +237,9 @@ When a session starts:
|
|
|
224
237
|
When a session finishes durable work:
|
|
225
238
|
|
|
226
239
|
1. Run the validation step described in `workflow/VALIDATE.md`. Append a validation block to the output.
|
|
227
|
-
2.
|
|
228
|
-
3. Record 2-3 key observations in `owner_notes`
|
|
229
|
-
4.
|
|
240
|
+
2. Write `scratch/handoffs/<phase>.yaml` with `schema_version: 1`, the exact `phase_id`, arrays for `owner_notes`, `open_questions`, `carry_forward`, `carry_forward_closures`, `open_question_closures`, `post_pipeline`, and `decisions`, plus `closeout_summary` and optional multiline `closeout_content`. Omitted arrays default to empty; malformed collection shapes fail completion.
|
|
241
|
+
3. Record 2-3 key observations in the handoff's `owner_notes` (e.g., row counts, notable decisions, scope of analysis). Do not provide a canonical timestamp; the host clock owns timestamps.
|
|
242
|
+
4. Run `/codecarto-complete` (or `codecarto_complete`). The framework atomically updates `workflow/status.yaml`, writes or updates one canonical closeout, and appends one idempotent `THREAD_LOG.md` entry. Do not edit those files directly.
|
|
230
243
|
5. Store the durable output in the declared `findings/` path.
|
|
231
244
|
6. If the session made cross-cutting decisions or discovered project-wide invariants, propose additions to `CONVENTIONS.md` (in the closeout's "Proposed Conventions" section) and `DECISIONS.md` (numbered entries in the closeout's "Decisions Beyond Prompt" section). The orchestrator promotes these to the canonical files.
|
|
232
245
|
|
|
@@ -243,9 +256,9 @@ This conversation produces inputs the synthesis phase actually needs (locked tar
|
|
|
243
256
|
|
|
244
257
|
## Guardrails
|
|
245
258
|
|
|
246
|
-
These rules
|
|
259
|
+
These rules combine framework enforcement with explicit agent discipline:
|
|
247
260
|
|
|
248
|
-
1. **Validation gate:**
|
|
261
|
+
1. **Validation gate:** Completion refuses FAIL or MISSING validation. Fix the output first and re-run validation. If validation is PASS WITH GAPS, document the gaps in the handoff's `open_questions`.
|
|
249
262
|
2. **Status recovery:** If `workflow/status.yaml` becomes malformed (bad YAML syntax, missing fields), do not guess at the intended state. Stop and ask the user to review the file. Compare against the phase outputs in `findings/` to reconstruct which phases are actually complete.
|
|
250
263
|
3. **Output path verification:** After writing a phase's primary output, verify the file path matches the `primary_output` field in the active pipeline YAML. Do not write findings to a path that belongs to a different phase.
|
|
251
264
|
|
|
@@ -255,7 +268,7 @@ These rules cannot be enforced by the template — they rely on the LLM followin
|
|
|
255
268
|
- Rough working notes go under `scratch/`.
|
|
256
269
|
- The primary outputs are listed in the deliverables table above.
|
|
257
270
|
- Secondary outputs are created only when needed, using `mode: append`.
|
|
258
|
-
-
|
|
271
|
+
- Completion owns `closeouts/<YYYY-MM-DD>-<phase-or-module>.md` and `THREAD_LOG.md`; implementing sessions supply closeout content through their phase handoff.
|
|
259
272
|
- Cross-cutting patterns go in `CONVENTIONS.md`; numbered cross-cutting decisions go in `DECISIONS.md`. Both are orchestrator-maintained — implementing sessions propose in their closeout, the orchestrator promotes.
|
|
260
273
|
- Do not store durable findings only in `THREAD_LOG.md`. The log is an index, not the primary artifact store.
|
|
261
274
|
|
|
@@ -282,7 +295,8 @@ your-repo/
|
|
|
282
295
|
state-and-storage/ # (Optional) Extracted durable state notes.
|
|
283
296
|
build-and-deploy/ # (Optional) Build pipeline and packaging notes.
|
|
284
297
|
config-model/ # (Optional) Configuration inheritance and env behavior.
|
|
285
|
-
scratch/ # Disposable analysis notes.
|
|
298
|
+
scratch/ # Disposable analysis notes plus framework handoffs/checkpoints.
|
|
299
|
+
handoffs/<phase>.yaml # Structured state/closeout proposal consumed by completion.
|
|
286
300
|
templates/ # Output templates and log entry templates.
|
|
287
301
|
skills/
|
|
288
302
|
spec-delta-application/ # Post-pipeline skill: apply triaged spec deltas with citation discipline.
|
|
@@ -294,6 +308,7 @@ your-repo/
|
|
|
294
308
|
pipeline-defect-scan.yaml # 2-phase (architecture + defect scan).
|
|
295
309
|
pipeline-lite.yaml # 3-phase (no porting or reimpl).
|
|
296
310
|
pipeline-architecture-only.yaml # 1-phase (architecture only).
|
|
311
|
+
pipeline-synthesis.yaml # 4-phase forward synthesis (Pi/MCP only).
|
|
297
312
|
status.yaml # Per-project progress. Single source of truth.
|
|
298
313
|
VALIDATE.md # Validation protocol. Run after every phase.
|
|
299
314
|
closeouts/ # Per-session closeout files (replaces monolithic THREAD_LOG body).
|
package/.codecarto/README.md
CHANGED
|
@@ -36,4 +36,7 @@ pipeline: workflow/pipeline.yaml # 5-phase without defect
|
|
|
36
36
|
pipeline: workflow/pipeline-defect-scan.yaml # 2-phase defect audit — remove contracts through reimplementation-spec
|
|
37
37
|
pipeline: workflow/pipeline-lite.yaml # 3-phase understanding — remove defect-scan phases, porting, and reimplementation-spec
|
|
38
38
|
pipeline: workflow/pipeline-architecture-only.yaml # 1-phase quick overview — keep only architecture
|
|
39
|
+
pipeline: workflow/pipeline-synthesis.yaml # 4-phase forward synthesis — vision + confirmed library specs → project plan (Pi/MCP only)
|
|
39
40
|
```
|
|
41
|
+
|
|
42
|
+
The synthesis pipeline is different from the analysis variants: it requires Pi or MCP, a configured non-empty CodeCartographer library, and a completed `inputs/vision.md`. It pauses after proposing candidate specs and will not merge or finalize until the user changes at least one proposal checkbox from `[ ]` to `[x]`.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: finalize-evidence-backed-project-plan
|
|
3
|
+
description: Transform a confirmed product vision and merged reusable specifications into an executable project plan whose important decisions remain traceable.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Finalize Evidence-Backed Project Plan
|
|
7
|
+
|
|
8
|
+
Produce `findings/goal-synthesis/project-plan.md` using `templates/project-plan.md`.
|
|
9
|
+
|
|
10
|
+
Use `findings/spec-merge/merged-spec.md` as the default compression boundary. Deep-read a confirmed library specification only when the merged intermediate names a gap, unresolved conflict, or missing acceptance detail. Record any targeted deep reads in Coverage and limits.
|
|
11
|
+
|
|
12
|
+
Create a coherent build plan:
|
|
13
|
+
|
|
14
|
+
- define the first executable vertical slice,
|
|
15
|
+
- identify target components and stable public boundaries,
|
|
16
|
+
- break delivery into dependency-ordered work packages,
|
|
17
|
+
- give every work package an observable acceptance gate,
|
|
18
|
+
- preserve open conflicts and unknowns with owners or dispositions,
|
|
19
|
+
- state deliberate non-goals.
|
|
20
|
+
|
|
21
|
+
The provenance ledger is mandatory. Map every load-bearing architecture, scope, behavior, and sequencing decision to one of:
|
|
22
|
+
|
|
23
|
+
- an exact confirmed library reference and version,
|
|
24
|
+
- an exact product-vision section,
|
|
25
|
+
- an explicit synthesis decision, marked `strong inference`,
|
|
26
|
+
- an unresolved choice, marked `open question`.
|
|
27
|
+
|
|
28
|
+
Do not hide conflicts by averaging incompatible source behaviors. Prefer a clear disposition with rationale. A complete-looking plan with missing provenance must fail validation.
|
|
29
|
+
|
|
30
|
+
End with Coverage and limits and the validation table from the template.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: propose-synthesis-inputs
|
|
3
|
+
description: Rank reusable CodeCartographer library specifications against a captured product vision and create an explicit human confirmation gate.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Propose Synthesis Inputs
|
|
7
|
+
|
|
8
|
+
Produce `findings/goal-synthesis/proposal.md` using `templates/proposal.md`.
|
|
9
|
+
|
|
10
|
+
Read `findings/vision-capture/vision.md` first. Use the library index and entry paths supplied in the phase prompt. Start with metadata for all entries; deep-read a specification only when its headline, tags, or capabilities indicate a credible fit that metadata cannot resolve.
|
|
11
|
+
|
|
12
|
+
For each serious candidate:
|
|
13
|
+
|
|
14
|
+
- map its reusable capabilities to concrete vision needs,
|
|
15
|
+
- state the benefit of including it,
|
|
16
|
+
- identify likely conceptual conflicts, irrelevant surface details, and integration costs,
|
|
17
|
+
- identify vision needs no candidate covers,
|
|
18
|
+
- rank it relative to the other candidates.
|
|
19
|
+
|
|
20
|
+
Write every candidate row with an unchecked `[ ]` box. Never confirm on the user's behalf, including in auto mode. The user confirms by editing one or more boxes to `[x]` after reviewing the proposal.
|
|
21
|
+
|
|
22
|
+
On a re-run, preserve existing `[x]` selections unless the user explicitly changed them. Re-evaluate the proposal and mark validation PASS only when the shortlist is coherent; confirmation itself is enforced structurally by the next phase, not by optimistic prose.
|
|
23
|
+
|
|
24
|
+
Treat library entries as read-only. Do not merge them yet. End with Coverage and limits and the validation table from the template.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: merge-confirmed-specifications
|
|
3
|
+
description: Normalize only human-confirmed reimplementation specifications into a provenance-rich, conflict-explicit intermediate for project planning.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Merge Confirmed Specifications
|
|
7
|
+
|
|
8
|
+
Produce `findings/spec-merge/merged-spec.md` using `templates/merged-spec.md`.
|
|
9
|
+
|
|
10
|
+
Read the product vision, proposal, and only the library entries identified as human-confirmed in the phase prompt. The runtime preflight has already verified that at least one proposal checkbox is `[x]`; do not broaden the selection yourself.
|
|
11
|
+
|
|
12
|
+
Merge by concept, not by original repository structure:
|
|
13
|
+
|
|
14
|
+
- normalize capabilities that use different names for the same behavior,
|
|
15
|
+
- preserve load-bearing invariants and externally observable acceptance behavior,
|
|
16
|
+
- distinguish reusable semantics from adapters and source-specific delivery surfaces,
|
|
17
|
+
- record each incompatibility in the conflict ledger,
|
|
18
|
+
- choose `adopt`, `adapt`, `defer`, or `reject` only when the evidence supports it,
|
|
19
|
+
- keep gaps against the vision visible rather than filling them with invented behavior.
|
|
20
|
+
|
|
21
|
+
Every load-bearing row must cite an exact library reference and version, such as `team/router@v2`, or an exact section of the vision. A merged claim without provenance is a validation failure.
|
|
22
|
+
|
|
23
|
+
Treat library entries as read-only. End with Coverage and limits and the validation table from the template.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: capture-product-vision
|
|
3
|
+
description: Convert a user's intended product into bounded outcomes, constraints, acceptance scenarios, assumptions, and non-goals before selecting reusable specifications.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Capture Product Vision
|
|
7
|
+
|
|
8
|
+
Produce `findings/vision-capture/vision.md` using `templates/vision.md`.
|
|
9
|
+
|
|
10
|
+
Treat user-stated intent as the primary evidence. Do not inspect or choose library entries in this phase; selection comes later so the available implementation ingredients do not distort the problem definition.
|
|
11
|
+
|
|
12
|
+
Capture:
|
|
13
|
+
|
|
14
|
+
- the specific audience and problem,
|
|
15
|
+
- desired user-visible outcomes,
|
|
16
|
+
- scope boundaries and deliberate non-goals,
|
|
17
|
+
- technical, operational, timeline, privacy, and compatibility constraints,
|
|
18
|
+
- measurable success criteria,
|
|
19
|
+
- black-box acceptance scenarios,
|
|
20
|
+
- assumptions and decisions that still require confirmation.
|
|
21
|
+
|
|
22
|
+
Do not invent missing product choices. If this phase is running without a sufficiently detailed user vision, use the current conversation and any explicitly supplied inputs, mark unsupported details as assumptions, and return `PASS WITH GAPS`. Record truly blocking choices as stable open-question IDs in the phase handoff.
|
|
23
|
+
|
|
24
|
+
Keep architecture preferences separate from required outcomes unless the user made them explicit. The next phases need freedom to compare multiple library specifications against the same neutral vision.
|
|
25
|
+
|
|
26
|
+
End with Coverage and limits and the validation table from the template.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Synthesis vision brief
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
Replace this comment with a short description of:
|
|
5
|
+
- who the new product is for,
|
|
6
|
+
- the problem it should solve,
|
|
7
|
+
- the outcome you want,
|
|
8
|
+
- any hard constraints or non-goals.
|
|
9
|
+
|
|
10
|
+
The vision-capture phase will turn your brief into a structured, testable vision.
|
|
11
|
+
-->
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Confirmed Specification Merge
|
|
2
|
+
|
|
3
|
+
## Confirmed inputs
|
|
4
|
+
|
|
5
|
+
| Reference | Version | Source path | Role in the merge |
|
|
6
|
+
|---|---|---|---|
|
|
7
|
+
| | | | |
|
|
8
|
+
|
|
9
|
+
## Normalized capability model
|
|
10
|
+
|
|
11
|
+
| Capability | Required behavior | Invariants | Source references | Vision fit |
|
|
12
|
+
|---|---|---|---|---|
|
|
13
|
+
| | | | | |
|
|
14
|
+
|
|
15
|
+
## Architecture ingredients
|
|
16
|
+
|
|
17
|
+
| Concept | Responsibility | Inputs and outputs | Constraints | Provenance |
|
|
18
|
+
|---|---|---|---|---|
|
|
19
|
+
| | | | | |
|
|
20
|
+
|
|
21
|
+
## Conflict ledger
|
|
22
|
+
|
|
23
|
+
| ID | Sources in tension | Conflict | Disposition | Confidence |
|
|
24
|
+
|---|---|---|---|---|
|
|
25
|
+
| | | | adopt / adapt / defer / reject | observed / strong inference / open question |
|
|
26
|
+
|
|
27
|
+
## Gaps against the vision
|
|
28
|
+
|
|
29
|
+
| Vision need | Missing or weak evidence | Plan consequence |
|
|
30
|
+
|---|---|---|
|
|
31
|
+
| | | |
|
|
32
|
+
|
|
33
|
+
## Acceptance behavior inventory
|
|
34
|
+
|
|
35
|
+
| # | Behavior | Observable acceptance | Provenance |
|
|
36
|
+
|---|---|---|---|
|
|
37
|
+
| 1 | | | |
|
|
38
|
+
|
|
39
|
+
## Coverage and limits
|
|
40
|
+
|
|
41
|
+
- Inspected scope:
|
|
42
|
+
- Skipped scope:
|
|
43
|
+
- Evidence basis: confirmed library specifications | vision | proposal
|
|
44
|
+
- Known blind spots:
|
|
45
|
+
- Coverage disposition: COMPLETE | PARTIAL
|
|
46
|
+
|
|
47
|
+
## Validation
|
|
48
|
+
|
|
49
|
+
| # | Criterion | Result | Evidence |
|
|
50
|
+
|---|---|---|---|
|
|
51
|
+
| 1 | Only human-confirmed library entries are merged. | PASS / PARTIAL / FAIL | |
|
|
52
|
+
| 2 | Capabilities, invariants, constraints, and acceptance behavior are normalized by concept rather than copied by source structure. | PASS / PARTIAL / FAIL | |
|
|
53
|
+
| 3 | Conflicts, gaps, and chosen dispositions are explicit. | PASS / PARTIAL / FAIL | |
|
|
54
|
+
| 4 | Every load-bearing merged claim has a provenance reference. | PASS / PARTIAL / FAIL | |
|
|
55
|
+
| 5 | Coverage and limits name inspected scope, skipped scope, evidence basis, and blind spots. | PASS / PARTIAL / FAIL | |
|
|
56
|
+
|
|
57
|
+
**Validated by:** [session identifier or date]
|
|
58
|
+
**Overall:** PASS / PASS WITH GAPS / FAIL
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Phase handoff schema v1. Copy to scratch/handoffs/<phase-id>.yaml.
|
|
2
|
+
# The framework owns canonical timestamps, status.yaml, closeouts, and THREAD_LOG.md.
|
|
3
|
+
schema_version: 1
|
|
4
|
+
phase_id: <phase-id>
|
|
5
|
+
owner_notes: []
|
|
6
|
+
open_questions: []
|
|
7
|
+
carry_forward: []
|
|
8
|
+
carry_forward_closures: []
|
|
9
|
+
# Resolved open questions: their IDs are removed from all phases.
|
|
10
|
+
open_question_closures: []
|
|
11
|
+
# Work after the active pipeline: spikes, amendments, deltas, maintainer rulings,
|
|
12
|
+
# or opinionated reruns. Every entry requires a stable id.
|
|
13
|
+
post_pipeline: []
|
|
14
|
+
decisions: []
|
|
15
|
+
closeout_summary: ""
|
|
16
|
+
# Optional full closeout Markdown. YAML literal blocks are supported.
|
|
17
|
+
closeout_content: |-
|
|
18
|
+
# Closeout — <phase-id>
|
|
19
|
+
|
|
20
|
+
## Summary
|
|
21
|
+
|
|
22
|
+
-
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Evidence-Backed Project Plan
|
|
2
|
+
|
|
3
|
+
## Product definition
|
|
4
|
+
|
|
5
|
+
## Scope
|
|
6
|
+
|
|
7
|
+
### First executable slice
|
|
8
|
+
|
|
9
|
+
### Subsequent increments
|
|
10
|
+
|
|
11
|
+
### Non-goals
|
|
12
|
+
|
|
13
|
+
## Target architecture
|
|
14
|
+
|
|
15
|
+
| Component | Responsibility | Public boundary | Owned state and invariants | Provenance |
|
|
16
|
+
|---|---|---|---|---|
|
|
17
|
+
| | | | | |
|
|
18
|
+
|
|
19
|
+
## Work packages
|
|
20
|
+
|
|
21
|
+
| ID | Deliverable | Dependencies | Acceptance gate | Risk |
|
|
22
|
+
|---|---|---|---|---|
|
|
23
|
+
| WP-01 | | | | |
|
|
24
|
+
|
|
25
|
+
## Implementation sequence
|
|
26
|
+
|
|
27
|
+
| Order | Work package | Why now | Exit evidence |
|
|
28
|
+
|---|---|---|---|
|
|
29
|
+
| 1 | | | |
|
|
30
|
+
|
|
31
|
+
## Acceptance plan
|
|
32
|
+
|
|
33
|
+
| # | Scenario | Input or starting state | Observable result | Source |
|
|
34
|
+
|---|---|---|---|---|
|
|
35
|
+
| 1 | | | | |
|
|
36
|
+
|
|
37
|
+
## Provenance ledger
|
|
38
|
+
|
|
39
|
+
<!-- This is the differentiating contract of the synthesis pipeline. Every load-bearing decision should map to a confirmed spec, the product vision, or an explicit synthesis decision. -->
|
|
40
|
+
|
|
41
|
+
| Decision ID | Plan decision | Source specification or vision section | Evidence level | Conflict status |
|
|
42
|
+
|---|---|---|---|---|
|
|
43
|
+
| D-01 | | | observed fact / strong inference / open question | none / resolved / open |
|
|
44
|
+
|
|
45
|
+
## Conflict and unknowns register
|
|
46
|
+
|
|
47
|
+
| ID | Issue | Disposition or owner | Blocking work package |
|
|
48
|
+
|---|---|---|---|
|
|
49
|
+
| | | | |
|
|
50
|
+
|
|
51
|
+
## Coverage and limits
|
|
52
|
+
|
|
53
|
+
- Inspected scope:
|
|
54
|
+
- Skipped scope:
|
|
55
|
+
- Evidence basis: vision | confirmed specifications | merged-spec | explicit synthesis decisions
|
|
56
|
+
- Known blind spots:
|
|
57
|
+
- Coverage disposition: COMPLETE | PARTIAL
|
|
58
|
+
|
|
59
|
+
## Validation
|
|
60
|
+
|
|
61
|
+
| # | Criterion | Result | Evidence |
|
|
62
|
+
|---|---|---|---|
|
|
63
|
+
| 1 | The plan defines coherent product scope, architecture, work packages, dependencies, and acceptance gates. | PASS / PARTIAL / FAIL | |
|
|
64
|
+
| 2 | Each load-bearing plan decision is traceable through the provenance ledger. | PASS / PARTIAL / FAIL | |
|
|
65
|
+
| 3 | Conflicts and unknowns remain visible with explicit dispositions. | PASS / PARTIAL / FAIL | |
|
|
66
|
+
| 4 | The implementation sequence identifies an executable first slice. | PASS / PARTIAL / FAIL | |
|
|
67
|
+
| 5 | Coverage and limits name inspected scope, skipped scope, evidence basis, and blind spots. | PASS / PARTIAL / FAIL | |
|
|
68
|
+
|
|
69
|
+
**Validated by:** [session identifier or date]
|
|
70
|
+
**Overall:** PASS / PASS WITH GAPS / FAIL
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Synthesis Proposal
|
|
2
|
+
|
|
3
|
+
## Vision fit summary
|
|
4
|
+
|
|
5
|
+
## Candidate specifications
|
|
6
|
+
|
|
7
|
+
<!-- The first column is the human confirmation gate. Leave every candidate unchecked when first writing this proposal. The user changes selected rows from [ ] to [x]. Keep entry references exactly as shown in the phase prompt. -->
|
|
8
|
+
|
|
9
|
+
| Confirm | Library entry | Version | Vision fit | Reusable capabilities | Likely conflicts or costs |
|
|
10
|
+
|---|---|---|---|---|---|
|
|
11
|
+
| [ ] | `namespace/entry-slug` | v1 | | | |
|
|
12
|
+
|
|
13
|
+
## Capability coverage
|
|
14
|
+
|
|
15
|
+
| Vision need | Candidate coverage | Gap or decision |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| | | |
|
|
18
|
+
|
|
19
|
+
## Recommendation
|
|
20
|
+
|
|
21
|
+
## Confirmation instructions
|
|
22
|
+
|
|
23
|
+
Review the candidates above. Change at least one `[ ]` to `[x]`, save this file, and then continue the pipeline. CodeCartographer will refuse to merge or finalize until a selection is explicitly confirmed.
|
|
24
|
+
|
|
25
|
+
## Coverage and limits
|
|
26
|
+
|
|
27
|
+
- Inspected scope:
|
|
28
|
+
- Skipped scope:
|
|
29
|
+
- Evidence basis: library metadata | vision | targeted specification reads
|
|
30
|
+
- Known blind spots:
|
|
31
|
+
- Coverage disposition: COMPLETE | PARTIAL
|
|
32
|
+
|
|
33
|
+
## Validation
|
|
34
|
+
|
|
35
|
+
| # | Criterion | Result | Evidence |
|
|
36
|
+
|---|---|---|---|
|
|
37
|
+
| 1 | Candidate library entries are ranked against explicit vision needs. | PASS / PARTIAL / FAIL | |
|
|
38
|
+
| 2 | Inclusion benefits, likely conflicts, and missing capabilities are stated for every candidate. | PASS / PARTIAL / FAIL | |
|
|
39
|
+
| 3 | At least one entry is presented with an unchecked human-confirmation box. | PASS / PARTIAL / FAIL | |
|
|
40
|
+
| 4 | Coverage and limits name inspected scope, skipped scope, evidence basis, and blind spots. | PASS / PARTIAL / FAIL | |
|
|
41
|
+
|
|
42
|
+
**Validated by:** [session identifier or date]
|
|
43
|
+
**Overall:** PASS / PASS WITH GAPS / FAIL
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Product Vision
|
|
2
|
+
|
|
3
|
+
## Problem and audience
|
|
4
|
+
|
|
5
|
+
- Target audience:
|
|
6
|
+
- Problem to solve:
|
|
7
|
+
- Why existing approaches are insufficient:
|
|
8
|
+
|
|
9
|
+
## Desired outcomes
|
|
10
|
+
|
|
11
|
+
| Outcome | User-visible evidence | Priority |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| | | P0 / P1 / P2 |
|
|
14
|
+
|
|
15
|
+
## Product boundaries
|
|
16
|
+
|
|
17
|
+
### In scope
|
|
18
|
+
|
|
19
|
+
### Non-goals
|
|
20
|
+
|
|
21
|
+
## Constraints
|
|
22
|
+
|
|
23
|
+
| Constraint | Source | Consequence |
|
|
24
|
+
|---|---|---|
|
|
25
|
+
| | user-stated / inferred | |
|
|
26
|
+
|
|
27
|
+
## Success measures
|
|
28
|
+
|
|
29
|
+
| Measure | Target | How it will be observed |
|
|
30
|
+
|---|---|---|
|
|
31
|
+
| | | |
|
|
32
|
+
|
|
33
|
+
## Acceptance scenarios
|
|
34
|
+
|
|
35
|
+
| # | Actor and starting state | Action | Observable outcome |
|
|
36
|
+
|---|---|---|---|
|
|
37
|
+
| 1 | | | |
|
|
38
|
+
|
|
39
|
+
## Assumptions and unresolved decisions
|
|
40
|
+
|
|
41
|
+
| ID | Type | Statement | Resolution needed |
|
|
42
|
+
|---|---|---|---|
|
|
43
|
+
| | assumption / decision | | |
|
|
44
|
+
|
|
45
|
+
## Coverage and limits
|
|
46
|
+
|
|
47
|
+
- Inspected scope:
|
|
48
|
+
- Skipped scope:
|
|
49
|
+
- Evidence basis: user vision | supplied documents | inference
|
|
50
|
+
- Known blind spots:
|
|
51
|
+
- Coverage disposition: COMPLETE | PARTIAL
|
|
52
|
+
|
|
53
|
+
## Validation
|
|
54
|
+
|
|
55
|
+
| # | Criterion | Result | Evidence |
|
|
56
|
+
|---|---|---|---|
|
|
57
|
+
| 1 | The target audience, problem, outcomes, constraints, and non-goals are explicit. | PASS / PARTIAL / FAIL | |
|
|
58
|
+
| 2 | Success measures and acceptance scenarios are testable. | PASS / PARTIAL / FAIL | |
|
|
59
|
+
| 3 | Assumptions and unresolved decisions are separated from confirmed intent. | PASS / PARTIAL / FAIL | |
|
|
60
|
+
| 4 | Coverage and limits name inspected scope, skipped scope, evidence basis, and blind spots. | PASS / PARTIAL / FAIL | |
|
|
61
|
+
|
|
62
|
+
**Validated by:** [session identifier or date]
|
|
63
|
+
**Overall:** PASS / PASS WITH GAPS / FAIL
|