@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.
- package/dialogs/router/convergence-rules.md +160 -0
- package/dialogs/router/dialog.json +12 -0
- package/dialogs/router/translate.md +21 -0
- package/dialogs/software/convergence-rules.md +202 -15
- package/dialogs/software/prompts/convergence-intro.md +27 -15
- package/dist/core/feedback/aggregator.d.ts +7 -0
- package/dist/core/feedback/aggregator.d.ts.map +1 -0
- package/dist/core/feedback/aggregator.js +119 -0
- package/dist/core/feedback/aggregator.js.map +1 -0
- package/dist/core/feedback/store.d.ts +20 -0
- package/dist/core/feedback/store.d.ts.map +1 -0
- package/dist/core/feedback/store.js +111 -0
- package/dist/core/feedback/store.js.map +1 -0
- package/dist/core/feedback/suggestions.d.ts +5 -0
- package/dist/core/feedback/suggestions.d.ts.map +1 -0
- package/dist/core/feedback/suggestions.js +60 -0
- package/dist/core/feedback/suggestions.js.map +1 -0
- package/dist/core/feedback/types.d.ts +26 -0
- package/dist/core/feedback/types.d.ts.map +1 -0
- package/dist/core/feedback/types.js +2 -0
- package/dist/core/feedback/types.js.map +1 -0
- package/dist/core/index.d.ts +16 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +10 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/protocol/loader.d.ts +4 -0
- package/dist/core/protocol/loader.d.ts.map +1 -1
- package/dist/core/protocol/loader.js +16 -0
- package/dist/core/protocol/loader.js.map +1 -1
- package/dist/core/protocol/stamp-parser.d.ts.map +1 -1
- package/dist/core/protocol/stamp-parser.js +2 -1
- package/dist/core/protocol/stamp-parser.js.map +1 -1
- package/dist/core/protocol/system-prompt.d.ts +17 -0
- package/dist/core/protocol/system-prompt.d.ts.map +1 -1
- package/dist/core/protocol/system-prompt.js +63 -5
- package/dist/core/protocol/system-prompt.js.map +1 -1
- package/dist/core/router/classifier.d.ts +29 -0
- package/dist/core/router/classifier.d.ts.map +1 -0
- package/dist/core/router/classifier.js +160 -0
- package/dist/core/router/classifier.js.map +1 -0
- package/dist/core/router/context.d.ts +28 -0
- package/dist/core/router/context.d.ts.map +1 -0
- package/dist/core/router/context.js +65 -0
- package/dist/core/router/context.js.map +1 -0
- package/dist/core/router/menu.d.ts +18 -0
- package/dist/core/router/menu.d.ts.map +1 -0
- package/dist/core/router/menu.js +109 -0
- package/dist/core/router/menu.js.map +1 -0
- package/dist/core/router/next-actions.d.ts +17 -0
- package/dist/core/router/next-actions.d.ts.map +1 -0
- package/dist/core/router/next-actions.js +153 -0
- package/dist/core/router/next-actions.js.map +1 -0
- package/dist/core/router/types.d.ts +49 -0
- package/dist/core/router/types.d.ts.map +1 -0
- package/dist/core/router/types.js +8 -0
- package/dist/core/router/types.js.map +1 -0
- package/dist/core/types.d.ts +2 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/utils/datetime.d.ts +13 -0
- package/dist/core/utils/datetime.d.ts.map +1 -0
- package/dist/core/utils/datetime.js +17 -0
- package/dist/core/utils/datetime.js.map +1 -0
- package/dist/feature-set.d.ts.map +1 -1
- package/dist/feature-set.js +4 -0
- package/dist/feature-set.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/prompts/workflow-prompts.d.ts.map +1 -1
- package/dist/prompts/workflow-prompts.js +81 -1
- package/dist/prompts/workflow-prompts.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +6 -0
- package/dist/server.js.map +1 -1
- package/dist/tools/amend.d.ts.map +1 -1
- package/dist/tools/amend.js +2 -2
- package/dist/tools/amend.js.map +1 -1
- package/dist/tools/approve.d.ts.map +1 -1
- package/dist/tools/approve.js +2 -2
- package/dist/tools/approve.js.map +1 -1
- package/dist/tools/build.d.ts +4 -0
- package/dist/tools/build.d.ts.map +1 -0
- package/dist/tools/build.js +200 -0
- package/dist/tools/build.js.map +1 -0
- package/dist/tools/check-convergence.d.ts.map +1 -1
- package/dist/tools/check-convergence.js +15 -1
- package/dist/tools/check-convergence.js.map +1 -1
- package/dist/tools/feedback.d.ts +4 -0
- package/dist/tools/feedback.d.ts.map +1 -0
- package/dist/tools/feedback.js +51 -0
- package/dist/tools/feedback.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +9 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/learn.d.ts +4 -0
- package/dist/tools/learn.d.ts.map +1 -0
- package/dist/tools/learn.js +38 -0
- package/dist/tools/learn.js.map +1 -0
- package/dist/tools/reflect.d.ts.map +1 -1
- package/dist/tools/reflect.js +68 -1
- package/dist/tools/reflect.js.map +1 -1
- package/dist/tools/reject.d.ts.map +1 -1
- package/dist/tools/reject.js +2 -2
- package/dist/tools/reject.js.map +1 -1
- package/dist/tools/router.d.ts +10 -0
- package/dist/tools/router.d.ts.map +1 -0
- package/dist/tools/router.js +315 -0
- package/dist/tools/router.js.map +1 -0
- package/dist/tools/save-canon.d.ts.map +1 -1
- package/dist/tools/save-canon.js +28 -12
- package/dist/tools/save-canon.js.map +1 -1
- package/dist/tools/start.d.ts.map +1 -1
- package/dist/tools/start.js +20 -7
- package/dist/tools/start.js.map +1 -1
- package/dist/tools/translate.d.ts.map +1 -1
- package/dist/tools/translate.js +21 -4
- package/dist/tools/translate.js.map +1 -1
- package/package.json +1 -1
- package/protocol/commands/dialog-post.md +46 -0
- package/protocol/commands/dialog-stamps.md +67 -0
- package/protocol/commands/dialog.md +4 -98
- package/protocol/commands/start-post.md +53 -0
- package/protocol/commands/start-stamps.md +133 -0
- package/protocol/commands/start.md +20 -167
- package/protocol/core-save.md +102 -0
- package/protocol/core-stamps.md +97 -0
- 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
|
-
###
|
|
45
|
+
### Session recovery
|
|
46
46
|
|
|
47
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
###
|
|
49
|
+
### Session recovery (HARD — always save progress)
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
To protect against session interruption, save the dialog periodically:
|
|
52
52
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|