codecartographer-pi 0.16.0 → 0.17.1

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 (77) hide show
  1. package/.codecarto/GUIDE.md +16 -3
  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/architecture/SKILL.md +1 -0
  6. package/.codecarto/findings/broadside-scout/README.md +20 -0
  7. package/.codecarto/findings/broadside-scout/SKILL.md +101 -0
  8. package/.codecarto/findings/contracts/SKILL.md +1 -0
  9. package/.codecarto/findings/defect-scan/SKILL.md +15 -1
  10. package/.codecarto/findings/defect-scan/passes/01-logic-and-correctness.md +1 -1
  11. package/.codecarto/findings/defect-scan/passes/02-error-handling.md +1 -1
  12. package/.codecarto/findings/defect-scan/passes/03-concurrency-and-resources.md +1 -1
  13. package/.codecarto/findings/defect-scan/passes/04-security-and-trust.md +1 -1
  14. package/.codecarto/findings/defect-scan/passes/05-api-contract-violations.md +2 -1
  15. package/.codecarto/findings/defect-scan/passes/06-config-and-environment.md +1 -1
  16. package/.codecarto/findings/defect-scan-mechanical/SKILL.md +3 -2
  17. package/.codecarto/findings/defect-scan-semantic/SKILL.md +2 -0
  18. package/.codecarto/findings/porting/SKILL.md +2 -1
  19. package/.codecarto/findings/protocols/SKILL.md +1 -0
  20. package/.codecarto/findings/reimplementation-spec/SKILL.md +1 -1
  21. package/.codecarto/skills/spec-delta-application/SKILL.md +3 -1
  22. package/.codecarto/templates/architecture-map.md +1 -1
  23. package/.codecarto/templates/backlog-project.md +51 -0
  24. package/.codecarto/templates/broadside-scout-brief.md +97 -0
  25. package/.codecarto/templates/defect-report.md +23 -0
  26. package/.codecarto/templates/mechanical-defects.md +22 -0
  27. package/.codecarto/templates/reverse-engineering-bundle.md +2 -2
  28. package/.codecarto/templates/semantic-defects.md +26 -0
  29. package/.codecarto/{THREAD_LOG.md → templates/thread-log.md} +2 -5
  30. package/.codecarto/workflow/VALIDATE.md +1 -1
  31. package/.codecarto/workflow/pipeline-defect-scan.yaml +2 -0
  32. package/.codecarto/workflow/pipeline-full-with-audit.yaml +3 -1
  33. package/.codecarto/workflow/pipeline-full-with-deep-audit.yaml +5 -1
  34. package/.codecarto/workflow/pipeline-scout-first.yaml +275 -0
  35. package/.codecarto/workflow/scaffold-version.yaml +1 -1
  36. package/README.md +51 -6
  37. package/agent-skill/codecartographer/SKILL.md +3 -1
  38. package/agent-skill/codecartographer/references/broadside.md +115 -0
  39. package/agent-skill/codecartographer/references/deep-audit-synthesis.md +4 -1
  40. package/agent-skill/codecartographer/references/library.md +2 -2
  41. package/agent-skill/codecartographer/references/orchestration.md +1 -1
  42. package/agent-skill/codecartographer/references/pipeline-selection.md +14 -0
  43. package/dist/core/amendment.js +2 -2
  44. package/dist/core/broadside.d.ts +421 -0
  45. package/dist/core/broadside.js +2349 -0
  46. package/dist/core/completion.d.ts +5 -0
  47. package/dist/core/completion.js +38 -6
  48. package/dist/core/dashboard.js +5 -3
  49. package/dist/core/findings.d.ts +59 -0
  50. package/dist/core/findings.js +145 -0
  51. package/dist/core/index.d.ts +2 -0
  52. package/dist/core/index.js +2 -0
  53. package/dist/core/library.d.ts +88 -1
  54. package/dist/core/library.js +260 -7
  55. package/dist/core/orchestrator-config.js +5 -2
  56. package/dist/core/pipeline.js +16 -0
  57. package/dist/core/prompts.js +1 -1
  58. package/dist/core/status.js +23 -7
  59. package/dist/core/types.d.ts +6 -0
  60. package/dist/core/utils.d.ts +14 -0
  61. package/dist/core/utils.js +37 -1
  62. package/dist/core/workspace.d.ts +17 -0
  63. package/dist/core/workspace.js +79 -20
  64. package/dist/core/yaml.js +19 -4
  65. package/dist/extensions/codecarto/agent-runner.js +6 -0
  66. package/dist/extensions/codecarto/auto-runner.d.ts +2 -0
  67. package/dist/extensions/codecarto/broadside-flags.d.ts +26 -0
  68. package/dist/extensions/codecarto/broadside-flags.js +129 -0
  69. package/dist/extensions/codecarto/dashboard-narrator.js +1 -1
  70. package/dist/extensions/codecarto/index.js +270 -18
  71. package/dist/extensions/codecarto/phase-compaction.js +4 -0
  72. package/dist/mcp-server/server.d.ts +22 -0
  73. package/dist/mcp-server/server.js +282 -17
  74. package/package.json +11 -2
  75. package/.codecarto/BACKLOG.md +0 -184
  76. package/.codecarto/CHANGELOG-2026-05-02-feedback-pass.md +0 -118
  77. package/.codecarto/closeouts/2026-05-02-framework-feedback-pass.md +0 -111
