@pantion/dialogs 0.2.1 → 0.3.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 (126) hide show
  1. package/dialogs/router/convergence-rules.md +160 -0
  2. package/dialogs/router/dialog.json +12 -0
  3. package/dialogs/router/translate.md +21 -0
  4. package/dialogs/software/convergence-rules.md +202 -15
  5. package/dialogs/software/prompts/convergence-intro.md +27 -15
  6. package/dist/core/feedback/aggregator.d.ts +7 -0
  7. package/dist/core/feedback/aggregator.d.ts.map +1 -0
  8. package/dist/core/feedback/aggregator.js +119 -0
  9. package/dist/core/feedback/aggregator.js.map +1 -0
  10. package/dist/core/feedback/store.d.ts +20 -0
  11. package/dist/core/feedback/store.d.ts.map +1 -0
  12. package/dist/core/feedback/store.js +111 -0
  13. package/dist/core/feedback/store.js.map +1 -0
  14. package/dist/core/feedback/suggestions.d.ts +5 -0
  15. package/dist/core/feedback/suggestions.d.ts.map +1 -0
  16. package/dist/core/feedback/suggestions.js +60 -0
  17. package/dist/core/feedback/suggestions.js.map +1 -0
  18. package/dist/core/feedback/types.d.ts +26 -0
  19. package/dist/core/feedback/types.d.ts.map +1 -0
  20. package/dist/core/feedback/types.js +2 -0
  21. package/dist/core/feedback/types.js.map +1 -0
  22. package/dist/core/index.d.ts +16 -3
  23. package/dist/core/index.d.ts.map +1 -1
  24. package/dist/core/index.js +10 -2
  25. package/dist/core/index.js.map +1 -1
  26. package/dist/core/protocol/loader.d.ts +4 -0
  27. package/dist/core/protocol/loader.d.ts.map +1 -1
  28. package/dist/core/protocol/loader.js +16 -0
  29. package/dist/core/protocol/loader.js.map +1 -1
  30. package/dist/core/protocol/stamp-parser.d.ts.map +1 -1
  31. package/dist/core/protocol/stamp-parser.js +2 -1
  32. package/dist/core/protocol/stamp-parser.js.map +1 -1
  33. package/dist/core/protocol/system-prompt.d.ts +17 -0
  34. package/dist/core/protocol/system-prompt.d.ts.map +1 -1
  35. package/dist/core/protocol/system-prompt.js +63 -5
  36. package/dist/core/protocol/system-prompt.js.map +1 -1
  37. package/dist/core/router/classifier.d.ts +29 -0
  38. package/dist/core/router/classifier.d.ts.map +1 -0
  39. package/dist/core/router/classifier.js +160 -0
  40. package/dist/core/router/classifier.js.map +1 -0
  41. package/dist/core/router/context.d.ts +28 -0
  42. package/dist/core/router/context.d.ts.map +1 -0
  43. package/dist/core/router/context.js +65 -0
  44. package/dist/core/router/context.js.map +1 -0
  45. package/dist/core/router/menu.d.ts +18 -0
  46. package/dist/core/router/menu.d.ts.map +1 -0
  47. package/dist/core/router/menu.js +109 -0
  48. package/dist/core/router/menu.js.map +1 -0
  49. package/dist/core/router/next-actions.d.ts +17 -0
  50. package/dist/core/router/next-actions.d.ts.map +1 -0
  51. package/dist/core/router/next-actions.js +153 -0
  52. package/dist/core/router/next-actions.js.map +1 -0
  53. package/dist/core/router/types.d.ts +49 -0
  54. package/dist/core/router/types.d.ts.map +1 -0
  55. package/dist/core/router/types.js +8 -0
  56. package/dist/core/router/types.js.map +1 -0
  57. package/dist/core/types.d.ts +2 -0
  58. package/dist/core/types.d.ts.map +1 -1
  59. package/dist/core/utils/datetime.d.ts +13 -0
  60. package/dist/core/utils/datetime.d.ts.map +1 -0
  61. package/dist/core/utils/datetime.js +17 -0
  62. package/dist/core/utils/datetime.js.map +1 -0
  63. package/dist/feature-set.d.ts.map +1 -1
  64. package/dist/feature-set.js +4 -0
  65. package/dist/feature-set.js.map +1 -1
  66. package/dist/index.js +3 -3
  67. package/dist/index.js.map +1 -1
  68. package/dist/prompts/workflow-prompts.d.ts.map +1 -1
  69. package/dist/prompts/workflow-prompts.js +81 -1
  70. package/dist/prompts/workflow-prompts.js.map +1 -1
  71. package/dist/server.d.ts.map +1 -1
  72. package/dist/server.js +6 -0
  73. package/dist/server.js.map +1 -1
  74. package/dist/tools/amend.d.ts.map +1 -1
  75. package/dist/tools/amend.js +2 -2
  76. package/dist/tools/amend.js.map +1 -1
  77. package/dist/tools/approve.d.ts.map +1 -1
  78. package/dist/tools/approve.js +2 -2
  79. package/dist/tools/approve.js.map +1 -1
  80. package/dist/tools/build.d.ts +4 -0
  81. package/dist/tools/build.d.ts.map +1 -0
  82. package/dist/tools/build.js +200 -0
  83. package/dist/tools/build.js.map +1 -0
  84. package/dist/tools/check-convergence.d.ts.map +1 -1
  85. package/dist/tools/check-convergence.js +15 -1
  86. package/dist/tools/check-convergence.js.map +1 -1
  87. package/dist/tools/feedback.d.ts +4 -0
  88. package/dist/tools/feedback.d.ts.map +1 -0
  89. package/dist/tools/feedback.js +51 -0
  90. package/dist/tools/feedback.js.map +1 -0
  91. package/dist/tools/index.d.ts.map +1 -1
  92. package/dist/tools/index.js +9 -1
  93. package/dist/tools/index.js.map +1 -1
  94. package/dist/tools/learn.d.ts +4 -0
  95. package/dist/tools/learn.d.ts.map +1 -0
  96. package/dist/tools/learn.js +38 -0
  97. package/dist/tools/learn.js.map +1 -0
  98. package/dist/tools/reflect.d.ts.map +1 -1
  99. package/dist/tools/reflect.js +68 -1
  100. package/dist/tools/reflect.js.map +1 -1
  101. package/dist/tools/reject.d.ts.map +1 -1
  102. package/dist/tools/reject.js +2 -2
  103. package/dist/tools/reject.js.map +1 -1
  104. package/dist/tools/router.d.ts +10 -0
  105. package/dist/tools/router.d.ts.map +1 -0
  106. package/dist/tools/router.js +315 -0
  107. package/dist/tools/router.js.map +1 -0
  108. package/dist/tools/save-canon.d.ts.map +1 -1
  109. package/dist/tools/save-canon.js +28 -12
  110. package/dist/tools/save-canon.js.map +1 -1
  111. package/dist/tools/start.d.ts.map +1 -1
  112. package/dist/tools/start.js +20 -7
  113. package/dist/tools/start.js.map +1 -1
  114. package/dist/tools/translate.d.ts.map +1 -1
  115. package/dist/tools/translate.js +21 -4
  116. package/dist/tools/translate.js.map +1 -1
  117. package/package.json +1 -1
  118. package/protocol/commands/dialog-post.md +46 -0
  119. package/protocol/commands/dialog-stamps.md +67 -0
  120. package/protocol/commands/dialog.md +4 -98
  121. package/protocol/commands/start-post.md +53 -0
  122. package/protocol/commands/start-stamps.md +133 -0
  123. package/protocol/commands/start.md +20 -167
  124. package/protocol/core-save.md +102 -0
  125. package/protocol/core-stamps.md +97 -0
  126. package/protocol/core.md +4 -191
