@uoyo/mvtt 2.0.0-beta.2 → 2.0.0-beta.4

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 (80) hide show
  1. package/README.md +1 -11
  2. package/dist/build/section-loader.d.ts.map +1 -1
  3. package/dist/build/section-loader.js +18 -8
  4. package/dist/build/section-loader.js.map +1 -1
  5. package/dist/fs/materialize.d.ts.map +1 -1
  6. package/dist/fs/materialize.js +12 -4
  7. package/dist/fs/materialize.js.map +1 -1
  8. package/dist/fs/registry-merge.d.ts +19 -0
  9. package/dist/fs/registry-merge.d.ts.map +1 -0
  10. package/dist/fs/registry-merge.js +177 -0
  11. package/dist/fs/registry-merge.js.map +1 -0
  12. package/dist/scripts/plan-update.cjs +7563 -0
  13. package/dist/scripts/session-update.cjs +7568 -0
  14. package/install-manifest.yaml +8 -2
  15. package/package.json +3 -2
  16. package/sources/defaults/config.yaml +7 -7
  17. package/sources/defaults/session.yaml +9 -16
  18. package/sources/scripts/plan-update.js +353 -0
  19. package/sources/scripts/session-update.js +351 -0
  20. package/sources/sections/activation-load-context.md +4 -0
  21. package/sources/sections/footer-next-steps.md +1 -1
  22. package/sources/sections/output-format-constraint.md +14 -0
  23. package/sources/sections/project-context-profile.md +29 -0
  24. package/sources/sections/session-update.md +100 -32
  25. package/sources/skills/mvt-analyze/manifest.yaml +4 -0
  26. package/sources/skills/mvt-analyze-code/manifest.yaml +24 -4
  27. package/sources/skills/mvt-bug-detect/business.md +99 -101
  28. package/sources/skills/mvt-bug-detect/manifest.yaml +84 -84
  29. package/sources/skills/mvt-check-context/business.md +3 -5
  30. package/sources/skills/mvt-check-context/manifest.yaml +15 -8
  31. package/sources/skills/mvt-cleanup/business.md +49 -23
  32. package/sources/skills/mvt-cleanup/manifest.yaml +18 -10
  33. package/sources/skills/mvt-config/business.md +1 -2
  34. package/sources/skills/mvt-config/manifest.yaml +11 -4
  35. package/sources/skills/mvt-create-skill/business.md +6 -5
  36. package/sources/skills/mvt-create-skill/manifest.yaml +30 -11
  37. package/sources/skills/mvt-design/business.md +3 -6
  38. package/sources/skills/mvt-design/manifest.yaml +17 -1
  39. package/sources/skills/mvt-fix/business.md +2 -1
  40. package/sources/skills/mvt-fix/manifest.yaml +9 -3
  41. package/sources/skills/mvt-help/business.md +2 -4
  42. package/sources/skills/mvt-help/manifest.yaml +13 -5
  43. package/sources/skills/mvt-implement/business.md +10 -7
  44. package/sources/skills/mvt-implement/manifest.yaml +16 -0
  45. package/sources/skills/mvt-init/business.md +2 -2
  46. package/sources/skills/mvt-init/manifest.yaml +4 -0
  47. package/sources/skills/mvt-manage-context/business.md +11 -0
  48. package/sources/skills/mvt-manage-context/manifest.yaml +20 -3
  49. package/sources/skills/mvt-plan-dev/business.md +101 -20
  50. package/sources/skills/mvt-plan-dev/manifest.yaml +21 -19
  51. package/sources/skills/mvt-quick-dev/business.md +2 -1
  52. package/sources/skills/mvt-quick-dev/manifest.yaml +24 -6
  53. package/sources/skills/mvt-refactor/business.md +2 -1
  54. package/sources/skills/mvt-refactor/manifest.yaml +24 -3
  55. package/sources/skills/mvt-resume/business.md +28 -68
  56. package/sources/skills/mvt-resume/manifest.yaml +17 -7
  57. package/sources/skills/mvt-review/business.md +3 -3
  58. package/sources/skills/mvt-review/manifest.yaml +25 -1
  59. package/sources/skills/mvt-status/business.md +14 -18
  60. package/sources/skills/mvt-status/manifest.yaml +11 -3
  61. package/sources/skills/mvt-sync-context/business.md +69 -35
  62. package/sources/skills/mvt-sync-context/manifest.yaml +9 -0
  63. package/sources/skills/mvt-template/business.md +0 -2
  64. package/sources/skills/mvt-template/manifest.yaml +13 -8
  65. package/sources/skills/mvt-test/business.md +3 -3
  66. package/sources/skills/mvt-test/manifest.yaml +17 -1
  67. package/sources/skills/mvt-update-plan/business.md +41 -28
  68. package/sources/skills/mvt-update-plan/manifest.yaml +14 -19
  69. package/dist/build/plan-validator.d.ts +0 -26
  70. package/dist/build/plan-validator.d.ts.map +0 -1
  71. package/dist/build/plan-validator.js +0 -225
  72. package/dist/build/plan-validator.js.map +0 -1
  73. package/dist/commands/build.d.ts +0 -5
  74. package/dist/commands/build.d.ts.map +0 -1
  75. package/dist/commands/build.js +0 -46
  76. package/dist/commands/build.js.map +0 -1
  77. package/dist/commands/migrate.d.ts +0 -16
  78. package/dist/commands/migrate.d.ts.map +0 -1
  79. package/dist/commands/migrate.js +0 -118
  80. package/dist/commands/migrate.js.map +0 -1
