@pantion/dialogs 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dialogs/dialog-builder/convergence-rules.md +64 -0
- package/dialogs/dialog-builder/dialog.json +10 -0
- package/dialogs/dialog-builder/prompts/convergence-intro.md +21 -0
- package/dialogs/dialog-builder/prompts/translate-intro.md +17 -0
- package/dialogs/dialog-builder/translate.md +46 -0
- package/dialogs/image/convergence-rules.md +55 -0
- package/dialogs/image/dialog.json +12 -0
- package/dialogs/image/prompts/convergence-intro.md +25 -0
- package/dialogs/image/prompts/translate-intro.md +37 -0
- package/dialogs/image/translate.md +67 -0
- package/dialogs/software/convergence-rules.md +29 -0
- package/dialogs/software/dialog.json +12 -0
- package/dialogs/software/prompts/convergence-intro.md +22 -0
- package/dialogs/software/prompts/translate-intro.md +19 -0
- package/dialogs/software/translate.md +74 -0
- package/dialogs/software-brownfield/convergence-rules.md +109 -0
- package/dialogs/software-brownfield/dialog.json +12 -0
- package/dialogs/software-brownfield/prompts/convergence-intro.md +26 -0
- package/dialogs/software-brownfield/prompts/translate-intro.md +13 -0
- package/dialogs/software-brownfield/translate.md +56 -0
- package/dialogs/video/convergence-rules.md +96 -0
- package/dialogs/video/dialog.json +12 -0
- package/dialogs/video/prompts/convergence-intro.md +28 -0
- package/dialogs/video/prompts/translate-intro.md +41 -0
- package/dialogs/video/translate.md +81 -0
- package/dist/core/canon/index-manager.d.ts +27 -0
- package/dist/core/canon/index-manager.d.ts.map +1 -0
- package/dist/core/canon/index-manager.js +127 -0
- package/dist/core/canon/index-manager.js.map +1 -0
- package/dist/core/canon/manifest.d.ts +21 -0
- package/dist/core/canon/manifest.d.ts.map +1 -0
- package/dist/core/canon/manifest.js +56 -0
- package/dist/core/canon/manifest.js.map +1 -0
- package/dist/core/canon/validator.d.ts +12 -0
- package/dist/core/canon/validator.d.ts.map +1 -0
- package/dist/core/canon/validator.js +320 -0
- package/dist/core/canon/validator.js.map +1 -0
- package/dist/core/dialog/canon-writer.d.ts +22 -0
- package/dist/core/dialog/canon-writer.d.ts.map +1 -0
- package/dist/core/dialog/canon-writer.js +96 -0
- package/dist/core/dialog/canon-writer.js.map +1 -0
- package/dist/core/dialog/registry.d.ts +10 -0
- package/dist/core/dialog/registry.d.ts.map +1 -0
- package/dist/core/dialog/registry.js +102 -0
- package/dist/core/dialog/registry.js.map +1 -0
- package/dist/core/dialog/selector.d.ts +11 -0
- package/dist/core/dialog/selector.d.ts.map +1 -0
- package/dist/core/dialog/selector.js +32 -0
- package/dist/core/dialog/selector.js.map +1 -0
- package/dist/core/index.d.ts +20 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +30 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/protocol/convergence.d.ts +11 -0
- package/dist/core/protocol/convergence.d.ts.map +1 -0
- package/dist/core/protocol/convergence.js +30 -0
- package/dist/core/protocol/convergence.js.map +1 -0
- package/dist/core/protocol/loader.d.ts +6 -0
- package/dist/core/protocol/loader.d.ts.map +1 -0
- package/dist/core/protocol/loader.js +31 -0
- package/dist/core/protocol/loader.js.map +1 -0
- package/dist/core/protocol/stamp-parser.d.ts +46 -0
- package/dist/core/protocol/stamp-parser.d.ts.map +1 -0
- package/dist/core/protocol/stamp-parser.js +333 -0
- package/dist/core/protocol/stamp-parser.js.map +1 -0
- package/dist/core/protocol/system-prompt.d.ts +16 -0
- package/dist/core/protocol/system-prompt.d.ts.map +1 -0
- package/dist/core/protocol/system-prompt.js +68 -0
- package/dist/core/protocol/system-prompt.js.map +1 -0
- package/dist/core/session/canon-writer.d.ts +33 -0
- package/dist/core/session/canon-writer.d.ts.map +1 -0
- package/dist/core/session/canon-writer.js +152 -0
- package/dist/core/session/canon-writer.js.map +1 -0
- package/dist/core/session/manager.d.ts +10 -0
- package/dist/core/session/manager.d.ts.map +1 -0
- package/dist/core/session/manager.js +105 -0
- package/dist/core/session/manager.js.map +1 -0
- package/dist/core/skill/canon-writer.d.ts +22 -0
- package/dist/core/skill/canon-writer.d.ts.map +1 -0
- package/dist/core/skill/canon-writer.js +96 -0
- package/dist/core/skill/canon-writer.js.map +1 -0
- package/dist/core/skill/registry.d.ts +10 -0
- package/dist/core/skill/registry.d.ts.map +1 -0
- package/dist/core/skill/registry.js +102 -0
- package/dist/core/skill/registry.js.map +1 -0
- package/dist/core/skill/selector.d.ts +11 -0
- package/dist/core/skill/selector.d.ts.map +1 -0
- package/dist/core/skill/selector.js +32 -0
- package/dist/core/skill/selector.js.map +1 -0
- package/dist/core/soul/registry.d.ts +10 -0
- package/dist/core/soul/registry.d.ts.map +1 -0
- package/dist/core/soul/registry.js +73 -0
- package/dist/core/soul/registry.js.map +1 -0
- package/dist/core/types.d.ts +154 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +6 -0
- package/dist/core/types.js.map +1 -0
- package/dist/core/utils/fs.d.ts +14 -0
- package/dist/core/utils/fs.d.ts.map +1 -0
- package/dist/core/utils/fs.js +44 -0
- package/dist/core/utils/fs.js.map +1 -0
- package/dist/core/utils/project-detect.d.ts +3 -0
- package/dist/core/utils/project-detect.d.ts.map +1 -0
- package/dist/core/utils/project-detect.js +38 -0
- package/dist/core/utils/project-detect.js.map +1 -0
- 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 +265 -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 +164 -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-dialog.d.ts +4 -0
- package/dist/tools/create-dialog.d.ts.map +1 -0
- package/dist/tools/create-dialog.js +58 -0
- package/dist/tools/create-dialog.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 +49 -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/redialog.d.ts +4 -0
- package/dist/tools/redialog.d.ts.map +1 -0
- package/dist/tools/redialog.js +63 -0
- package/dist/tools/redialog.js.map +1 -0
- package/dist/tools/reflect.d.ts +4 -0
- package/dist/tools/reflect.d.ts.map +1 -0
- package/dist/tools/reflect.js +86 -0
- package/dist/tools/reflect.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/tools/validate.d.ts +4 -0
- package/dist/tools/validate.d.ts.map +1 -0
- package/dist/tools/validate.js +86 -0
- package/dist/tools/validate.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-dialog.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 +73 -0
- package/protocol/commands/reflect.md +136 -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/core-advanced.md +188 -0
- package/protocol/core.md +274 -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/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
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Dialog Builder — Additional Convergence Rules
|
|
2
|
+
|
|
3
|
+
You are building a Pantion SKILL — a domain-specific knowledge module that will guide future convergence dialogs. Your job is to extract the user's domain expertise and codify it as convergence guidance.
|
|
4
|
+
|
|
5
|
+
In addition to the standard Pantion convergence elements, always cover:
|
|
6
|
+
|
|
7
|
+
## Domain Identity
|
|
8
|
+
- What domain does this dialog cover? (one sentence, be specific)
|
|
9
|
+
- Who are the typical users? What are they trying to achieve?
|
|
10
|
+
- What is explicitly OUT of scope?
|
|
11
|
+
- What adjacent domains might users confuse with this one?
|
|
12
|
+
|
|
13
|
+
## Critical Domain Questions
|
|
14
|
+
- What questions MUST always be asked when converging in this domain?
|
|
15
|
+
- In what order should they be asked? (dependency-aware)
|
|
16
|
+
- For each question: why does it matter? What goes wrong if it is skipped?
|
|
17
|
+
- Which questions are domain-unique (not covered by the standard protocol)?
|
|
18
|
+
|
|
19
|
+
## Domain-Specific HARD/FLEX Guidance
|
|
20
|
+
- What constraints are typically HARD in this domain?
|
|
21
|
+
- What decisions are typically FLEX?
|
|
22
|
+
- What constraints are commonly overlooked?
|
|
23
|
+
- What non-goals are commonly assumed but should be stated?
|
|
24
|
+
|
|
25
|
+
## Safety Boundaries
|
|
26
|
+
- What actions must the dialog NEVER allow or encourage?
|
|
27
|
+
- What data or resources are off-limits?
|
|
28
|
+
- What are the worst-case outcomes if the dialog is misused or poorly applied?
|
|
29
|
+
- Are there legal, ethical, or professional constraints specific to this domain?
|
|
30
|
+
- What guardrails should the dialog enforce regardless of user preference?
|
|
31
|
+
|
|
32
|
+
## Common Mistakes
|
|
33
|
+
- What do agents typically get wrong in this domain?
|
|
34
|
+
- What domain knowledge do agents lack that humans take for granted?
|
|
35
|
+
- What "obvious" assumptions are actually wrong?
|
|
36
|
+
- What questions do agents fail to ask?
|
|
37
|
+
|
|
38
|
+
## Output Specification
|
|
39
|
+
- What files should translation produce for this domain?
|
|
40
|
+
- For each file: what should it contain? What format?
|
|
41
|
+
- Are there domain-specific output formats?
|
|
42
|
+
- What would a GOOD translation look like vs a BAD one?
|
|
43
|
+
|
|
44
|
+
## Vocabulary and Concepts
|
|
45
|
+
- What domain-specific terms should the agent understand?
|
|
46
|
+
- Are there terms that mean something different in this domain?
|
|
47
|
+
- What concepts require explanation for a general-purpose agent?
|
|
48
|
+
|
|
49
|
+
## Success Criteria for the Skill
|
|
50
|
+
- How would you verify that this dialog works well?
|
|
51
|
+
- What would a dialog look like that used this dialog correctly?
|
|
52
|
+
- What would a BAD dialog look like (skill not working)?
|
|
53
|
+
|
|
54
|
+
## Keywords
|
|
55
|
+
- What terms should trigger this dialog for auto-selection?
|
|
56
|
+
- Include variations, synonyms, and multilingual terms where relevant
|
|
57
|
+
|
|
58
|
+
## IMPORTANT
|
|
59
|
+
- Ask ONE question at a time — wait for the answer before asking the next
|
|
60
|
+
- The user is the domain expert — extract their knowledge, do not assume it
|
|
61
|
+
- If the user is unsure about a question, mark it as FLEX with a sensible default
|
|
62
|
+
- Do not suggest specific technologies or implementations
|
|
63
|
+
- Focus on WHAT the dialog should teach, not HOW it will be implemented
|
|
64
|
+
- Cover anti-patterns (what to avoid) just as thoroughly as patterns (what to do)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "dialog-builder",
|
|
3
|
+
"displayName": "Skill Builder",
|
|
4
|
+
"description": "Converge intent for creating a new Pantion skill. Extracts domain knowledge to produce a complete dialog definition.",
|
|
5
|
+
"version": "0.1.0",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"dialog", "create-dialog", "new-skill", "dialog-builder",
|
|
8
|
+
"domain", "expertise", "convergence-rules"
|
|
9
|
+
]
|
|
10
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Dialog Builder — Convergence Opening
|
|
2
|
+
|
|
3
|
+
You are creating a new Pantion skill. Your goal is to extract the user's domain expertise and codify it as convergence guidance.
|
|
4
|
+
|
|
5
|
+
## Opening approach
|
|
6
|
+
|
|
7
|
+
1. Ask what domain this dialog is for — in one sentence
|
|
8
|
+
2. Ask who the typical users are and what they are trying to achieve
|
|
9
|
+
3. Then systematically cover:
|
|
10
|
+
- What questions must always be asked in this domain?
|
|
11
|
+
- What do agents commonly get wrong?
|
|
12
|
+
- What does the output of a good convergence look like?
|
|
13
|
+
- What are the domain-specific constraints and vocabulary?
|
|
14
|
+
|
|
15
|
+
## Tone
|
|
16
|
+
|
|
17
|
+
- You are interviewing a domain expert — be respectful of their knowledge
|
|
18
|
+
- Ask one question at a time
|
|
19
|
+
- If they give a broad answer, probe for specifics
|
|
20
|
+
- Focus on extracting IMPLICIT knowledge — things the expert knows but might not think to mention
|
|
21
|
+
- Use concrete examples: "Can you give me an example of when an agent got this wrong?"
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Dialog Builder — Translation Opening
|
|
2
|
+
|
|
3
|
+
You are translating a converged dialog canon into dialog files.
|
|
4
|
+
|
|
5
|
+
## Process
|
|
6
|
+
|
|
7
|
+
1. Read the complete skill dialog (canon) — this is the only source of truth
|
|
8
|
+
2. Generate the required dialog files as described in `translate.md`
|
|
9
|
+
3. Every file starts with: `<!-- Derived from: dialogs/{skill_name}/canon/dialog.md, [date] -->`
|
|
10
|
+
|
|
11
|
+
## Key rules
|
|
12
|
+
|
|
13
|
+
- Source is ALWAYS the dialog, never the summary
|
|
14
|
+
- The convergence-rules.md must be complete enough to guide a convergence dialog without any other context
|
|
15
|
+
- Keywords must be realistic for auto-selection
|
|
16
|
+
- Do not include implementation details — only domain knowledge
|
|
17
|
+
- Anti-patterns are as important as patterns
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Dialog Builder — Translation Instructions
|
|
2
|
+
|
|
3
|
+
After convergence, generate SKILL FILES from the dialog dialog canon.
|
|
4
|
+
These files form a complete Pantion skill that can be used in future convergence dialogs.
|
|
5
|
+
|
|
6
|
+
The dialog canon itself (stored in the dialog's `canon/` directory) is the source of truth.
|
|
7
|
+
|
|
8
|
+
## Always Generate
|
|
9
|
+
|
|
10
|
+
1. **`dialogs/{skill_name}/dialog.json`**
|
|
11
|
+
- Manifest with: name, displayName, description, version ("0.1.0"), keywords
|
|
12
|
+
- Keywords derived from the domain identity and keywords discussion
|
|
13
|
+
- Description is one sentence capturing the domain intent
|
|
14
|
+
|
|
15
|
+
2. **`dialogs/{skill_name}/convergence-rules.md`**
|
|
16
|
+
- Domain-specific convergence guidance derived from the dialog
|
|
17
|
+
- Structured as additional rules (supplements the core protocol)
|
|
18
|
+
- Includes: critical domain questions, common mistakes to avoid, domain-specific HARD/FLEX guidance
|
|
19
|
+
- Each rule should explain WHY it matters
|
|
20
|
+
- Include an IMPORTANT section with domain-specific warnings
|
|
21
|
+
- Must be self-contained — an agent reading ONLY this file should understand the domain
|
|
22
|
+
|
|
23
|
+
3. **`dialogs/{skill_name}/translate.md`**
|
|
24
|
+
- Translation instructions for this domain
|
|
25
|
+
- Lists which files to generate after convergence (Always + If Applicable)
|
|
26
|
+
- Describes the expected content and format of each file
|
|
27
|
+
- Follows the pattern of existing dialog translate.md files
|
|
28
|
+
|
|
29
|
+
4. **`dialogs/{skill_name}/prompts/convergence-intro.md`**
|
|
30
|
+
- Opening prompt for convergence in this domain
|
|
31
|
+
- Sets the right tone and first questions
|
|
32
|
+
- References the domain-specific convergence rules
|
|
33
|
+
|
|
34
|
+
5. **`dialogs/{skill_name}/prompts/translate-intro.md`**
|
|
35
|
+
- Opening prompt for translation in this domain
|
|
36
|
+
- Sets expectations for output quality
|
|
37
|
+
|
|
38
|
+
## Rules
|
|
39
|
+
|
|
40
|
+
- Source is ALWAYS the dialog dialog (canon), not the summary
|
|
41
|
+
- Each generated markdown file starts with: `<!-- Derived from: dialogs/{skill_name}/canon/dialog.md, [date] -->`
|
|
42
|
+
- Do NOT add derivation comments to JSON files (dialog.json) — JSON does not support comments
|
|
43
|
+
- The convergence-rules.md file is the most important output — it should be complete and self-contained
|
|
44
|
+
- Do not include implementation details in convergence-rules.md — only domain knowledge
|
|
45
|
+
- Keywords should be broad enough to trigger the dialog but specific enough to avoid false matches
|
|
46
|
+
- The translate.md should describe outputs specific to this domain
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Image Generation — Additional Convergence Rules
|
|
2
|
+
|
|
3
|
+
In addition to the standard Pantion convergence elements, always cover:
|
|
4
|
+
|
|
5
|
+
## Visual Intent
|
|
6
|
+
- What is the core emotion, concept, or message?
|
|
7
|
+
- What should the viewer feel or understand?
|
|
8
|
+
- If the intent is abstract (e.g., "convergence", "growth", "trust"), ask: "How would you visualize that concretely? For example, lines coming together, a plant sprouting, hands shaking — or do you want me to suggest options?"
|
|
9
|
+
- Always arrive at concrete visual elements. Abstract concepts must be translated into something a viewer can see.
|
|
10
|
+
|
|
11
|
+
## Context and Usage (ask early — determines format and style)
|
|
12
|
+
- Where will this image be used? (website, social media, print, presentation, icon)
|
|
13
|
+
- Are there brand guidelines or constraints?
|
|
14
|
+
- This determines format, resolution, and appropriate style — ask BEFORE format/style questions.
|
|
15
|
+
|
|
16
|
+
## Subject and Composition
|
|
17
|
+
- What are the key visual elements? What is the main subject?
|
|
18
|
+
- Where should elements be positioned? What is the visual hierarchy? (what draws the eye first?)
|
|
19
|
+
- Format and aspect ratio? (square, landscape, portrait, specific dimensions)
|
|
20
|
+
|
|
21
|
+
## Style
|
|
22
|
+
- Art style or aesthetic? (photorealistic, illustration, cartoon, abstract, etc.)
|
|
23
|
+
- Color palette or mood?
|
|
24
|
+
- References? ("like X" — helps generators understand the target)
|
|
25
|
+
|
|
26
|
+
## Anti-References (CRITICAL — drives negative prompts)
|
|
27
|
+
- What should this NOT look like? Be specific.
|
|
28
|
+
- What visual clichés to avoid?
|
|
29
|
+
- What tonal boundaries? (e.g., "not childish", "not aggressive", "not corporate")
|
|
30
|
+
- These are HARD constraints. They MUST appear in the generated prompt as negative guidance.
|
|
31
|
+
|
|
32
|
+
## Technical
|
|
33
|
+
- Target resolution or medium? (web, print, social media — may already follow from Context)
|
|
34
|
+
- Generator preference? (DALL-E, Midjourney, Stable Diffusion, Gemini — FLEX)
|
|
35
|
+
|
|
36
|
+
## Question Order
|
|
37
|
+
|
|
38
|
+
Follow this order to avoid redundant questions:
|
|
39
|
+
|
|
40
|
+
1. **Visual intent** — what and why
|
|
41
|
+
2. **Context/usage** — where (determines format and style constraints)
|
|
42
|
+
3. **Subject and composition** — what we see, format
|
|
43
|
+
4. **Style** — how it looks
|
|
44
|
+
5. **Color** — palette and mood
|
|
45
|
+
6. **Anti-references** — what it must NOT be
|
|
46
|
+
7. **Technical** — generator preference (only if user cares)
|
|
47
|
+
|
|
48
|
+
Skip questions whose answers are already implied by earlier answers. If format follows logically from context (e.g., "social media profile" → square), confirm rather than ask.
|
|
49
|
+
|
|
50
|
+
## IMPORTANT
|
|
51
|
+
- Do NOT choose a generator unless the user insists — mark as FLEX
|
|
52
|
+
- Focus on the VISUAL INTENT, not the technical prompt syntax
|
|
53
|
+
- The canon describes what the image should express, not prompt engineering
|
|
54
|
+
- Abstract concepts MUST be translated into concrete visual descriptions before convergence is complete
|
|
55
|
+
- Anti-references are HARD constraints, not suggestions — treat them with the same weight as positive requirements
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "image",
|
|
3
|
+
"displayName": "Image Generation",
|
|
4
|
+
"description": "Converge intent for image generation. Translates canon to detailed image generation prompts.",
|
|
5
|
+
"version": "0.1.0",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"image", "picture", "photo", "illustration", "art",
|
|
8
|
+
"visual", "design", "logo", "icon", "drawing",
|
|
9
|
+
"afbeelding", "foto", "tekening", "illustratie", "beeld",
|
|
10
|
+
"poster", "banner", "artwork"
|
|
11
|
+
]
|
|
12
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Image Generation — Convergence Opening
|
|
2
|
+
|
|
3
|
+
You are converging an image generation intent. Your goal is to reach an unambiguous visual description through targeted questions.
|
|
4
|
+
|
|
5
|
+
## Opening approach
|
|
6
|
+
|
|
7
|
+
1. Acknowledge what the user wants to create
|
|
8
|
+
2. Ask for the **core visual intent**: what should the viewer feel or understand?
|
|
9
|
+
3. If the intent is abstract, immediately ask how to visualize it concretely — don't leave abstract concepts unresolved
|
|
10
|
+
4. Then systematically cover (in this order):
|
|
11
|
+
- Context: where will it be used? (determines format and style)
|
|
12
|
+
- Subject and key visual elements
|
|
13
|
+
- Composition and hierarchy (what draws the eye first?)
|
|
14
|
+
- Format and aspect ratio (may already follow from context — confirm, don't re-ask)
|
|
15
|
+
- Style and aesthetic (photorealistic, illustration, cartoon, abstract, etc.)
|
|
16
|
+
- Color palette and mood
|
|
17
|
+
- What should it NOT look like? (anti-references — be specific, these become negative prompts)
|
|
18
|
+
|
|
19
|
+
## Tone
|
|
20
|
+
|
|
21
|
+
- Be direct — ask one visual question at a time
|
|
22
|
+
- Do not suggest a generator unless the user asks — mark as FLEX
|
|
23
|
+
- If the user's visual description is vague, ask for a concrete reference or anti-reference
|
|
24
|
+
- Focus on the visual intent, not on prompt engineering syntax
|
|
25
|
+
- Skip questions whose answers are already implied by earlier answers
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Image Generation — Translation Opening
|
|
2
|
+
|
|
3
|
+
You are translating a converged image canon into generation-ready files.
|
|
4
|
+
|
|
5
|
+
## Process
|
|
6
|
+
|
|
7
|
+
1. Read the complete dialog (canon) — this is the only source of truth
|
|
8
|
+
2. Generate the required files as described in `translate.md`:
|
|
9
|
+
- `canon/{naam}/prompt.md` — detailed, generator-agnostic image description
|
|
10
|
+
- `canon/{naam}/brief.md` — human-readable creative brief
|
|
11
|
+
- Generator-specific prompts if applicable
|
|
12
|
+
3. Every file starts with: `<!-- Derived from: canon/{naam}/dialog.md, [date] -->`
|
|
13
|
+
|
|
14
|
+
## Key rules
|
|
15
|
+
|
|
16
|
+
- Source is ALWAYS the dialog, never the summary
|
|
17
|
+
- The prompt describes WHAT the image should express, derived from the converged intent
|
|
18
|
+
- Write the prompt in plain English, even if the dialog was in another language
|
|
19
|
+
- Do not add visual elements that are not in the dialog
|
|
20
|
+
|
|
21
|
+
## Critical translation steps
|
|
22
|
+
|
|
23
|
+
### 1. Negative prompts (never skip)
|
|
24
|
+
- Find ALL anti-references in the dialog ("niet X", "geen Y", "vermijd Z")
|
|
25
|
+
- Translate each into explicit negative guidance in the prompt
|
|
26
|
+
- Be specific and use multiple phrasings — generators need redundancy to respect negation
|
|
27
|
+
- Format negative prompts according to generator conventions (see translate.md)
|
|
28
|
+
|
|
29
|
+
### 2. Abstract → Concrete (never copy literally)
|
|
30
|
+
- Find abstract concepts used as visual intent ("convergentie", "groei", "kracht")
|
|
31
|
+
- Translate each into concrete visual elements (shapes, movements, compositions)
|
|
32
|
+
- If the dialog doesn't specify the visual metaphor, choose the most direct one and mark as FLEX
|
|
33
|
+
|
|
34
|
+
### 3. Prompt structure
|
|
35
|
+
- Structure as: subject, composition, style, color/mood, technical details
|
|
36
|
+
- Follow with: negative prompt section
|
|
37
|
+
- Include generator-specific formatting where applicable
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Image Generation — Translation Instructions
|
|
2
|
+
|
|
3
|
+
After convergence, generate the following files from the dialog canon.
|
|
4
|
+
|
|
5
|
+
## Always Generate
|
|
6
|
+
|
|
7
|
+
1. **`canon/{naam}/prompt.md`**
|
|
8
|
+
- A detailed, generator-agnostic image description
|
|
9
|
+
- Structured sections (see Prompt Structure below)
|
|
10
|
+
- Written in plain English (even if dialog was in another language)
|
|
11
|
+
- Anti-references as explicit negative guidance section
|
|
12
|
+
|
|
13
|
+
2. **`canon/{naam}/brief.md`**
|
|
14
|
+
- A human-readable creative brief
|
|
15
|
+
- Captures the intent, context, and constraints
|
|
16
|
+
- Useful for sharing with designers or for future reference
|
|
17
|
+
|
|
18
|
+
## Generate If Applicable
|
|
19
|
+
|
|
20
|
+
3. **Generator-specific prompts** (if a generator was chosen or for convenience):
|
|
21
|
+
- `canon/{naam}/prompt-dalle.md` — optimized for DALL-E / ChatGPT
|
|
22
|
+
- `canon/{naam}/prompt-midjourney.md` — optimized for Midjourney
|
|
23
|
+
- `canon/{naam}/prompt-sd.md` — optimized for Stable Diffusion
|
|
24
|
+
- `canon/{naam}/prompt-gemini.md` — optimized for Gemini
|
|
25
|
+
|
|
26
|
+
## Prompt Structure
|
|
27
|
+
|
|
28
|
+
Every prompt (universal and generator-specific) MUST include these sections:
|
|
29
|
+
|
|
30
|
+
### Positive prompt
|
|
31
|
+
- **Subject**: what is depicted (concrete, visual)
|
|
32
|
+
- **Composition**: layout, positioning, visual hierarchy
|
|
33
|
+
- **Style**: art style, aesthetic, rendering approach
|
|
34
|
+
- **Color**: palette, mood, lighting
|
|
35
|
+
- **Technical**: format, background, resolution
|
|
36
|
+
|
|
37
|
+
### Negative prompt (CRITICAL)
|
|
38
|
+
- Translate ALL anti-references from the dialog into explicit negative guidance
|
|
39
|
+
- "Niet kinderlijk" → "not childish, not cute, not infantile, no rounded baby-like features"
|
|
40
|
+
- "Niet realistisch" → "not photorealistic, not hyper-detailed, no photo textures"
|
|
41
|
+
- Be specific and redundant — generators need multiple phrasings to respect negation
|
|
42
|
+
|
|
43
|
+
### Generator-specific formatting
|
|
44
|
+
- **DALL-E**: Negative guidance woven into the prompt text ("Do not make it childish. Avoid...")
|
|
45
|
+
- **Midjourney**: Use `--no` parameter for key negatives, plus textual negatives in prompt
|
|
46
|
+
- **Stable Diffusion**: Separate `negative_prompt:` field with comma-separated terms
|
|
47
|
+
- **Gemini**: Negative guidance woven into the prompt text, similar to DALL-E
|
|
48
|
+
|
|
49
|
+
## Abstract → Concrete Translation (CRITICAL)
|
|
50
|
+
|
|
51
|
+
The dialog may contain abstract concepts as visual intent (e.g., "convergence", "growth", "freedom"). These MUST be translated into concrete visual elements in the prompt:
|
|
52
|
+
|
|
53
|
+
- **Abstract concept in dialog** → **Concrete visual in prompt**
|
|
54
|
+
- "convergentie" → "lines converging to a focal point, funnel shape, elements gathering toward center"
|
|
55
|
+
- "groei" → "plant sprouting, upward movement, expanding forms"
|
|
56
|
+
- "vrijheid" → "open sky, spread wings, unbound flowing elements"
|
|
57
|
+
|
|
58
|
+
If the dialog does not specify how to visualize an abstract concept, choose the most direct visual metaphor and note it as a FLEX choice.
|
|
59
|
+
|
|
60
|
+
## Rules
|
|
61
|
+
|
|
62
|
+
- Source is ALWAYS the dialog, not the summary
|
|
63
|
+
- Each file starts with: `<!-- Derived from: canon/{naam}/dialog.md, [date] -->`
|
|
64
|
+
- The prompt captures WHAT the image should express, derived from the converged intent
|
|
65
|
+
- Anti-references MUST appear as negative prompt/guidance — never omit them
|
|
66
|
+
- Abstract concepts MUST be translated to concrete visuals — never copy them literally
|
|
67
|
+
- Update `canon/{naam}/traceability.md` with complete mapping
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Software Development — Additional Convergence Rules
|
|
2
|
+
|
|
3
|
+
In addition to the standard Pantion convergence elements, always cover:
|
|
4
|
+
|
|
5
|
+
## Technology Stack
|
|
6
|
+
- Is there a preferred language, framework, or platform? (FLEX unless the user insists)
|
|
7
|
+
- Are there integration requirements with existing systems?
|
|
8
|
+
|
|
9
|
+
## Data Model
|
|
10
|
+
- What data does the system manage?
|
|
11
|
+
- Where is it stored? What is the retention policy?
|
|
12
|
+
|
|
13
|
+
## User Interface
|
|
14
|
+
- Who are the users? (roles, permissions)
|
|
15
|
+
- How do they interact? (CLI, web, API, mobile)
|
|
16
|
+
- What does a successful interaction look like?
|
|
17
|
+
|
|
18
|
+
## Deployment
|
|
19
|
+
- Where will it run? (local, cloud, specific platform)
|
|
20
|
+
- Are there scaling requirements?
|
|
21
|
+
|
|
22
|
+
## Testing
|
|
23
|
+
- How should correctness be verified?
|
|
24
|
+
- What are the critical paths that must always work?
|
|
25
|
+
|
|
26
|
+
## IMPORTANT
|
|
27
|
+
- Do NOT choose specific technologies unless the user insists
|
|
28
|
+
- Mark all technology preferences as FLEX
|
|
29
|
+
- Focus on WHAT the software does, not HOW it's built
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "software",
|
|
3
|
+
"displayName": "Software Development",
|
|
4
|
+
"description": "Converge intent for software projects. Translates canon to project specification files (requirements, constraints, specs).",
|
|
5
|
+
"version": "0.1.0",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"software", "app", "application", "api", "website", "web",
|
|
8
|
+
"tool", "cli", "service", "system", "platform", "backend",
|
|
9
|
+
"frontend", "database", "server", "code", "program",
|
|
10
|
+
"bouwen", "applicatie", "programma"
|
|
11
|
+
]
|
|
12
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Software Development — Convergence Opening
|
|
2
|
+
|
|
3
|
+
You are converging a software project. Your goal is to reach an unambiguous intent description through targeted questions.
|
|
4
|
+
|
|
5
|
+
## Opening approach
|
|
6
|
+
|
|
7
|
+
1. Acknowledge what the user wants to build
|
|
8
|
+
2. Ask for the **core intent** in one sentence: what does this software do?
|
|
9
|
+
3. Then systematically cover the convergence elements:
|
|
10
|
+
- Who are the users?
|
|
11
|
+
- What are the inputs and outputs?
|
|
12
|
+
- What does success look like? (externally verifiable)
|
|
13
|
+
- What does it NOT do? (non-goals)
|
|
14
|
+
- What happens when something fails?
|
|
15
|
+
- Are there hard constraints? (security, privacy, cost, performance)
|
|
16
|
+
|
|
17
|
+
## Tone
|
|
18
|
+
|
|
19
|
+
- Be direct and efficient — ask one or two questions at a time
|
|
20
|
+
- Do not suggest solutions or technologies unless the user asks
|
|
21
|
+
- Mark all technology preferences as FLEX unless the user insists
|
|
22
|
+
- If the user's answer is ambiguous, ask again — do not guess
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Software Development — Translation Opening
|
|
2
|
+
|
|
3
|
+
You are translating a converged software canon into project specification files.
|
|
4
|
+
|
|
5
|
+
## Process
|
|
6
|
+
|
|
7
|
+
1. Read the complete dialog (canon) — this is the only source of truth
|
|
8
|
+
2. Generate the required files as described in `translate.md`
|
|
9
|
+
3. Every file starts with: `<!-- Derived from: canon/[name]-dialog.md, [date] -->`
|
|
10
|
+
4. Update `canon/traceability.md` with the mapping
|
|
11
|
+
|
|
12
|
+
## Key rules
|
|
13
|
+
|
|
14
|
+
- Source is ALWAYS the dialog, never the summary
|
|
15
|
+
- Focus on WHAT the project does, not HOW it should be built
|
|
16
|
+
- Do not add requirements that are not in the dialog
|
|
17
|
+
- Do not omit requirements that are in the dialog
|
|
18
|
+
- Mark elements as HARD or FLEX according to the dialog
|
|
19
|
+
- Non-goals must be explicitly listed in the output
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Software Development — Translation Instructions
|
|
2
|
+
|
|
3
|
+
After convergence, generate PROJECT SPECIFICATION files from the dialog canon.
|
|
4
|
+
These files describe the project for any developer or tool — they are NOT agent-specific instruction files.
|
|
5
|
+
|
|
6
|
+
The canon itself (served via MCP) is the authoritative instruction set for any connected agent.
|
|
7
|
+
|
|
8
|
+
## Always Generate
|
|
9
|
+
|
|
10
|
+
1. **`canon/{naam}/spec/requirements.md`**
|
|
11
|
+
- Project intent and goals (from system intent)
|
|
12
|
+
- Functional requirements (from inputs/outputs/success criteria)
|
|
13
|
+
- Non-functional requirements (from constraints, authority budget)
|
|
14
|
+
- Non-goals (explicit exclusions)
|
|
15
|
+
|
|
16
|
+
2. **`canon/{naam}/spec/constraints.md`**
|
|
17
|
+
- All HARD constraints from the dialog
|
|
18
|
+
- Forbidden actions from Authority Budget
|
|
19
|
+
- Data access and retention policies
|
|
20
|
+
- Inference policy
|
|
21
|
+
|
|
22
|
+
3. **`canon/{naam}/spec/success-criteria.md`**
|
|
23
|
+
- Definition of Done (from success criteria)
|
|
24
|
+
- Acceptance criteria (externally verifiable)
|
|
25
|
+
- Error handling requirements (from failure behavior)
|
|
26
|
+
|
|
27
|
+
## Generate If Applicable
|
|
28
|
+
|
|
29
|
+
4. **`canon/{naam}/spec/api-spec.md`** — if the project exposes an API
|
|
30
|
+
- Endpoints, inputs, outputs
|
|
31
|
+
- Error responses
|
|
32
|
+
- Authentication/authorization
|
|
33
|
+
|
|
34
|
+
5. **`canon/{naam}/spec/data-model.md`** — if the project manages persistent data
|
|
35
|
+
- Entities and relationships
|
|
36
|
+
- Storage requirements
|
|
37
|
+
- Retention policies
|
|
38
|
+
|
|
39
|
+
6. **`canon/{naam}/spec/architecture.md`** — if the system has multiple components
|
|
40
|
+
- Component overview
|
|
41
|
+
- Interfaces between components
|
|
42
|
+
- Deployment model
|
|
43
|
+
|
|
44
|
+
7. **`canon/{naam}/spec/interfaces/interface-[A]-[B].md`** — per interface (if decomposed)
|
|
45
|
+
- Parties, guarantees, expectations
|
|
46
|
+
- Data shape, error semantics
|
|
47
|
+
- Rate/cost expectations
|
|
48
|
+
|
|
49
|
+
## Software-Specific Derived Artifacts
|
|
50
|
+
|
|
51
|
+
These use templates from `protocol/templates/` and are specific to software projects:
|
|
52
|
+
|
|
53
|
+
8. **`canon/{naam}/spec/behavior-map.md`** — from `protocol/templates/behavior-map.md`
|
|
54
|
+
- Map each system behavior to Canon Anchors (H1, A3, etc.)
|
|
55
|
+
- 10 sections: intent, inputs, outputs, core behaviors, constraints, non-goals, failure modes, observability, authority budget
|
|
56
|
+
- Every entry MUST cite a Canon Anchor
|
|
57
|
+
|
|
58
|
+
9. **`canon/{naam}/spec/acceptance-tests.md`** — from `protocol/templates/acceptance-tests.md`
|
|
59
|
+
- AT-### format: positive flows, negative tests, edge cases, failure tests, authority budget tests, non-goal tests
|
|
60
|
+
- Each test cites Canon Anchors and is labeled HARD or FLEX
|
|
61
|
+
- Define minimum acceptance set
|
|
62
|
+
|
|
63
|
+
10. **`canon/{naam}/spec/traceability-map.md`** — from `protocol/templates/traceability-map.md`
|
|
64
|
+
- Canon Anchor -> Requirement -> Test -> Implementation -> Evidence
|
|
65
|
+
- Coverage must be 100% (every Canon Anchor covered)
|
|
66
|
+
|
|
67
|
+
## Rules
|
|
68
|
+
|
|
69
|
+
- Source is ALWAYS the dialog, not the summary
|
|
70
|
+
- Each file starts with: `<!-- Derived from: canon/{naam}/dialog.md, [date] -->`
|
|
71
|
+
- Update `canon/{naam}/traceability.md` with complete mapping
|
|
72
|
+
- Focus on WHAT the project does, not HOW it should be built
|
|
73
|
+
- These are project artifacts readable by any developer or tool
|
|
74
|
+
- Canon Anchors use the notation: H[N] for HUMAN turn N, A[N] for ASSISTANT turn N (1-indexed)
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Software Brownfield — Additional Convergence Rules
|
|
2
|
+
|
|
3
|
+
You are converging on a CHANGE to an existing software system — not building from scratch. The existing codebase is your starting point and primary constraint.
|
|
4
|
+
|
|
5
|
+
## HARD Rules (NEVER violate — read these FIRST)
|
|
6
|
+
|
|
7
|
+
- NEVER suggest replacing the existing tech stack unless the user explicitly asks
|
|
8
|
+
- Existing architecture is a HARD constraint unless the user explicitly wants to change it
|
|
9
|
+
- ALWAYS assess impact before converging on the change itself
|
|
10
|
+
- ALWAYS limit codebase analysis to the RELEVANT surface — never analyze the entire codebase
|
|
11
|
+
- Adopt existing conventions (naming, patterns, code style) — do not "improve" them as part of the change
|
|
12
|
+
- If the change touches more than 3 independent modules → evaluate decomposition (score ≥ 2 → discuss with user)
|
|
13
|
+
- Do NOT make implementation choices — focus on WHAT changes, not HOW to implement it
|
|
14
|
+
- Ask ONE question at a time — wait for the answer before asking the next
|
|
15
|
+
|
|
16
|
+
## Two-Phase Convergence
|
|
17
|
+
|
|
18
|
+
This skill uses a two-phase approach that differs from greenfield convergence.
|
|
19
|
+
|
|
20
|
+
### Phase 1: Codebase Context (before user dialog)
|
|
21
|
+
|
|
22
|
+
Before engaging the user in detailed questions, analyze the relevant part of the codebase. The user has told you what they want to change — now understand the existing system in that area.
|
|
23
|
+
|
|
24
|
+
**Instruct yourself (the conducting LLM) to analyze:**
|
|
25
|
+
|
|
26
|
+
1. **Tech stack** — languages, frameworks, databases, build tools in the affected area
|
|
27
|
+
2. **Architecture patterns** — folder structure, API style, state management, dependency patterns
|
|
28
|
+
3. **Key entities** — data models, types, interfaces in the affected surface
|
|
29
|
+
4. **Existing constraints** — authentication model, deployment setup, external dependencies
|
|
30
|
+
5. **Test approach** — testing framework, coverage, test patterns in the affected area
|
|
31
|
+
6. **Conventions** — naming conventions, error handling patterns, logging approach
|
|
32
|
+
|
|
33
|
+
**Important:**
|
|
34
|
+
- Analyze ONLY the surface relevant to the user's stated change
|
|
35
|
+
- If you cannot access the codebase (no file access), ask the user to describe the relevant architecture
|
|
36
|
+
- Record your findings as HARD constraints in the dialog — these are things that are already decided
|
|
37
|
+
|
|
38
|
+
**Present your analysis to the user** as a brief summary before proceeding to Phase 2. Ask: "Is this an accurate picture of the relevant part of your system? Anything I'm missing?"
|
|
39
|
+
|
|
40
|
+
### Phase 2: Delta Convergence (dialog with user)
|
|
41
|
+
|
|
42
|
+
Now converge on the CHANGE, not the whole system. Cover these elements:
|
|
43
|
+
|
|
44
|
+
#### Problem / Need
|
|
45
|
+
- What is wrong, missing, or insufficient in the current system?
|
|
46
|
+
- Why does this need to change now?
|
|
47
|
+
- Who is affected by this problem?
|
|
48
|
+
|
|
49
|
+
#### Current Behavior
|
|
50
|
+
- What does the system do today in this area?
|
|
51
|
+
- Is the current behavior a bug, a limitation, or working-as-designed?
|
|
52
|
+
|
|
53
|
+
#### Desired Behavior
|
|
54
|
+
- What should the system do after the change?
|
|
55
|
+
- How should it differ from the current behavior?
|
|
56
|
+
- What does success look like? (externally verifiable)
|
|
57
|
+
|
|
58
|
+
#### Regression Boundaries
|
|
59
|
+
- What existing behavior must NOT break?
|
|
60
|
+
- Are there existing tests that must continue to pass?
|
|
61
|
+
- Are there API contracts or data formats that must remain stable?
|
|
62
|
+
|
|
63
|
+
#### Affected Surface
|
|
64
|
+
- Which components, modules, or services are touched by this change?
|
|
65
|
+
- Are there downstream dependencies that need to adapt?
|
|
66
|
+
- Does this change affect the database schema?
|
|
67
|
+
|
|
68
|
+
#### Architecture Fit
|
|
69
|
+
- Does this change fit within the existing architecture patterns?
|
|
70
|
+
- Or does it require an architectural change? (If so, this is a separate convergence topic)
|
|
71
|
+
- Are there existing patterns in the codebase that this change should follow?
|
|
72
|
+
|
|
73
|
+
#### Migration
|
|
74
|
+
- Does existing data need to be migrated?
|
|
75
|
+
- Do existing API consumers need to adapt?
|
|
76
|
+
- Is there a backwards-compatibility requirement?
|
|
77
|
+
- Can the change be rolled back?
|
|
78
|
+
|
|
79
|
+
### Decomposition Awareness
|
|
80
|
+
|
|
81
|
+
After the initial analysis, evaluate whether this change is too broad for a single canon:
|
|
82
|
+
|
|
83
|
+
- Score 0–1: proceed as a single change canon
|
|
84
|
+
- Score 2–3: discuss decomposition with the user
|
|
85
|
+
- Score 4–5: actively propose splitting into architect-canon + component-canons
|
|
86
|
+
|
|
87
|
+
Decomposition signals for brownfield:
|
|
88
|
+
- (+1) Change touches more than 3 independent modules
|
|
89
|
+
- (+1) Different parts of the change have different risk profiles
|
|
90
|
+
- (+1) Change requires both schema migration AND behavior change
|
|
91
|
+
- (+1) User describes the change in terms of "phases" or "steps"
|
|
92
|
+
- (+1) Different parts affect different teams or services
|
|
93
|
+
|
|
94
|
+
## What NOT to Cover (differs from greenfield)
|
|
95
|
+
|
|
96
|
+
- Do NOT ask about tech stack choice — it's already decided
|
|
97
|
+
- Do NOT ask about deployment model — it already exists
|
|
98
|
+
- Do NOT ask about user roles — they already exist (unless the change adds new ones)
|
|
99
|
+
- Do NOT converge on the full system — only the delta
|
|
100
|
+
|
|
101
|
+
## Completeness Criteria
|
|
102
|
+
|
|
103
|
+
The dialog is complete when:
|
|
104
|
+
1. The current behavior is clearly documented
|
|
105
|
+
2. The desired behavior is unambiguous
|
|
106
|
+
3. Regression boundaries are explicit
|
|
107
|
+
4. The affected surface is mapped
|
|
108
|
+
5. Migration needs (if any) are defined
|
|
109
|
+
6. There are no open questions about the change
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "software-brownfield",
|
|
3
|
+
"displayName": "Software — Brownfield",
|
|
4
|
+
"description": "Converge intent for changes to existing software systems. Analyzes the affected codebase surface and produces delta specifications.",
|
|
5
|
+
"version": "0.1.0",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"brownfield", "existing", "legacy", "migration", "refactor",
|
|
8
|
+
"refactoring", "technical debt", "codebase", "change", "modify",
|
|
9
|
+
"bestaand", "bestaande code", "migratie", "aanpassen", "wijzigen",
|
|
10
|
+
"toevoegen aan", "uitbreiden", "ombouwen", "moderniseren"
|
|
11
|
+
]
|
|
12
|
+
}
|