@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.
Files changed (151) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +194 -209
  3. package/dist/build/assembler.d.ts.map +1 -1
  4. package/dist/build/assembler.js +2 -0
  5. package/dist/build/assembler.js.map +1 -1
  6. package/dist/build/plan-validator.d.ts +26 -0
  7. package/dist/build/plan-validator.d.ts.map +1 -0
  8. package/dist/build/plan-validator.js +225 -0
  9. package/dist/build/plan-validator.js.map +1 -0
  10. package/dist/build/section-loader.d.ts.map +1 -1
  11. package/dist/build/section-loader.js +45 -9
  12. package/dist/build/section-loader.js.map +1 -1
  13. package/dist/cli.d.ts.map +1 -1
  14. package/dist/cli.js +2 -11
  15. package/dist/cli.js.map +1 -1
  16. package/dist/commands/doctor.d.ts.map +1 -1
  17. package/dist/commands/doctor.js +0 -1
  18. package/dist/commands/doctor.js.map +1 -1
  19. package/dist/commands/install.d.ts +1 -4
  20. package/dist/commands/install.d.ts.map +1 -1
  21. package/dist/commands/install.js +18 -14
  22. package/dist/commands/install.js.map +1 -1
  23. package/dist/commands/migrate.d.ts +16 -0
  24. package/dist/commands/migrate.d.ts.map +1 -0
  25. package/dist/commands/migrate.js +118 -0
  26. package/dist/commands/migrate.js.map +1 -0
  27. package/dist/commands/update.d.ts.map +1 -1
  28. package/dist/commands/update.js +35 -2
  29. package/dist/commands/update.js.map +1 -1
  30. package/dist/fs/core-manifest.d.ts +17 -0
  31. package/dist/fs/core-manifest.d.ts.map +1 -0
  32. package/dist/fs/core-manifest.js +76 -0
  33. package/dist/fs/core-manifest.js.map +1 -0
  34. package/dist/fs/install-manifest.d.ts +1 -2
  35. package/dist/fs/install-manifest.d.ts.map +1 -1
  36. package/dist/fs/install-manifest.js +1 -2
  37. package/dist/fs/install-manifest.js.map +1 -1
  38. package/dist/fs/materialize.d.ts.map +1 -1
  39. package/dist/fs/materialize.js +23 -3
  40. package/dist/fs/materialize.js.map +1 -1
  41. package/dist/types/core-manifest.d.ts +12 -0
  42. package/dist/types/core-manifest.d.ts.map +1 -0
  43. package/dist/types/core-manifest.js +2 -0
  44. package/dist/types/core-manifest.js.map +1 -0
  45. package/dist/types/registry.d.ts +13 -5
  46. package/dist/types/registry.d.ts.map +1 -1
  47. package/install-manifest.yaml +31 -27
  48. package/package.json +57 -57
  49. package/registry.yaml +198 -209
  50. package/sources/defaults/config.yaml +27 -30
  51. package/sources/defaults/project-context.yaml +15 -26
  52. package/sources/defaults/session.yaml +31 -23
  53. package/sources/knowledge/core/manifest.yaml +4 -45
  54. package/sources/sections/activation-load-config.md +11 -5
  55. package/sources/sections/activation-load-context.md +26 -11
  56. package/sources/sections/activation-preflight.md +14 -4
  57. package/sources/sections/footer-next-steps.md +35 -9
  58. package/sources/sections/output-language-constraint.md +11 -0
  59. package/sources/sections/role-header.md +13 -13
  60. package/sources/sections/session-update.md +47 -0
  61. package/sources/skills/mvt-analyze/business.md +69 -33
  62. package/sources/skills/mvt-analyze/manifest.yaml +90 -89
  63. package/sources/skills/mvt-analyze-code/business.md +82 -35
  64. package/sources/skills/mvt-analyze-code/manifest.yaml +96 -88
  65. package/sources/skills/mvt-bug-detect/business.md +101 -0
  66. package/sources/skills/mvt-bug-detect/manifest.yaml +84 -0
  67. package/sources/skills/mvt-check-context/business.md +89 -42
  68. package/sources/skills/mvt-check-context/manifest.yaml +63 -74
  69. package/sources/skills/mvt-cleanup/business.md +80 -31
  70. package/sources/skills/mvt-cleanup/manifest.yaml +85 -93
  71. package/sources/skills/mvt-config/business.md +94 -26
  72. package/sources/skills/mvt-config/manifest.yaml +96 -108
  73. package/sources/skills/mvt-create-skill/business.md +231 -111
  74. package/sources/skills/mvt-create-skill/manifest.yaml +91 -79
  75. package/sources/skills/mvt-design/business.md +116 -34
  76. package/sources/skills/mvt-design/manifest.yaml +96 -105
  77. package/sources/skills/mvt-fix/business.md +132 -28
  78. package/sources/skills/mvt-fix/manifest.yaml +85 -86
  79. package/sources/skills/mvt-help/business.md +74 -70
  80. package/sources/skills/mvt-help/manifest.yaml +67 -61
  81. package/sources/skills/mvt-implement/business.md +91 -32
  82. package/sources/skills/mvt-implement/manifest.yaml +80 -96
  83. package/sources/skills/mvt-init/business.md +164 -49
  84. package/sources/skills/mvt-init/manifest.yaml +101 -93
  85. package/sources/skills/mvt-manage-context/business.md +175 -0
  86. package/sources/skills/mvt-manage-context/manifest.yaml +123 -0
  87. package/sources/skills/mvt-plan-dev/business.md +75 -0
  88. package/sources/skills/mvt-plan-dev/manifest.yaml +91 -0
  89. package/sources/skills/mvt-quick-dev/business.md +99 -0
  90. package/sources/skills/mvt-quick-dev/manifest.yaml +69 -0
  91. package/sources/skills/mvt-refactor/business.md +104 -33
  92. package/sources/skills/mvt-refactor/manifest.yaml +86 -101
  93. package/sources/skills/mvt-resume/business.md +137 -0
  94. package/sources/skills/mvt-resume/manifest.yaml +71 -0
  95. package/sources/skills/mvt-review/business.md +112 -49
  96. package/sources/skills/mvt-review/manifest.yaml +87 -106
  97. package/sources/skills/mvt-status/business.md +71 -24
  98. package/sources/skills/mvt-status/manifest.yaml +66 -74
  99. package/sources/skills/mvt-sync-context/business.md +150 -25
  100. package/sources/skills/mvt-sync-context/manifest.yaml +96 -84
  101. package/sources/skills/mvt-template/business.md +96 -49
  102. package/sources/skills/mvt-template/manifest.yaml +63 -71
  103. package/sources/skills/mvt-test/business.md +104 -36
  104. package/sources/skills/mvt-test/manifest.yaml +102 -111
  105. package/sources/skills/mvt-update-plan/business.md +72 -0
  106. package/sources/skills/mvt-update-plan/manifest.yaml +132 -0
  107. package/sources/templates/analyze-output/body.md +15 -38
  108. package/sources/templates/analyze-output/manifest.yaml +11 -11
  109. package/sources/templates/design-output/body.md +17 -50
  110. package/sources/templates/design-output/manifest.yaml +11 -11
  111. package/sources/templates/implement-output/body.md +11 -32
  112. package/sources/templates/implement-output/manifest.yaml +11 -11
  113. package/sources/templates/project-context/body.md +13 -0
  114. package/sources/templates/project-context/manifest.yaml +12 -0
  115. package/sources/templates/review-output/body.md +11 -45
  116. package/sources/templates/review-output/manifest.yaml +11 -11
  117. package/sources/templates/test-output/body.md +7 -31
  118. package/sources/templates/test-output/manifest.yaml +11 -11
  119. package/dist/fs/protection.d.ts +0 -15
  120. package/dist/fs/protection.d.ts.map +0 -1
  121. package/dist/fs/protection.js +0 -16
  122. package/dist/fs/protection.js.map +0 -1
  123. package/sources/knowledge/core/review-principles.md +0 -51
  124. package/sources/knowledge/patterns/clean-architecture/manifest.yaml +0 -66
  125. package/sources/knowledge/patterns/clean-architecture/review-checklist.md +0 -230
  126. package/sources/knowledge/patterns/ddd/manifest.yaml +0 -83
  127. package/sources/knowledge/patterns/ddd/review-checklist.md +0 -226
  128. package/sources/knowledge/patterns/ddd/tactical-patterns.md +0 -12
  129. package/sources/knowledge/patterns/frontend-react/manifest.yaml +0 -44
  130. package/sources/knowledge/patterns/frontend-react/review-checklist.md +0 -78
  131. package/sources/knowledge/patterns/manifest.yaml +0 -113
  132. package/sources/skills/mvt-add-context/business.md +0 -47
  133. package/sources/skills/mvt-add-context/manifest.yaml +0 -83
  134. package/sources/templates/analyze-code-output/body.md +0 -44
  135. package/sources/templates/analyze-code-output/manifest.yaml +0 -11
  136. package/sources/templates/cleanup-output/body.md +0 -9
  137. package/sources/templates/cleanup-output/manifest.yaml +0 -11
  138. package/sources/templates/config-output/body.md +0 -11
  139. package/sources/templates/config-output/manifest.yaml +0 -11
  140. package/sources/templates/context-check-output/body.md +0 -32
  141. package/sources/templates/context-check-output/manifest.yaml +0 -11
  142. package/sources/templates/fix-output/body.md +0 -30
  143. package/sources/templates/fix-output/manifest.yaml +0 -11
  144. package/sources/templates/init-output/body.md +0 -34
  145. package/sources/templates/init-output/manifest.yaml +0 -11
  146. package/sources/templates/refactor-output/body.md +0 -32
  147. package/sources/templates/refactor-output/manifest.yaml +0 -11
  148. package/sources/templates/status-output/body.md +0 -36
  149. package/sources/templates/status-output/manifest.yaml +0 -11
  150. package/sources/templates/sync-context-output/body.md +0 -16
  151. package/sources/templates/sync-context-output/manifest.yaml +0 -11
