@pantion/mcp-server 0.1.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 (160) hide show
  1. package/dist/feature-set.d.ts +14 -0
  2. package/dist/feature-set.d.ts.map +1 -0
  3. package/dist/feature-set.js +38 -0
  4. package/dist/feature-set.js.map +1 -0
  5. package/dist/index.d.ts +3 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +56 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/prompts/convergence-prompts.d.ts +4 -0
  10. package/dist/prompts/convergence-prompts.d.ts.map +1 -0
  11. package/dist/prompts/convergence-prompts.js +76 -0
  12. package/dist/prompts/convergence-prompts.js.map +1 -0
  13. package/dist/prompts/index.d.ts +4 -0
  14. package/dist/prompts/index.d.ts.map +1 -0
  15. package/dist/prompts/index.js +7 -0
  16. package/dist/prompts/index.js.map +1 -0
  17. package/dist/prompts/workflow-prompts.d.ts +9 -0
  18. package/dist/prompts/workflow-prompts.d.ts.map +1 -0
  19. package/dist/prompts/workflow-prompts.js +249 -0
  20. package/dist/prompts/workflow-prompts.js.map +1 -0
  21. package/dist/resources/canon-resources.d.ts +4 -0
  22. package/dist/resources/canon-resources.d.ts.map +1 -0
  23. package/dist/resources/canon-resources.js +160 -0
  24. package/dist/resources/canon-resources.js.map +1 -0
  25. package/dist/server.d.ts +9 -0
  26. package/dist/server.d.ts.map +1 -0
  27. package/dist/server.js +47 -0
  28. package/dist/server.js.map +1 -0
  29. package/dist/tools/amend.d.ts +4 -0
  30. package/dist/tools/amend.d.ts.map +1 -0
  31. package/dist/tools/amend.js +106 -0
  32. package/dist/tools/amend.js.map +1 -0
  33. package/dist/tools/approve.d.ts +4 -0
  34. package/dist/tools/approve.d.ts.map +1 -0
  35. package/dist/tools/approve.js +60 -0
  36. package/dist/tools/approve.js.map +1 -0
  37. package/dist/tools/check-convergence.d.ts +4 -0
  38. package/dist/tools/check-convergence.d.ts.map +1 -0
  39. package/dist/tools/check-convergence.js +50 -0
  40. package/dist/tools/check-convergence.js.map +1 -0
  41. package/dist/tools/check.d.ts +4 -0
  42. package/dist/tools/check.d.ts.map +1 -0
  43. package/dist/tools/check.js +190 -0
  44. package/dist/tools/check.js.map +1 -0
  45. package/dist/tools/create-skill.d.ts +4 -0
  46. package/dist/tools/create-skill.d.ts.map +1 -0
  47. package/dist/tools/create-skill.js +58 -0
  48. package/dist/tools/create-skill.js.map +1 -0
  49. package/dist/tools/decompose.d.ts +4 -0
  50. package/dist/tools/decompose.d.ts.map +1 -0
  51. package/dist/tools/decompose.js +56 -0
  52. package/dist/tools/decompose.js.map +1 -0
  53. package/dist/tools/index.d.ts +4 -0
  54. package/dist/tools/index.d.ts.map +1 -0
  55. package/dist/tools/index.js +47 -0
  56. package/dist/tools/index.js.map +1 -0
  57. package/dist/tools/list-canons.d.ts +4 -0
  58. package/dist/tools/list-canons.d.ts.map +1 -0
  59. package/dist/tools/list-canons.js +28 -0
  60. package/dist/tools/list-canons.js.map +1 -0
  61. package/dist/tools/migrate.d.ts +4 -0
  62. package/dist/tools/migrate.d.ts.map +1 -0
  63. package/dist/tools/migrate.js +38 -0
  64. package/dist/tools/migrate.js.map +1 -0
  65. package/dist/tools/onboard.d.ts +4 -0
  66. package/dist/tools/onboard.d.ts.map +1 -0
  67. package/dist/tools/onboard.js +27 -0
  68. package/dist/tools/onboard.js.map +1 -0
  69. package/dist/tools/reconverge.d.ts +4 -0
  70. package/dist/tools/reconverge.d.ts.map +1 -0
  71. package/dist/tools/reconverge.js +68 -0
  72. package/dist/tools/reconverge.js.map +1 -0
  73. package/dist/tools/reject.d.ts +4 -0
  74. package/dist/tools/reject.d.ts.map +1 -0
  75. package/dist/tools/reject.js +57 -0
  76. package/dist/tools/reject.js.map +1 -0
  77. package/dist/tools/reskill.d.ts +4 -0
  78. package/dist/tools/reskill.d.ts.map +1 -0
  79. package/dist/tools/reskill.js +63 -0
  80. package/dist/tools/reskill.js.map +1 -0
  81. package/dist/tools/resume.d.ts +4 -0
  82. package/dist/tools/resume.d.ts.map +1 -0
  83. package/dist/tools/resume.js +56 -0
  84. package/dist/tools/resume.js.map +1 -0
  85. package/dist/tools/reverse.d.ts +4 -0
  86. package/dist/tools/reverse.d.ts.map +1 -0
  87. package/dist/tools/reverse.js +32 -0
  88. package/dist/tools/reverse.js.map +1 -0
  89. package/dist/tools/save-canon.d.ts +4 -0
  90. package/dist/tools/save-canon.d.ts.map +1 -0
  91. package/dist/tools/save-canon.js +97 -0
  92. package/dist/tools/save-canon.js.map +1 -0
  93. package/dist/tools/start.d.ts +4 -0
  94. package/dist/tools/start.d.ts.map +1 -0
  95. package/dist/tools/start.js +83 -0
  96. package/dist/tools/start.js.map +1 -0
  97. package/dist/tools/translate.d.ts +4 -0
  98. package/dist/tools/translate.d.ts.map +1 -0
  99. package/dist/tools/translate.js +102 -0
  100. package/dist/tools/translate.js.map +1 -0
  101. package/dist/tools/update.d.ts +4 -0
  102. package/dist/tools/update.d.ts.map +1 -0
  103. package/dist/tools/update.js +42 -0
  104. package/dist/tools/update.js.map +1 -0
  105. package/dist/utils/response.d.ts +12 -0
  106. package/dist/utils/response.d.ts.map +1 -0
  107. package/dist/utils/response.js +18 -0
  108. package/dist/utils/response.js.map +1 -0
  109. package/package.json +37 -0
  110. package/protocol/commands/amend.md +188 -0
  111. package/protocol/commands/build.md +90 -0
  112. package/protocol/commands/check.md +255 -0
  113. package/protocol/commands/create-skill.md +81 -0
  114. package/protocol/commands/decompose.md +230 -0
  115. package/protocol/commands/dialog.md +173 -0
  116. package/protocol/commands/help.md +121 -0
  117. package/protocol/commands/migrate.md +173 -0
  118. package/protocol/commands/onboard.md +210 -0
  119. package/protocol/commands/quick.md +170 -0
  120. package/protocol/commands/redialog.md +252 -0
  121. package/protocol/commands/reskill.md +73 -0
  122. package/protocol/commands/resume.md +148 -0
  123. package/protocol/commands/reverse.md +312 -0
  124. package/protocol/commands/start.md +220 -0
  125. package/protocol/commands/translate.md +157 -0
  126. package/protocol/commands/update.md +205 -0
  127. package/protocol/commands/validate.md +137 -0
  128. package/protocol/core-advanced.md +188 -0
  129. package/protocol/core.md +273 -0
  130. package/protocol/pantion-future-prompt.md +88 -0
  131. package/protocol/pantion-intent.md +78 -0
  132. package/protocol/templates/acceptance-tests.md +116 -0
  133. package/protocol/templates/behavior-map.md +135 -0
  134. package/protocol/templates/traceability-map.md +56 -0
  135. package/skills/image/convergence-rules.md +55 -0
  136. package/skills/image/prompts/convergence-intro.md +25 -0
  137. package/skills/image/prompts/translate-intro.md +37 -0
  138. package/skills/image/skill.json +12 -0
  139. package/skills/image/translate.md +67 -0
  140. package/skills/skill-builder/convergence-rules.md +64 -0
  141. package/skills/skill-builder/prompts/convergence-intro.md +21 -0
  142. package/skills/skill-builder/prompts/translate-intro.md +17 -0
  143. package/skills/skill-builder/skill.json +10 -0
  144. package/skills/skill-builder/translate.md +46 -0
  145. package/skills/software/convergence-rules.md +29 -0
  146. package/skills/software/prompts/convergence-intro.md +22 -0
  147. package/skills/software/prompts/translate-intro.md +19 -0
  148. package/skills/software/skill.json +12 -0
  149. package/skills/software/translate.md +74 -0
  150. package/skills/software-brownfield/convergence-rules.md +109 -0
  151. package/skills/software-brownfield/prompts/convergence-intro.md +26 -0
  152. package/skills/software-brownfield/prompts/translate-intro.md +13 -0
  153. package/skills/software-brownfield/skill.json +12 -0
  154. package/skills/software-brownfield/translate.md +56 -0
  155. package/souls/beginner/rules.md +34 -0
  156. package/souls/beginner/soul.json +6 -0
  157. package/souls/default/rules.md +25 -0
  158. package/souls/default/soul.json +6 -0
  159. package/souls/young/rules.md +67 -0
  160. package/souls/young/soul.json +6 -0