@@ -60,6 +60,7 @@
60
60
  | 3 | `preferences.output.no_emojis` | Default `true` |
61
61
  | 4 | `preferences.output.data_format` | Default `yaml`; allowed: `yaml`, `json` |
62
62
  | 5 | `preferences.context_routing.relevance_threshold` | Default `70`; allowed: 0-100 |
63
+ | 6 | `preferences.history_limits.*` | Show each limit with current value; accept new int or Enter to keep |
63
64
 
64
65
  - After all stages, render a Summary Preview table: `key | from | to`, then a single confirmation prompt to apply ALL changes atomically.
65
66
  - If the user aborts at the summary, discard all in-progress values; do not write anything.
@@ -73,8 +74,6 @@
73
74
  6. Report the keys that changed.
74
75
  - Do NOT reset `knowledge.shared` to defaults if the user has added entries via `/mvt-manage-context` -- preserve user-added knowledge ids; only reset preferences. Surface this exception in the diff.
75
76
 
76
- ### Step 8: (session update handled by shared section)
77
-
78
77
  ## Knowledge Inspection (sub-flow used by Interactive Menu and Show All)
79
78
  - **View**: list shared knowledge ids from `registry.yaml > knowledge.shared`, then per-skill knowledge ids grouped by skill (`registry.yaml > skills.*.knowledge`). Show token estimates from each entry's manifest if available.
80
79
  - **Modify**: this skill does NOT mutate knowledge settings; defer to `/mvt-manage-context`. Print the suggested command (`/mvt-manage-context move`, `/mvt-manage-context add`, etc.) instead of doing the work here.
@@ -56,12 +56,9 @@ sections:
56
56
  - type: shared
57
57
  source: sections/activation-load-config.md
58
58
 
59
- - type: shared
60
- source: sections/output-language-constraint.md
61
-
62
59
  - type: inline
63
60
  content: |
64
- ### Step 3: Pre-flight Checks
61
+ ### Step 4: Pre-flight Checks
65
62
  - No blocking checks required (config is always accessible)
66
63
 
67
64
  ## Configuration Keys
@@ -75,6 +72,8 @@ sections:
75
72
  | `preferences.output.no_emojis` | bool | `true` | Disable emojis in output |
76
73
  | `preferences.output.data_format` | enum | `yaml` | Data output format (yaml, json) |
77
74
  | `preferences.context_routing.relevance_threshold` | int | `70` | AI routing threshold for `/mvt-manage-context add` (0-100) |
75
+ | `preferences.history_limits.history` | int | `20` | Max history entries (1-100) |
76
+ | `preferences.history_limits.changes` | int | `20` | Max changes entries (1-100) |
78
77
 
79
78
  ### Knowledge Settings
80
79
 
@@ -94,3 +93,11 @@ sections:
94
93
  source: sections/footer-next-steps.md
95
94
  params:
96
95
  current_skill: mvt-config
96
+ conditional_suggestions:
97
+ conditions:
98
+ - condition: "configuration updated"
99
+ primary: mvt-status
100
+ primary_desc: "Check project status with new settings"
101
+ - condition: "language changed"
102
+ primary: mvt-help
103
+ primary_desc: "Verify output in the new language"
@@ -27,7 +27,7 @@ The `name` and `description` in YAML frontmatter determine when Claude will use
27
27
  ### Step 1: Load Inputs
28
28
  - **Recommended**:
29
29
  - One existing skill's SKILL.md under `.claude/skills/<existing>/SKILL.md` as a structural reference (to extract shared section patterns like Activation Protocol, State Update, Next Steps).
30
- - `registry.yaml` -- to check for name collisions and understand skill categories.
30
+ - `.ai-agents/registry.yaml` -- to check for name collisions and understand skill categories.
31
31
 