@@ -0,0 +1,46 @@
1
+ # /pantion-dialog — Post-Convergence Phases
2
+
3
+ > Deferred command section. Loaded when translating or building from a dialog canon.
4
+ > See `dialog.md` for the questioning-phase protocol.
5
+
6
+ ## PHASE 2: DIALOG TRANSLATION
7
+
8
+ Generate the same files as full dialog mode, but:
9
+ - Mark all assumptions with `ASSUMPTION:` in the files
10
+ - Keep files shorter and more pragmatic
11
+ - Skip command files unless there are clear workflows
12
+
13
+ All derived files point to the dialog: `<!-- Derived from: canon/{naam}/dialog.md, [date] -->`
14
+
15
+ ### Extra file:
16
+
17
+ **`canon/assumptions.md`**
18
+
19
+ List all assumptions made in dialog mode with their conservative defaults. Reference to the dialog turns where the assumption was made. Each assumption can be replaced with an explicit choice via /pantion-amend.
20
+
21
+ ---
22
+
23
+ ## PHASE 3: DIALOG BUILD
24
+
25
+ Build the system with the same rules as full dialog mode.
26
+
27
+ ### Extra after building:
28
+
29
+ Say:
30
+
31
+ "Prototype is built. I made [N] assumptions.
32
+ Here are the most important ones:
33
+
34
+ 1. [assumption 1]
35
+ 2. [assumption 2]
36
+ 3. [assumption 3]
37
+
38
+ Want to adjust any of these? Or would you like to run the full protocol with /pantion-start for a deeper convergence?"
39
+
40
+ ## Canon Index
41
+
42
+ Update `canon/index.md` when completing a dialog session:
43
+ - Status: CONVERGED (DIALOG)
44
+ - References to both dialog file and summary file
45
+ - List of all assumptions
46
+ - Reference to `canon/assumptions.md`
@@ -0,0 +1,67 @@
1
+ # /pantion-dialog — Stamps & Saving
2
+
3
+ > Deferred command section. Loaded when checking convergence or saving a dialog canon.
4
+ > See `dialog.md` for the questioning-phase protocol.
5
+
6
+ ## Saving the dialog (CRITICAL — the dialog IS the canon)
7
+
8
+ Same principle as full dialog mode: the verbatim dialog is always saved.
9
+
10
+ **Two files are always produced:**
11
+ - `canon/{naam}/dialog.md` — THE CANON: the verbatim dialog (dialog status is in the stamp, not the filename)
12
+ - `canon/{naam}/summary.md` — DERIVED: structured summary for navigation
13
+
14
+ ## Pre-stamp quality check (recommended)
15
+
16
+ Before setting the convergence stamp, it is recommended to run `pantion_check` on the dialog. This provides a structural quality scorecard that can surface gaps before the stamp is finalized. This is not blocking — the HUMAN STAMP remains the actual authorization gate.
17
+
18
+ ## Convergence Verification Table (dialog variant)
19
+
20
+ Before the stamp, include the verification table (with assumptions marked):
21
+
22
+ **Convergence Verification:**
23
+
24
+ | Criterium | Status |
25
+ |-----------|--------|
26
+ | Canon status | ✅ |
27
+ | Intent clarity | ✅ |
28
+ | Observable success | ✅ |
29
+ | Inputs complete | ✅ |
30
+ | Outputs unambiguous | ✅ |
31
+ | Failure specified | ⚡ ASSUMPTION: graceful fail |
32
+ | Constraints absolute | ✅ |
33
+ | Non-goals documented | ⚡ ASSUMPTION: basic non-goals |
34
+ | Ambiguity handled | ⚡ ASSUMPTION: conservative |
35
+ | Authority Budget | ⚡ ASSUMPTION: conservative defaults |
36
+ | Inference Policy | ✅ conservative |
37
+ | Dialog stability | ✅ |
38
+
39
+ **Conclusion:** Sufficient for prototype. [N] assumptions made — see assumptions list.
40
+
41
+ ## Convergence Stamp (dialog variant)
42
+
43
+ The stamp is placed at the top of the dialog file:
44
+
45
+ === DIALOGSPEC STAMP ===
46
+ STATUS: CONVERGED (DIALOG)
47
+ DATE: [today]
48
+ MODEL: [model-id (Display Name), e.g. claude-opus-4-6 (Claude Opus 4.6)]
49
+ CANON TYPE: standalone
50
+ PARENT: none
51
+ OPEN QUESTIONS: none (assumptions marked)
52
+ INFERENCE POLICY: conservative
53
+ AUTHORITY BUDGET: partial (conservative defaults for undiscussed elements)
54
+ STABILITY ZONES: [HARD invariants]
55
+ FLEX ZONES: [FLEX defaults + assumptions]
56
+ ASSUMPTIONS: [list of all assumptions]
57
+ === /DIALOGSPEC STAMP ===
58
+
59
+ Save the verbatim dialog as `canon/{naam}/dialog.md`.
60
+ Generate the derived summary as `canon/{naam}/summary.md`.
61
+
62
+ ### Auto-translate (dialog mode)
63
+
64
+ In dialog mode, canons are AUTO-APPROVED. After saving:
65
+ 1. Immediately call `pantion_translate` with the canon name
66
+ 2. Follow the dialog's translate.md for which files to generate
67
+ 3. Say: "Files generated. Here is what was created."
@@ -42,99 +42,13 @@ Say:
42
42
  - **Failure behavior**: graceful fail with user notification