@@ -0,0 +1,205 @@
1
+ # /pantion-update — Upgrade the Pantion Protocol itself
2
+
3
+ This command upgrades the Pantion Protocol itself — the protocol files, commands, rules, and templates.
4
+ It uses the intent documents as source and your (newer) model capabilities to improve the protocol.
5
+
6
+ ---
7
+
8
+ ## WARNING
9
+
10
+ **This command modifies the protocol, not a project.**
11
+
12
+ Consequences:
13
+ - New commands may work differently than the previous version
14
+ - Existing canons may not be fully compatible with the new protocol
15
+ - Project specification files (spec/*) generated with the old version may be outdated
16
+
17
+ **This is NOT backward compatible by default.**
18
+
19
+ After an update, you must run `pantion_migrate` on every project that used the old version.
20
+
21
+ ---
22
+
23
+ ## WHEN YOU ARRIVE HERE
24
+
25
+ - You have access to a more powerful model than the one Pantion was originally built with
26
+ - You want to improve the protocol with new insights
27
+ - You want to regenerate the protocol files based on the intent documents
28
+
29
+ ---
30
+
31
+ ## STEP 0: CHECK PREREQUISITES
32
+
33
+ Verify the intent documents are present:
34
+
35
+ - [ ] `protocol/pantion-intent.md` — the intent and goals of Pantion
36
+ - [ ] `protocol/pantion-future-prompt.md` — instructions for future rebuilding
37
+
38
+ If these are missing:
39
+ "I cannot upgrade the protocol without the intent documents. These files describe WHAT Pantion should be — without them I have no source of truth for the rebuild. Do you have them available?"
40
+
41
+ ---
42
+
43
+ ## STEP 1: INVENTORY CURRENT VERSION
44
+
45
+ Read all current protocol files and produce a snapshot:
46
+
47
+ ```markdown
48
+ ## Pantion Version Snapshot
49
+
50
+ **Date:** [today]
51
+ **Files:** [count]
52
+ **Commands:** [list]
53
+ **Rules:** [list]
54
+ **Skills:** [list]
55
+
56
+ ### Core concepts in current version:
57
+ - [concept 1: short description]
58
+ - [concept 2: short description]
59
+ - ...
60
+ ```
61
+
62
+ Save as `protocol/snapshots/pantion-snapshot-[date].md` (keep this — you'll need it if the update fails).
63
+
64
+ ---
65
+
66
+ ## STEP 2: READ INTENT DOCUMENTS
67
+
68
+ Read both documents carefully:
69
+
70
+ ### From `protocol/pantion-intent.md` extract:
71
+ - The core principles (what MUST remain)
72
+ - The core promise (the touchstone)
73
+ - The two directions (forward/reverse)
74
+ - The scale levels
75
+
76
+ ### From `protocol/pantion-future-prompt.md` extract:
77
+ - What works well (KEEP)
78
+ - What can be improved (IMPROVE)
79
+ - What you must NOT do
80
+ - The ultimate test
81
+
82
+ ---
83
+
84
+ ## STEP 3: DELTA ANALYSIS
85
+
86
+ Compare the current protocol files with the intent documents and your own insights:
87
+
88
+ "Here is my analysis of what can be improved:
89
+
90
+ **Keep (works well):**
91
+ - [element]: [why it works]
92
+
93
+ **Improve (can be better with current model capabilities):**
94
+ - [element]: [what can be better] -> [how]
95
+
96
+ **Add (missing, fits the intent):**
97
+ - [element]: [why it fits]
98
+
99
+ **Remove (has become redundant):**
100
+ - [element]: [why it's no longer needed]
101
+
102
+ **Risks of this update:**
103
+ - [risk 1]: backward compatibility impact
104
+ - [risk 2]: ...
105
+
106
+ Would you like me to proceed with this update? You can also exclude specific items."
107
+
108
+ **WAIT FOR CONFIRMATION.** Do not proceed without explicit approval.
109
+
110
+ ---
111
+
112
+ ## STEP 4: REGENERATE
113
+
114
+ After confirmation, regenerate the protocol files:
115
+
116
+ ### Order:
117
+ 1. **`pantion-core.md`** first — this is the knowledge base everything depends on
118
+ 2. **Commands** in logical order
119
+ 3. **Skills**: update bundled skill files if needed
120
+ 4. **Souls**: update bundled soul files if needed
121
+
122
+ ### Rules for regeneration:
123
+ - Each new file must respect the intent documents
124
+ - The core principles are HARD — they must not disappear
125
+ - The core promise is the touchstone: "code is replaceable, intent is rebuildable"
126
+ - New concepts may only be added if they fit the intent
127
+ - The protocol must remain simple — if it needs a 50-page manual, something is wrong
128
+
129
+ ---
130
+
131
+ ## STEP 5: SELF-CHECK
132
+
133
+ After regeneration, check the new version against the intent documents:
134
+
135
+ - [ ] Respects the core principles?
136
+ - [ ] Core promise intact?
137
+ - [ ] Not too complex?
138
+ - [ ] No DSL or formal schema introduced?
139
+ - [ ] Not tool-specific?
140
+ - [ ] No features added that nobody asked for?
141
+ - [ ] Ultimate test: can a human produce a buildable canon after one session?
142
+
143
+ ---
144
+
145
+ ## STEP 6: CHANGELOG
146
+
147
+ Produce a changelog:
148
+
149
+ ```markdown
150
+ # Pantion Changelog — [date]
151
+
152
+ ## Previous version: [snapshot date]
153
+ ## New version: [date]
154
+ ## Model: [which model performed this update]
155
+
156
+ ### Changed:
157
+ - [file]: [what changed and why]
158
+
159
+ ### Added:
160
+ - [file]: [why]
161
+
162
+ ### Removed:
163
+ - [file]: [why]
164
+
165
+ ### Backward compatibility:
166
+ - [breaking/compatible]: [impact on existing projects]
167
+
168
+ ### Migration needed:
169
+ - [project type]: use `pantion_migrate` with [instruction]
170
+ ```
171
+
172
+ Save as `protocol/snapshots/pantion-changelog-[date].md`.
173
+
174
+ ---
175
+
176
+ ## STEP 7: REPORT
177
+
178
+ "The Pantion Protocol has been updated.
179
+
180
+ **Changed:** [N] files
181
+ **Added:** [N] files
182
+ **Removed:** [N] files
183
+
184
+ **Breaking changes:** [yes/no]
185
+ [if yes: list]
186
+
187
+ **Previous version saved in:** `protocol/snapshots/pantion-snapshot-[date].md`
188
+ **Changelog:** `protocol/snapshots/pantion-changelog-[date].md`
189
+
190
+ If you have existing projects that use Pantion:
191
+ Run `pantion_migrate` in each project to update the project files.
192
+
193
+ Would you like to keep the snapshot as a rollback option, or are you satisfied with the update?"
194
+
195
+ ---
196
+
197
+ ## META NOTE
198
+
199
+ This command applies Pantion's own principles to Pantion itself:
200
+ - The intent documents are the canon of Pantion
201
+ - The protocol files are the derived implementation
202
+ - `pantion_update` is essentially `pantion_reverse` + `pantion_translate` on the protocol itself
203
+ - The snapshot is the amendment history
204
+
205
+ The protocol that says "code is replaceable, intent is rebuildable" must apply that to itself as well.
@@ -0,0 +1,137 @@
1
+ # /pantion-validate — Blind Reconstruction Test
2
+
3
+ A validation test that proves a converged canon is sufficient to reconstruct the system without external knowledge.
4
+
5
+ ---
6
+
7
+ ## Purpose
8
+
9
+ This test answers one question:
10
+
11
+ > **Can a coding agent, without seeing the source code, reconstruct a functionally equivalent system from only the converged canon?**
12
+
13
+ This is not a daily checklist. This is a proof that the canon is complete enough for autonomous implementation.
14
+
15
+ ---
16
+
17
+ ## When to Run
18
+
19
+ - After completing your first DialogSpec with stamp
20
+ - Before presenting the canon to other agents or developers
21
+ - When in doubt whether the convergence is deep enough
22
+ - As validation for a new domain
23
+ - When `/pantion-check` recommends it
24
+
25
+ ---
26
+
27
+ ## STEP 1: Setup
28
+
29
+ 1. Select the canon to validate
30
+ 2. The testing agent receives ONLY:
31
+ - The converged dialog (canon)
32
+ - One sentence: "This is the behavior that was once realized by an existing system."
33
+ 3. The testing agent does NOT receive:
34
+ - Source code
35
+ - Architecture documents
36
+ - Technology hints
37
+ - Implementation notes
38
+
39
+ ---
40
+
41
+ ## STEP 2: Reconstruction
42
+
43
+ Ask the testing agent:
44
+
45
+ > "Build a system that is functionally equivalent to this behavior."
46
+
47
+ The agent must:
48
+ 1. Reconstruct the behavior from: goals, success criteria, failure behavior, constraints, non-goals, authority budget
49
+ 2. Choose its own: language, runtime, libraries, architecture
50
+ 3. Produce derived evidence artifacts:
51
+ - Behavior Map (from `protocol/templates/behavior-map.md`)
52
+ - Acceptance Tests (from `protocol/templates/acceptance-tests.md`)
53
+ - Traceability Map (from `protocol/templates/traceability-map.md`)
54
+
55
+ The agent must NOT:
56
+ - Add behavior not in the canon
57
+ - Reinterpret the intent
58
+ - Assume implicit permissions
59
+ - Relax constraints
60
+
61
+ ---
62
+
63
+ ## STEP 3: Acceptance Criteria
64
+
65
+ Measure on **behavioral equivalence**, not code similarity.
66
+
67
+ ### Pass if:
68
+
69
+ | Criterion | Verification |
70
+ |-----------|-------------|
71
+ | All described intents observably work | Functional tests |
72
+ | All non-goals are respected | Negative tests |
73
+ | Constraints are demonstrably enforced | Security/audit review |
74
+ | Authority budget is demonstrably enforced | Permissions review + tests |
75
+ | Unknown edge cases are handled conservatively | Edge case tests |
76
+ | The system is explainable | Docs + mapping |
77
+ | Traceability exists | Test/behavior -> dialog passage |
78
+
79
+ ### Fail if:
80
+
81
+ | Fail signal | Meaning |
82
+ |------------|---------|
83
+ | Agent needs to ask questions already answered in the canon | Dialog was not converged |
84
+ | Agent "must guess" between multiple plausible interpretations | Inference policy / open questions failed |
85
+ | Agent wants to introduce its own canonical spec | Dialog was not complete |
86
+ | Unexplainable behavior emerges | Agent interpreted beyond canon |
87
+ | Implementation can do more than intended | Non-goals/constraints not respected |
88
+ | Power/data boundaries are vague or too broad | Authority budget missing or failing |
89
+
90
+ ---
91
+
92
+ ## STEP 4: Report
93
+
94
+ ### On success:
95
+
96
+ ```markdown
97
+ ## Validation Report
98
+
99
+ **System:** [name]
100
+ **Canon:** [path to dialog]
101
+ **Testing Agent:** [which agent]
102
+ **Date:** [date]
103
+
104
+ ### Result: PASS
105
+
106
+ **Chosen stack:** [what the agent chose]
107
+ **Build time:** [duration]
108
+ **Questions asked:** [0 = ideal]
109
+
110
+ ### Behavior verification:
111
+ - [x] Intent 1: works
112
+ - [x] Non-goal 1: respected
113
+ - [x] Constraint 1: enforced
114
+ - [x] Authority budget: enforced
115
+
116
+ ### Evidence:
117
+ - Behavior Map: [path]
118
+ - Acceptance Tests: [path]
119
+ - Traceability Map: [path]
120
+
121
+ ### Observations:
122
+ [What stood out, what the agent did well/differently]
123
+ ```
124
+
125
+ ### On failure:
126
+
127
+ ```markdown
128
+ ## Validation Report
129
+
130
+ **Result: FAIL**
131
+
132
+ ### Failure reason:
133
+ [What went wrong]
134
+
135
+ ### Implication for the canon:
136
+ [What needs to change in the dialog or protocol]
137
+ ```
@@ -0,0 +1,188 @@
1
+ # Pantion DialogSpec — Advanced Protocol Knowledge
2
+
3
+ > This file contains advanced protocol knowledge that is loaded on-demand
4
+ > for specific commands (decompose, reverse, redialog, create-skill, reskill).
5
+ > For core protocol knowledge loaded in every session, see core.md.
6
+
7
+ ## Decomposition — Full Protocol
8
+
9
+ Three levels:
10
+ - **Architect Canon**: decomposes the system, defines shared boundaries
11
+ - **Interface Canon**: describes the contract between two subsystems
12
+ - **Component Canon**: buildable part with its own convergence
13
+
14
+ Inheritance: constraints are additive (stricter is allowed, looser is not), authority budget Rights are a ceiling, Consumption is allocatable.
15
+
16
+ ## Interface Canon — Contract Fields
17
+
18
+ Each Interface Canon describes at minimum:
19
+ - Parties (which subsystems)
20
+ - Delivered value (both directions)
21
+ - Guarantees (what is always true)
22
+ - Expectations (what may the receiver assume)
23
+ - Failure behavior (what if something goes wrong)
24
+
25
+ Plus five additional fields:
26
+ - **Data Shape**: what is exchanged, described enumeratively (in natural language, not as a schema)
27
+ - **Versioning/Compat**: what breaks compatibility? What is a backward-compatible change?
28
+ - **Error Semantics**: what specific errors may B expect from A? How are they signaled?
29
+ - **Privacy/Classification**: which data is PII, confidential, or classified? Which side may see what?
30
+ - **Rate/Cost Expectations**: what is "normal" usage? What is a peak? Where are the limits?
31
+
32
+ ## Canon Anchors
33
+
34
+ Canon Anchors are references to specific dialog turns. They enable traceability from derived artifacts (behavior map, acceptance tests, implementation) back to the canonical dialog.
35
+
36
+ Notation: **H[N]** for HUMAN turn N, **A[N]** for ASSISTANT turn N (1-indexed).
37
+
38
+ Example: H1 = first human message, A3 = third assistant message.
39
+
40
+ Canon Anchors are used in:
41
+ - Behavior Maps: every behavior links to the dialog turn that defines it
42
+ - Acceptance Tests: every test cites the dialog turn it validates
43
+ - Traceability Maps: full mapping from Canon Anchor to requirement to test to implementation
44
+ - Implementation code comments: `// Canon Anchor: H3, A4`
45
+
46
+ ## Blind Reconstruction Test
47
+
48
+ The ultimate validation of a converged canon: can a coding agent, without seeing source code, reconstruct the system from only the canon?
49
+
50
+ Use `/pantion-validate` to run this test. See `protocol/commands/validate.md` for the full methodology.
51
+
52
+ ## Reverse Pantion (Code → Canon)
53
+
54
+ In addition to the normal flow (Intent → Canon → Code), Pantion supports the reverse direction: analyzing an existing codebase and reconstructing the intent as a canon.
55
+
56
+ Core principle: extract **what** the code does, not **how**. The output is a synthetic dialog that reads as if it were originally conducted.
57
+
58
+ Applications: legacy migration, technology swap, documentation, audit, proof that intent canonization works.
59
+
60
+ The output is a synthetic dialog that reads as if it were originally conducted. This dialog is the canon. A derived summary is generated alongside it.
61
+
62
+ The generated canon gets STATUS: CONVERGED (REVERSE) and contains an extra AMBIGUITIES field for "bug or feature?" points. Traceability points in reverse: from canon element to source code location, with a confidence level (high/medium/low).
63
+
64
+ The ultimate test: Code → Canon → Code' → behavior(Code) ≈ behavior(Code')
65
+
66
+ ## Re-convergence (Canon → Better Canon)
67
+
68
+ The dialog is conducted by a specific model at a specific time. A newer or more capable model may identify gaps: questions that should have been asked, assumptions that were never made explicit, edge cases that were not explored. The answers to never-asked questions are simply not in the canon.
69
+
70
+ **Re-convergence** is the solution: a better model reads the existing dialog, produces a gap analysis, and conducts a supplementary dialog with the user to fill those gaps. The original dialog stays intact (append-only).
71
+
72
+ ### How re-convergence differs from other commands
73
+
74
+ | | Resume | Amend | Reconverge |
75
+ |---|--------|-------|------------|
76
+ | **Entry condition** | DRAFT with open questions | CONVERGED — user wants a change | CONVERGED — model identifies gaps |
77
+ | **Who initiates** | User (wants to finish) | User (wants to change something) | Model (detects gaps) |
78
+ | **Primary action** | Answer remaining open questions | Apply a specific change | Gap analysis → targeted supplementary dialog |
79
+ | **Result status** | CONVERGED | AMENDED | RECONVERGED |
80
+
81
+ ### When to reconverge
82
+
83
+ - **Model upgrade**: a significantly better model is available
84
+ - **Periodic review**: important canons should be re-evaluated periodically
85
+ - **Dissatisfaction**: the implementation reveals that the original convergence was too shallow
86
+ - **New domain knowledge**: insights that weren't available during the original dialog
87
+ - **Check recommendation**: `/pantion-check` detected thin or missing elements
88
+
89
+ ### Gap analysis dimensions
90
+
91
+ 1. **Unexplored convergence elements** — checklist items that are thin or absent
92
+ 2. **Implicit assumptions** — things assumed without being made explicit
93
+ 3. **Ambiguous resolutions** — vague answers that should have been probed further
94
+ 4. **Missing edge cases** — failure modes, boundary conditions not discussed
95
+ 5. **Authority budget gaps** — rights, consumption, or forbidden actions underspecified
96
+ 6. **Interface gaps** — contracts between components incomplete (for decomposed systems)
97
+
98
+ ### The future-proof promise
99
+
100
+ The true future-proofing of Pantion is not just re-derivation (better artifacts from the same dialog) but **re-convergence** (a deeper dialog built on top of the original). The original dialog preserves the user's voice, decisions, priorities, and domain context — a better model uses this as a foundation, not a limitation.
101
+
102
+ Use `/pantion-redialog` (alias: `/pantion-reconverge`) to initiate a redialog.
103
+
104
+ ## Souls (Interaction Style)
105
+
106
+ A **soul** is a configurable interaction style that determines *how* the convergence dialog is conducted — the tone, pacing, jargon level, and questioning approach. It does NOT change *what* is discussed: convergence requirements (intent, constraints, success criteria, authority budget) remain identical regardless of soul.
107
+
108
+ ### How souls differ from skills
109
+
110
+ | | Skill | Soul |
111
+ |---|-------|------|
112
+ | **Determines** | What convergence elements to cover (domain-specific) | How to communicate during convergence |
113
+ | **Examples** | Software Development, Image Description | Balanced Professional, Beginner Friendly, Young Builder |
114
+ | **Composable** | One skill per session | One soul per session, works with any skill |
115
+ | **Location** | `skills/` directory | `souls/` directory |
116
+
117
+ ### Soul structure
118
+
119
+ ```
120
+ souls/{name}/
121
+ ├── soul.json (manifest: name, displayName, description, version)
122
+ └── rules.md (interaction rules — injected into system prompt)
123
+ ```
124
+
125
+ ### Search order
126
+
127
+ Same as skills: project-local (`souls/`) → user-global (`~/.pantion/souls/`) → bundled.
128
+
129
+ ### Built-in souls
130
+
131
+ - **default** — Balanced Professional: clear, direct, systematic. Used when no soul is specified.
132
+ - **beginner** — Beginner Friendly: extra explanation, less jargon, smaller steps, understanding checks.
133
+ - **young** — Young Builder: simple language, concrete examples, encouraging tone. For young users building their first project.
134
+
135
+ ### Rules
136
+
137
+ - Soul rules are injected into the system prompt after skill rules
138
+ - The soul is saved in the session (traceability: which style was used)
139
+ - If no soul is specified, the "default" soul is used
140
+ - Soul rules must never weaken convergence requirements — they only change presentation
141
+ - Custom souls can be created by adding a directory to `souls/` (project-local or `~/.pantion/souls/`)
142
+
143
+ ## Dynamic Skills (Skills from Canons)
144
+
145
+ Skills can be created through Pantion dialogs, making them **model-proof**. Instead of hand-crafting skill files, a user converges on domain knowledge through a skill-builder dialog. The resulting canon is the source of truth from which all skill files are derived.
146
+
147
+ ### Skill Canon Structure
148
+
149
+ Dynamic skills store their source canon alongside the derived skill files:
150
+
151
+ ```
152
+ skills/{name}/
153
+ ├── skill.json ← DERIVED from skill-canon
154
+ ├── convergence-rules.md ← DERIVED from skill-canon
155
+ ├── translate.md ← DERIVED from skill-canon
156
+ ├── prompts/ ← DERIVED from skill-canon
157
+ │ ├── convergence-intro.md
158
+ │ └── translate-intro.md
159
+ └── canon/ ← SOURCE (model-proof)
160
+ ├── skill-dialog.md ← THE CANON
161
+ └── skill-summary.md ← DERIVED
162
+ ```
163
+
164
+ ### The Skill-Builder Meta-Skill
165
+
166
+ The `skill-builder` is a bundled meta-skill that knows how to converge on domain knowledge. It guides the user through: what is this domain? What decisions matter? What do agents get wrong? What output should the skill produce?
167
+
168
+ ### Skill Canon Lifecycle
169
+
170
+ - `pantion_create-skill`: start a skill dialog using the skill-builder
171
+ - `pantion_save-canon` (with `skill_name`): save the skill canon to `skills/{name}/canon/`
172
+ - `pantion_translate`: translate the skill canon into skill files
173
+ - `pantion_reskill`: reconverge an existing skill canon to deepen domain knowledge
174
+
175
+ ### Compatibility
176
+
177
+ - Existing bundled skills (software, image) work exactly as before — no canon needed
178
+ - Dynamic skills are loaded by the same registry with `source: 'dynamic'`
179
+ - The three-tier search (project > user > bundled) works for both hand-crafted and dynamic skills
180
+ - A dynamic skill can override a bundled skill (project-local takes priority)
181
+
182
+ ### Rules
183
+
184
+ - The skill dialog is the canon — skill files are derived
185
+ - Skill canons are stored in `skills/{name}/canon/`, NOT in the project `canon/` directory
186
+ - Skill canons do NOT appear in the project `canon/index.md`
187
+ - Reconvergence on a skill canon (`pantion_reskill`) uses skill-builder rules
188
+ - The skill-builder meta-skill is bundled and evolves only through protocol updates