@@ -1,23 +1,31 @@
1
- # Workspace Session State
2
- # Simplified session state only fields LLM actually needs
3
-
4
- session:
5
- initialized_at: ""
6
- last_command: ""
7
-
8
- # Current active change (created by #analyze)
9
- active_change:
10
- id: ""
11
- title: ""
12
- created_at: ""
13
-
14
- # Workflow progress (simplified: pending | done)
15
- progress:
16
- analyze: pending
17
- design: pending
18
- implement: pending
19
- review: pending
20
- test: pending
21
-
22
- # Recent actions (append-only, keep max 3)
23
- recent_actions: []
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: "core"
2
- type: "core"
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
- - path: "review-principles.md"
32
- description: "Actionable code review checklist: naming, SRP, dependencies, errors, duplication, state, testing"
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: Load Config & Apply Preferences (Config Foundation)
2
- Read `.ai-agents/config.yaml` and enforce the following throughout this entire session:
3
- - `preferences.language` → Use this language for ALL output (responses, artifact content, comments)
4
- - `preferences.output.no_emojis` → If true, never use emojis
5
- - `preferences.output.data_format` → Use this format for data sections in artifacts
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 domain data
7
-
8
- Extended context for this skill:
9
- {{#extended_context}}
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 3: Pre-flight Checks
2
- {{#checks}}
3
- {{order}}. If `{{field}}` is empty {{level}}: "{{message}}"
4
- {{/checks}}
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
- After completion, suggest:
3
- - `/{{next_primary}}` -- {{next_primary_desc}}
4
- {{#next_alternatives}}
5
- - `/{{skill}}` -- {{when}}
6
- {{/next_alternatives}}
7
- {{#always_show}}
8
- - `/{{skill}}` -- {{desc}}
9
- {{/always_show}}
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}} -> Suggest `{{skill}}`
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
- - If requirements exist in `.ai-agents/workspace/requirements/` -> List files, ask user to select
6
- - Otherwise -> Use requirements text from user message
7
-
8
- ### Step 2: Extract Information
9
- - Identify features and functionality
10
- - Identify actors and stakeholders
11
- - Extract business rules and constraints
12
- - Note assumptions made
13
-
14
- ### Step 3: Detect Ambiguities
15
- - Check for unclear requirements
16
- - Check for missing information
17
- - Check for conflicting requirements
18
-
19
- ### Step 4: Generate Clarification Questions
20
- - If ambiguities found -> List each with specific question, prioritized by impact
21
- - If no ambiguities -> Skip this step
22
-
23
- ### Step 5: Update Workspace
24
- 1. Generate change-id: `{YYYYMMDD}-{slug}` format (e.g., `20260425-user-authentication`)
25
- 2. Update `.ai-agents/workspace/session.yaml`:
26
- - Set `active_change.id` and `active_change.title`
27
- - Set `active_change.created_at`
28
- - Set `progress.analyze: done`
29
- - Set `session.last_command: "/mvt-analyze"`
30
- - Append one-line summary to `recent_actions` (keep max 3)
31
- 3. Update `.ai-agents/workspace/project-context.yaml`:
32
- - Write to `requirements` section (features, actors, business_rules, clarifications)
33
- 4. Write artifact: `.ai-agents/workspace/artifacts/{change-id}/analysis.md`
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. Use when user wants to analyze requirements, extract features, or start the analysis phase of 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. This is the first phase in the full workflow: analyze -> design -> implement -> review -> test.
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, ask user to choose"
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
- - type: shared
37
- source: sections/activation-load-context.md
38
- params:
39
- extended_context:
40
- - ".ai-agents/workspace/requirements/ -- Existing requirements files (if exists)"
41
-
42
- - type: shared
43
- source: sections/activation-load-config.md
44
-
45
- - type: shared
46
- source: sections/activation-preflight.md
47
- params:
48
- checks:
49
- - order: "1"
50
- field: "session.initialized_at"
51
- level: "WARN"
52
- message: 'Session not initialized. Run `/mvt-init` first.'
53
- - order: "2"
54
- field: "project.name"
55
- level: "WARN"
56
- message: 'Project not initialized. Run `/mvt-init` first.'
57
- - order: "3"
58
- field: "pattern.active"
59
- level: "Continue"
60
- message: "analysis does not require pattern, but add warning and suggest `/mvt-init`."
61
-
62
- - type: inline
63
- content: |
64
- ### Step 4: Execute
65
- Proceed to Execution Flow below.
66
-
67
- - type: file
68
- source: ./business.md
69
-
70
- - type: inline
71
- content: |
72
- ## Output Format
73
-
74
- Read and use the output template from: `.ai-agents/skills/_templates/analyze-output.md`
75
-
76
- If a custom version exists at `.ai-agents/skills/_templates/custom/analyze-output.md`, use the custom version instead.
77
-
78
- Fill the template placeholders with the analysis results.
79
-
80
- Every response MUST end with a Suggested Next Steps section.
81
-
82
- - type: shared
83
- source: sections/footer-next-steps.md
84
- params:
85
- next_primary: mvt-design
86
- next_primary_desc: "Create architecture design based on this analysis"
87
- always_show:
88
- - skill: mvt-status
89
- desc: "Check current workflow progress"
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"