43
43
  - **Inference policy**: conservative
44
44
 
45
- ### Saving the dialog (CRITICAL — the dialog IS the canon)
45
+ ### Session recovery
46
46
 
47
- Same principle as full dialog mode: the verbatim dialog is always saved.
47
+ Save progress after every 2-3 turns by calling `pantion_save-canon` with a PROGRESS stamp (see full mode for the PROGRESS stamp format). If the session is interrupted, the user can continue with `/pantion-resume`.
48
48
 
49
- **Two files are always produced:**
50
- - `canon/{naam}/dialog.md` — THE CANON: the verbatim dialog (dialog status is in the stamp, not the filename)
51
- - `canon/{naam}/summary.md` — DERIVED: structured summary for navigation
49
+ ## Deferred Phases
52
50
 
53
- ### Pre-stamp quality check (recommended)
54
-
55
- Before setting the convergence stamp, it is recommended to run `pantion_check` on the dialog. This provides a structural quality scorecard that can surface gaps before the stamp is finalized. This is not blocking — the HUMAN STAMP remains the actual authorization gate.
56
-
57
- ### Convergence Verification Table (dialog variant)
58
-
59
- Before the stamp, include the verification table (with assumptions marked):
60
-
61
- **Convergence Verification:**
62
-
63
- | Criterium | Status |
64
- |-----------|--------|
65
- | Canon status | ✅ |
66
- | Intent clarity | ✅ |
67
- | Observable success | ✅ |
68
- | Inputs complete | ✅ |
69
- | Outputs unambiguous | ✅ |
70
- | Failure specified | ⚡ ASSUMPTION: graceful fail |
71
- | Constraints absolute | ✅ |
72
- | Non-goals documented | ⚡ ASSUMPTION: basic non-goals |
73
- | Ambiguity handled | ⚡ ASSUMPTION: conservative |
74
- | Authority Budget | ⚡ ASSUMPTION: conservative defaults |
75
- | Inference Policy | ✅ conservative |
76
- | Dialog stability | ✅ |
77
-
78
- **Conclusion:** Sufficient for prototype. [N] assumptions made — see assumptions list.
79
-
80
- ### Convergence Stamp (dialog variant)
81
-
82
- The stamp is placed at the top of the dialog file:
83
-
84
- === DIALOGSPEC STAMP ===
85
- STATUS: CONVERGED (DIALOG)
86
- DATE: [today]
87
- MODEL: [model-id (Display Name), e.g. claude-opus-4-6 (Claude Opus 4.6)]
88
- CANON TYPE: standalone
89
- PARENT: none
90
- OPEN QUESTIONS: none (assumptions marked)
91
- INFERENCE POLICY: conservative
92
- AUTHORITY BUDGET: partial (conservative defaults for undiscussed elements)
93
- STABILITY ZONES: [HARD invariants]
94
- FLEX ZONES: [FLEX defaults + assumptions]
95
- ASSUMPTIONS: [list of all assumptions]
96
- === /DIALOGSPEC STAMP ===
97
-
98
- Save the verbatim dialog as `canon/{naam}/dialog.md`.
99
- Generate the derived summary as `canon/{naam}/summary.md`.
100
-
101
- ---
102
-
103
- ## PHASE 2: DIALOG TRANSLATION
104
-
105
- Generate the same files as full dialog mode, but:
106
- - Mark all assumptions with `ASSUMPTION:` in the files
107
- - Keep files shorter and more pragmatic
108
- - Skip command files unless there are clear workflows
109
-
110
- All derived files point to the dialog: `<!-- Derived from: canon/{naam}/dialog.md, [date] -->`
111
-
112
- ### Extra file:
113
-
114
- **`canon/assumptions.md`**
115
-
116
- List all assumptions made in dialog mode with their conservative defaults. Reference to the dialog turns where the assumption was made. Each assumption can be replaced with an explicit choice via /pantion-amend.
117
-
118
- ---
119
-
120
- ## PHASE 3: DIALOG BUILD
121
-
122
- Build the system with the same rules as full dialog mode.
123
-
124
- ### Extra after building:
125
-
126
- Say:
127
-
128
- "Prototype is built. I made [N] assumptions.
129
- Here are the most important ones:
130
-
131
- 1. [assumption 1]
132
- 2. [assumption 2]
133
- 3. [assumption 3]
134
-
135
- Want to adjust any of these? Or would you like to run the full protocol with /pantion-start for a deeper convergence?"
136
-
137
- ---
51
+ Stamp format, saving rules, and post-convergence phases (translation + build) are loaded automatically at the appropriate moment — you do not need them during questioning. Focus on convergence.
138
52
 
