@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.
- package/dist/feature-set.d.ts +14 -0
- package/dist/feature-set.d.ts.map +1 -0
- package/dist/feature-set.js +38 -0
- package/dist/feature-set.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +56 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/convergence-prompts.d.ts +4 -0
- package/dist/prompts/convergence-prompts.d.ts.map +1 -0
- package/dist/prompts/convergence-prompts.js +76 -0
- package/dist/prompts/convergence-prompts.js.map +1 -0
- package/dist/prompts/index.d.ts +4 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +7 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/workflow-prompts.d.ts +9 -0
- package/dist/prompts/workflow-prompts.d.ts.map +1 -0
- package/dist/prompts/workflow-prompts.js +249 -0
- package/dist/prompts/workflow-prompts.js.map +1 -0
- package/dist/resources/canon-resources.d.ts +4 -0
- package/dist/resources/canon-resources.d.ts.map +1 -0
- package/dist/resources/canon-resources.js +160 -0
- package/dist/resources/canon-resources.js.map +1 -0
- package/dist/server.d.ts +9 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +47 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/amend.d.ts +4 -0
- package/dist/tools/amend.d.ts.map +1 -0
- package/dist/tools/amend.js +106 -0
- package/dist/tools/amend.js.map +1 -0
- package/dist/tools/approve.d.ts +4 -0
- package/dist/tools/approve.d.ts.map +1 -0
- package/dist/tools/approve.js +60 -0
- package/dist/tools/approve.js.map +1 -0
- package/dist/tools/check-convergence.d.ts +4 -0
- package/dist/tools/check-convergence.d.ts.map +1 -0
- package/dist/tools/check-convergence.js +50 -0
- package/dist/tools/check-convergence.js.map +1 -0
- package/dist/tools/check.d.ts +4 -0
- package/dist/tools/check.d.ts.map +1 -0
- package/dist/tools/check.js +190 -0
- package/dist/tools/check.js.map +1 -0
- package/dist/tools/create-skill.d.ts +4 -0
- package/dist/tools/create-skill.d.ts.map +1 -0
- package/dist/tools/create-skill.js +58 -0
- package/dist/tools/create-skill.js.map +1 -0
- package/dist/tools/decompose.d.ts +4 -0
- package/dist/tools/decompose.d.ts.map +1 -0
- package/dist/tools/decompose.js +56 -0
- package/dist/tools/decompose.js.map +1 -0
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +47 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/list-canons.d.ts +4 -0
- package/dist/tools/list-canons.d.ts.map +1 -0
- package/dist/tools/list-canons.js +28 -0
- package/dist/tools/list-canons.js.map +1 -0
- package/dist/tools/migrate.d.ts +4 -0
- package/dist/tools/migrate.d.ts.map +1 -0
- package/dist/tools/migrate.js +38 -0
- package/dist/tools/migrate.js.map +1 -0
- package/dist/tools/onboard.d.ts +4 -0
- package/dist/tools/onboard.d.ts.map +1 -0
- package/dist/tools/onboard.js +27 -0
- package/dist/tools/onboard.js.map +1 -0
- package/dist/tools/reconverge.d.ts +4 -0
- package/dist/tools/reconverge.d.ts.map +1 -0
- package/dist/tools/reconverge.js +68 -0
- package/dist/tools/reconverge.js.map +1 -0
- package/dist/tools/reject.d.ts +4 -0
- package/dist/tools/reject.d.ts.map +1 -0
- package/dist/tools/reject.js +57 -0
- package/dist/tools/reject.js.map +1 -0
- package/dist/tools/reskill.d.ts +4 -0
- package/dist/tools/reskill.d.ts.map +1 -0
- package/dist/tools/reskill.js +63 -0
- package/dist/tools/reskill.js.map +1 -0
- package/dist/tools/resume.d.ts +4 -0
- package/dist/tools/resume.d.ts.map +1 -0
- package/dist/tools/resume.js +56 -0
- package/dist/tools/resume.js.map +1 -0
- package/dist/tools/reverse.d.ts +4 -0
- package/dist/tools/reverse.d.ts.map +1 -0
- package/dist/tools/reverse.js +32 -0
- package/dist/tools/reverse.js.map +1 -0
- package/dist/tools/save-canon.d.ts +4 -0
- package/dist/tools/save-canon.d.ts.map +1 -0
- package/dist/tools/save-canon.js +97 -0
- package/dist/tools/save-canon.js.map +1 -0
- package/dist/tools/start.d.ts +4 -0
- package/dist/tools/start.d.ts.map +1 -0
- package/dist/tools/start.js +83 -0
- package/dist/tools/start.js.map +1 -0
- package/dist/tools/translate.d.ts +4 -0
- package/dist/tools/translate.d.ts.map +1 -0
- package/dist/tools/translate.js +102 -0
- package/dist/tools/translate.js.map +1 -0
- package/dist/tools/update.d.ts +4 -0
- package/dist/tools/update.d.ts.map +1 -0
- package/dist/tools/update.js +42 -0
- package/dist/tools/update.js.map +1 -0
- package/dist/utils/response.d.ts +12 -0
- package/dist/utils/response.d.ts.map +1 -0
- package/dist/utils/response.js +18 -0
- package/dist/utils/response.js.map +1 -0
- package/package.json +37 -0
- package/protocol/commands/amend.md +188 -0
- package/protocol/commands/build.md +90 -0
- package/protocol/commands/check.md +255 -0
- package/protocol/commands/create-skill.md +81 -0
- package/protocol/commands/decompose.md +230 -0
- package/protocol/commands/dialog.md +173 -0
- package/protocol/commands/help.md +121 -0
- package/protocol/commands/migrate.md +173 -0
- package/protocol/commands/onboard.md +210 -0
- package/protocol/commands/quick.md +170 -0
- package/protocol/commands/redialog.md +252 -0
- package/protocol/commands/reskill.md +73 -0
- package/protocol/commands/resume.md +148 -0
- package/protocol/commands/reverse.md +312 -0
- package/protocol/commands/start.md +220 -0
- package/protocol/commands/translate.md +157 -0
- package/protocol/commands/update.md +205 -0
- package/protocol/commands/validate.md +137 -0
- package/protocol/core-advanced.md +188 -0
- package/protocol/core.md +273 -0
- package/protocol/pantion-future-prompt.md +88 -0
- package/protocol/pantion-intent.md +78 -0
- package/protocol/templates/acceptance-tests.md +116 -0
- package/protocol/templates/behavior-map.md +135 -0
- package/protocol/templates/traceability-map.md +56 -0
- package/skills/image/convergence-rules.md +55 -0
- package/skills/image/prompts/convergence-intro.md +25 -0
- package/skills/image/prompts/translate-intro.md +37 -0
- package/skills/image/skill.json +12 -0
- package/skills/image/translate.md +67 -0
- package/skills/skill-builder/convergence-rules.md +64 -0
- package/skills/skill-builder/prompts/convergence-intro.md +21 -0
- package/skills/skill-builder/prompts/translate-intro.md +17 -0
- package/skills/skill-builder/skill.json +10 -0
- package/skills/skill-builder/translate.md +46 -0
- package/skills/software/convergence-rules.md +29 -0
- package/skills/software/prompts/convergence-intro.md +22 -0
- package/skills/software/prompts/translate-intro.md +19 -0
- package/skills/software/skill.json +12 -0
- package/skills/software/translate.md +74 -0
- package/skills/software-brownfield/convergence-rules.md +109 -0
- package/skills/software-brownfield/prompts/convergence-intro.md +26 -0
- package/skills/software-brownfield/prompts/translate-intro.md +13 -0
- package/skills/software-brownfield/skill.json +12 -0
- package/skills/software-brownfield/translate.md +56 -0
- package/souls/beginner/rules.md +34 -0
- package/souls/beginner/soul.json +6 -0
- package/souls/default/rules.md +25 -0
- package/souls/default/soul.json +6 -0
- package/souls/young/rules.md +67 -0
- package/souls/young/soul.json +6 -0
package/protocol/core.md
ADDED
|
@@ -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]
|