@@ -77,6 +77,7 @@ Produce four outputs:
77
77
  Mark every finding with one of these evidence levels:
78
78
  - `observed fact`: direct statement from docs, tests, schemas, types, or code.
79
79
  - `strong inference`: protocol conclusion drawn from multiple facts.
80
+ - `external-behavior claim`: a claim about what the peer or a system outside this source tree does with a message (how it parses, what it ignores, version-dependent behavior); unverifiable by reading this code, so it stays unsettled until a runtime capture or that system's own source confirms it.
80
81
  - `portability hazard`: assumption tied to the source language, runtime, terminal, OS, or third-party SDKs.
81
82
  - `open question`: missing or conflicting behavior that still needs evidence.
82
83
 
@@ -69,7 +69,7 @@ End with a spike list:
69
69
  - risky performance assumptions
70
70
  - platform-sensitive areas that need targeted tests
71
71
 
72
- For every defect in the bundle, preserve its disposition (`fix before porting`, `port differently`, or `leave behind`) and convert it into an explicit design consequence or acceptance check.
72
+ For every defect in the bundle, preserve its disposition (`fix before porting`, `port differently`, `leave behind`, or `verify at runtime`) and convert it into an explicit design consequence or acceptance check — except `verify at runtime`, which becomes a Spike List entry and a `post_pipeline` entry of `kind: spike` in your handoff, never a design consequence: the diagnosis has not been confirmed, and designing around it would build the unverified claim into the new system.
73
73
 
74
74
  Use the output template at `templates/reimplementation-spec.md`.
75
75
 
@@ -26,11 +26,13 @@ Triage every delta into one of four buckets:
26
26
  |---|---|---|
27
27
  | **APPLY** | Delta is a real correction or required addition; the spec is wrong without it. | Edit the spec body. Add a `[revised per <source> §<delta-id>]` marker at the changed section. Record in DELTAS-APPLIED.md. |
28
28
  | **CLARIFY** | Delta proposes wording change; the spec's *meaning* is correct but the language is ambiguous. | Edit the spec wording (not the rule). Record in DELTAS-APPLIED.md as a clarification. |
29
- | **DEFER** | Delta is a real improvement but not load-bearing for the next implementation step. | Add to BACKLOG.md with rationale and a back-reference. Do NOT edit the spec. |
29
+ | **DEFER** | Delta is a real improvement but not load-bearing for the next implementation step. | Add to `BACKLOG.md` with rationale and a back-reference (`templates/backlog-project.md` gives the entry shape). Do NOT edit the spec. |
30
30
  | **REJECT** | Delta is wrong on close reading (premise was incorrect, scope was misread, the rule it proposes already exists, etc.). | Document in DELTAS-APPLIED.md with a one-line rationale. Do NOT edit the spec. |
31
31
 
32
32
  The previous wisdom: any delta you can't decisively bucket should default to DEFER. The cost of a missed correction is one re-application pass; the cost of a bad correction is shipped.
33
33
 
34
+ **DEFER goes to `BACKLOG.md`, not `DECISIONS.md`, and gets no `D` number.** `DECISIONS.md` is for what the project decided to *do*; `BACKLOG.md` is for what it decided to *defer*. A refinement you make while applying a delta — the applied text going beyond the literal proposal — is a decision: record it in the audit file's Decisions Beyond Triage section, and lift it into `DECISIONS.md` only if it is cross-cutting. An existing `D` entry for a proposed delta has its disposition updated in place (`APPLIED 2026-05-03 round-3`); it is never superseded by a new entry when applied.
35
+
34
36
  ## Citation convention
