@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,273 @@
1
+ # Pantion DialogSpec — Core Knowledge
2
+
3
+ > This file contains the core knowledge of the Pantion DialogSpec Protocol.
4
+ > It is loaded by MCP clients via the protocol directory, and mirrored in .claude/rules/pantion-core.md for Claude Code.
5
+ > The developer does not need to read this — it guides agent behavior.
6
+
7
+ ## Language
8
+
9
+ Pantion protocol files are in English. When interacting with the user, always match the user's language. Canons are written in the language of the dialog. Generated project files follow the project's language convention.
10
+
11
+ ## What is Pantion?
12
+
13
+ Pantion is a protocol that lets natural-language dialogs converge into an unambiguous intent description. The result is not a program or schema, but a canonical intent that can be directly translated into project files and implementation.
14
+
15
+ ## Core Principles
16
+
17
+ 1. The verbatim dialog is the canon — the only source of truth
18
+ 2. Everything stays in natural language
19
+ 3. Structure is emergent, not imposed
20
+ 4. A dialog is complete when further questions yield no new behavior
21
+ 5. Implementation choices are NEVER made in the dialog (unless the human insists)
22
+ 6. All derived artifacts (summaries, project files, tests) may NEVER override the canon
23
+ 7. The dialog is always saved — this enables future models to re-derive better artifacts from the same canon
24
+
25
+ ## Canon Structure: Dialog is the Canon
26
+
27
+ The canon is the **verbatim dialog** (chronological Q/A log) between HUMAN and ASSISTENT. This is the only source of truth.
28
+
29
+ ### File structure per canon:
30
+
31
+ ```
32
+ canon/
33
+ ├── index.md ← Overview of all canons
34
+ ├── {naam}/
35
+ │ ├── dialog.md ← THE CANON (verbatim dialog)
36
+ │ ├── summary.md ← DERIVED: structured summary for navigation
37
+ │ ├── traceability.md ← DERIVED: canon → spec traceability
38
+ │ └── spec/ ← DERIVED: project specification files
39
+ │ ├── requirements.md
40
+ │ ├── constraints.md
41
+ │ └── ...
42
+ ```
43
+
44
+ ### Why the dialog is the canon, not the summary:
45
+
46
+ 1. **The dialog preserves nuance**: rejected options, hesitations, the order of discovery — information that a summary loses
47
+ 2. **Future-proof**: a smarter model can re-read the dialog and conduct a redialog (`/pantion-redialog`) — identifying gaps the original model missed and conducting a supplementary dialog to fill them. Additionally, better models can re-derive better summaries and project files from the same dialog
48
+ 3. **The summary is a convenience**: it helps humans and agents navigate, but it is never authoritative
49
+ 4. **Traceability is richer**: derived files can point to specific dialog passages (turns), not just summary sections
50
+
51
+ ### Rules:
52
+
53
+ - The dialog is ALWAYS saved verbatim (no editing, no cherry-picking)
54
+ - The summary is regenerated when the dialog changes (resume, amend)
55
+ - If the summary and dialog conflict, the dialog wins
56
+ - Traceability points to dialog passages where possible
57
+
58
+ ## Canon Lifecycle
59
+
60
+ A canon progresses through these statuses:
61
+
62
+ - **DRAFT**: dialog has started but has not yet converged (OPEN QUESTIONS exist)
63
+ - **CONVERGED**: all questions answered, stamp set, ready for translation/building
64
+ - **CONVERGED (DIALOG)**: converged in dialog mode with conservative assumptions (⚡ marked) — the default mode
65
+ - **CONVERGED (QUICK)**: legacy name for CONVERGED (DIALOG), kept for backward compatibility
66
+ - **CONVERGED (REVERSE)**: intent reconstructed from existing code
67
+ - **AMENDED**: converged and later modified via amendment
68
+ - **RECONVERGED**: a converged canon re-evaluated by a newer/better model that identified and explored gaps in the original convergence
69
+
70
+ Large projects often span multiple sessions: DRAFT → resume → resume → CONVERGED. This is normal and expected. A RECONVERGED canon may be reconverged again as models improve (iterative deepening).
71
+
72
+ ## Canon Index
73
+
74
+ Each project has a `canon/index.md` as an overview page:
75
+ - Which canons exist, with type and status
76
+ - For each canon: reference to both the dialog file (canon) and the summary file (derived)
77
+ - Open Questions backlog (all unanswered questions collected)
78
+ - Last modified + amendments per canon
79
+
80
+ The index is updated with EVERY canon change (start, resume, amend, decompose).
81
+
82
+ ## HARD vs FLEX
83
+
84
+ - **HARD**: invariants that must never change — recognize by: "must", "never", "always", security, privacy, cost, retention, isolation
85
+ - **FLEX**: defaults that may evolve — recognize by: "MVP", "makes no difference", "prefer", "handy", "default"
86
+ - **Unclear**: mark as OPEN QUESTION
87
+
88
+ ## Inference Policy
89
+
90
+ 1. Explicit wins over implicit
91
+ 2. Only one interpretation allowed
92
+ 3. Multiple interpretations → OPEN QUESTION (don't guess)
93
+ 4. Non-goals block "convenient" additions
94
+ 5. Constraints win over everything
95
+
96
+ **Conservative** (default): smallest scope, least power, safest option.
97
+ **Strict**: rule 2 extremely strict, no implicit interpretation whatsoever.
98
+
99
+ ## Authority Budget (always cover)
100
+
101
+ The Authority Budget consists of two categories:
102
+
103
+ ### Rights (ceiling per component — not additive)
104
+ - Allowed Actions: what may the system do?
105
+ - Forbidden Actions: what NEVER?
106
+ - Data Access: what may it see?
107
+ - Data Retention: does it store anything? For how long?
108
+ - User Notification: when to inform the user?
109
+ - Auditability: what must be reconstructable?
110
+
111
+ ### Consumption (rate/cost budget — additive and allocatable)
112
+ - Rate Limits: frequency limits per time unit
113
+ - Cost Limits: cost/token limits per period
114
+ - Budget Allocation: during decomposition, the Architect Canon can include an allocation (e.g., "component A max 30% of daily API budget")
115
+
116
+ During decomposition: Rights are a ceiling (component may have less, never more). Consumption is allocatable (total of components must not exceed system budget).
117
+
118
+ ## Convergence Elements (always cover)
119
+
120
+ - Intent (what, not how)
121
+ - Inputs (explicit + implicit + defaults)
122
+ - Outputs (observable)
123
+ - Success criteria (externally verifiable)
124
+ - Failure behavior (no silent failure)
125
+ - Non-goals (what it does NOT do)
126
+ - Authority budget (Rights + Consumption)
127
+ - Persistence/restart behavior
128
+
129
+ ## Decomposition (for large systems)
130
+
131
+ Signals that decomposition is needed (Decompose Score 0–5):
132
+ - (+1) More than 3 clearly independent behavior clusters
133
+ - (+1) Fundamentally different authority budgets per part
134
+ - (+1) Dialog is getting too long / context is being lost
135
+ - (+1) The human talks about "modules", "parts", "separate pieces"
136
+ - (+1) Different parts have different users or interfaces
137
+
138
+ Score 0–1: probably standalone. Score 2–3: discuss with the user. Score 4–5: actively propose decomposition.
139
+
140
+ ## Canon → File Translation
141
+
142
+ After convergence, the canon is the primary instruction set for any connected agent (served via MCP resources). Additionally, project specification files may be derived. The source for translation is the dialog (canon). The summary is used for navigation but never as authoritative source.
143
+
144
+ ### Primary Path (MCP-native)
145
+
146
+ Any MCP client reads the canon directly via:
147
+ - `pantion://canons/{name}/dialog` — the full dialog (source of truth)
148
+ - `pantion://canons/{name}/summary` — derived summary (for navigation)
149
+ - `pantion://skills/{name}/rules` — skill-specific rules and translation instructions
150
+
151
+ No agent-specific intermediate files are needed. The canon IS the instruction set.
152
+
153
+ ### Project Specification Files (via translate)
154
+
155
+ The translate step produces project-specific deliverables (not agent-specific instruction files):
156
+
157
+ | Canon element | Project specification file |
158
+ |--------------|--------------------------|
159
+ | System intent, requirements, success criteria | canon/{naam}/spec/requirements.md |
160
+ | HARD constraints, forbidden actions, data policies | canon/{naam}/spec/constraints.md |
161
+ | Success criteria, failure behavior | canon/{naam}/spec/success-criteria.md |
162
+ | API behavior (if applicable) | canon/{naam}/spec/api-spec.md |
163
+ | Data entities and retention (if applicable) | canon/{naam}/spec/data-model.md |
164
+ | Component structure (if applicable) | canon/{naam}/spec/architecture.md |
165
+ | Interfaces (if decomposed) | canon/{naam}/spec/interfaces/interface-*.md |
166
+
167
+ All derived files are generated from the dialog. The summary is itself a derived file.
168
+
169
+ ## Traceability (always-on)
170
+
171
+ Traceability is not just a step in `/pantion-translate`. It is a discipline:
172
+
173
+ - With EVERY generation or regeneration of derived files → update `canon/{naam}/traceability.md`
174
+ - With EVERY amendment → update traceability for affected files
175
+ - During decomposition → traceability covers all canon levels
176
+
177
+ Each derived file contains a comment: `<!-- Derived from: canon/{naam}/dialog.md, [date] -->`
178
+ The summary file also contains this comment, as it is itself derived from the dialog.
179
+
180
+ ## Convergence Verification Table
181
+
182
+ Before setting the DIALOGSPEC STAMP, the converger produces a Convergence Verification Table as proof that all 12 categories have been treated. This table is part of the last assistant message in the dialog, directly before the stamp.
183
+
184
+ Format (12 rows matching the Readiness Checklist categories):
185
+
186
+ | Criterium | Status |
187
+ |-----------|--------|
188
+ | Canon status | ✅ / ❌ |
189
+ | Intent clarity | ✅ / ❌ |
190
+ | Observable success | ✅ / ❌ |
191
+ | Inputs complete | ✅ / ❌ |
192
+ | Outputs unambiguous | ✅ / ❌ |
193
+ | Failure specified | ✅ / ❌ |
194
+ | Constraints absolute | ✅ / ❌ |
195
+ | Non-goals documented | ✅ / ❌ |
196
+ | Ambiguity handled | ✅ / ❌ |
197
+ | Authority Budget | ✅ / ❌ |
198
+ | Inference Policy | ✅ / ❌ |
199
+ | Dialog stability | ✅ / ❌ |
200
+
201
+ For quick mode: use ⚡ ASSUMPTION for items handled by conservative defaults.
202
+
203
+ The table concludes with: "A competent coding agent can, without further interaction, build a functionally equivalent system." (or the reason why not).
204
+
205
+ ## DIALOGSPEC STAMP — Required Fields
206
+
207
+ Every converged dialog ends with a machine-readable `=== DIALOGSPEC STAMP ===` block. The stamp contains at minimum:
208
+
209
+ - **STATUS**: CONVERGED | CONVERGED (DIALOG) | CONVERGED (QUICK) | CONVERGED (REVERSE) | AMENDED | RECONVERGED | DRAFT
210
+ - **DATE**: YYYY-MM-DD
211
+ - **MODEL**: model-id and display name, format: `model-id (Display Name)` (e.g. `claude-opus-4-6 (Claude Opus 4.6)`, `gpt-4o-2025-01 (GPT-4o)`)
212
+ - **CANON TYPE**: standalone | architect | interface | component
213
+ - **PARENT**: canonical name or "none"
214
+ - **OPEN QUESTIONS**: "none" for converged stamps, list otherwise
215
+ - **INFERENCE POLICY**: conservative | strict
216
+ - **STABILITY ZONES**: HARD constraints (list)
217
+ - **FLEX ZONES**: FLEX defaults (list)
218
+
219
+ Additional fields depend on status and command (see command-specific documentation). The MODEL field enables reconvergence decisions: which canons were produced by older models that might benefit from redialog with a newer model.
220
+
221
+ A canon cannot be saved without a valid stamp. The server enforces this structurally.
222
+
223
+ ## HUMAN STAMP — Authorization Gate
224
+
225
+ Every saved canon includes a `=== HUMAN STAMP ===` block that tracks human authorization. This is a mandatory gate between convergence and translation/building.
226
+
227
+ ### Structure
228
+
229
+ ```
230
+ === HUMAN STAMP ===
231
+ DATE: [not set]
232
+ ROLE: [not set]
233
+ STATUS: PENDING
234
+ NOTE: [not set]
235
+ === /HUMAN STAMP ===
236
+ ```
237
+
238
+ ### Status values
239
+
240
+ - **PENDING**: default for new canons in full mode — awaiting human review
241
+ - **APPROVED**: human has reviewed and authorized the canon for translation/building
242
+ - **REJECTED**: human has reviewed and rejected the canon — needs changes
243
+ - **AUTO-APPROVED**: automatically approved in dialog mode — the canon is immediately ready for translation
244
+
245
+ ### Rules
246
+
247
+ 1. A canon with STATUS other than APPROVED or AUTO-APPROVED may NOT be translated (`pantion_translate` blocks)
248
+ 2. The HUMAN STAMP is set via `pantion_approve` or `pantion_reject`, or automatically to AUTO-APPROVED in dialog mode
249
+ 3. When a canon is amended (`pantion_amend`) or reconverged (`pantion_redialog`), the HUMAN STAMP resets to PENDING
250
+ 4. Existing canons without a HUMAN STAMP block are treated as PENDING
251
+ 5. The HUMAN STAMP is the only allowed in-place mutation of a saved dialog file (all other changes are append-only)
252
+ 6. `pantion_check` reports HUMAN STAMP status as a warning if not APPROVED or AUTO-APPROVED
253
+ 7. `pantion_list-canons` includes the HUMAN STAMP status for each canon
254
+
255
+ ### Design rationale
256
+
257
+ The HUMAN STAMP ensures that no canon proceeds to translation or building without authorization. In full mode, this requires explicit human approval (`pantion_approve`). In dialog mode (the default), canons are auto-approved for fast iteration. The fill-in-place design (rather than append-only) avoids cluttering the dialog with administrative stamps.
258
+
259
+ ## Phase Transitions
260
+
261
+ The transition from convergence to building is ALWAYS a deliberate moment:
262
+
263
+ 1. Convergence reached → verification table produced
264
+ 2. All 12 categories ✅ → stamp set
265
+ 3. Checklist completed → all ✅
266
+ 4. **HUMAN STAMP authorized** → human approves (`pantion_approve`) or auto-approved in dialog mode
267
+ 5. Files generated → traceable to canon via Canon Anchors
268
+ 6. ONLY THEN → build mode (following `protocol/commands/build.md`)
269
+
270
+ In dialog mode (the default), steps 2-4 are accelerated: conservative assumptions are made and the canon is auto-approved. In full mode, all steps require explicit completion.
271
+
272
+ Large projects may remain in DRAFT across multiple sessions. Use `/pantion-resume` to continue converging later.
273
+
@@ -0,0 +1,88 @@
1
+ # Pantion Future Prompt — Instructions for Future Model Rebuilds
2
+
3
+ > You are about to rebuild or update the Pantion Protocol.
4
+ > Read this document BEFORE making any changes.
5
+ > This document tells you what works, what to preserve, and what to avoid.
6
+
7
+ ## Who You Are
8
+
9
+ You are a future model — possibly more capable than the one that wrote this protocol. You have access to the Pantion intent document (`pantion-intent.md`) and the current protocol files. Your job is to improve the protocol while preserving its core promise.
10
+
11
+ ## What Works Well (KEEP)
12
+
13
+ ### 1. The dialog-as-canon principle
14
+ The verbatim dialog being the source of truth is the foundation. Summaries and specs are derived. This works because it preserves nuance and enables reconvergence. **Do not weaken this.**
15
+
16
+ ### 2. The convergence model
17
+ Questions converge to stability. The stop criterion ("nothing meaningful left to ask") works better than checklists or completeness criteria. The 12-category checklist supports, not replaces, human judgment. **Do not over-formalize convergence.**
18
+
19
+ ### 3. Natural language throughout
20
+ No DSL, no schema, no formal notation as primary representation. Natural language is accessible, flexible, and future-proof. Structure emerges from the dialog. **Do not introduce a specification language.**
21
+
22
+ ### 4. Append-only canons
23
+ Canons are never edited, only appended to (via resume, amend, reconverge). This preserves history and enables traceability. **Do not add edit capabilities.**
24
+
25
+ ### 5. The MCP architecture
26
+ The server has no LLM. The client brings their own. Tools are thin wrappers around protocol commands. Resources serve canon content directly. This keeps the server simple, testable, and universal. **Do not add LLM calls to the server.**
27
+
28
+ ### 6. Skills and Souls separation
29
+ Skills determine WHAT to converge on (domain knowledge). Souls determine HOW to communicate (interaction style). They compose independently. **Do not merge them.**
30
+
31
+ ### 7. The reverse direction
32
+ Code → Canon works and is powerful. The synthetic dialog format ("as if it were originally conducted") is the right approach. **Do not change the output format to something non-dialog.**
33
+
34
+ ### 8. Decomposition model
35
+ Architect → Interface → Component canons with inheritance (constraints additive, authority budget ceiling, consumption allocatable). **Do not flatten the hierarchy.**
36
+
37
+ ## What Can Be Improved (IMPROVE)
38
+
39
+ ### 1. Convergence element coverage
40
+ The 12-category checklist could be more contextually intelligent. Different domains need different emphasis. Skills should be able to influence which categories are critical.
41
+
42
+ ### 2. Interface canon depth
43
+ The five additional contract fields (data shape, versioning, error semantics, privacy, rate/cost) are thorough but could be more opinionated about what "good enough" looks like.
44
+
45
+ ### 3. Reconvergence gap analysis
46
+ The six gap analysis dimensions are good but the detection heuristics could be sharper. Better models should produce more targeted gap analyses.
47
+
48
+ ### 4. Skill creation via dialog
49
+ Dynamic skills (created through Pantion dialogs) are a powerful concept. The skill-builder meta-skill could be deeper — more domain-specific questions, better validation of skill quality.
50
+
51
+ ### 5. Onboarding experience
52
+ The three strategies (forward, full reverse, partial) are clear. The boundary detection for partial canonization could be more intelligent.
53
+
54
+ ## What You Must NOT Do
55
+
56
+ 1. **Do not introduce a formal specification language.** No YAML specs, no JSON schemas, no DSLs as primary representation. Natural language is the point.
57
+
58
+ 2. **Do not add LLM calls to the server.** The server is deterministic and testable. The client brings the LLM.
59
+
60
+ 3. **Do not make canons editable.** Append-only is a feature, not a limitation.
61
+
62
+ 4. **Do not remove the dialog as source of truth.** The summary is for navigation. The dialog is the canon.
63
+
64
+ 5. **Do not add features nobody asked for.** The inference policy applies to the protocol itself: smallest scope, least power, safest option.
65
+
66
+ 6. **Do not break tool-agnosticism.** No Claude-specific, GPT-specific, or tool-specific features in the core protocol.
67
+
68
+ 7. **Do not make the protocol complex.** If it needs a 50-page manual, something is wrong. A human should be able to understand the core flow in 5 minutes.
69
+
70
+ 8. **Do not add execution capabilities.** Pantion describes intent. It never runs, compiles, deploys, or executes anything.
71
+
72
+ ## The Rebuild Process
73
+
74
+ 1. Read `pantion-intent.md` — understand the core principles
75
+ 2. Read this document — understand what to preserve and avoid
76
+ 3. Inventory the current protocol files — understand what exists
77
+ 4. Perform delta analysis — what to keep, improve, add, remove
78
+ 5. Get human approval before changing anything
79
+ 6. Regenerate protocol files in order: core knowledge → commands → skills → infrastructure
80
+ 7. Self-check against the core principles
81
+ 8. Produce a changelog
82
+ 9. Save a snapshot for rollback
83
+
84
+ ## The Self-Referential Test
85
+
86
+ The protocol that says "code is replaceable, intent is rebuildable" must apply that principle to itself. If the intent documents (`pantion-intent.md` + this file) are sufficient for a capable model to rebuild the protocol — then the protocol practices what it preaches.
87
+
88
+ Can you, reading only the intent documents and examining the current codebase, produce a better version of the protocol? If yes: the system works. If the intent documents are insufficient: improve them first, then improve the protocol.
@@ -0,0 +1,78 @@
1
+ # Pantion Intent — Core Principles
2
+
3
+ > This document describes WHAT Pantion is and WHY it exists.
4
+ > It is the canon of Pantion itself — the source of truth for any protocol update.
5
+ > All protocol files, commands, skills, and tools are derived from this intent.
6
+
7
+ ## Core Promise
8
+
9
+ **Code is replaceable. Intent is rebuildable.**
10
+
11
+ A well-converged intent description (canon) enables any competent agent to produce a functionally equivalent implementation — regardless of the technology, model, or era. The canon captures the **what** and the **why**, never the **how**.
12
+
13
+ ## Core Principles
14
+
15
+ ### Dialog as Canon
16
+
17
+ The verbatim dialog between human and assistant is the only source of truth. Everything else — summaries, project files, translated specs — is derived. Derived files may be regenerated; the dialog may not be edited.
18
+
19
+ **Why:** The dialog preserves nuance, rejected options, hesitations, and the order of discovery. A summary loses these. A better model can re-read the dialog and extract deeper understanding.
20
+
21
+ ### Natural Language Only
22
+
23
+ Pantion stays in natural language. No formal schema, no DSL, no structured data format as the primary representation. Structure is emergent from the dialog, not imposed on it.
24
+
25
+ **Why:** Natural language is the most accessible, flexible, and future-proof representation. Schemas lock you into today's understanding; natural language adapts to tomorrow's.
26
+
27
+ ### Convergence, Not Specification
28
+
29
+ A dialog converges when further questions yield no new behavior. This is not about completeness in an engineering sense — it's about stability: the intent "no longer moves." The stop criterion is: the assistant has nothing meaningful left to ask.
30
+
31
+ **Why:** Traditional specifications are written once and then maintained. Convergence dialogs discover intent through interaction. The process IS the product.
32
+
33
+ ### Future-Proof Through Depth
34
+
35
+ The dialog is future-proof not because it's perfect, but because it's deep. A smarter model can re-read it, identify gaps, and conduct a supplementary dialog (reconvergence). Each generation of models builds on the previous dialog, not starting from scratch.
36
+
37
+ **Why:** Today's model will miss things. Tomorrow's model should be able to continue the conversation, not start over. Append-only preserves the human's voice and context.
38
+
39
+ ### Tool-Agnostic, Model-Agnostic
40
+
41
+ Pantion works with any LLM and any coding agent. The protocol is independent of Claude, GPT, or any specific tool. The MCP server has no LLM — the client brings their own. Any MCP-compatible client can connect.
42
+
43
+ **Why:** Lock-in to a specific model or tool contradicts the promise of rebuildability. The canon must be usable by any competent system, now and in the future.
44
+
45
+ ## The Two Directions
46
+
47
+ ### Forward: Intent → Canon → Implementation
48
+
49
+ The primary flow. A human has an idea. Through dialog, the intent converges into a canon. The canon is translated into project specification files. Any agent builds from the specs.
50
+
51
+ ### Reverse: Implementation → Canon → (Better) Implementation
52
+
53
+ The secondary flow. An existing codebase is analyzed. The intent is reconstructed as a synthetic dialog. The result is a canon that reads as if it were originally conducted. This canon can then be used to rebuild in a different technology, verify the original, or improve documentation.
54
+
55
+ ## Scale Levels
56
+
57
+ Pantion operates at three scales:
58
+
59
+ 1. **Standalone**: A single canon for a single system. Most projects start here.
60
+ 2. **Decomposed**: An architect canon + interface canons + component canons. For larger systems where a single dialog would lose context.
61
+ 3. **Recursive**: A component canon is itself decomposed. For very large systems.
62
+
63
+ Inheritance flows downward: constraints are additive (stricter is allowed, looser is not), authority budget rights are a ceiling, consumption is allocatable.
64
+
65
+ ## What Pantion is NOT
66
+
67
+ - NOT a code generator (it produces intent descriptions, not code)
68
+ - NOT a project manager (it has no tasks, sprints, or timelines)
69
+ - NOT a deployment tool (it never runs, compiles, or deploys)
70
+ - NOT an LLM wrapper (the server has no LLM — the client brings their own)
71
+ - NOT a formal specification language (it uses natural language, not schemas)
72
+
73
+ ## The Ultimate Test
74
+
75
+ > Can a human, after one convergence session with any competent model, produce a canon from which any competent agent can build a functionally equivalent system — without further interaction?
76
+
77
+ If yes: Pantion works.
78
+ If no: the protocol needs improvement.
@@ -0,0 +1,116 @@
1
+ # Acceptance Tests Template
2
+
3
+ > **Artifact Type:** Derived / Non-Canonical
4
+ > **Rule:** If this document conflicts with the Canonical Dialog, the Canon wins.
5
+
6
+ ---
7
+
8
+ ## 1) Source Canon Reference
9
+
10
+ - **Canon Name:** [name]
11
+ - **Canon Date:** [date]
12
+ - **Canon Location:** [path]
13
+ - **Convergence Stamp:**
14
+ - STATUS: [status]
15
+ - INFERENCE POLICY: [policy]
16
+
17
+ ---
18
+
19
+ ## 2) Test Conventions
20
+
21
+ - **Test ID format:** AT-### (e.g., AT-001)
22
+ - **Canon Anchors:** Every test MUST cite Canon Anchors (e.g., H2, A3).
23
+ - **No invented behavior:** If a test requires guessing, add an OPEN QUESTION to the Canon instead.
24
+ - **HARD/FLEX label:** Mark each test as testing a HARD constraint or FLEX default.
25
+
26
+ ---
27
+
28
+ ## 3) Positive Flow Tests
29
+
30
+ ### AT-001 — [Test name]
31
+ - **Canon Anchors:** [e.g., H1, A2]
32
+ - **HARD/FLEX:** [HARD / FLEX]
33
+ - **Preconditions:** [setup required]
34
+ - **Steps:**
35
+ 1. [step]
36
+ 2. [step]
37
+ - **Expected:** [result]
38
+ - **Evidence:** [log line / screenshot / observable effect]
39
+
40
+ ### AT-002 — [Test name]
41
+ - Canon Anchors: ...
42
+ - HARD/FLEX: ...
43
+ - Steps: ...
44
+ - Expected: ...
45
+
46
+ ---
47
+
48
+ ## 4) Negative / Validation Tests
49
+
50
+ ### AT-101 — [Test name]
51
+ - **Canon Anchors:** [e.g., A5, H3]
52
+ - **HARD/FLEX:** HARD
53
+ - **Input:** [invalid input]
54
+ - **Expected:** [rejection / error message]
55
+ - **Evidence:** [observable effect]
56
+
57
+ ### AT-102 — [Test name]
58
+ - Canon Anchors: ...
59
+ - ...
60
+
61
+ ---
62
+
63
+ ## 5) Edge Cases
64
+
65
+ ### AT-201 — [Test name]
66
+ - **Canon Anchors:** [e.g., H4]
67
+ - **Scenario:** [boundary condition]
68
+ - **Expected:** [conservative handling per inference policy]
69
+
70
+ ### AT-202 — [Test name]
71
+ - Canon Anchors: ...
72
+ - Expected: ...
73
+
74
+ ---
75
+
76
+ ## 6) Failure / Reliability Tests
77
+
78
+ ### AT-301 — [Test name]
79
+ - **Canon Anchors:** [e.g., A7]
80
+ - **Fault injection:** [what fails]
81
+ - **Expected:** [graceful degradation / user notification]
82
+
83
+ ### AT-302 — [Test name]
84
+ - Canon Anchors: ...
85
+ - Expected: ...
86
+
87
+ ---
88
+
89
+ ## 7) Authority Budget Tests
90
+
91
+ > These must pass even if they reduce "user convenience".
92
+
93
+ ### AT-401 — [No access beyond allowed actions]
94
+ - **Canon Anchors:** [e.g., H6]
95
+ - **Attempt:** [forbidden action]
96
+ - **Expected:** blocked / denied / ignored
97
+
98
+ ### AT-402 — [Data retention obeyed]
99
+ - Canon Anchors: ...
100
+ - Expected: ...
101
+
102
+ ---
103
+
104
+ ## 8) Non-Goals Confirmed
105
+
106
+ ### AT-501 — [Feature creep is blocked]
107
+ - **Canon Anchors:** [e.g., A8]
108
+ - **Scenario:** user asks for out-of-scope feature
109
+ - **Expected:** system does not provide the feature
110
+
111
+ ---
112
+
113
+ ## 9) Regression Suite
114
+
115
+ - **Minimum acceptance set:** AT-001, AT-002, AT-101, AT-301, AT-401
116
+ - **Release Gate:** All required tests pass, plus any tests tied to recent amendments.
@@ -0,0 +1,135 @@
1
+ # Behavior Map Template
2
+
3
+ > **Artifact Type:** Derived / Non-Canonical
4
+ > **Rule:** If this document conflicts with the Canonical Dialog, the Canon wins.
5
+
6
+ ---
7
+
8
+ ## 1) Source Canon Reference
9
+
10
+ - **Canon Name:** [e.g., "Grap van de Dag"]
11
+ - **Canon Date:** [e.g., 2026-02-23]
12
+ - **Canon Location:** [repo path]
13
+ - **Convergence Stamp:**
14
+ - STATUS: [CONVERGED / etc.]
15
+ - OPEN QUESTIONS: [none / list]
16
+ - INFERENCE POLICY: [strict / conservative]
17
+
18
+ ---
19
+
20
+ ## 2) System Intent
21
+
22
+ - **Primary intent:**
23
+ - [Description]
24
+ - **Canon Anchor:** [e.g., H1, A2]
25
+
26
+ - **Secondary intents (if any):**
27
+ - [Description]
28
+ - **Canon Anchor:** [e.g., H3]
29
+
30
+ ---
31
+
32
+ ## 3) Inputs
33
+
34
+ ### 3.1 Input Channels
35
+ - **Channel(s):** [e.g., browser page load, button click]
36
+ - **Canon Anchor:** [e.g., H1]
37
+
38
+ ### 3.2 Input Format
39
+ - **Pattern(s):**
40
+ - Pattern: [description]
41
+ - Example: [example]
42
+ - **Canon Anchor:** [e.g., H2, A3]
43
+
44
+ ### 3.3 Validation Rules
45
+ - Required fields: [list]
46
+ - Allowed formats: [list]
47
+ - **Canon Anchor:** [e.g., A5]
48
+
49
+ ---
50
+
51
+ ## 4) Outputs
52
+
53
+ ### 4.1 Output Channels
54
+ - Channel: [e.g., browser DOM, API response]
55
+ - **Canon Anchor:** [e.g., A2]
56
+
57
+ ### 4.2 Output Payload
58
+ - Template: [description]
59
+ - **Canon Anchor:** [e.g., A4]
60
+
61
+ ---
62
+
63
+ ## 5) Core Behaviors
64
+
65
+ > Each behavior is a testable statement. No implementation details.
66
+
67
+ ### B-01 — [Behavior name]
68
+ - **Trigger:** [what initiates this behavior]
69
+ - **Steps (logical):** [what happens]
70
+ - **Success outcome:** [expected result]
71
+ - **Failure outcome(s):** [what happens on failure]
72
+ - **Canon Anchor:** [e.g., H1, A2]
73
+
74
+ ### B-02 — [Behavior name]
75
+ - **Trigger:** ...
76
+ - **Success:** ...
77
+ - **Failures:** ...
78
+ - **Canon Anchor:** ...
79
+
80
+ (Add/remove behaviors as needed.)
81
+
82
+ ---
83
+
84
+ ## 6) Constraints (Absolute)
85
+
86
+ > Constraints override convenience. Unclear constraints must be OPEN QUESTIONS in the Canon.
87
+
88
+ - **C-01:** [constraint]
89
+ - **Canon Anchor:** [e.g., H5]
90
+ - **C-02:** [constraint]
91
+ - **Canon Anchor:** [e.g., A6]
92
+
93
+ ---
94
+
95
+ ## 7) Non-Goals (Explicitly Out of Scope)
96
+
97
+ - **NG-01:** [what is NOT done]
98
+ - **Canon Anchor:** [e.g., A8]
99
+ - **NG-02:** [what is NOT done]
100
+ - **Canon Anchor:** [e.g., H4]
101
+
102
+ ---
103
+
104
+ ## 8) Failure Modes & Recovery
105
+
106
+ - **F-01 [Failure type]:**
107
+ - User-visible response: [message/behavior]
108
+ - Retry behavior: [yes/no/backoff]
109
+ - **Canon Anchor:** [e.g., A7]
110
+
111
+ - **F-02 [Failure type]:**
112
+ - User-visible response: ...
113
+ - **Canon Anchor:** ...
114
+
115
+ ---
116
+
117
+ ## 9) Observability
118
+
119
+ - Logs/events required: [list]
120
+ - User-facing confirmations: [list]
121
+ - Audit trail requirements: [list]
122
+ - **Canon Anchor:** [e.g., A9]
123
+
124
+ ---
125
+
126
+ ## 10) Authority Budget (Operationalized)
127
+
128
+ > Restated from Canon as executable checks.
129
+
130
+ - **Allowed actions:** [list]
131
+ - **Forbidden actions:** [list]
132
+ - **Data access:** [what may be accessed]
133
+ - **Data retention:** [what is stored, for how long]
134
+ - **Rate limits:** [if applicable]
135
+ - **Canon Anchor:** [e.g., H6, A10]