139
53
  ## When to escalate
140
54
 
@@ -163,11 +77,3 @@ When switching to decompose:
163
77
  2. Start /pantion-decompose
164
78
  3. Use the dialog as starting point (don't start from scratch)
165
79
  4. Mark in `canon/index.md` that the dialog canon has been absorbed into the Architect Canon
166
-
167
- ## Canon Index
168
-
169
- Update `canon/index.md` when completing a dialog session:
170
- - Status: CONVERGED (DIALOG)
171
- - References to both dialog file and summary file
172
- - List of all assumptions
173
- - Reference to `canon/assumptions.md`
@@ -0,0 +1,53 @@
1
+ # /pantion-start — Post-Convergence Phases
2
+
3
+ > Deferred command section. Loaded when translating or building from a converged canon.
4
+ > See `start.md` for the questioning-phase protocol.
5
+
6
+ ## PHASE 2: TRANSLATION
7
+
8
+ Automatically generate project specification files based on the canon (the dialog).
9
+ The dialog is the primary source. The summary may be used for navigation but is never authoritative.
10
+
11
+ The active dialog's `translate.md` defines which files to generate. For the software skill, this typically produces:
12
+
13
+ ### Always generate:
14
+
15
+ 1. **`canon/{naam}/spec/requirements.md`** — requirements from intent, inputs/outputs, success criteria, non-goals
16
+ 2. **`canon/{naam}/spec/constraints.md`** — HARD constraints, forbidden actions, data policies, inference policy
17
+ 3. **`canon/{naam}/spec/success-criteria.md`** — Definition of Done, acceptance criteria, error handling
18
+
19
+ ### Generate if applicable:
20
+
21
+ 4. **`canon/{naam}/spec/api-spec.md`** — API specification
22
+ 5. **`canon/{naam}/spec/data-model.md`** — data model and persistence
23
+ 6. **`canon/{naam}/spec/architecture.md`** — component structure (if decomposed)
24
+
25
+ ### Traceability (always-on):
26
+ - Add a comment to each generated file: `<!-- Derived from: canon/{naam}/dialog.md, [date] -->`
27
+ - Generate or update `canon/{naam}/traceability.md` with the complete mapping
28
+ - Where possible, reference specific dialog turns (e.g., "HUMAN turn 5", "ASSISTANT turn 8")
29
+
30
+ Say after completion: "Project specification files have been generated. I will now build."
31
+
32
+ ---
33
+
34
+ ## PHASE 3: BUILD
35
+
36
+ Switch to implementation mode. Follow the rules in `protocol/commands/build.md` (Coding Agent Instructions).
37
+
38
+ 1. Read the canon (via MCP resources or from the just-generated spec files)
39
+ 2. Build the system according to the canon — the canon is the ONLY source of truth
40
+ 3. Respect ALL constraints from the spec files and canon
41
+ 4. Implement NOTHING that is not in the canon
42
+ 5. On ambiguity: follow the inference policy (don't guess)
43
+ 6. Use Canon Anchors (H1, A3, etc.) in code comments to trace back to dialog turns
44
+ 7. Enforce the Authority Budget as hard boundaries
45
+
46
+ ### Deliverables:
47
+ - [ ] Working implementation
48
+ - [ ] README.md (what it does + installation + usage)
49
+ - [ ] Evidence (how to test/verify)
50
+ - [ ] Canon -> Implementation notes (which FLEX defaults were chosen, with Canon Anchors)
51
+
52
+ ### After building:
53
+ Say: "The system has been built. Here is a summary of what I created, which FLEX choices I made, and how you can test it."
@@ -0,0 +1,133 @@
1
+ # /pantion-start — Stamps & Saving
2
+
3
+ > Deferred command section. Loaded when checking convergence or saving a canon.
4
+ > See `start.md` for the questioning-phase protocol.
5
+
6
+ ## Saving the dialog (CRITICAL — the dialog IS the canon)
7
+
8
+ The verbatim dialog MUST be saved at every stage. The dialog is the only source of truth.
9
+
10
+ **Two files are always produced:**
11
+ - `canon/{naam}/dialog.md` — THE CANON: the verbatim dialog (chronological Q/A)
12
+ - `canon/{naam}/summary.md` — DERIVED: a structured summary for navigation (never authoritative)
13
+
14
+ The summary contains a derivation comment: `<!-- Derived from: canon/{naam}/dialog.md, [date] -->`
15
+
16
+ The dialog file format:
17
+
18
+ # DialogSpec Dialog
19
+ <!-- This is the canon — the verbatim dialog is the only source of truth -->
20
+ <!-- All other files (summary, project files, tests) are derived from this dialog -->
21
+
22
+ [STAMP or PROGRESS STAMP here]
23
+
24
+ ---
25
+
26
+ HUMAN: [verbatim text]
27
+
28
+ ASSISTANT: [verbatim text]
29
+
30
+ HUMAN: [verbatim text]
31
+
32
+ ASSISTANT: [verbatim text]
33
+
34
+ ...
35
+
36
+ ## DRAFT flow (if the session can't be completed in one go)
37
+
38
+ If the user indicates they want to stop, or if the session is getting too long:
39
+
40
+ 1. Save the **verbatim dialog** as `canon/{naam}/dialog.md` with a PROGRESS stamp
41
+ 2. Generate a **derived summary** as `canon/{naam}/summary.md`
42
+ 3. Note all OPEN QUESTIONS explicitly
43
+ 4. Update `canon/index.md` with the DRAFT status, OPEN QUESTIONS, and references to both files
44
+
45
+ The PROGRESS stamp format:
46
+
47
+ === DIALOGSPEC PROGRESS ===
48
+ DATE: [today]
49
+ STATUS: DRAFT (session 1)
50
+ CANON TYPE: standalone
51
+ RESOLVED: [list of answered elements]
52
+ REMAINING OPEN QUESTIONS:
53
+ 1. [question]
54
+ 2. [question]
55
+ NEXT SESSION FOCUS: [suggestion]
56
+ === /DIALOGSPEC PROGRESS ===
57
+
58
+ Say: "Progress has been saved as DRAFT with [N] open questions. You can continue later with `/pantion-resume`."
59
+
60
+ ## Pre-stamp quality check (recommended)
61
+
62
+ Before setting the convergence stamp, it is recommended to run `pantion_check` on the dialog. This provides a structural quality scorecard that can surface gaps before the stamp is finalized. This is not blocking — the HUMAN STAMP remains the actual authorization gate.
63
+
64
+ ## Convergence check (when everything has been answered)
65
+ Before proceeding, check internally:
66
+
67
+ - [ ] Intent is unambiguous
68
+ - [ ] Success criteria are externally verifiable
69
+ - [ ] All inputs named (explicit + implicit)
70
+ - [ ] Outputs are observable
71
+ - [ ] Failure behavior is specified
72
+ - [ ] Constraints are absolute (not "unless convenient")
73
+ - [ ] Non-goals are documented
74
+ - [ ] Authority Budget - Rights complete (allowed/forbidden/data/retention/audit)
75
+ - [ ] Authority Budget - Consumption complete (rate/cost limits)
76
+ - [ ] Persistence/restart behavior specified (what survives a restart? what is ephemeral?)
77
+ - [ ] Inference policy is determined
78
+ - [ ] New questions no longer yield new behavior
79
+
80
+ If all checked, produce the **Convergence Verification Table** followed by the Convergence Stamp in the dialog file.
81
+
82
+ The verification table is placed in the last assistant message, immediately before the stamp:
83
+
84
+ **Convergence Verification:**
85
+
86
+ | Criterium | Status |
87
+ |-----------|--------|
88
+ | Canon status | ✅ |
89
+ | Intent clarity | ✅ |
90
+ | Observable success | ✅ |
91
+ | Inputs complete | ✅ |
92
+ | Outputs unambiguous | ✅ |
93
+ | Failure specified | ✅ |
94
+ | Constraints absolute | ✅ |
95
+ | Non-goals documented | ✅ |
96
+ | Ambiguity handled | ✅ |
97
+ | Authority Budget | ✅ |
98
+ | Persistence/restart | ✅ |
99
+ | Inference Policy | ✅ |
100
+ | Dialog stability | ✅ |
101
+
102
+ **Conclusion:** A competent coding agent can, without further interaction, build a functionally equivalent system.
103
+
104
+ Then produce the Convergence Stamp:
105
+
106
+ === DIALOGSPEC STAMP ===
107
+ STATUS: CONVERGED
108
+ DATE: [today]
109
+ MODEL: [model-id (Display Name), e.g. claude-opus-4-6 (Claude Opus 4.6)]
110
+ CANON TYPE: standalone
111
+ PARENT: none
112
+ OPEN QUESTIONS: none (N resolved: OQ-001 at H[4], OQ-002 at A[7])
113
+ INFERENCE POLICY: conservative
114
+ AUTHORITY BUDGET RIGHTS: complete
115
+ AUTHORITY BUDGET CONSUMPTION: complete | n/a
116
+ STABILITY ZONES: [list of HARD invariants]
117
+ FLEX ZONES: [list of FLEX defaults]
118
+ INHERITED CONSTRAINTS: none
119
+ INTERFACE CANONS: none
120
+ === /DIALOGSPEC STAMP ===
121
+
122
+ Save the complete verbatim dialog as `canon/{naam}/dialog.md`.
123
+ Generate the derived summary as `canon/{naam}/summary.md`.
124
+ Update `canon/index.md` with STATUS: CONVERGED.
125
+
126
+ Say: "The intent has converged. I will now generate the project files."
127
+
128
+ ### Auto-translate (HARD — always translate after convergence)
129
+
130
+ After saving the converged canon:
131
+ 1. If the HUMAN STAMP is APPROVED or AUTO-APPROVED → immediately call `pantion_translate` with the canon name and the files specified by the active dialog's translate.md
132
+ 2. If the HUMAN STAMP is PENDING (full mode default) → say: "The dialog is complete and saved. It needs approval before files can be generated. Use `/pantion` to approve."
133
+ 3. Never skip translation for approved canons — it is the natural next step after convergence.
@@ -1,7 +1,7 @@
1
1
  # /pantion-start — New project with full protocol
2
2
 
3
3
  You are now in Pantion mode. You will guide the user from idea to working system.
4
- Follow the three phases STRICTLY in order. Do not skip any phase.
4
+ Follow the phases STRICTLY in order. Do not skip any phase.
5
5
 
6
6
  ---
7
7
 
@@ -46,175 +46,28 @@ Maintain an internal Decompose Score (0–5):
46
46
 
47
47
  The USER decides — not you.
48
48
 
49
- ### Saving the dialog (CRITICALthe dialog IS the canon)
49
+ ### Session recovery (HARDalways save progress)
50
50
 
51
- The verbatim dialog MUST be saved at every stage. The dialog is the only source of truth.
51
+ To protect against session interruption, save the dialog periodically:
52
52
 
53
- **Two files are always produced:**
54
- - `canon/{naam}/dialog.md` THE CANON: the verbatim dialog (chronological Q/A)
55
- - `canon/{naam}/summary.md` DERIVED: a structured summary for navigation (never authoritative)
53
+ 1. After every 3-4 turns, save progress by calling `pantion_save-canon` with the dialog so far and a PROGRESS stamp
54
+ 2. If the user explicitly stops or the session feels long, save as DRAFT
55
+ 3. The PROGRESS stamp format (place in your last assistant message before saving):
56
56
 
57
- The summary contains a derivation comment: `<!-- Derived from: canon/{naam}/dialog.md, [date] -->`
57
+ === DIALOGSPEC PROGRESS ===
58
+ DATE: [today]
59
+ STATUS: DRAFT (session N)
60
+ CANON TYPE: standalone
61
+ RESOLVED: [list of answered elements so far]
62
+ REMAINING OPEN QUESTIONS:
63
+ 1. [question]
64
+ 2. [question]
65
+ NEXT SESSION FOCUS: [suggestion]
66
+ === /DIALOGSPEC PROGRESS ===
58
67
 
59
- The dialog file format:
68
+ 4. After saving, say: "Progress saved. You can continue later with `/pantion-resume`."
69
+ 5. If the session continues normally after a checkpoint save, keep going — the save is just a safety net.
60
70
 
61
- # DialogSpec Dialog
62
- <!-- This is the canon — the verbatim dialog is the only source of truth -->
63
- <!-- All other files (summary, project files, tests) are derived from this dialog -->
71
+ ## Deferred Phases
64
72
 
65
- [STAMP or PROGRESS STAMP here]
66
-
67
- ---
68
-
69
- HUMAN: [verbatim text]
70
-
71
- ASSISTANT: [verbatim text]
72
-
73
- HUMAN: [verbatim text]
74
-
75
- ASSISTANT: [verbatim text]
76
-
77
- ...
78
-
79
- ### DRAFT flow (if the session can't be completed in one go)
80
-
81
- If the user indicates they want to stop, or if the session is getting too long:
82
-
83
- 1. Save the **verbatim dialog** as `canon/{naam}/dialog.md` with a PROGRESS stamp
84
- 2. Generate a **derived summary** as `canon/{naam}/summary.md`
85
- 3. Note all OPEN QUESTIONS explicitly
86
- 4. Update `canon/index.md` with the DRAFT status, OPEN QUESTIONS, and references to both files
87
-
88
- The PROGRESS stamp format:
89
-
90
- === DIALOGSPEC PROGRESS ===
91
- DATE: [today]
92
- STATUS: DRAFT (session 1)
93
- CANON TYPE: standalone
94
- RESOLVED: [list of answered elements]
95
- REMAINING OPEN QUESTIONS:
96
- 1. [question]
97
- 2. [question]
98
- NEXT SESSION FOCUS: [suggestion]
99
- === /DIALOGSPEC PROGRESS ===
100
-
101
- Say: "Progress has been saved as DRAFT with [N] open questions. You can continue later with `/pantion-resume`."
102
-
103
- ### Pre-stamp quality check (recommended)
104
-
105
- Before setting the convergence stamp, it is recommended to run `pantion_check` on the dialog. This provides a structural quality scorecard that can surface gaps before the stamp is finalized. This is not blocking — the HUMAN STAMP remains the actual authorization gate.
106
-
107
- ### Convergence check (when everything has been answered)
108
- Before proceeding, check internally:
109
-
110
- - [ ] Intent is unambiguous
111
- - [ ] Success criteria are externally verifiable
112
- - [ ] All inputs named (explicit + implicit)
113
- - [ ] Outputs are observable
114
- - [ ] Failure behavior is specified
115
- - [ ] Constraints are absolute (not "unless convenient")
116
- - [ ] Non-goals are documented
117
- - [ ] Authority Budget - Rights complete (allowed/forbidden/data/retention/audit)
118
- - [ ] Authority Budget - Consumption complete (rate/cost limits)
119
- - [ ] Persistence/restart behavior specified (what survives a restart? what is ephemeral?)
120
- - [ ] Inference policy is determined
121
- - [ ] New questions no longer yield new behavior
122
-
123
- If all checked, produce the **Convergence Verification Table** followed by the Convergence Stamp in the dialog file.
124
-
125
- The verification table is placed in the last assistant message, immediately before the stamp:
126
-
127
- **Convergence Verification:**
128
-
129
- | Criterium | Status |
130
- |-----------|--------|
131
- | Canon status | ✅ |
132
- | Intent clarity | ✅ |
133
- | Observable success | ✅ |
134
- | Inputs complete | ✅ |
135
- | Outputs unambiguous | ✅ |
136
- | Failure specified | ✅ |
137
- | Constraints absolute | ✅ |
138
- | Non-goals documented | ✅ |
139
- | Ambiguity handled | ✅ |
140
- | Authority Budget | ✅ |
141
- | Persistence/restart | ✅ |
142
- | Inference Policy | ✅ |
143
- | Dialog stability | ✅ |
144
-
145
- **Conclusion:** A competent coding agent can, without further interaction, build a functionally equivalent system.
146
-
147
- Then produce the Convergence Stamp:
148
-
149
- === DIALOGSPEC STAMP ===
150
- STATUS: CONVERGED
151
- DATE: [today]
152
- MODEL: [model-id (Display Name), e.g. claude-opus-4-6 (Claude Opus 4.6)]
153
- CANON TYPE: standalone
154
- PARENT: none
155
- OPEN QUESTIONS: none (N resolved: OQ-001 at H[4], OQ-002 at A[7])
156
- INFERENCE POLICY: conservative
157
- AUTHORITY BUDGET RIGHTS: complete
158
- AUTHORITY BUDGET CONSUMPTION: complete | n/a
159
- STABILITY ZONES: [list of HARD invariants]
160
- FLEX ZONES: [list of FLEX defaults]
161
- INHERITED CONSTRAINTS: none
162
- INTERFACE CANONS: none
163
- === /DIALOGSPEC STAMP ===
164
-
165
- Save the complete verbatim dialog as `canon/{naam}/dialog.md`.
166
- Generate the derived summary as `canon/{naam}/summary.md`.
167
- Update `canon/index.md` with STATUS: CONVERGED.
168
-
169
- Say: "The intent has converged. I will now generate the project files."
170
-
171
- ---
172
-
173
- ## PHASE 2: TRANSLATION
174
-
175
- Automatically generate project specification files based on the canon (the dialog).
176
- The dialog is the primary source. The summary may be used for navigation but is never authoritative.
177
-
178
- The active dialog's `translate.md` defines which files to generate. For the software skill, this typically produces:
179
-
180
- ### Always generate:
181
-
182
- 1. **`canon/{naam}/spec/requirements.md`** — requirements from intent, inputs/outputs, success criteria, non-goals
183
- 2. **`canon/{naam}/spec/constraints.md`** — HARD constraints, forbidden actions, data policies, inference policy
184
- 3. **`canon/{naam}/spec/success-criteria.md`** — Definition of Done, acceptance criteria, error handling
185
-
186
- ### Generate if applicable:
187
-
188
- 4. **`canon/{naam}/spec/api-spec.md`** — API specification
189
- 5. **`canon/{naam}/spec/data-model.md`** — data model and persistence
190
- 6. **`canon/{naam}/spec/architecture.md`** — component structure (if decomposed)
191
-
192
- ### Traceability (always-on):
193
- - Add a comment to each generated file: `<!-- Derived from: canon/{naam}/dialog.md, [date] -->`
194
- - Generate or update `canon/{naam}/traceability.md` with the complete mapping
195
- - Where possible, reference specific dialog turns (e.g., "HUMAN turn 5", "ASSISTANT turn 8")
196
-
197
- Say after completion: "Project specification files have been generated. I will now build."
198
-
199
- ---
200
-
201
- ## PHASE 3: BUILD
202
-
203
- Switch to implementation mode. Follow the rules in `protocol/commands/build.md` (Coding Agent Instructions).
204
-
205
- 1. Read the canon (via MCP resources or from the just-generated spec files)
206
- 2. Build the system according to the canon — the canon is the ONLY source of truth
207
- 3. Respect ALL constraints from the spec files and canon
208
- 4. Implement NOTHING that is not in the canon
209
- 5. On ambiguity: follow the inference policy (don't guess)
210
- 6. Use Canon Anchors (H1, A3, etc.) in code comments to trace back to dialog turns
211
- 7. Enforce the Authority Budget as hard boundaries
212
-
213
- ### Deliverables:
214
- - [ ] Working implementation
215
- - [ ] README.md (what it does + installation + usage)
216
- - [ ] Evidence (how to test/verify)
217
- - [ ] Canon -> Implementation notes (which FLEX defaults were chosen, with Canon Anchors)
218
-
219
- ### After building:
220
- Say: "The system has been built. Here is a summary of what I created, which FLEX choices I made, and how you can test it."
73
+ Stamp format, saving rules, and post-convergence phases (translation + build) are loaded automatically at the appropriate moment — you do not need them during questioning. Focus on convergence.