35
37
 
36
38
  Every applied or clarified delta leaves a citation marker in the spec body so a future reader can trace the change back to its source.
@@ -3,7 +3,7 @@
3
3
  <!--
4
4
  Output template for the architecture phase.
5
5
  Fill in each section. Remove placeholder text. Keep the section headers.
6
- Mark every conclusion as: fact / strong inference / open question.
6
+ Mark every conclusion as: fact / strong inference / external-behavior claim / open question.
7
7
  -->
8
8
 
9
9
  ## System Intent
@@ -0,0 +1,51 @@
1
+ # Backlog
2
+
3
+ Project-level deferrals: work this project decided **not** to do yet, with the reasoning
4
+ that made deferring the right call. One entry per deferral.
5
+
6
+ This is the project's backlog, not CodeCartographer's. Items about the framework itself —
7
+ a phase prompt that misled you, a validation criterion that does not fit — belong in
8
+ feedback to the framework, not here.
9
+
10
+ **BACKLOG vs DECISIONS.** `DECISIONS.md` records what the project decided to **do**;
11
+ this file records what it decided to **defer**. Deferrals get no `D` number. If a deferred
12
+ item is later picked up, remove its entry here and record the decision in `DECISIONS.md`.
13
+
14
+ ## Format
15
+
16
+ ```
17
+ ## <ID>. <Short title>
18
+
19
+ **Raised by:** <closeout file, phase, or DECISIONS.md entry that produced this deferral>
20
+
21
+ **Why deferred:** <the reasoning — what made this not worth doing now, not just "later">
22
+
23
+ **Preconditions:** <what has to land before this can be revisited: a module, an artifact,
24
+ a decision, an answer to an open question. "None" is a valid answer, but say so.>
25
+
26
+ **Smallest viable form:** <the least you could build that would settle the item, so whoever
27
+ picks it up does not have to redesign it from scratch>
28
+ ```
29
+
30
+ ## Entries
31
+
32
+ <!--
33
+ Append entries below this marker. Number them however the project prefers (B1, B2, … is
34
+ the convention the framework's own backlog uses).
35
+
36
+ Example:
37
+
38
+ ## B1. Retry policy for the upload path
39
+
40
+ **Raised by:** closeouts/2026-03-14-contracts.md
41
+
42
+ **Why deferred:** The contracts phase found no documented retry behavior, but nothing
43
+ downstream depends on knowing it — the porting phase can treat uploads as at-most-once
44
+ and flag the gap.
45
+
46
+ **Preconditions:** A protocols-phase answer on whether the server deduplicates by
47
+ request id. Without that, any retry policy written here is a guess.
48
+
49
+ **Smallest viable form:** One paragraph in the contracts report stating the observed
50
+ behavior and the assumption downstream phases should hold.
51
+ -->
@@ -0,0 +1,97 @@
1
+ # Broad-Side Scout Brief — [project_name]
2
+
3
+ <!--
4
+ Output template for the `broadside-scout` phase.
5
+ Distills a Broad-Side batch reconnaissance run into leads routed to later
6
+ phases. See findings/broadside-scout/SKILL.md for instructions.
7
+
8
+ Every entry here is an UNVERIFIED lead from a cheap batch model, not a
9
+ finding. No later phase may cite this file as a source.
10
+ -->
11
+
12
+ ## Scout Context
13
+
14
+ - **Run:** `broadside/[run-id]/` (or: no completed run — see Scout Coverage)
15
+ - **Model:** [batch model id]
16
+ - **Lenses that ran:** [list]
17
+ - **Recorded cost:** [from run-meta.json]
18
+ - **Pipeline:** [pipeline variant name]
19
+ - **Date:** [date]
20
+
21
+ > These are unverified scouting leads. Each one is a place to look, not a
22
+ > fact. The receiving phase confirms it against the source and cites the
23
+ > source — never this brief.
24
+
25
+ ---
26
+
27
+ ## Leads by Phase
28
+
29
+ <!--
30
+ One row per lead. Target must be a phase in the active pipeline.
31
+ Source pointer is the file:line (or module) the receiving phase starts from.
32
+ Confidence is the scout's, not yours: high / medium / low.
33
+ Drop anything the target phase would find in its own first pass.
34
+ -->
35
+
36
+ | # | Target phase | Lead | Source pointer | Lens | Scout confidence |
37
+ |---|--------------|------|----------------|------|------------------|
38
+ | 1 | | | | | |
39
+
40
+ ---
41
+
42
+ ## Convention Candidates
43
+
44
+ <!--
45
+ From the conventions lens. These route to the orchestrator's CONVENTIONS.md
46
+ promotion review, not to a phase. Candidates only — promotion still requires
47
+ the orchestrator's review against the code.
48
+ -->
49
+
50
+ | # | Candidate convention | Where the scout saw it |
51
+ |---|----------------------|------------------------|
52
+ | 1 | | |
53
+
54
+ ---
55
+
56
+ ## Leads Dropped
57
+
58
+ <!--
59
+ What you chose not to forward, and why. This is the record that keeps the
60
+ brief short without hiding the discard.
61
+ -->
62
+
63
+ | # | Lead | Why dropped |
64
+ |---|------|-------------|
65
+ | 1 | | |
66
+
67
+ ---
68
+
69
+ ## Coverage and limits
70
+
71
+ <!--
72
+ What the scout scanned, what it did not, and what came back unusable. A
73
+ later phase must be able to tell "the scout found nothing there" from "the
74
+ scout never looked there." Sourced from broadside/<run>/run-meta.json.
75
+ -->
76
+
77
+ - Inspected scope: [modules scanned, or "whole repository in one slice"]
78
+ - Skipped scope: [modules the lens globs, slicing cap, or incremental diff excluded; lenses skipped, with reason]
79
+ - Evidence basis: batch-model scouting signals only — no source inspection, no tests, no runtime verification
80
+ - Known blind spots: [truncated slices and the modules they covered; everything under Skipped scope is unscouted, not clean]
81
+ - Coverage disposition: COMPLETE | PARTIAL | NONE (no completed Broad-Side run)
82
+
83
+ ## Validation
84
+
85
+ <!-- Fill in this table per workflow/VALIDATE.md. The rows below match the broadside-scout scope. -->
86
+
87
+ | # | Criterion | Result | Evidence |
88
+ |---|-----------|--------|----------|
89
+ | 1 | Every forwarded lead names a target phase in this pipeline and a source pointer the target phase can start from. | PASS / PARTIAL / FAIL | |
90
+ | 2 | Every lead is marked as an unverified scouting signal; none is stated as a fact or cited as evidence. | PASS / PARTIAL / FAIL | |
91
+ | 3 | Leads dropped rather than forwarded are recorded with a reason. | PASS / PARTIAL / FAIL | |
92
+ | 4 | Convention candidates are routed to the orchestrator's CONVENTIONS.md review, not to a phase. | PASS / PARTIAL / FAIL | |
93
+ | 5 | When no completed Broad-Side run exists, the brief says so explicitly and forwards no leads. | PASS / PARTIAL / FAIL | |
94
+ | 6 | Coverage and limits name inspected scope, skipped scope, evidence basis, and blind spots. | PASS / PARTIAL / FAIL | |
95
+
96
+ **Validated by:** [session identifier or date]
97
+ **Overall:** PASS / PASS WITH GAPS / FAIL
@@ -16,6 +16,12 @@
16
16
  <!-- For each finding: location, defect, evidence, severity, evidence level, action. -->
17
17
  <!-- Sort by severity: critical → high → medium → low. -->
18
18
  <!-- If no findings, write "No defects found in this category." -->
19
+ <!-- Evidence Level: observed fact / strong inference / external-behavior claim / open question.
20
+ Action — pre-porting pipelines: fix before porting / port differently / leave behind / verify at runtime;
21
+ maintenance pipelines: fix now / track / accept / investigate.
22
+ Pairing rule (validated mechanically): open question or external-behavior claim ⇒ verify at
23
+ runtime or port differently (pre-porting) / investigate (maintenance), never fix before porting
24
+ or fix now; and list the finding in ## Open Questions below. -->
19
25
 
20
26
  | # | Location | Defect | Severity | Evidence Level | Action |
21
27
  |---|----------|--------|----------|----------------|--------|
@@ -99,6 +105,21 @@
99
105
 
100
106
  ---
101
107
 
108
+ ## Open Questions
109
+
110
+ <!-- Every finding whose Evidence Level is open question or external-behavior claim gets a row
111
+ here, so the hedge travels with the finding into this document — not only into the handoff.
112
+ Mirror each row into your phase handoff's open_questions (kind: needs-runtime-test unless a
113
+ maintainer decision or spec ruling is what is missing). Derived findings lists the finding
114
+ numbers (e.g. "5.2, 4.1") that depend on this question; none of them may carry a settled
115
+ action while the question stands. -->
116
+
117
+ | ID | Kind | Question | Why source cannot settle it | Derived findings |
118
+ |----|------|----------|-----------------------------|------------------|
119
+ | | | | | |
120
+
121
+ ---
122
+
102
123
  ## Coverage and limits
