@uoyo/mvtt 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/cli.js +2 -2
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/update.d.ts +1 -1
  4. package/dist/commands/update.d.ts.map +1 -1
  5. package/dist/commands/update.js +18 -1
  6. package/dist/commands/update.js.map +1 -1
  7. package/dist/fs/core-manifest.d.ts +4 -3
  8. package/dist/fs/core-manifest.d.ts.map +1 -1
  9. package/dist/fs/core-manifest.js +5 -4
  10. package/dist/fs/core-manifest.js.map +1 -1
  11. package/dist/fs/materialize.d.ts +2 -0
  12. package/dist/fs/materialize.d.ts.map +1 -1
  13. package/dist/fs/materialize.js +3 -3
  14. package/dist/fs/materialize.js.map +1 -1
  15. package/dist/fs/registry-merge.d.ts +4 -3
  16. package/dist/fs/registry-merge.d.ts.map +1 -1
  17. package/dist/fs/registry-merge.js +5 -4
  18. package/dist/fs/registry-merge.js.map +1 -1
  19. package/dist/scripts/epic-update.cjs +54 -1
  20. package/dist/scripts/plan-update.cjs +21 -7
  21. package/dist/scripts/plan-update.md +9 -0
  22. package/dist/scripts/session-update.cjs +44 -1
  23. package/package.json +1 -1
  24. package/sources/scripts/epic-update.js +70 -1
  25. package/sources/scripts/plan-update.js +26 -8
  26. package/sources/scripts/plan-update.md +9 -0
  27. package/sources/scripts/session-update.js +61 -1
  28. package/sources/sections/activation-protocol.md +46 -0
  29. package/sources/sections/role-header.md +1 -1
  30. package/sources/sections/session-update.md +7 -1
  31. package/sources/skills/mvt-analyze/manifest.yaml +6 -9
  32. package/sources/skills/mvt-analyze-code/business.md +3 -0
  33. package/sources/skills/mvt-analyze-code/manifest.yaml +4 -8
  34. package/sources/skills/mvt-bug-detect/manifest.yaml +3 -4
  35. package/sources/skills/mvt-check-context/business.md +2 -2
  36. package/sources/skills/mvt-check-context/manifest.yaml +3 -6
  37. package/sources/skills/mvt-cleanup/business.md +40 -13
  38. package/sources/skills/mvt-cleanup/manifest.yaml +7 -8
  39. package/sources/skills/mvt-config/business.md +44 -49
  40. package/sources/skills/mvt-config/manifest.yaml +20 -25
  41. package/sources/skills/mvt-create-skill/business.md +15 -11
  42. package/sources/skills/mvt-create-skill/manifest.yaml +6 -9
  43. package/sources/skills/mvt-decompose/business.md +3 -0
  44. package/sources/skills/mvt-decompose/manifest.yaml +8 -10
  45. package/sources/skills/mvt-design/business.md +1 -1
  46. package/sources/skills/mvt-design/manifest.yaml +6 -8
  47. package/sources/skills/mvt-fix/business.md +7 -1
  48. package/sources/skills/mvt-fix/manifest.yaml +5 -9
  49. package/sources/skills/mvt-help/business.md +1 -0
  50. package/sources/skills/mvt-help/manifest.yaml +4 -4
  51. package/sources/skills/mvt-implement/business.md +1 -1
  52. package/sources/skills/mvt-implement/manifest.yaml +4 -7
  53. package/sources/skills/mvt-init/manifest.yaml +6 -9
  54. package/sources/skills/mvt-manage-context/business.md +4 -2
  55. package/sources/skills/mvt-manage-context/manifest.yaml +3 -6
  56. package/sources/skills/mvt-plan-dev/business.md +8 -6
  57. package/sources/skills/mvt-plan-dev/manifest.yaml +6 -10
  58. package/sources/skills/mvt-quick-dev/business.md +1 -1
  59. package/sources/skills/mvt-quick-dev/manifest.yaml +3 -4
  60. package/sources/skills/mvt-refactor/business.md +1 -1
  61. package/sources/skills/mvt-refactor/manifest.yaml +3 -4
  62. package/sources/skills/mvt-resume/business.md +3 -3
  63. package/sources/skills/mvt-resume/manifest.yaml +7 -10
  64. package/sources/skills/mvt-review/business.md +10 -3
  65. package/sources/skills/mvt-review/manifest.yaml +10 -11
  66. package/sources/skills/mvt-status/business.md +10 -9
  67. package/sources/skills/mvt-status/manifest.yaml +4 -7
  68. package/sources/skills/mvt-sync-context/business.md +19 -17
  69. package/sources/skills/mvt-sync-context/manifest.yaml +5 -9
  70. package/sources/skills/mvt-template/business.md +5 -5
  71. package/sources/skills/mvt-template/manifest.yaml +3 -6
  72. package/sources/skills/mvt-test/business.md +10 -2
  73. package/sources/skills/mvt-test/manifest.yaml +8 -11
  74. package/sources/skills/mvt-update-plan/business.md +6 -2
  75. package/sources/skills/mvt-update-plan/manifest.yaml +6 -10
  76. package/sources/sections/activation-load-config.md +0 -8
  77. package/sources/sections/activation-load-context.md +0 -49
  78. package/sources/sections/activation-preflight.md +0 -14