32
32
  ### Step 2: Understand Usage with Concrete Examples
33
33
  Skip only when usage patterns are already crystal clear.
@@ -136,7 +136,7 @@ Walk this checklist; any failed item must be fixed before declaring success.
136
136
  | Standard sections present | SKILL.md contains Role, Activation Protocol, Execution Flow, Edge Cases & Errors, State Update, Suggested Next Steps |
137
137
  | Knowledge files exist | Every file referenced in `knowledge:` resolves on disk |
138
138
  | Template path correct | If `template:` set, file exists at that path; the template is headings-only |
139
- | Word budget | SKILL.md body under ~5k words (run a quick `wc` if available) |
139
+ | Word budget | SKILL.md body under ~5k words (use any available word-count method, e.g., editor statistics) |
140
140
  | Standard skeleton | Execution Flow contains Load Inputs, main steps with branches, Edge Cases & Errors |
141
141
 
142
142
  Show the user how to invoke: `/{name}`.
@@ -148,14 +148,15 @@ Tell the user the iteration loop:
148
148
  3. Decide whether to update SKILL.md, add a `references/` file, add a knowledge entry, or split into a new skill.
149
149
  4. Re-run `/mvt-create-skill` to refine, or edit the source files directly and rebuild.
150
150
 
151
- ### Step 10: (session update handled by shared section)
151
+ ### Step 10: State Update
152
+ Apply the State Update rules defined in the **State Update** section below.
152
153
 
153
154
  ## Edge Cases & Errors
154
155
 
155
156
  | Case | Handling |
156
157
  |------|----------|
157
158
  | Skill name collides with an existing registry entry | STOP at Step 3; ask user to rename; do not generate any file |
158
- | User wants the skill to mutate `session.yaml` fields beyond `skill_history` | Surface that ownership rules forbid this (e.g., `recent_changes` is owned by `/mvt-plan-dev`/`/mvt-update-plan`); recommend redesign |
159
+ | User wants the skill to mutate `session.yaml` fields beyond `history` | Surface that ownership rules forbid this (e.g., `changes` is owned by `/mvt-plan-dev`/`/mvt-update-plan`); recommend redesign |
159
160
  | Output template is requested but the skill is conversation-only (no persisted file) | Refuse to create a template; explain that templates are for document structure, not conversation replies |
160
161
  | User asks to skip the registry registration step | Refuse; an unregistered skill is invisible to `/mvt-help`, `/mvt-status`, and `/mvt-resume`. Registration is non-negotiable |
161
162
  | Skill duplicates an existing skill's responsibility | Surface the overlap (cite the existing skill's description); propose merging or sub-classing as a variant rather than creating a duplicate |