103
124
 
104
125
  - Inspected scope:
@@ -120,6 +141,8 @@
120
141
  | 4 | Summary tables are complete and counts match the detailed findings. | PASS / PARTIAL / FAIL | |
121
142
  | 5 | Findings are marked with evidence levels. | PASS / PARTIAL / FAIL | |
122
143
  | 6 | Coverage and limits name inspected scope, skipped scope, evidence basis, and blind spots. | PASS / PARTIAL / FAIL | |
144
+ | 7 | Unsettled findings (evidence level open question or external-behavior claim) carry an unsettled action (verify at runtime or port differently on pre-porting pipelines; investigate on maintenance pipelines), never a settled one, and each appears in the Open Questions table. | PASS / PARTIAL / FAIL | |
145
+ | 8 | Every quantitative specific in a finding (size, count, default, version, timeout) cites the file and line or command output it was read from, or is marked as an estimate. | PASS / PARTIAL / FAIL | |
123
146
 
124
147
  **Validated by:** [session identifier or date]
125
148
  **Overall:** PASS / PASS WITH GAPS / FAIL
@@ -22,6 +22,11 @@
22
22
  <!-- For each finding: location, defect, evidence, severity, evidence level, action. -->
23
23
  <!-- Sort by severity: critical → high → medium → low. -->