@@ -31,9 +31,9 @@ sections:
31
31
  - scope: "modify the code being tested"
32
32
  skill: "/mvt-fix"
33
33
  - scope: "make architecture decisions"
34
- skill: "(Test against existing design)"
34
+ guidance: "test against existing design"
35
35
  - scope: "skip edge cases or negative tests"
36
- skill: "(Never)"
36
+ guidance: "never"
37
37
 
38
38
  - type: inline
39
39
  content: |
@@ -46,17 +46,14 @@ sections:
46
46
  | `/mvt-test --coverage` | Generate tests with coverage analysis |
47
47
 
48
48
  - type: shared
49
- source: sections/activation-load-context.md
49
+ source: sections/activation-protocol.md
50
50
  params:
51
+ activation_reads:
52
+ - session.yaml
51
53
  extended_context:
52
54
  - "Implementation files to be tested"
53
-
54
- - type: shared
55
- source: sections/activation-load-config.md
56
-
57
- - type: shared
58
- source: sections/activation-preflight.md
59
- params:
55
+ - ".ai-agents/workspace/artifacts/{active_change.id}/design.md -- error paths / data flow that negative-path scenarios trace to (skip if absent)"
56
+ has_preflight: true
60
57
  checks:
61
58
  - order: "1"
62
59
  field: "session.initialized_at"
@@ -94,7 +91,7 @@ sections:
94
91
  Read the document structure template from: `.ai-agents/skills/_templates/test-output.md`
95
92
  If a custom version exists at `.ai-agents/skills/_templates/custom/test-output.md`, use the custom version instead.
96
93
  The template defines section structure and guidance comments. Generate applicable content based on test design results.
97
- Write the artifact to: `.ai-agents/workspace/artifacts/{change-id}/tests/test-design.md`
94
+ Write the artifact to: `.ai-agents/workspace/artifacts/{change-id}/test-design.md`
98
95
 
99
96
  - type: shared
100
97
  source: sections/session-update.md
@@ -74,7 +74,9 @@ After the Step 3 script reports `plan_status: "done"`:
74
74
  ```bash
75
75
  node .ai-agents/scripts/epic-update.cjs --epic "<active_epic.epic_path>" --complete-child <active_change.id>
76
76
  ```
77
- - `session-update.cjs --skill mvt-update-plan --summary "..." --close-change`
77
+ - If the epic-update command fails, STOP and do not call `session-update.cjs`; report stderr and keep the active change open.
78
+ - If epic-update succeeds, call `session-update.cjs --skill mvt-update-plan --summary "..." --close-change`.
79
+ - If session-update fails after epic-update succeeded, report the divergence explicitly: the child was marked done in `epic.yaml`, but `session.active_change` was not closed. Tell the user to rerun `/mvt-update-plan` or manually recover session state before continuing.
78
80
  - Display: next child info from epic-update stdout. Suggest `/mvt-analyze` to start the next sub-change.
79
81
 
80
82
  5. On **n**: No action. Display reminder: "Change remains open. Run other skills (e.g., `/mvt-review`, `/mvt-test`, `/mvt-fix`) as needed; run `/mvt-update-plan` again when ready to advance the epic."
@@ -84,7 +86,9 @@ After the Step 3 script reports `plan_status: "done"`:
84
86
  ```bash
85
87
  node .ai-agents/scripts/epic-update.cjs --epic "<active_epic.epic_path>" --set-child-status <active_change.id> --child-status done
86
88
  ```
87
- - `session-update.cjs --skill mvt-update-plan --summary "..." --close-change`
89
+ - If the epic-update command fails, STOP and do not call `session-update.cjs`; report stderr and keep the active change open.
90
+ - If epic-update succeeds, call `session-update.cjs --skill mvt-update-plan --summary "..." --close-change`.
91
+ - If session-update fails after epic-update succeeded, report the divergence explicitly: the child was marked done in `epic.yaml`, but `session.active_change` was not closed. Tell the user to rerun `/mvt-update-plan` or manually recover session state before continuing.
88
92
  - Display: "Child marked done, current_change unchanged."
89
93
 
90
94
  ## Edge Cases & Errors
@@ -35,26 +35,22 @@ sections:
35
35
  skill: "/mvt-implement"
36
36
 
37
37
  - type: shared
38
- source: sections/activation-load-context.md
38
+ source: sections/activation-protocol.md
39
39
  params:
40
+ activation_reads:
41
+ - session.yaml
40
42
  extended_context:
41
43
  - "{active_change.plan_path} -- The plan to update (resolved from session.yaml)"
42
-
43
- - type: shared
44
- source: sections/activation-load-config.md
45
-
46
- - type: shared
47
- source: sections/activation-preflight.md
48
- params:
44
+ has_preflight: true
49
45
  checks:
50
46
  - order: "1"
51
47
  field: "session.initialized_at"
52
48
  level: "WARN"
53
- message: 'Session not initialized. Run `/mvt-init` first.'
49
+ message: "Session not initialized. Run `/mvt-init` first."
54
50
  - order: "2"
55
51
  field: "active_change.plan_path"
56
52
  level: "BLOCK"
57
- message: 'No active plan. Run `/mvt-plan-dev` to create one.'
53
+ message: "No active plan. Run `/mvt-plan-dev` to create one."
58
54
 
59
55
  - type: shared
60
56
  source: sections/language-constraint.md
@@ -1,8 +0,0 @@
1
- ### Stage 4: Load Config & Apply Preferences (Config Foundation)
2
- Read `.ai-agents/config.yaml` and enforce it for the whole session:
3
-
4
- - `preferences.interaction_language`: language for chat, prompts, status lines, tables, and summaries.
5
- - `preferences.document_output_language`: language for files written to disk.
6
- - `preferences.output.no_emojis`: if true, never use emojis.
7
- - `preferences.output.data_format`: format for artifact data sections.
8
- - `preferences.context_routing.relevance_threshold`: AI routing threshold for `/mvt-manage-context add` (default 70).
@@ -1,49 +0,0 @@
1
- ## Activation Protocol
2
-
3
- ### Stage 1: Load Context
4
- Load foundational context:
5
- - `.ai-agents/workspace/project-context.yaml` -- Project index (structural info)
6
- - `.ai-agents/registry.yaml` -- Available skills registry and knowledge declarations
7
- {{?extended_context}}
8
-
9
- Extended context for this skill:
10
- {{/extended_context}}
11
- {{#extended_context}}
12
- - {{.}}
13
- {{/extended_context}}
14
-
15
- ### Stage 2: Resolve Project Scope (PS)
16
-
17
- Read `project-context.yaml > projects[]`.
18
-
19
- **Single project** (`projects.length == 1`): PS = [sole project name]; skip the rest of this step.
20
-
21
- **Multi-project** (`projects.length > 1`):
22
- **Mode A -- Plan-driven** (active plan exists and skill operates on plan tasks):
23
- 1. **Plan signal**: PS = current task `project` values from plan `current_tasks`; drop names absent from `projects[]`.
24
- 2. **Path match**: Match current paths against `projects[].path` and `source_paths`.
25
- 3. **Prompt**: If unresolved, list candidates and ask user. Never silently load all projects.
26
-
27
- **Mode B -- Non-plan** (no active plan or ad-hoc changes):
28
- Defer PS to execution: identify change target, match against `projects[].path` and `source_paths`, load project-specific knowledge on demand (Stage 3).
29
-
30
- ### Stage 3: Load Knowledge
31
-
32
- Registry knowledge maps are project-keyed; `_all` is reserved for all projects. This applies to top-level `knowledge` and `skills.<name>.knowledge`.
33
-
34
- **Knowledge Loading Protocol**:
35
- For each registry knowledge entry:
36
- 1. Read its `source` field, e.g. `knowledge/project/_generated/`.
37
- 2. Base dir = `.ai-agents/` + `source`, e.g. `.ai-agents/knowledge/project/_generated/`.
38
- 3. Load `files` entries from that base dir; if `files_from_manifest: true`, read `manifest.yaml` there and load entries with `auto_load: true`.
39
- 4. **Skip non-existent paths** silently (do not error or warn).
40
-
41
- Example: `source: knowledge/project/_generated/` + `files: [project-context.md]` resolves to `.ai-agents/knowledge/project/_generated/project-context.md`.
42
-
43
- **Anti-pattern -- DO NOT**:
44
- - Guess or hardcode base directories (e.g., `.ai-agents/workspace/`).
45
- - Assume a default path structure. The `source` field value is the authoritative path component.
46
-
47
- **At activation** (both modes): load `knowledge._all` + `skills.<current-skill>.knowledge._all`.
48
- **Mode A** (additionally): for each P in PS, load `knowledge[P]` + `skills.<current-skill>.knowledge[P]`.
49
- **Mode B** (during execution): on demand, load `knowledge[P]` + `skills.<current-skill>.knowledge[P]` for identified project(s).
@@ -1,14 +0,0 @@
1
- ### Stage 5: Pre-flight Checks
2
-
3
- For each check below, if the condition holds, perform the action implied by its **Level**:
4
-
5
- - **WARN** -- emit the message, then ask "Continue anyway? (y/n)". Default to **y** if the user does not respond.
6
- - **BLOCK** -- emit the message and stop. Do not proceed until the prerequisite is satisfied.
7
- - **REQUIRED** -- same as BLOCK; the prerequisite is mandatory.
8
- - **INFO** -- emit the message and proceed; no confirmation needed.
9
-
10
- | # | Condition | Level | Message |
11
- |---|-----------|-------|---------|
12
- {{#checks}}
13
- | {{order}} | `{{field}}` is empty | {{level}} | {{message}} |
14
- {{/checks}}