@uoyo/mvtt 2.0.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 +6 -5
- 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 +235 -207
- package/dist/scripts/epic-update.md +57 -0
- package/dist/scripts/plan-update.cjs +224 -222
- package/dist/scripts/plan-update.md +68 -0
- package/dist/scripts/session-update.cjs +229 -210
- package/install-manifest.yaml +4 -0
- package/package.json +1 -1
- package/sources/defaults/config.yaml +5 -0
- package/sources/scripts/epic-update.js +73 -22
- package/sources/scripts/epic-update.md +57 -0
- package/sources/scripts/plan-update.js +56 -28
- package/sources/scripts/plan-update.md +68 -0
- package/sources/scripts/session-update.js +68 -24
- package/sources/sections/activation-protocol.md +46 -0
- package/sources/sections/footer-next-steps.md +1 -1
- package/sources/sections/language-constraint.md +3 -18
- package/sources/sections/output-format-constraint.md +6 -9
- package/sources/sections/role-header.md +1 -1
- package/sources/sections/script-usage-rule.md +32 -0
- package/sources/sections/session-update.md +30 -110
- package/sources/skills/mvt-analyze/business.md +1 -1
- package/sources/skills/mvt-analyze/manifest.yaml +13 -16
- package/sources/skills/mvt-analyze-code/business.md +3 -0
- package/sources/skills/mvt-analyze-code/manifest.yaml +11 -15
- 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 +47 -11
- package/sources/skills/mvt-cleanup/manifest.yaml +12 -13
- package/sources/skills/mvt-config/business.md +45 -49
- package/sources/skills/mvt-config/manifest.yaml +21 -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 +21 -9
- package/sources/skills/mvt-decompose/manifest.yaml +15 -17
- package/sources/skills/mvt-design/business.md +35 -44
- package/sources/skills/mvt-design/manifest.yaml +13 -15
- package/sources/skills/mvt-fix/business.md +7 -1
- package/sources/skills/mvt-fix/manifest.yaml +9 -13
- package/sources/skills/mvt-help/business.md +20 -9
- package/sources/skills/mvt-help/manifest.yaml +7 -18
- package/sources/skills/mvt-implement/business.md +27 -34
- package/sources/skills/mvt-implement/manifest.yaml +12 -21
- package/sources/skills/mvt-init/manifest.yaml +10 -13
- 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 +20 -8
- package/sources/skills/mvt-plan-dev/manifest.yaml +13 -17
- 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 +10 -13
- package/sources/skills/mvt-review/business.md +12 -11
- package/sources/skills/mvt-review/manifest.yaml +17 -18
- package/sources/skills/mvt-status/business.md +12 -21
- package/sources/skills/mvt-status/manifest.yaml +7 -10
- package/sources/skills/mvt-sync-context/business.md +20 -18
- package/sources/skills/mvt-sync-context/manifest.yaml +11 -15
- 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 +11 -11
- package/sources/skills/mvt-test/manifest.yaml +15 -18
- package/sources/skills/mvt-update-plan/business.md +18 -29
- package/sources/skills/mvt-update-plan/manifest.yaml +18 -16
- package/sources/templates/analyze-output/body.md +41 -0
- package/sources/templates/decompose-output/body.md +36 -0
- package/sources/templates/design-output/body.md +48 -0
- package/sources/templates/implement-output/body.md +48 -3
- package/sources/templates/project-context/body.md +45 -0
- package/sources/templates/review-output/body.md +59 -0
- package/sources/templates/test-output/body.md +72 -0
- package/sources/sections/activation-load-config.md +0 -11
- package/sources/sections/activation-load-context.md +0 -59
- package/sources/sections/activation-preflight.md +0 -14
|
@@ -1,7 +1,79 @@
|
|
|
1
1
|
# Test Design: {Feature Name}
|
|
2
2
|
|
|
3
|
+
<!--
|
|
4
|
+
This template defines the structure of test-design.md.
|
|
5
|
+
Each section below includes a guidance comment explaining what to write.
|
|
6
|
+
Replace {Feature Name} with the actual feature/change name.
|
|
7
|
+
Remove these HTML comments in the final artifact.
|
|
8
|
+
-->
|
|
9
|
+
|
|
10
|
+
## Scope
|
|
11
|
+
<!--
|
|
12
|
+
The target files under test and any fallbacks applied (e.g., resolved
|
|
13
|
+
from implementation.md Files Touched, or git diff, or user argument).
|
|
14
|
+
Establishes what this test design covers.
|
|
15
|
+
-->
|
|
16
|
+
|
|
17
|
+
## Test Framework & Layout
|
|
18
|
+
<!--
|
|
19
|
+
The chosen test framework (inferred from project manifests or confirmed
|
|
20
|
+
with user) and the file layout convention used (mirror under tests/,
|
|
21
|
+
sibling *.test.ts, etc.). One short paragraph or a small table.
|
|
22
|
+
-->
|
|
23
|
+
|
|
24
|
+
## Test Scenarios
|
|
25
|
+
<!--
|
|
26
|
+
The Scenario Table from the scenario-identification step. Columns:
|
|
27
|
+
| ID | Scenario | Type (happy/edge/negative/security/performance) | Rule-traced-to |.
|
|
28
|
+
Covers happy paths, boundaries, invalid inputs, business rules from
|
|
29
|
+
project-context.md, and error paths declared in design.md data flow.
|
|
30
|
+
-->
|
|
31
|
+
|
|
3
32
|
## Test Cases
|
|
33
|
+
<!--
|
|
34
|
+
The row-level test case table from the design step. Columns:
|
|
35
|
+
| ID | Scenario | Granularity | Preconditions | Inputs | Actions | Expected | Rule-traced-to |.
|
|
36
|
+
Each row maps to one concrete, runnable test. One scenario maps to one
|
|
37
|
+
granularity (unit / integration / E2E).
|
|
38
|
+
-->
|
|
4
39
|
|
|
5
40
|
## Test Code
|
|
41
|
+
<!--
|
|
42
|
+
The generated test files: file paths and a brief description of what
|
|
43
|
+
each file covers. The actual test source goes into the project tree;
|
|
44
|
+
this section is a record of what was written and where. Include any
|
|
45
|
+
setup/fixture notes that explain non-obvious test infrastructure.
|
|
46
|
+
-->
|
|
47
|
+
|
|
48
|
+
## Granularity Decisions
|
|
49
|
+
<!--
|
|
50
|
+
Summary of how scenarios were assigned to unit / integration / E2E,
|
|
51
|
+
including any "needs setup" gaps (e.g., integration scenarios flagged
|
|
52
|
+
because the project lacks an integration test setup). One short
|
|
53
|
+
paragraph or a small table.
|
|
54
|
+
-->
|
|
6
55
|
|
|
7
56
|
## Coverage Analysis
|
|
57
|
+
<!--
|
|
58
|
+
Only when the --coverage flag is set; otherwise omit this heading
|
|
59
|
+
entirely. Map test cases back to target files/functions and business
|
|
60
|
+
rules from project-context.md; list gaps (untested functions, untested
|
|
61
|
+
rules, untested error paths) and recommend additional test cases for
|
|
62
|
+
each gap. Do not auto-generate gap tests unless the user confirms.
|
|
63
|
+
-->
|
|
64
|
+
|
|
65
|
+
## Implementation Issues Found
|
|
66
|
+
<!--
|
|
67
|
+
Bugs discovered during scenario design or test writing (failing test
|
|
68
|
+
reveals a real bug, not a test bug). Each finding: scenario id, expected
|
|
69
|
+
vs observed, severity (Critical / Warning), and a recommendation to run
|
|
70
|
+
/mvt-fix. Do NOT modify production code from this skill. If none found,
|
|
71
|
+
write "None".
|
|
72
|
+
-->
|
|
73
|
+
|
|
74
|
+
## Suggested Run Commands
|
|
75
|
+
<!--
|
|
76
|
+
One or two commands the user can copy-paste to execute the generated
|
|
77
|
+
tests (e.g., `npx vitest run path/to/test.test.ts`). Keep it minimal
|
|
78
|
+
and project-appropriate.
|
|
79
|
+
-->
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
### Step 4: Load Config & Apply Preferences (Config Foundation)
|
|
2
|
-
Read `.ai-agents/config.yaml` and enforce the following throughout this entire session:
|
|
3
|
-
|
|
4
|
-
**Language**:
|
|
5
|
-
- `preferences.interaction_language` → Language for everything spoken to the user (chat, prompts, tables); NOT for files written to disk. See the **Language Constraint** section below for the full, non-negotiable rules.
|
|
6
|
-
- `preferences.document_output_language` → Language for files written to disk. See the **Language Constraint** section below for the full rules.
|
|
7
|
-
|
|
8
|
-
**Other preferences**:
|
|
9
|
-
- `preferences.output.no_emojis` → If true, never use emojis
|
|
10
|
-
- `preferences.output.data_format` → Use this format for data sections in artifacts
|
|
11
|
-
- `preferences.context_routing.relevance_threshold` → Used by `/mvt-manage-context add` for AI routing (default 70 if missing)
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
## Activation Protocol
|
|
2
|
-
|
|
3
|
-
### Step 1: Load Context
|
|
4
|
-
Load these files as 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
|
-
### Step 2: Resolve Project Scope (PS)
|
|
16
|
-
|
|
17
|
-
Read `project-context.yaml > projects[]`.
|
|
18
|
-
|
|
19
|
-
**Single project** (`projects.length == 1`): Set PS = [sole project name]. Skip remaining PS steps.
|
|
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's `project` array from plan's `current_tasks`. Drop stale project names (not in `projects[]`), fall through.
|
|
24
|
-
2. **Path match**: Match current working paths against `projects[].path` and `source_paths`.
|
|
25
|
-
3. **Prompt**: If still 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 (Step 3).
|
|
29
|
-
|
|
30
|
-
### Step 3: Load Knowledge
|
|
31
|
-
|
|
32
|
-
Registry uses project-keyed maps; `_all` is a reserved key (all projects). Applies to both top-level `knowledge` and `skills.<name>.knowledge`.
|
|
33
|
-
|
|
34
|
-
**Knowledge Loading Protocol**:
|
|
35
|
-
For each knowledge entry in the registry, follow these steps:
|
|
36
|
-
1. **Read the `source` field** from the registry entry (e.g., `knowledge/project/_generated/`).
|
|
37
|
-
2. **Construct the base directory**: join `.ai-agents/` with the `source` value → `.ai-agents/{source_value}/`.
|
|
38
|
-
3. **Load files**:
|
|
39
|
-
- `files: [a.md, b.md]` → load `.ai-agents/{source_value}/a.md`, `.ai-agents/{source_value}/b.md`.
|
|
40
|
-
- `files_from_manifest: true` → read `.ai-agents/{source_value}/manifest.yaml`, load entries with `auto_load: true`.
|
|
41
|
-
4. **Skip non-existent paths** silently (do not error or warn).
|
|
42
|
-
|
|
43
|
-
**Worked example**:
|
|
44
|
-
Given this registry entry:
|
|
45
|
-
```yaml
|
|
46
|
-
- id: project-context
|
|
47
|
-
source: knowledge/project/_generated/
|
|
48
|
-
files:
|
|
49
|
-
- project-context.md
|
|
50
|
-
```
|
|
51
|
-
Resolution: `.ai-agents/` + `knowledge/project/_generated/` + `project-context.md` = `.ai-agents/knowledge/project/_generated/project-context.md`
|
|
52
|
-
|
|
53
|
-
**Anti-pattern -- DO NOT**:
|
|
54
|
-
- Guess or hardcode base directories (e.g., `.ai-agents/workspace/`).
|
|
55
|
-
- Assume a default path structure. The `source` field value is the authoritative path component.
|
|
56
|
-
|
|
57
|
-
**At activation** (both modes): load `knowledge._all` + `skills.<current-skill>.knowledge._all`.
|
|
58
|
-
**Mode A** (additionally): for each P in PS, load `knowledge[P]` + `skills.<current-skill>.knowledge[P]`.
|
|
59
|
-
**Mode B** (during execution): on demand, load `knowledge[P]` + `skills.<current-skill>.knowledge[P]` for identified project(s).
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
### Step 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}}
|