24
24
  <!-- If no findings, write "No defects found in this category." -->
25
+ <!-- Evidence Level: observed fact / strong inference / external-behavior claim / open question.
26
+ Action: fix before porting / port differently / leave behind / verify at runtime.
27
+ Pairing rule (validated mechanically): open question or external-behavior claim ⇒
28
+ verify at runtime or port differently, never fix before porting; and list the finding
29
+ in ## Open Questions below. -->
25
30
 
26
31
  | # | Location | Defect | Severity | Evidence Level | Action |
27
32
  |---|----------|--------|----------|----------------|--------|
@@ -90,6 +95,21 @@
90
95
 
91
96
  ---
92
97
 
98
+ ## Open Questions
99
+
100
+ <!-- Every finding whose Evidence Level is open question or external-behavior claim gets a row
101
+ here, so the hedge travels with the finding into this document — not only into the handoff.
102
+ Mirror each row into your phase handoff's open_questions (kind: needs-runtime-test unless a
103
+ maintainer decision or spec ruling is what is missing). Derived findings lists the finding
104
+ numbers (e.g. "1.3, 6.1") that depend on this question; none of them may carry a settled
105
+ action while the question stands. -->
106
+
107
+ | ID | Kind | Question | Why source cannot settle it | Derived findings |
108
+ |----|------|----------|-----------------------------|------------------|
109
+ | | | | | |
110
+
111
+ ---
112
+
93
113
  ## Coverage and limits
94
114
 
95
115
  - Inspected scope:
@@ -110,6 +130,8 @@
110
130
  | 4 | Summary tables are complete and counts match the detailed findings. | PASS / PARTIAL / FAIL | |
111
131
  | 5 | Findings are marked with evidence levels. | PASS / PARTIAL / FAIL | |
112
132
  | 6 | Coverage and limits name inspected scope, skipped scope, evidence basis, and blind spots. | PASS / PARTIAL / FAIL | |
133
+ | 7 | Unsettled findings (evidence level open question or external-behavior claim) carry an unsettled action (verify at runtime or port differently on pre-porting pipelines; investigate on maintenance pipelines), never a settled one, and each appears in the Open Questions table. | PASS / PARTIAL / FAIL | |
134
+ | 8 | Every quantitative specific in a finding (size, count, default, version, timeout) cites the file and line or command output it was read from, or is marked as an estimate. | PASS / PARTIAL / FAIL | |
113
135
 
114
136
  **Validated by:** [session identifier or date]
