@uoyo/mvtt 2.0.0-beta.0 → 2.0.0-beta.2
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/LICENSE +21 -21
- package/README.md +194 -209
- package/dist/build/assembler.d.ts.map +1 -1
- package/dist/build/assembler.js +2 -0
- package/dist/build/assembler.js.map +1 -1
- package/dist/build/plan-validator.d.ts +26 -0
- package/dist/build/plan-validator.d.ts.map +1 -0
- package/dist/build/plan-validator.js +225 -0
- package/dist/build/plan-validator.js.map +1 -0
- package/dist/build/section-loader.d.ts.map +1 -1
- package/dist/build/section-loader.js +45 -9
- package/dist/build/section-loader.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +2 -11
- package/dist/cli.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +0 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/install.d.ts +1 -4
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +18 -14
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/migrate.d.ts +16 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +118 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +35 -2
- package/dist/commands/update.js.map +1 -1
- package/dist/fs/core-manifest.d.ts +17 -0
- package/dist/fs/core-manifest.d.ts.map +1 -0
- package/dist/fs/core-manifest.js +76 -0
- package/dist/fs/core-manifest.js.map +1 -0
- package/dist/fs/install-manifest.d.ts +1 -2
- package/dist/fs/install-manifest.d.ts.map +1 -1
- package/dist/fs/install-manifest.js +1 -2
- package/dist/fs/install-manifest.js.map +1 -1
- package/dist/fs/materialize.d.ts.map +1 -1
- package/dist/fs/materialize.js +23 -3
- package/dist/fs/materialize.js.map +1 -1
- package/dist/types/core-manifest.d.ts +12 -0
- package/dist/types/core-manifest.d.ts.map +1 -0
- package/dist/types/core-manifest.js +2 -0
- package/dist/types/core-manifest.js.map +1 -0
- package/dist/types/registry.d.ts +13 -5
- package/dist/types/registry.d.ts.map +1 -1
- package/install-manifest.yaml +31 -27
- package/package.json +57 -57
- package/registry.yaml +198 -209
- package/sources/defaults/config.yaml +27 -30
- package/sources/defaults/project-context.yaml +15 -26
- package/sources/defaults/session.yaml +31 -23
- package/sources/knowledge/core/manifest.yaml +4 -45
- package/sources/sections/activation-load-config.md +11 -5
- package/sources/sections/activation-load-context.md +26 -11
- package/sources/sections/activation-preflight.md +14 -4
- package/sources/sections/footer-next-steps.md +35 -9
- package/sources/sections/output-language-constraint.md +11 -0
- package/sources/sections/role-header.md +13 -13
- package/sources/sections/session-update.md +47 -0
- package/sources/skills/mvt-analyze/business.md +69 -33
- package/sources/skills/mvt-analyze/manifest.yaml +90 -89
- package/sources/skills/mvt-analyze-code/business.md +82 -35
- package/sources/skills/mvt-analyze-code/manifest.yaml +96 -88
- package/sources/skills/mvt-bug-detect/business.md +101 -0
- package/sources/skills/mvt-bug-detect/manifest.yaml +84 -0
- package/sources/skills/mvt-check-context/business.md +89 -42
- package/sources/skills/mvt-check-context/manifest.yaml +63 -74
- package/sources/skills/mvt-cleanup/business.md +80 -31
- package/sources/skills/mvt-cleanup/manifest.yaml +85 -93
- package/sources/skills/mvt-config/business.md +94 -26
- package/sources/skills/mvt-config/manifest.yaml +96 -108
- package/sources/skills/mvt-create-skill/business.md +231 -111
- package/sources/skills/mvt-create-skill/manifest.yaml +91 -79
- package/sources/skills/mvt-design/business.md +116 -34
- package/sources/skills/mvt-design/manifest.yaml +96 -105
- package/sources/skills/mvt-fix/business.md +132 -28
- package/sources/skills/mvt-fix/manifest.yaml +85 -86
- package/sources/skills/mvt-help/business.md +74 -70
- package/sources/skills/mvt-help/manifest.yaml +67 -61
- package/sources/skills/mvt-implement/business.md +91 -32
- package/sources/skills/mvt-implement/manifest.yaml +80 -96
- package/sources/skills/mvt-init/business.md +164 -49
- package/sources/skills/mvt-init/manifest.yaml +101 -93
- package/sources/skills/mvt-manage-context/business.md +175 -0
- package/sources/skills/mvt-manage-context/manifest.yaml +123 -0
- package/sources/skills/mvt-plan-dev/business.md +75 -0
- package/sources/skills/mvt-plan-dev/manifest.yaml +91 -0
- package/sources/skills/mvt-quick-dev/business.md +99 -0
- package/sources/skills/mvt-quick-dev/manifest.yaml +69 -0
- package/sources/skills/mvt-refactor/business.md +104 -33
- package/sources/skills/mvt-refactor/manifest.yaml +86 -101
- package/sources/skills/mvt-resume/business.md +137 -0
- package/sources/skills/mvt-resume/manifest.yaml +71 -0
- package/sources/skills/mvt-review/business.md +112 -49
- package/sources/skills/mvt-review/manifest.yaml +87 -106
- package/sources/skills/mvt-status/business.md +71 -24
- package/sources/skills/mvt-status/manifest.yaml +66 -74
- package/sources/skills/mvt-sync-context/business.md +150 -25
- package/sources/skills/mvt-sync-context/manifest.yaml +96 -84
- package/sources/skills/mvt-template/business.md +96 -49
- package/sources/skills/mvt-template/manifest.yaml +63 -71
- package/sources/skills/mvt-test/business.md +104 -36
- package/sources/skills/mvt-test/manifest.yaml +102 -111
- package/sources/skills/mvt-update-plan/business.md +72 -0
- package/sources/skills/mvt-update-plan/manifest.yaml +132 -0
- package/sources/templates/analyze-output/body.md +15 -38
- package/sources/templates/analyze-output/manifest.yaml +11 -11
- package/sources/templates/design-output/body.md +17 -50
- package/sources/templates/design-output/manifest.yaml +11 -11
- package/sources/templates/implement-output/body.md +11 -32
- package/sources/templates/implement-output/manifest.yaml +11 -11
- package/sources/templates/project-context/body.md +13 -0
- package/sources/templates/project-context/manifest.yaml +12 -0
- package/sources/templates/review-output/body.md +11 -45
- package/sources/templates/review-output/manifest.yaml +11 -11
- package/sources/templates/test-output/body.md +7 -31
- package/sources/templates/test-output/manifest.yaml +11 -11
- package/dist/fs/protection.d.ts +0 -15
- package/dist/fs/protection.d.ts.map +0 -1
- package/dist/fs/protection.js +0 -16
- package/dist/fs/protection.js.map +0 -1
- package/sources/knowledge/core/review-principles.md +0 -51
- package/sources/knowledge/patterns/clean-architecture/manifest.yaml +0 -66
- package/sources/knowledge/patterns/clean-architecture/review-checklist.md +0 -230
- package/sources/knowledge/patterns/ddd/manifest.yaml +0 -83
- package/sources/knowledge/patterns/ddd/review-checklist.md +0 -226
- package/sources/knowledge/patterns/ddd/tactical-patterns.md +0 -12
- package/sources/knowledge/patterns/frontend-react/manifest.yaml +0 -44
- package/sources/knowledge/patterns/frontend-react/review-checklist.md +0 -78
- package/sources/knowledge/patterns/manifest.yaml +0 -113
- package/sources/skills/mvt-add-context/business.md +0 -47
- package/sources/skills/mvt-add-context/manifest.yaml +0 -83
- package/sources/templates/analyze-code-output/body.md +0 -44
- package/sources/templates/analyze-code-output/manifest.yaml +0 -11
- package/sources/templates/cleanup-output/body.md +0 -9
- package/sources/templates/cleanup-output/manifest.yaml +0 -11
- package/sources/templates/config-output/body.md +0 -11
- package/sources/templates/config-output/manifest.yaml +0 -11
- package/sources/templates/context-check-output/body.md +0 -32
- package/sources/templates/context-check-output/manifest.yaml +0 -11
- package/sources/templates/fix-output/body.md +0 -30
- package/sources/templates/fix-output/manifest.yaml +0 -11
- package/sources/templates/init-output/body.md +0 -34
- package/sources/templates/init-output/manifest.yaml +0 -11
- package/sources/templates/refactor-output/body.md +0 -32
- package/sources/templates/refactor-output/manifest.yaml +0 -11
- package/sources/templates/status-output/body.md +0 -36
- package/sources/templates/status-output/manifest.yaml +0 -11
- package/sources/templates/sync-context-output/body.md +0 -16
- package/sources/templates/sync-context-output/manifest.yaml +0 -11
|
@@ -1,23 +1,31 @@
|
|
|
1
|
-
# Workspace Session State
|
|
2
|
-
#
|
|
3
|
-
|
|
4
|
-
session:
|
|
5
|
-
initialized_at: ""
|
|
6
|
-
last_command: ""
|
|
7
|
-
|
|
8
|
-
# Current active change (
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
#
|
|
23
|
-
|
|
1
|
+
# Workspace Session State
|
|
2
|
+
# Supports flexible workflows -- no longer bound to a fixed pipeline
|
|
3
|
+
|
|
4
|
+
session:
|
|
5
|
+
initialized_at: ""
|
|
6
|
+
last_command: ""
|
|
7
|
+
|
|
8
|
+
# Current active change (id/title/created_at set by /mvt-analyze;
|
|
9
|
+
# plan_path/has_plan set by /mvt-plan-dev once a plan is generated)
|
|
10
|
+
active_change:
|
|
11
|
+
id: ""
|
|
12
|
+
title: ""
|
|
13
|
+
created_at: ""
|
|
14
|
+
plan_path: ""
|
|
15
|
+
has_plan: false
|
|
16
|
+
|
|
17
|
+
# Recent changes with active plans (max 5, owned by /mvt-plan-dev and /mvt-update-plan)
|
|
18
|
+
# Each entry: { id, title, plan_path, last_updated }
|
|
19
|
+
# Status is the responsibility of plan.yaml (read on demand by /mvt-resume).
|
|
20
|
+
recent_changes: []
|
|
21
|
+
|
|
22
|
+
# Skill execution history (append-only, max 10)
|
|
23
|
+
# Records which skills have been executed, replacing the old progress field
|
|
24
|
+
skill_history: []
|
|
25
|
+
# - command: "/mvt-analyze"
|
|
26
|
+
# completed_at: "2026-05-23T14:30:00"
|
|
27
|
+
# summary: "Analyzed user authentication requirements"
|
|
28
|
+
# change_id: "" # set when work belongs to an active change
|
|
29
|
+
|
|
30
|
+
# Recent actions (append-only, max 5)
|
|
31
|
+
recent_actions: []
|
|
@@ -1,47 +1,6 @@
|
|
|
1
|
-
id:
|
|
2
|
-
type:
|
|
3
|
-
name: "Core Knowledge"
|
|
4
|
-
version: "1.0"
|
|
5
|
-
description: "Actionable review principles for code quality"
|
|
6
|
-
|
|
7
|
-
token_estimate:
|
|
8
|
-
total: 800
|
|
9
|
-
breakdown:
|
|
10
|
-
- file: review-principles.md
|
|
11
|
-
tokens: 800
|
|
12
|
-
load_priority: 1
|
|
13
|
-
summary: "Naming, SRP, dependency direction, error handling, duplication, state, testing checklist"
|
|
14
|
-
|
|
15
|
-
loading_strategy:
|
|
16
|
-
level_1_overview:
|
|
17
|
-
description: "Read manifest only for summary"
|
|
18
|
-
tokens: 100
|
|
19
|
-
use_case: "Check available knowledge"
|
|
20
|
-
|
|
21
|
-
level_2_full:
|
|
22
|
-
description: "Load complete knowledge files"
|
|
23
|
-
tokens: 800
|
|
24
|
-
use_case: "Complete principles reference"
|
|
25
|
-
|
|
26
|
-
loading:
|
|
27
|
-
priority: 1
|
|
28
|
-
auto_load: true
|
|
1
|
+
id: core
|
|
2
|
+
type: shared
|
|
29
3
|
|
|
30
4
|
files:
|
|
31
|
-
-
|
|
32
|
-
|
|
33
|
-
required: true
|
|
34
|
-
tokens: 800
|
|
35
|
-
|
|
36
|
-
attributes:
|
|
37
|
-
checklist: []
|
|
38
|
-
|
|
39
|
-
scenarios:
|
|
40
|
-
- name: "Code review"
|
|
41
|
-
files: ["review-principles.md"]
|
|
42
|
-
|
|
43
|
-
- name: "Refactoring guidance"
|
|
44
|
-
files: ["review-principles.md"]
|
|
45
|
-
|
|
46
|
-
- name: "Architecture design"
|
|
47
|
-
files: ["review-principles.md"]
|
|
5
|
+
# User-added entries (origin: user) are appended by /mvt-manage-context.
|
|
6
|
+
# `mvtt update` preserves them and only rewrites origin: framework entries.
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
### Step
|
|
2
|
-
Read `.ai-agents/config.yaml` and enforce the following throughout this entire session:
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
- `preferences.
|
|
1
|
+
### Step 3: 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` → Use for everything spoken to the user (chat, prompts, tables); NOT for files written to disk.
|
|
6
|
+
- `preferences.document_output_language` → See **Output Language Constraint** section below for the full rules governing files written to disk.
|
|
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,11 +1,26 @@
|
|
|
1
|
-
## Activation Protocol
|
|
2
|
-
|
|
3
|
-
### Step 1: Load Context (Context Foundation)
|
|
4
|
-
Load the following files as foundational context:
|
|
5
|
-
- `.ai-agents/workspace/session.yaml` -- Current workflow state
|
|
6
|
-
- `.ai-agents/workspace/project-context.yaml` -- Project
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
{{/extended_context}}
|
|
1
|
+
## Activation Protocol
|
|
2
|
+
|
|
3
|
+
### Step 1: Load Context (Context Foundation)
|
|
4
|
+
Load the following files as foundational context:
|
|
5
|
+
- `.ai-agents/workspace/session.yaml` -- Current workflow state
|
|
6
|
+
- `.ai-agents/workspace/project-context.yaml` -- Project index (structural info)
|
|
7
|
+
- `.ai-agents/registry.yaml` -- Available skills registry and knowledge declarations
|
|
8
|
+
{{?extended_context}}
|
|
9
|
+
|
|
10
|
+
Extended context for this skill:
|
|
11
|
+
{{/extended_context}}
|
|
12
|
+
{{#extended_context}}
|
|
13
|
+
- {{.}}
|
|
14
|
+
{{/extended_context}}
|
|
15
|
+
|
|
16
|
+
### Step 2: Load Knowledge
|
|
17
|
+
|
|
18
|
+
Read `.ai-agents/registry.yaml` and load every file referenced under:
|
|
19
|
+
- `knowledge.shared` (loaded by all skills)
|
|
20
|
+
- `skills.<current-skill>.knowledge` (this skill's specific knowledge, if present)
|
|
21
|
+
|
|
22
|
+
For each entry, resolve files relative to `.ai-agents/{source}`:
|
|
23
|
+
- If the entry lists `files: [...]`, load those files.
|
|
24
|
+
- If the entry lists `files_from_manifest: true`, read `{source}/manifest.yaml` and load every `files[]` entry where `auto_load: true`.
|
|
25
|
+
|
|
26
|
+
Skip any path that does not exist.
|
|
@@ -1,4 +1,14 @@
|
|
|
1
|
-
### Step
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
### Step 4: 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}}
|
|
@@ -1,9 +1,35 @@
|
|
|
1
|
-
## Suggested Next Steps
|
|
2
|
-
|
|
3
|
-
-
|
|
4
|
-
{{#
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
## Suggested Next Steps
|
|
2
|
+
|
|
3
|
+
Recommend 2-3 relevant next skills based on the skill just completed (`{{current_skill}}`) and the current project state.
|
|
4
|
+
{{#conditional_suggestions}}
|
|
5
|
+
|
|
6
|
+
### Conditional Recommendations
|
|
7
|
+
|
|
8
|
+
Match the current state to one of the conditions below. If none match, use `default`.
|
|
9
|
+
|
|
10
|
+
{{#conditions}}
|
|
11
|
+
- **`{{condition}}`** → `/{{primary}}` -- {{primary_desc}}
|
|
12
|
+
{{#alternatives}}
|
|
13
|
+
- Or `/{{skill}}` -- {{desc}}
|
|
14
|
+
{{/alternatives}}
|
|
15
|
+
{{/conditions}}
|
|
16
|
+
{{#alternatives}}
|
|
17
|
+
- `/{{skill}}` -- {{desc}}
|
|
18
|
+
{{/alternatives}}
|
|
19
|
+
{{/conditional_suggestions}}
|
|
20
|
+
{{^conditional_suggestions}}
|
|
21
|
+
|
|
22
|
+
### Resolution order
|
|
23
|
+
|
|
24
|
+
Infer 2-3 suggestions from:
|
|
25
|
+
- `skill_history` in `session.yaml`
|
|
26
|
+
- `category` and `description` of each skill in `registry.yaml`
|
|
27
|
+
- The current `active_change` state (if in progress)
|
|
28
|
+
- The `depends_on` relationships between skills
|
|
29
|
+
{{/conditional_suggestions}}
|
|
30
|
+
|
|
31
|
+
### Format
|
|
32
|
+
|
|
33
|
+
- `/{skill_name}` -- {when to use this skill, tailored to the current context}
|
|
34
|
+
|
|
35
|
+
Do not suggest the skill that was just completed. Prioritize skills that logically follow from the work done.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
## Output Language Constraint (Mandatory)
|
|
2
|
+
|
|
3
|
+
All persisted document output (files written to disk) MUST be written in the language specified by `preferences.document_output_language` from config.yaml.
|
|
4
|
+
|
|
5
|
+
**Scope**: artifact files, generated reports, plans, and any markdown written to disk.
|
|
6
|
+
|
|
7
|
+
**Rules**:
|
|
8
|
+
- Section headings defined in templates may remain in their original language, but all generated **content** MUST use the configured language
|
|
9
|
+
- If `document_output_language` is not set, fall back to `interaction_language`
|
|
10
|
+
- Do NOT infer output language from template headings, user prompt language, or source code comments
|
|
11
|
+
- This constraint is NON-NEGOTIABLE and overrides any other language signals
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
## Role
|
|
2
|
-
|
|
3
|
-
You are the **{{role}}** -- {{role_desc}}.
|
|
4
|
-
|
|
5
|
-
### Decision Rules
|
|
6
|
-
{{#decision_rules}}
|
|
7
|
-
- {{rule}}
|
|
8
|
-
{{/decision_rules}}
|
|
9
|
-
|
|
10
|
-
### Boundaries
|
|
11
|
-
{{#boundaries}}
|
|
12
|
-
- Do NOT {{scope}}
|
|
13
|
-
{{/boundaries}}
|
|
1
|
+
## Role
|
|
2
|
+
|
|
3
|
+
You are the **{{role}}** -- {{role_desc}}.
|
|
4
|
+
|
|
5
|
+
### Decision Rules
|
|
6
|
+
{{#decision_rules}}
|
|
7
|
+
- {{rule}}
|
|
8
|
+
{{/decision_rules}}
|
|
9
|
+
|
|
10
|
+
### Boundaries
|
|
11
|
+
{{#boundaries}}
|
|
12
|
+
- Do NOT {{scope}} (use `{{skill}}` instead)
|
|
13
|
+
{{/boundaries}}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{{?read_only}}
|
|
2
|
+
## State Update
|
|
3
|
+
|
|
4
|
+
This skill is read-only and does NOT modify `.ai-agents/workspace/session.yaml`. No state mutation, no `skill_history` append, no `recent_actions` append.
|
|
5
|
+
{{/read_only}}
|
|
6
|
+
{{^read_only}}
|
|
7
|
+
## State Update (Required)
|
|
8
|
+
|
|
9
|
+
After execution, update `.ai-agents/workspace/session.yaml` with the following fields.
|
|
10
|
+
|
|
11
|
+
### Mandatory (every skill must set)
|
|
12
|
+
|
|
13
|
+
- `session.last_command`: Set to the current skill command (e.g., `"/mvt-analyze"`)
|
|
14
|
+
- `skill_history`: Append entry:
|
|
15
|
+
```yaml
|
|
16
|
+
- command: "/{skill-name}"
|
|
17
|
+
completed_at: "{current timestamp ISO 8601}"
|
|
18
|
+
summary: "{one-line summary of what was accomplished}"
|
|
19
|
+
change_id: "{active_change.id if set, otherwise empty string}"
|
|
20
|
+
```
|
|
21
|
+
Keep max 10 entries. If exceeds, drop the oldest. The `change_id` field enables `/mvt-resume` to filter history per change when multiple changes are in flight.
|
|
22
|
+
- `recent_actions`: Append one-line summary with format:
|
|
23
|
+
`[{YYYY-MM-DD HH:MM}] /{command}: {one-line summary}`
|
|
24
|
+
Keep max 5 entries. If exceeds, drop the oldest.
|
|
25
|
+
{{#update_active_change}}
|
|
26
|
+
|
|
27
|
+
### Conditional (set only when applicable)
|
|
28
|
+
|
|
29
|
+
- `active_change.id`: Set when this skill creates a new change
|
|
30
|
+
- `active_change.title`: Set when this skill creates a new change
|
|
31
|
+
- `active_change.created_at`: Set when this skill creates a new change
|
|
32
|
+
{{/update_active_change}}
|
|
33
|
+
{{#update_initialized_at}}
|
|
34
|
+
|
|
35
|
+
### Conditional (set only when applicable)
|
|
36
|
+
|
|
37
|
+
- `session.initialized_at`: Set to current timestamp when this skill initializes the project
|
|
38
|
+
{{/update_initialized_at}}
|
|
39
|
+
|
|
40
|
+
### Forbidden
|
|
41
|
+
|
|
42
|
+
- Do NOT update fields not listed above
|
|
43
|
+
- Do NOT overwrite `active_change` unless this skill creates a new change
|
|
44
|
+
- Do NOT modify `skill_history` entries other than appending a new one
|
|
45
|
+
- Do NOT modify `recent_changes` -- it is owned by `/mvt-plan-dev` and `/mvt-update-plan`
|
|
46
|
+
- Do NOT modify `active_change.plan_path` or `active_change.has_plan` -- these are owned by `/mvt-plan-dev`
|
|
47
|
+
{{/read_only}}
|
|
@@ -1,33 +1,69 @@
|
|
|
1
|
-
## Execution Flow
|
|
2
|
-
|
|
3
|
-
### Step 1: Load Requirements
|
|
4
|
-
- If file path provided as argument -> Read that file
|
|
5
|
-
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
- Identify
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
1
|
+
## Execution Flow
|
|
2
|
+
|
|
3
|
+
### Step 1: Load Requirements
|
|
4
|
+
- If file path provided as argument -> Read that file
|
|
5
|
+
- Otherwise -> Use requirements text from user message
|
|
6
|
+
|
|
7
|
+
### Step 2: Extract Information
|
|
8
|
+
- Identify features and functionality
|
|
9
|
+
- Identify actors and stakeholders
|
|
10
|
+
- Extract business rules and constraints
|
|
11
|
+
- Note assumptions made
|
|
12
|
+
|
|
13
|
+
### Step 3: Assess Complexity (Quick Path Detection)
|
|
14
|
+
- **What**: evaluate whether this requirement qualifies as a simple change suitable for the quick development path via `/mvt-quick-dev`.
|
|
15
|
+
- **How**: check each criterion in the table below. ALL criteria must pass for the quick path to be offered.
|
|
16
|
+
|
|
17
|
+
| Criterion | Pass condition |
|
|
18
|
+
|-----------|----------------|
|
|
19
|
+
| Scope | Affects ≤ 3 files (estimate from the requirement's mention of modules/features) |
|
|
20
|
+
| No new concepts | No new domain entities, no new API contracts, no new module boundaries |
|
|
21
|
+
| No architectural impact | No ADR needed; fits existing module/layer structure |
|
|
22
|
+
| Clear specification | No ambiguities detected in Step 2 (or all ambiguities resolved by user confirmation) |
|
|
23
|
+
| No integration concerns | No new external dependencies, no cross-service changes, no async/event flows |
|
|
24
|
+
| Single actor | Only one user role or system actor involved |
|
|
25
|
+
|
|
26
|
+
- **Worked Examples**:
|
|
27
|
+
|
|
28
|
+
- **Example 1 (PASS — offer quick path)**
|
|
29
|
+
> "Increase the password reset email expiration from 30 minutes to 2 hours."
|
|
30
|
+
- Scope: 1 config file ✓
|
|
31
|
+
- No new concepts ✓ (existing flow)
|
|
32
|
+
- No architectural impact ✓
|
|
33
|
+
- Clear specification ✓
|
|
34
|
+
- No integration concerns ✓
|
|
35
|
+
- Single actor ✓
|
|
36
|
+
→ Offer `/mvt-quick-dev`.
|
|
37
|
+
|
|
38
|
+
- **Example 2 (FAIL — proceed with standard analysis)**
|
|
39
|
+
> "Add SSO login via Google for our user portal."
|
|
40
|
+
- Scope: ✗ touches auth middleware, user model, login UI, OAuth callback handler, config (5+ files)
|
|
41
|
+
- No new concepts: ✗ introduces external IdP and OAuth callback contract
|
|
42
|
+
- No integration concerns: ✗ new external dependency (Google IdP)
|
|
43
|
+
→ Proceed with standard analysis flow (Steps 4-6).
|
|
44
|
+
|
|
45
|
+
- **Branches**:
|
|
46
|
+
|
|
47
|
+
| Condition | Action |
|
|
48
|
+
|-----------|--------|
|
|
49
|
+
| ALL criteria pass | Ask user: "This appears to be a simple change (1-3 files, no architectural impact). Use /mvt-quick-dev for faster execution? (y / n / show-criteria)" |
|
|
50
|
+
| ANY criterion fails | Proceed with standard analysis flow (Steps 4-6) |
|
|
51
|
+
| Ambiguous (2-3 criteria unclear) | Proceed with standard analysis; do NOT offer quick path |
|
|
52
|
+
|
|
53
|
+
- **On user choice**:
|
|
54
|
+
- "y" -- Do NOT write an analysis artifact. Summarize the requirement understanding in conversation and recommend `/mvt-quick-dev` directly. Set `active_change` if one doesn't exist, so `/mvt-quick-dev` can reference the current work context.
|
|
55
|
+
- "n" -- Continue with full analysis flow (Steps 4-6).
|
|
56
|
+
- "show-criteria" -- Display the assessment results (pass/fail per criterion), then re-prompt with y/n.
|
|
57
|
+
|
|
58
|
+
### Step 4: Detect Ambiguities
|
|
59
|
+
- Check for unclear requirements
|
|
60
|
+
- Check for missing information
|
|
61
|
+
- Check for conflicting requirements
|
|
62
|
+
|
|
63
|
+
### Step 5: Generate Clarification Questions
|
|
64
|
+
- If ambiguities found -> List each with specific question, prioritized by impact
|
|
65
|
+
- If no ambiguities -> Skip this step
|
|
66
|
+
|
|
67
|
+
### Step 6: Update Workspace
|
|
68
|
+
1. Generate change-id: `{YYYYMMDD}-{slug}` format (e.g., `20260425-user-authentication`)
|
|
69
|
+
2. Write artifact: `.ai-agents/workspace/artifacts/{change-id}/analysis.md`
|
|
@@ -1,89 +1,90 @@
|
|
|
1
|
-
name: mvt-analyze
|
|
2
|
-
output: .claude/skills/mvt-analyze/SKILL.md
|
|
3
|
-
|
|
4
|
-
frontmatter:
|
|
5
|
-
name: mvt-analyze
|
|
6
|
-
description: "Analyze requirements documents and extract domain concepts.
|
|
7
|
-
|
|
8
|
-
sections:
|
|
9
|
-
- type: inline
|
|
10
|
-
content: |
|
|
11
|
-
# MVT Analyze
|
|
12
|
-
|
|
13
|
-
## Purpose
|
|
14
|
-
|
|
15
|
-
Analyze requirements and extract domain concepts as the foundation for architecture design and implementation.
|
|
16
|
-
|
|
17
|
-
- type: shared
|
|
18
|
-
source: sections/role-header.md
|
|
19
|
-
params:
|
|
20
|
-
role: Analyst
|
|
21
|
-
role_desc: "a Requirements Analysis Expert"
|
|
22
|
-
decision_rules:
|
|
23
|
-
- rule: "Clear requirements -> Proceed with structured analysis"
|
|
24
|
-
- rule: "Ambiguities found -> Stop and ask clarification first"
|
|
25
|
-
- rule: "Multiple interpretations -> List all,
|
|
26
|
-
- rule: "Conflicts detected -> Highlight explicitly, ask for resolution"
|
|
27
|
-
- rule: "Vague requirements -> Request specific examples"
|
|
28
|
-
boundaries:
|
|
29
|
-
- scope: "make architecture decisions"
|
|
30
|
-
skill: "/mvt-design"
|
|
31
|
-
- scope: "recommend technologies"
|
|
32
|
-
skill: "/mvt-design"
|
|
33
|
-
- scope: "write implementation code"
|
|
34
|
-
skill: "/mvt-implement"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
1
|
+
name: mvt-analyze
|
|
2
|
+
output: .claude/skills/mvt-analyze/SKILL.md
|
|
3
|
+
|
|
4
|
+
frontmatter:
|
|
5
|
+
name: mvt-analyze
|
|
6
|
+
description: "Analyze requirements documents and extract domain concepts. This skill should be used when user wants to analyze requirements, extract features and business rules, or start the analysis phase of a development workflow."
|
|
7
|
+
|
|
8
|
+
sections:
|
|
9
|
+
- type: inline
|
|
10
|
+
content: |
|
|
11
|
+
# MVT Analyze
|
|
12
|
+
|
|
13
|
+
## Purpose
|
|
14
|
+
|
|
15
|
+
Analyze requirements and extract domain concepts as the foundation for architecture design and implementation.
|
|
16
|
+
|
|
17
|
+
- type: shared
|
|
18
|
+
source: sections/role-header.md
|
|
19
|
+
params:
|
|
20
|
+
role: Analyst
|
|
21
|
+
role_desc: "a Requirements Analysis Expert"
|
|
22
|
+
decision_rules:
|
|
23
|
+
- rule: "Clear requirements -> Proceed with structured analysis"
|
|
24
|
+
- rule: "Ambiguities found -> Stop and ask clarification first"
|
|
25
|
+
- rule: "Multiple interpretations -> List all, prompt for selection"
|
|
26
|
+
- rule: "Conflicts detected -> Highlight explicitly, ask for resolution"
|
|
27
|
+
- rule: "Vague requirements -> Request specific examples"
|
|
28
|
+
boundaries:
|
|
29
|
+
- scope: "make architecture decisions"
|
|
30
|
+
skill: "/mvt-design"
|
|
31
|
+
- scope: "recommend technologies"
|
|
32
|
+
skill: "/mvt-design"
|
|
33
|
+
- scope: "write implementation code"
|
|
34
|
+
skill: "/mvt-implement"
|
|
35
|
+
- scope: "directly implement simple changes"
|
|
36
|
+
skill: "/mvt-quick-dev"
|
|
37
|
+
|
|
38
|
+
- type: shared
|
|
39
|
+
source: sections/activation-load-context.md
|
|
40
|
+
|
|
41
|
+
- type: shared
|
|
42
|
+
source: sections/activation-load-config.md
|
|
43
|
+
|
|
44
|
+
- type: shared
|
|
45
|
+
source: sections/output-language-constraint.md
|
|
46
|
+
|
|
47
|
+
- type: shared
|
|
48
|
+
source: sections/activation-preflight.md
|
|
49
|
+
params:
|
|
50
|
+
checks:
|
|
51
|
+
- order: "1"
|
|
52
|
+
field: "session.initialized_at"
|
|
53
|
+
level: "WARN"
|
|
54
|
+
message: 'Session not initialized. Run `/mvt-init` first.'
|
|
55
|
+
- order: "2"
|
|
56
|
+
field: "projects[] in project-context.yaml"
|
|
57
|
+
level: "WARN"
|
|
58
|
+
message: 'Project not initialized. Run `/mvt-init` first.'
|
|
59
|
+
|
|
60
|
+
- type: file
|
|
61
|
+
source: ./business.md
|
|
62
|
+
|
|
63
|
+
- type: inline
|
|
64
|
+
content: |
|
|
65
|
+
## Artifact Structure
|
|
66
|
+
Read the document structure template from: `.ai-agents/skills/_templates/analyze-output.md`
|
|
67
|
+
If a custom version exists at `.ai-agents/skills/_templates/custom/analyze-output.md`, use the custom version instead.
|
|
68
|
+
The template defines section headings only. Generate content for each section based on analysis results.
|
|
69
|
+
Write the artifact to: `.ai-agents/workspace/artifacts/{change-id}/analysis.md`
|
|
70
|
+
|
|
71
|
+
- type: shared
|
|
72
|
+
source: sections/session-update.md
|
|
73
|
+
params:
|
|
74
|
+
update_active_change: true
|
|
75
|
+
|
|
76
|
+
- type: shared
|
|
77
|
+
source: sections/footer-next-steps.md
|
|
78
|
+
params:
|
|
79
|
+
current_skill: mvt-analyze
|
|
80
|
+
conditional_suggestions:
|
|
81
|
+
conditions:
|
|
82
|
+
- condition: "user chose quick path in Step 2.5"
|
|
83
|
+
primary: "mvt-quick-dev"
|
|
84
|
+
primary_desc: "Implement this simple change quickly"
|
|
85
|
+
- condition: "default"
|
|
86
|
+
primary: "mvt-design"
|
|
87
|
+
primary_desc: "Design architecture based on analysis"
|
|
88
|
+
alternatives:
|
|
89
|
+
- skill: "mvt-analyze-code"
|
|
90
|
+
desc: "Generate code context for better design"
|