@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.
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/update.d.ts +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +18 -1
- package/dist/commands/update.js.map +1 -1
- package/dist/fs/core-manifest.d.ts +4 -3
- package/dist/fs/core-manifest.d.ts.map +1 -1
- package/dist/fs/core-manifest.js +5 -4
- package/dist/fs/core-manifest.js.map +1 -1
- package/dist/fs/materialize.d.ts +2 -0
- package/dist/fs/materialize.d.ts.map +1 -1
- package/dist/fs/materialize.js +3 -3
- package/dist/fs/materialize.js.map +1 -1
- package/dist/fs/registry-merge.d.ts +4 -3
- package/dist/fs/registry-merge.d.ts.map +1 -1
- package/dist/fs/registry-merge.js +5 -4
- package/dist/fs/registry-merge.js.map +1 -1
- package/dist/scripts/epic-update.cjs +54 -1
- package/dist/scripts/plan-update.cjs +21 -7
- package/dist/scripts/plan-update.md +9 -0
- package/dist/scripts/session-update.cjs +44 -1
- package/package.json +1 -1
- package/sources/scripts/epic-update.js +70 -1
- package/sources/scripts/plan-update.js +26 -8
- package/sources/scripts/plan-update.md +9 -0
- package/sources/scripts/session-update.js +61 -1
- package/sources/sections/activation-protocol.md +46 -0
- package/sources/sections/role-header.md +1 -1
- package/sources/sections/session-update.md +7 -1
- package/sources/skills/mvt-analyze/manifest.yaml +6 -9
- package/sources/skills/mvt-analyze-code/business.md +3 -0
- package/sources/skills/mvt-analyze-code/manifest.yaml +4 -8
- package/sources/skills/mvt-bug-detect/manifest.yaml +3 -4
- package/sources/skills/mvt-check-context/business.md +2 -2
- package/sources/skills/mvt-check-context/manifest.yaml +3 -6
- package/sources/skills/mvt-cleanup/business.md +40 -13
- package/sources/skills/mvt-cleanup/manifest.yaml +7 -8
- package/sources/skills/mvt-config/business.md +44 -49
- package/sources/skills/mvt-config/manifest.yaml +20 -25
- package/sources/skills/mvt-create-skill/business.md +15 -11
- package/sources/skills/mvt-create-skill/manifest.yaml +6 -9
- package/sources/skills/mvt-decompose/business.md +3 -0
- package/sources/skills/mvt-decompose/manifest.yaml +8 -10
- package/sources/skills/mvt-design/business.md +1 -1
- package/sources/skills/mvt-design/manifest.yaml +6 -8
- package/sources/skills/mvt-fix/business.md +7 -1
- package/sources/skills/mvt-fix/manifest.yaml +5 -9
- package/sources/skills/mvt-help/business.md +1 -0
- package/sources/skills/mvt-help/manifest.yaml +4 -4
- package/sources/skills/mvt-implement/business.md +1 -1
- package/sources/skills/mvt-implement/manifest.yaml +4 -7
- package/sources/skills/mvt-init/manifest.yaml +6 -9
- package/sources/skills/mvt-manage-context/business.md +4 -2
- package/sources/skills/mvt-manage-context/manifest.yaml +3 -6
- package/sources/skills/mvt-plan-dev/business.md +8 -6
- package/sources/skills/mvt-plan-dev/manifest.yaml +6 -10
- package/sources/skills/mvt-quick-dev/business.md +1 -1
- package/sources/skills/mvt-quick-dev/manifest.yaml +3 -4
- package/sources/skills/mvt-refactor/business.md +1 -1
- package/sources/skills/mvt-refactor/manifest.yaml +3 -4
- package/sources/skills/mvt-resume/business.md +3 -3
- package/sources/skills/mvt-resume/manifest.yaml +7 -10
- package/sources/skills/mvt-review/business.md +10 -3
- package/sources/skills/mvt-review/manifest.yaml +10 -11
- package/sources/skills/mvt-status/business.md +10 -9
- package/sources/skills/mvt-status/manifest.yaml +4 -7
- package/sources/skills/mvt-sync-context/business.md +19 -17
- package/sources/skills/mvt-sync-context/manifest.yaml +5 -9
- package/sources/skills/mvt-template/business.md +5 -5
- package/sources/skills/mvt-template/manifest.yaml +3 -6
- package/sources/skills/mvt-test/business.md +10 -2
- package/sources/skills/mvt-test/manifest.yaml +8 -11
- package/sources/skills/mvt-update-plan/business.md +6 -2
- package/sources/skills/mvt-update-plan/manifest.yaml +6 -10
- package/sources/sections/activation-load-config.md +0 -8
- package/sources/sections/activation-load-context.md +0 -49
- 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
|
-
|
|
34
|
+
guidance: "test against existing design"
|
|
35
35
|
- scope: "skip edge cases or negative tests"
|
|
36
|
-
|
|
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-
|
|
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
|
-
|
|
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}/
|
|
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
|
-
|
|
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
|
-
|
|
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-
|
|
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:
|
|
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:
|
|
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}}
|