115
137
  **Overall:** PASS / PASS WITH GAPS / FAIL
@@ -86,7 +86,7 @@
86
86
 
87
87
  | Defect ID | Source Report | One-line Description | Severity | Disposition | Required design consequence |
88
88
  |-----------|---------------|----------------------|----------|-------------|-----------------------------|
89
- | | | | | fix before porting / port differently / leave behind | |
89
+ | | | | | fix before porting / port differently / leave behind / verify at runtime | |
90
90
 
91
91
  ## Observed Facts vs. Inferred Structure
92
92
 
@@ -159,7 +159,7 @@
159
159
  | 1 | The system summary, layer map, contract table, protocol notes, and porting findings are synthesized. | PASS / PARTIAL / FAIL | |
160
160
  | 2 | Portability hazards and open questions are separated from facts. | PASS / PARTIAL / FAIL | |
161
161
  | 3 | Feature importance is sorted for porting. | PASS / PARTIAL / FAIL | |
162
- | 4 | Known defects are referenced in the Defect Synthesis with porting recommendations (fix before porting / port differently / leave behind), or the section explicitly notes that no defect scan ran. | PASS / PARTIAL / FAIL | |
162
+ | 4 | Known defects are referenced in the Defect Synthesis with porting recommendations (fix before porting / port differently / leave behind / verify at runtime), or the section explicitly notes that no defect scan ran. | PASS / PARTIAL / FAIL | |
163
163
  | 5 | Findings are marked with evidence levels. | PASS / PARTIAL / FAIL | |
164
164
  | 6 | Coverage and limits name inspected scope, skipped scope, evidence basis, and blind spots. | PASS / PARTIAL / FAIL | |
165
165
  | 7 | The Source Index makes the bundle a self-contained compression boundary and identifies targeted deep-read triggers. | PASS / PARTIAL / FAIL | |
@@ -25,6 +25,12 @@
25
25
  <!-- For each finding: location, defect, evidence, severity, evidence level, action. -->
26
26
  <!-- Cite the protocol or state-machine entry that the finding violates, when relevant. -->
27
27
  <!-- If no findings, write "No defects found in this category." -->
28
+ <!-- Evidence Level: observed fact / strong inference / external-behavior claim / open question.
29
+ Action: fix before porting / port differently / leave behind / verify at runtime.
30
+ Pairing rule (validated mechanically): open question or external-behavior claim ⇒
31
+ verify at runtime or port differently, never fix before porting; and list the finding
32
+ in ## Open Questions below. A finding that closes a routed carry-forward derived from a
33
+ still-open needs-runtime-test question inherits that uncertainty. -->
28
34
 
29
35
  | # | Location | Defect | Severity | Evidence Level | Action |
30
36
  |---|----------|--------|----------|----------------|--------|
@@ -45,6 +51,9 @@
45
51
  ## Pass 5: API Contract Violations
46
52
 
47
53
  <!-- Each finding should pair the source contract/protocol reference with the diverging code location. -->
54
+ <!-- When the analyzed code is the CALLER of a contract another system implements, what that system
55
+ does with the payload is an external-behavior claim (action: verify at runtime) until a runtime
56
+ probe against the pinned version says otherwise — see passes/05 "Which side implements the contract". -->
48
57
 
49
58
  | # | Location | Defect | Severity | Evidence Level | Action | Spec Reference |
50
59
  |---|----------|--------|----------|----------------|--------|----------------|
@@ -95,6 +104,21 @@
95
104
 
96
105
  ---
97
106
 
107
+ ## Open Questions
108
+
109
+ <!-- Every finding whose Evidence Level is open question or external-behavior claim gets a row
110
+ here, so the hedge travels with the finding into this document — not only into the handoff.
111
+ Include any still-open needs-runtime-test question a closed carry-forward derived from.
112
+ Mirror each row into your phase handoff's open_questions. Derived findings lists the finding
113
+ numbers (e.g. "5.2") that depend on this question; none of them may carry a settled action
114
+ while the question stands. -->
115
+
116
+ | ID | Kind | Question | Why source cannot settle it | Derived findings |
117
+ |----|------|----------|-----------------------------|------------------|
118
+ | | | | | |
119
+
120
+ ---
121
+
98
122
  ## Coverage and limits
99
123
 
100
124
  - Inspected scope:
@@ -115,6 +139,8 @@
115
139
  | 4 | Findings are organized by pass and sorted by severity; summary tables match the detailed findings. | PASS / PARTIAL / FAIL | |
116
140
  | 5 | Findings are marked with evidence levels. | PASS / PARTIAL / FAIL | |
117
141
  | 6 | Coverage and limits name inspected scope, skipped scope, evidence basis, and blind spots. | PASS / PARTIAL / FAIL | |
142
+ | 7 | Unsettled findings (evidence level open question or external-behavior claim) carry an unsettled action (verify at runtime or port differently on pre-porting pipelines; investigate on maintenance pipelines), never a settled one, and each appears in the Open Questions table. | PASS / PARTIAL / FAIL | |
143
+ | 8 | Every quantitative specific in a finding (size, count, default, version, timeout) cites the file and line or command output it was read from, or is marked as an estimate. | PASS / PARTIAL / FAIL | |
118
144
 
119
145
  **Validated by:** [session identifier or date]
120
146
  **Overall:** PASS / PASS WITH GAPS / FAIL
@@ -19,8 +19,7 @@ heredoc-vs-edit sync risks that bite append-to-large-file workflows once the fil
19
19
 
20
20
  Before appending, scan the bottom 5 entries. If you see a line with the same date AND same
21
21
  phase-or-module AND same summary, do not append — the prior session already wrote it. The
22
- framework has no programmatic dedup gate; this is human-discipline. (See
23
- `Apply 20 spec deltas to Thaumaturge.txt` for the incident that established this rule.)
22
+ framework has no programmatic dedup gate; this is human-discipline.
24
23
 
25
24
  A one-liner to surface duplicates from the shell:
26
25
 
@@ -33,7 +32,5 @@ grep -E '^- [0-9]{4}-[0-9]{2}-[0-9]{2}' .codecarto/THREAD_LOG.md | sort | uniq -
33
32
  <!--
34
33
  Append one line per session below this marker.
35
34
  Example:
36
- - 2026-05-02 — framework-feedback-pass — applied 6 spec-blockers + 5 clarifications from FEEDBACK_INDEX.md — [closeout](closeouts/2026-05-02-framework-feedback-pass.md)
35
+ - 2026-03-14 — architecture — mapped 14 packages across 3 layers; wire formats deferred to protocols — [closeout](closeouts/2026-03-14-architecture.md)
37
36
  -->
38
-
39
- - 2026-05-02 — framework-feedback-pass — applied 6 spec-blockers + 5 clarifications from FEEDBACK_INDEX.md; 14 deferred to BACKLOG.md — [closeout](closeouts/2026-05-02-framework-feedback-pass.md)
@@ -50,7 +50,7 @@ Below is what a real PASS WITH GAPS block looks like — useful when a phase fin
50
50
  | 2 | The layer map and dependency direction are documented. | PASS | §Layer Map; dependency direction in §Layer Map → "Dependency Direction." |
51
51
  | 3 | Public surfaces are identified. | PARTIAL | CLI commands and HTTP routes enumerated (§Public Surfaces). MCP server endpoints and the websocket subscription channel are listed by name only — schemas not extracted. Routed to `carry_forward` as `arch-CF2` with `target_phase: protocols`. |
52
52
  | 4 | Runtime lifecycle, concurrency model, and porting priorities are summarized. | PASS | §Runtime Lifecycle, §Concurrency Model, §Porting Priorities (table). |
53
- | 5 | Findings are marked with evidence levels. | PASS | All inferences marked `observed fact` / `strong inference` / `portability hazard` / `open question`. |
53
+ | 5 | Findings are marked with evidence levels. | PASS | All inferences marked `observed fact` / `strong inference` / `portability hazard` / `external-behavior claim` / `open question`. |
54
54
 
55
55
  **Validated by:** 2026-05-02 (architecture phase, session 1)
56
56
  **Overall:** PASS WITH GAPS
@@ -56,6 +56,8 @@ phases:
56
56
  - Findings are organized by pass and sorted by severity.
57
57
  - Summary tables are complete and counts match the detailed findings.
58
58
  - Findings are marked with evidence levels.
59
+ - Unsettled findings (evidence level open question or external-behavior claim) carry an unsettled action (verify at runtime or port differently on pre-porting pipelines; investigate on maintenance pipelines), never a settled one, and each appears in the Open Questions table.
60
+ - Every quantitative specific in a finding (size, count, default, version, timeout) cites the file and line or command output it was read from, or is marked as an estimate.
59
61
  - Coverage and limits name inspected scope, skipped scope, evidence basis, and blind spots.