@@ -225,7 +226,7 @@ Copy the following sections verbatim from this document (the assembled SKILL.md
225
226
  | Load Config | Load Config step within Activation Protocol | Copy as-is |
226
227
  | Output Language Constraint | Output Language Constraint step within Activation Protocol | Copy as-is |
227
228
  | Pre-flight Checks | Pre-flight Checks step within Activation Protocol | Replace `checks` table with skill-specific checks; if none required, use a single INFO row |
228
- | State Update | `## State Update (Required)` | Replace `/{name}` with the new skill's command; include `active_change` conditional block only if the skill creates changes; include `Shortcut Operation Rules` only if category is `shortcut` |
229
+ | State Update | `## State Update` | Replace `/{name}` with the new skill's command; include `active_change` conditional block only if the skill creates changes; include `Shortcut Operation Rules` only if category is `shortcut` |
229
230
  | Suggested Next Steps | `## Suggested Next Steps` | Replace `current_skill` with the new skill name; replace conditional suggestions with skill-appropriate ones |
230
231
 
231
232
  **Important**: Do NOT paraphrase or rewrite the standard sections. Copy them character-for-character from this document and only substitute the skill-specific values. This ensures consistency across all MVTT skills.
@@ -27,16 +27,16 @@ sections:
27
27
  - rule: "Skill needs bundled resources -> Plan scripts/references/assets in Step 3"
28
28
  - rule: "Usage patterns unclear -> Ask for concrete examples before proceeding"
29
29
  boundaries:
30
- - scope: "Generated skills must follow MVTT SKILL.md standard structure"
31
- skill: "(constraint)"
32
- - scope: "Skill names may use `mvt-` prefix or a project-specific prefix (e.g., `app-`, `proj-`)"
33
- skill: "(constraint)"
34
- - scope: "All custom skills MUST be registered in `registry.yaml` with `custom: true`"
35
- skill: "(to prevent overwrite during framework updates)"
36
- - scope: "Description field must use third-person with effective trigger keywords"
37
- skill: "(constraint)"
38
- - scope: "SKILL.md body target <5k words; move detailed content to references/"
39
- skill: "(progressive disclosure)"
30
+ - scope: "generate skills that deviate from MVTT SKILL.md standard structure"
31
+ skill: "the standard structure as documented"
32
+ - scope: "use arbitrary prefixes without validating naming conventions"
33
+ skill: "`mvt-` or a project-specific prefix like `app-`, `proj-`"
34
+ - scope: "create skills without registering in registry.yaml"
35
+ skill: "`custom: true` in registry.yaml"
36
+ - scope: "write vague or first-person descriptions"
37
+ skill: "third-person with effective trigger keywords"
38
+ - scope: "exceed ~5k words in SKILL.md body"
39
+ skill: "references/ for detailed content"
40
40
 
41
41
  - type: shared
42
42
  source: sections/activation-load-context.md
@@ -50,9 +50,12 @@ sections:
50
50
  - type: shared
51
51
  source: sections/output-language-constraint.md
52
52
 
53
+ - type: shared
54
+ source: sections/output-format-constraint.md
55
+
53
56
  - type: inline
54
57
  content: |
55
- ### Step 3: Pre-flight Checks
58
+ ### Step 4: Pre-flight Checks
56
59
  - No blocking checks required.
57
60
 
58
61
  - type: file
@@ -85,7 +88,23 @@ sections:
85
88
  4. Use `/mvt-create-skill` to refine, or edit skill files directly
86
89
  ```
87
90
 
91
+ - type: shared
92
+ source: sections/session-update.md
93
+ params:
94
+ current_skill: mvt-create-skill
95
+
88
96
  - type: shared
89
97
  source: sections/footer-next-steps.md
90
98
  params:
91
99
  current_skill: mvt-create-skill
100
+ conditional_suggestions:
101
+ conditions:
102
+ - condition: "skill created successfully"
103
+ primary: mvt-help
104
+ primary_desc: "Verify the new skill appears in the catalog"
105
+ - condition: "skill needs knowledge entries"
106
+ primary: mvt-manage-context
107
+ primary_desc: "Add knowledge files for the new skill"
108
+ - condition: "skill needs testing with real tasks"
109
+ primary: mvt-status
110
+ primary_desc: "Check project state before testing the skill"
@@ -82,8 +82,7 @@
82
82
  - **Confirmation format**: present a one-screen summary -- style chosen, modules added/changed, ADRs requiring review, a single yes/no prompt. Do not dump the full artifact.
83
83
 
84
84
  ### Step 8: Write Artifact
85
- - **Path**: `.ai-agents/workspace/artifacts/{active_change.id}/design.md`.
86
- - **Template**: `.ai-agents/skills/_templates/design-output.md`; if `_templates/custom/design-output.md` exists, use the custom version.
85
+ - **Path and template**: as defined in the **Artifact Structure** section below.
87
86
  - **Required sections** (filled per template headings, but content must include):
88
87
  - `Overview` -- the problem statement (Step 2).
89
88
  - `Architecture Decision Records` -- every ADR from Step 6.
@@ -99,10 +98,8 @@
99
98
  - If `Change Tracking` lists more than ~5 files OR Module Design adds more than 1 new module OR ADRs include any breaking change, recommend `/mvt-plan-dev` as the next step.
100
99
  - Otherwise recommend `/mvt-implement` directly.
101
100
 
102
- ### Step 10: (session update handled by shared section)
103
-
104
- ## Variants
105
- - `/mvt-design --plan` flag: skip Step 5 (data flow detail) and Step 6 (full ADR fields). In `--plan` mode, ADRs collapse to a one-line `decision: <text>`. Step 8 still writes `design.md` but with the abbreviated content. The output is a high-level plan, not an implementation-ready blueprint -- mark the artifact with a top-line `Mode: plan` indicator.
101
+ ### Step 10: State Update
102
+ Apply the State Update rules defined in the **State Update** section below.
106
103
 
107
104
  ## Edge Cases & Errors
108
105
 
@@ -41,7 +41,7 @@ sections:
41
41
  | Variant | Description |
42
42
  |---------|-------------|
43
43
  | `/mvt-design` | Full architecture design |
44
- | `/mvt-design --plan` | High-level implementation plan only |
44
+ | `/mvt-design --plan` | High-level implementation plan only: skip Step 5 (data flow detail) and Step 6 (full ADR fields). ADRs collapse to one-line `decision: <text>`. Step 8 writes `design.md` with abbreviated content and a top-line `Mode: plan` indicator. If the request is actually small (1 file), downgrade to a 5-line summary in chat and do NOT write `design.md`. |
45
45
 
46
46
  - type: shared
47
47
  source: sections/activation-load-context.md
@@ -55,6 +55,9 @@ sections:
55
55
  - type: shared
56
56
  source: sections/output-language-constraint.md
57
57
 
58
+ - type: shared
59
+ source: sections/output-format-constraint.md
60
+
58
61
  - type: shared
59
62
  source: sections/activation-preflight.md
60
63
  params:
@@ -89,8 +92,21 @@ sections:
89
92
 
90
93
  - type: shared
91
94
  source: sections/session-update.md
95
+ params:
96
+ current_skill: mvt-design
92
97
 
93
98
  - type: shared
94
99
  source: sections/footer-next-steps.md
95
100
  params:
96
101
  current_skill: mvt-design
102
+ conditional_suggestions:
103
+ conditions:
104
+ - condition: "design complete, change tracking lists >5 files or >1 new module"
105
+ primary: mvt-plan-dev
106
+ primary_desc: "Create a structured implementation plan"
107
+ - condition: "design complete, small scope"
108
+ primary: mvt-implement
109
+ primary_desc: "Implement the designed architecture"
110
+ - condition: "design has proposed ADRs needing stakeholder review"
111
+ primary: mvt-review
112
+ primary_desc: "Review the design decisions"
@@ -118,7 +118,8 @@
118
118
  - `Regression risk` -- scope of behavior potentially affected, plus what tests guard it.
119
119
  - `Follow-ups` -- TODOs, deferred refactors, related issues.
120
120
 
121
- ### Step 9: (session update handled by shared section)
121
+ ### Step 9: State Update
122
+ Apply the State Update rules defined in the **State Update** section below.
122
123
 
123
124
  ## Edge Cases & Errors
124
125
 
@@ -47,6 +47,9 @@ sections:
47
47
  - type: shared
48
48
  source: sections/output-language-constraint.md
49
49
 
50
+ - type: shared
51
+ source: sections/output-format-constraint.md
52
+
50
53
  - type: shared
51
54
  source: sections/activation-preflight.md
52
55
  params:
@@ -58,15 +61,18 @@ sections:
58
61
 
59
62
  - type: inline
60
63
  content: |
61
- ### Shortcut Operation Rules
62
- - Can execute at any time without checking workflow prerequisites
63
- - Do NOT update `progress` (this is a shortcut operation, not a workflow phase)
64
+ ## Operation Mode: Shortcut
65
+
66
+ This skill operates as a shortcut it can execute at any time without checking workflow prerequisites.
67
+ - Do NOT update `progress` (this is a shortcut operation, not a workflow phase).
64
68
 
65
69
  - type: file
66
70
  source: ./business.md
67
71
 
68
72
  - type: shared
69
73
  source: sections/session-update.md
74
+ params:
75
+ current_skill: mvt-fix
70
76
 
71
77
  - type: shared
72
78
  source: sections/footer-next-steps.md
@@ -13,7 +13,7 @@
13
13
  |-----------|---------------|
14
14
  | `session.yaml` missing or `initialized_at` empty | `/mvt-init` -- Initialize the project |
15
15
  | Initialized AND `project-context.md` does not exist | `/mvt-analyze-code` -- Analyze existing code |
16
- | No requirements (no `analysis.md` for active change AND no completed `/mvt-analyze` in `skill_history`) | `/mvt-analyze` -- Analyze requirements |
16
+ | No requirements (no `analysis.md` for active change AND no completed `/mvt-analyze` in `history`) | `/mvt-analyze` -- Analyze requirements |
17
17
  | No requirements, but user describes a simple change directly | `/mvt-quick-dev` -- Implement a simple change quickly |
18
18
  | Requirements present, no `design.md` | `/mvt-design` -- Design architecture |
19
19
  | `design.md` exists, change is large (Change Tracking lists > 5 files OR ADR includes breaking change OR > 1 new module) | `/mvt-plan-dev` -- Decompose into tracked plan |
@@ -60,15 +60,13 @@ Color-code based on current progress: green (done), yellow (current/recommended)
60
60
  | "Compare `/mvt-X` and `/mvt-Y`" | Pull descriptions from registry; if both are workflow skills, mention their relative position in the diagram |
61
61
  | Asks about something not in registry | Reply: "No skill matches that. Available skills: see catalog above." Do not invent skills |
62
62
 
63
- ### Step 6: (session update handled by shared section)
64
-
65
63
  ## Edge Cases & Errors
66
64
 
67
65
  | Case | Handling |
68
66
  |------|----------|
69
67
  | `registry.yaml` missing | STOP at Step 1; recommend `mvtt install`; show no catalog |
70
68
  | `session.yaml` missing | Render catalog (Step 3) and diagram (Step 4) without the "current position" highlight; Step 2 recommends `/mvt-init` |
71
- | `recent_changes[]` references a `plan_path` that no longer exists | Ignore for help purposes; do not warn -- `/mvt-status` is the right place for that |
69
+ | `changes[]` references a `plan_path` that no longer exists | Ignore for help purposes; do not warn -- `/mvt-status` is the right place for that |
72
70
  | User invokes `/mvt-help` while inside an active change with Critical review findings | Step 2's recommendation is `/mvt-fix`; surface this prominently above the catalog |
73
71
  | User asks about a custom skill (registry entry with `custom: true`) | Treat identically to built-ins; the only difference is showing `custom: true` in the metadata view |
74
72
  | Workflow diagram cannot be rendered (mermaid unsupported in environment) | Fall back to a textual flow: `init -> analyze-code -> analyze -> design -> [plan-dev] -> implement -> review -> test` |
@@ -24,12 +24,9 @@ sections:
24
24
  - type: shared
25
25
  source: sections/activation-load-config.md
26
26
 
27
- - type: shared
28
- source: sections/output-language-constraint.md
29
-
30
27
  - type: inline
31
28
  content: |
32
- ### Step 3: Pre-flight Checks
29
+ ### Step 4: Pre-flight Checks
33
30
  - No blocking checks required.
34
31
 
35
32
  - type: file
@@ -46,7 +43,7 @@ sections:
46
43
 
47
44
  ### Current Status
48
45
  - **Project**: {name} ({initialized/not initialized})
49
- - **Last Skill**: {last command from skill_history}
46
+ - **Last Skill**: {last command from history}
50
47
  - **Recommended Next**: `/mvt-{next}` -- {description}
51
48
 
52
49
  ### Workflow
@@ -65,3 +62,14 @@ sections:
65
62
  source: sections/footer-next-steps.md
66
63
  params:
67
64
  current_skill: mvt-help
65
+ conditional_suggestions:
66
+ conditions:
67
+ - condition: "project not initialized"
68
+ primary: mvt-init
69
+ primary_desc: "Initialize the project"
70
+ - condition: "project initialized, no active change"
71
+ primary: mvt-analyze
72
+ primary_desc: "Start analyzing requirements for a new feature"
73
+ - condition: "active change in progress"
74
+ primary: mvt-resume
75
+ primary_desc: "Resume work on the active change"
@@ -14,7 +14,7 @@
14
14
  2. Topologically order files by dependency: domain entities -> repositories/adapters -> use-case/services -> controllers/UI.
15
15
  3. Group consecutive files that share a single conceptual change into one commit boundary.
16
16
  4. For each file, decide: `create | modify | delete`, and write a one-line intent.
17
- - **Plan-aware behavior**: if `plan.yaml` is present, restrict scope to the files implied by `current_task` (cross-reference `plan.tasks[*].artifacts.files`); do NOT silently expand into other tasks.
17
+ - **Plan-aware behavior**: if `plan.yaml` is present, treat `current_task`'s `artifacts.files` (cross-reference `plan.tasks[*].artifacts.files`) as a **starting-scope hint, not a hard ceiling**. The source of truth for scope remains `design.md`'s `Change Tracking` (per Step 2.1). When `artifacts.files` is `null` or empty, derive scope entirely from `Change Tracking`. If implementation reveals files beyond this hint are genuinely required, do NOT silently expand surface them via Step 3 confirmation and never absorb files that clearly belong to a different task.
18
18
  - **Output of this step**: an in-conversation list shown to user as a preview, with no write yet.
19
19
 
20
20
  ### Step 3: Confirm Scope (when needed)
@@ -23,6 +23,7 @@
23
23
  - The plan introduces a new public API (exported symbol, HTTP endpoint, CLI flag).
24
24
  - The plan deletes existing code (delete count > 0).
25
25
  - The plan deviates from `design.md` (e.g., adds files not in `Change Tracking` or skips files listed there).
26
+ - The plan touches files beyond `current_task`'s `artifacts.files` hint (state which files are added and why, in one line each).
26
27
  - **Otherwise**: proceed silently.
27
28
  - **On deviation from design**: explain the deviation reason in one line; if the deviation is structural (new module, layer change, interface break), STOP and recommend re-running `/mvt-design`.
28
29
 
@@ -59,8 +60,12 @@
59
60
  3. UI/frontend changes: per project rules, ask user to verify in browser; do NOT claim "tested" if you only ran type-check.
60
61
 
61
62
  ### Step 7: Write Artifact
62
- - **Path**: `.ai-agents/workspace/artifacts/{active_change.id}/implementation.md`.
63
- - **Template**: `.ai-agents/skills/_templates/implement-output.md` (custom override at `_templates/custom/...` takes precedence).
63
+ - **Path and template**: as defined in the **Artifact Structure** section below. The artifact filename is ALWAYS `implementation.md` — one file per change, never per task. Do NOT invent task-suffixed names like `implementation-t1.md`.
64
+ - **Multi-task plans (single-file accumulation)**: when `plan.yaml` drives the change and you implement tasks across separate invocations, all task implementations accumulate into the **same** `implementation.md`:
65
+ 1. If `implementation.md` does not yet exist -> create it from the template.
66
+ 2. If it already exists -> read it, then **append** a new `## Task: {current_task_id} — {task_title}` section for this task. Do NOT overwrite prior tasks' sections.
67
+ 3. Under that task section, place this invocation's required content (the headings below). Keep earlier tasks' sections intact.
68
+ 4. For single-task or plan-less changes, write the content at the top level without a per-task wrapper (existing behavior).
64
69
  - **Required content** (mapped to template headings):
65
70
  - `Implementation Summary` -- one paragraph: what was built, scope.
66
71
  - `Files Touched` -- table: path | create/modify/delete | one-line intent.
@@ -72,11 +77,9 @@
72
77
 
73
78
  ### Step 8: Plan-Aware Progress Hint (if applicable)
74
79
  - If `plan.yaml` exists and a single `current_task` covers this implementation, suggest the user run `/mvt-update-plan <task-id> done` (or `blocked` with reason).
80
+ - If the files actually touched differ from `current_task`'s `artifacts.files` (extra files added during Step 3, or planned files left untouched), explicitly remind the user to run `/mvt-update-plan` so the plan's `artifacts.files` reflects reality for `/mvt-resume` and future sessions.
75
81
  - Do NOT modify `plan.yaml` directly from this skill; it is owned by `/mvt-update-plan`.
76
- - Do NOT modify `recent_changes` directly; it is owned by `/mvt-plan-dev` / `/mvt-update-plan`.
77
-
78
- ### Step 9: (session update handled by shared section)
79
- - Standard `skill_history` entry must include `change_id`. All other state mutations are delegated.
82
+ - Do NOT modify `changes` directly; it is owned by `/mvt-plan-dev` / `/mvt-update-plan`.
80
83
 
81
84
  ## Edge Cases & Errors
82
85
 
@@ -43,6 +43,9 @@ sections:
43
43
  - type: shared
44
44
  source: sections/output-language-constraint.md
45
45
 
46
+ - type: shared
47
+ source: sections/output-format-constraint.md
48
+
46
49
  - type: shared
47
50
  source: sections/activation-preflight.md
48
51
  params:
@@ -73,8 +76,21 @@ sections:
73
76
 
74
77
  - type: shared
75
78
  source: sections/session-update.md
79
+ params:
80
+ current_skill: mvt-implement
76
81
 
77
82
  - type: shared
78
83
  source: sections/footer-next-steps.md
79
84
  params:
80
85
  current_skill: mvt-implement
86
+ conditional_suggestions:
87
+ conditions:
88
+ - condition: "implementation complete, no tests written yet"
89
+ primary: mvt-test
90
+ primary_desc: "Generate tests for the implementation"
91
+ - condition: "implementation deviates from design"
92
+ primary: mvt-review
93
+ primary_desc: "Review code for design compliance"
94
+ - condition: "plan exists with remaining tasks"
95
+ primary: mvt-update-plan
96
+ primary_desc: "Mark current task done and advance to next"
@@ -126,7 +126,7 @@ For each target file, check if it already exists:
126
126
  After writing all files, validate:
127
127
  - `project-context.yaml` is valid YAML with `projects[]` containing at least one entry
128
128
  - Each project entry has required fields: `name`, `path`, `type`, `tech_stack.primary_language`
129
- - `session.yaml` is structurally intact and contains: `session`, `active_change` (with `plan_path` / `has_plan`), `recent_changes` (array), `skill_history`, `recent_actions`
129
+ - `session.yaml` is structurally intact and contains: `session` (with `initialized_at`, `last_synced_at`), `active_change` (with `plan_path`), `changes` (array), `history`
130
130
 
131
131
  If any validation fails → report the specific error and offer to retry or skip.
132
132
 
@@ -135,7 +135,7 @@ If any validation fails → report the specific error and offer to retry or skip
135
135
  When `--refresh` is specified:
136
136
 
137
137
  1. **Preserve** the following from existing files:
138
- - `session.yaml` > `skill_history` and `recent_actions`
138
+ - `session.yaml` > `history`
139
139
  - `project-context.yaml` > any user-added custom fields (fields not in the standard schema)
140
140
  - `config.yaml` > `preferences` section
141
141
 
@@ -59,6 +59,9 @@ sections:
59
59
  - type: shared
60
60
  source: sections/output-language-constraint.md
61
61
 
62
+ - type: shared
63
+ source: sections/output-format-constraint.md
64
+
62
65
  - type: shared
63
66
  source: sections/activation-preflight.md
64
67
  params:
@@ -75,6 +78,7 @@ sections:
75
78
  - type: shared
76
79
  source: sections/session-update.md
77
80
  params:
81
+ current_skill: mvt-init
78
82
  update_initialized_at: true
79
83
 
80
84
  - type: shared
@@ -173,3 +173,14 @@ At the bottom of the list, optionally surface:
173
173
  - **No edits to framework files**: never write to `.ai-agents/knowledge/core/_framework/`. If user content would land there by accident, redirect to `core/user/`.
174
174
  - **Backups**: before mutating `registry.yaml` or `core/manifest.yaml`, copy them to `.ai-agents/.backup/{filename}-{timestamp}.yaml`.
175
175
  - **Idempotency**: re-running the same `add` (same content + same bindings) should detect the existing entry and offer "skip / overwrite / cancel" rather than silently duplicating.
176
+
177
+ ## Edge Cases & Errors
178
+
179
+ | Case | Handling |
180
+ |------|----------|
181
+ | File path points outside `.ai-agents/knowledge/` | Reject with error: knowledge files must reside under the managed directory tree |
182
+ | `registry.yaml` or `core/manifest.yaml` is malformed (parse error) | Abort the operation; print the parse error; suggest manual fix or restore from `.ai-agents/.backup/` |
183
+ | User attempts to `remove` a core framework file (`core/_framework/*`) | Refuse: framework files are read-only and managed by the installer |
184
+ | `add` target file already exists on disk but has no registry entry | Offer "register existing / overwrite / cancel" instead of blindly writing |
185
+ | `move` destination binding already has an entry with the same id | Prompt for rename or cancel; do not silently overwrite |
186
+ | Disk write fails mid-operation (permission denied, disk full) | Roll back all registry/manifest changes using the backup copies; report partial failure |
@@ -14,6 +14,9 @@ sections:
14
14
 
15
15
  Unified CRUD entry point for project context and knowledge entries. Handles add (with AI-driven skill routing), remove, move, rename, and list operations across `project-context.yaml`, `project-context.md`, `knowledge/principle/`, `knowledge/project/`, `knowledge/core/user/`, and the corresponding `registry.yaml` / `core/manifest.yaml` references.
16
16
 
17
+ - type: shared
18
+ source: sections/project-context-profile.md
19
+
17
20
  - type: shared
18
21
  source: sections/role-header.md
19
22
  params:
@@ -34,8 +37,8 @@ sections:
34
37
  skill: "/mvt-design"
35
38
  - scope: "write implementation code"
36
39
  skill: "/mvt-implement"
37
- - scope: "edit framework knowledge under core/_framework/"
38
- skill: "(Read-only -- framework files are not user-editable)"
40
+ - scope: "edit framework knowledge under core/_framework/ (framework files are read-only)"
41
+ skill: "(constraint)"
39
42
 
40
43
  - type: shared
41
44
  source: sections/activation-load-context.md
@@ -46,9 +49,12 @@ sections:
46
49
  - type: shared
47
50
  source: sections/output-language-constraint.md
48
51
 
52
+ - type: shared
53
+ source: sections/output-format-constraint.md
54
+
49
55
  - type: inline
50
56
  content: |
51
- ### Step 3: Pre-flight Checks
57
+ ### Step 4: Pre-flight Checks
52
58
  - No blocking checks required.
53
59
 
54
60
  - type: file
@@ -121,3 +127,14 @@ sections:
121
127
  source: sections/footer-next-steps.md
122
128
  params:
123
129
  current_skill: mvt-manage-context
130
+ conditional_suggestions:
131
+ conditions:
132
+ - condition: "knowledge added or moved"
133
+ primary: mvt-check-context
134
+ primary_desc: "Verify context health after the change"
135
+ - condition: "knowledge removed"
136
+ primary: mvt-check-context
137
+ primary_desc: "Confirm token savings"
138
+ - condition: "large knowledge files detected"
139
+ primary: mvt-cleanup
140
+ primary_desc: "Clean up workspace to reduce context load"