60
62
  handoff_requirements:
61
63
  - Run validation per workflow/VALIDATE.md. Append validation block to primary output.
@@ -60,6 +60,8 @@ phases:
60
60
  - Findings are organized by pass and sorted by severity.
61
61
  - Summary tables are complete and counts match the detailed findings.
62
62
  - Findings are marked with evidence levels.
63
+ - Unsettled findings (evidence level open question or external-behavior claim) carry an unsettled action (verify at runtime or port differently on pre-porting pipelines; investigate on maintenance pipelines), never a settled one, and each appears in the Open Questions table.
64
+ - Every quantitative specific in a finding (size, count, default, version, timeout) cites the file and line or command output it was read from, or is marked as an estimate.
63
65
  - Coverage and limits name inspected scope, skipped scope, evidence basis, and blind spots.
64
66
  handoff_requirements:
65
67
  - Run validation per workflow/VALIDATE.md. Append validation block to primary output.
@@ -159,7 +161,7 @@ phases:
159
161
  - The system summary, layer map, contract table, protocol notes, and porting findings are synthesized.
160
162
  - Portability hazards and open questions are separated from facts.
161
163
  - Feature importance is sorted for porting.
162
- - Known defects are referenced with porting recommendations (fix before porting / port differently / leave behind).
164
+ - Known defects are referenced with porting recommendations (fix before porting / port differently / leave behind / verify at runtime).
163
165
  - Findings are marked with evidence levels.
164
166
  - Coverage and limits name inspected scope, skipped scope, evidence basis, and blind spots.
165
167
  - The Source Index makes the bundle a self-contained compression boundary and identifies targeted deep-read triggers.
@@ -62,6 +62,8 @@ phases:
62
62
  - Summary tables are complete and counts match the detailed findings.
63
63
  - Items spotted that are actually semantic in nature are routed onward via a carry_forward entry in the phase handoff targeting defect-scan-semantic.
64
64
  - Findings are marked with evidence levels.
65
+ - Unsettled findings (evidence level open question or external-behavior claim) carry an unsettled action (verify at runtime or port differently on pre-porting pipelines; investigate on maintenance pipelines), never a settled one, and each appears in the Open Questions table.
66
+ - Every quantitative specific in a finding (size, count, default, version, timeout) cites the file and line or command output it was read from, or is marked as an estimate.
65
67
  - Coverage and limits name inspected scope, skipped scope, evidence basis, and blind spots.
66
68
  handoff_requirements:
67
69
  - Run validation per workflow/VALIDATE.md. Append validation block to primary output.
@@ -157,6 +159,8 @@ phases:
157
159
  - Findings are organized by pass and sorted by severity; summary tables match the detailed findings.
158
160
  - Any carry_forward entries that targeted defect-scan-semantic have been resolved or explicitly re-routed.
159
161
  - Findings are marked with evidence levels.
162
+ - Unsettled findings (evidence level open question or external-behavior claim) carry an unsettled action (verify at runtime or port differently on pre-porting pipelines; investigate on maintenance pipelines), never a settled one, and each appears in the Open Questions table.
163
+ - Every quantitative specific in a finding (size, count, default, version, timeout) cites the file and line or command output it was read from, or is marked as an estimate.
160
164
  - Coverage and limits name inspected scope, skipped scope, evidence basis, and blind spots.
161
165
  handoff_requirements:
162
166
  - Run validation per workflow/VALIDATE.md. Append validation block to primary output.
@@ -196,7 +200,7 @@ phases:
196
200
  - The system summary, layer map, contract table, protocol notes, and porting findings are synthesized.
197
201
  - Portability hazards and open questions are separated from facts.
198
202
  - Feature importance is sorted for porting.
199
- - Defect Synthesis consolidates mechanical-defects.md and semantic-defects.md with porting recommendations (fix before porting / port differently / leave behind).
203
+ - Defect Synthesis consolidates mechanical-defects.md and semantic-defects.md with porting recommendations (fix before porting / port differently / leave behind / verify at runtime).
200
204
  - Findings are marked with evidence levels.
201
205
  - Coverage and limits name inspected scope, skipped scope, evidence basis, and blind spots.
202
206
  - The Source Index makes the bundle a self-contained compression boundary and identifies targeted deep-read triggers.