@uoyo/mvtt 2.0.0-beta.1 → 2.0.0-beta.3

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 (84) hide show
  1. package/README.md +184 -193
  2. package/dist/build/section-loader.d.ts.map +1 -1
  3. package/dist/build/section-loader.js +18 -8
  4. package/dist/build/section-loader.js.map +1 -1
  5. package/dist/fs/materialize.d.ts.map +1 -1
  6. package/dist/fs/materialize.js +5 -0
  7. package/dist/fs/materialize.js.map +1 -1
  8. package/dist/scripts/session-update.cjs +7568 -0
  9. package/install-manifest.yaml +2 -0
  10. package/package.json +3 -2
  11. package/registry.yaml +6 -0
  12. package/sources/defaults/config.yaml +7 -7
  13. package/sources/defaults/session.yaml +9 -16
  14. package/sources/scripts/session-update.js +351 -0
  15. package/sources/sections/activation-load-context.md +4 -0
  16. package/sources/sections/footer-next-steps.md +1 -1
  17. package/sources/sections/output-language-constraint.md +11 -11
  18. package/sources/sections/session-update.md +115 -47
  19. package/sources/skills/mvt-analyze/business.md +7 -7
  20. package/sources/skills/mvt-analyze/manifest.yaml +1 -0
  21. package/sources/skills/mvt-analyze-code/manifest.yaml +110 -96
  22. package/sources/skills/mvt-bug-detect/business.md +99 -0
  23. package/sources/skills/mvt-bug-detect/manifest.yaml +84 -0
  24. package/sources/skills/mvt-check-context/business.md +3 -5
  25. package/sources/skills/mvt-check-context/manifest.yaml +70 -63
  26. package/sources/skills/mvt-cleanup/business.md +49 -23
  27. package/sources/skills/mvt-cleanup/manifest.yaml +15 -10
  28. package/sources/skills/mvt-config/business.md +1 -2
  29. package/sources/skills/mvt-config/manifest.yaml +103 -96
  30. package/sources/skills/mvt-create-skill/business.md +84 -76
  31. package/sources/skills/mvt-create-skill/manifest.yaml +107 -95
  32. package/sources/skills/mvt-design/business.md +3 -6
  33. package/sources/skills/mvt-design/manifest.yaml +109 -96
  34. package/sources/skills/mvt-fix/business.md +39 -9
  35. package/sources/skills/mvt-fix/manifest.yaml +88 -72
  36. package/sources/skills/mvt-help/business.md +2 -4
  37. package/sources/skills/mvt-help/manifest.yaml +75 -67
  38. package/sources/skills/mvt-implement/business.md +4 -5
  39. package/sources/skills/mvt-implement/manifest.yaml +93 -80
  40. package/sources/skills/mvt-init/business.md +2 -2
  41. package/sources/skills/mvt-init/manifest.yaml +102 -101
  42. package/sources/skills/mvt-manage-context/business.md +186 -175
  43. package/sources/skills/mvt-manage-context/manifest.yaml +134 -123
  44. package/sources/skills/mvt-plan-dev/business.md +101 -20
  45. package/sources/skills/mvt-plan-dev/manifest.yaml +90 -91
  46. package/sources/skills/mvt-quick-dev/business.md +2 -1
  47. package/sources/skills/mvt-quick-dev/manifest.yaml +84 -69
  48. package/sources/skills/mvt-refactor/business.md +2 -1
  49. package/sources/skills/mvt-refactor/manifest.yaml +104 -86
  50. package/sources/skills/mvt-resume/business.md +28 -68
  51. package/sources/skills/mvt-resume/manifest.yaml +81 -71
  52. package/sources/skills/mvt-review/business.md +3 -3
  53. package/sources/skills/mvt-review/manifest.yaml +108 -87
  54. package/sources/skills/mvt-status/business.md +14 -18
  55. package/sources/skills/mvt-status/manifest.yaml +74 -66
  56. package/sources/skills/mvt-sync-context/business.md +155 -150
  57. package/sources/skills/mvt-sync-context/manifest.yaml +99 -96
  58. package/sources/skills/mvt-template/business.md +0 -2
  59. package/sources/skills/mvt-template/manifest.yaml +68 -63
  60. package/sources/skills/mvt-test/business.md +3 -3
  61. package/sources/skills/mvt-test/manifest.yaml +115 -102
  62. package/sources/skills/mvt-update-plan/business.md +83 -72
  63. package/sources/skills/mvt-update-plan/manifest.yaml +124 -132
  64. package/sources/templates/analyze-output/body.md +15 -15
  65. package/sources/templates/design-output/body.md +17 -17
  66. package/sources/templates/implement-output/body.md +11 -11
  67. package/sources/templates/review-output/body.md +11 -11
  68. package/sources/templates/test-output/body.md +7 -7
  69. package/dist/build/plan-validator.d.ts +0 -26
  70. package/dist/build/plan-validator.d.ts.map +0 -1
  71. package/dist/build/plan-validator.js +0 -225
  72. package/dist/build/plan-validator.js.map +0 -1
  73. package/dist/commands/build.d.ts +0 -5
  74. package/dist/commands/build.d.ts.map +0 -1
  75. package/dist/commands/build.js +0 -46
  76. package/dist/commands/build.js.map +0 -1
  77. package/dist/commands/migrate.d.ts +0 -18
  78. package/dist/commands/migrate.d.ts.map +0 -1
  79. package/dist/commands/migrate.js +0 -163
  80. package/dist/commands/migrate.js.map +0 -1
  81. package/dist/fs/protection.d.ts +0 -15
  82. package/dist/fs/protection.d.ts.map +0 -1
  83. package/dist/fs/protection.js +0 -16
  84. package/dist/fs/protection.js.map +0 -1
@@ -1,87 +1,108 @@
1
- name: mvt-review
2
- output: .claude/skills/mvt-review/SKILL.md
3
-
4
- frontmatter:
5
- name: mvt-review
6
- description: "Perform code review for quality, standards compliance, and best practices. This skill should be used when user wants code reviewed, quality checked, or to identify issues before merging."
7
-
8
- sections:
9
- - type: inline
10
- content: |
11
- # MVT Review
12
-
13
- ## Purpose
14
-
15
- Review code for quality, standards compliance, and best practices. Identify issues by severity, suggest improvements, and ensure architecture compliance.
16
-
17
- - type: shared
18
- source: sections/role-header.md
19
- params:
20
- role: Reviewer
21
- role_desc: "a Code Quality Guardian"
22
- decision_rules:
23
- - rule: "Critical issue found (security, data loss, crash) -> Mark as CRITICAL, require fix before merge"
24
- - rule: "Layer violation found -> Flag for Architect, suggest `/mvt-design`"
25
- - rule: "Minor style issue -> Note as suggestion, don't block"
26
- - rule: "Subjective preference -> Mark as \"non-blocking\" optional improvement"
27
- - rule: "Good code pattern found -> Highlight positively"
28
- - rule: "Bug found -> Document with reproduction steps, suggest `/mvt-fix`"
29
- - rule: "Insufficient test coverage -> Recommend specific scenarios, suggest `/mvt-test`"
30
- boundaries:
31
- - scope: "fix code directly"
32
- skill: "/mvt-fix"
33
- - scope: "make architecture decisions"
34
- skill: "/mvt-design"
35
- - scope: "modify source code"
36
- skill: "(This is a read-only review)"
37
-
38
- - type: inline
39
- content: |
40
- ## Aspect Options
41
-
42
- | Aspect | Focus Areas |
43
- |--------|-------------|
44
- | `architecture` | Layer compliance, module boundaries, dependency direction |
45
- | `security` | Input validation, injection prevention, authentication |
46
- | `performance` | N+1 queries, memory leaks, caching |
47
- | `style` | Naming conventions, formatting, documentation |
48
-
49
- Usage: `/mvt-review` or `/mvt-review --aspect {type}`
50
-
51
- - type: shared
52
- source: sections/activation-load-config.md
53
-
54
- - type: shared
55
- source: sections/output-language-constraint.md
56
-
57
- - type: shared
58
- source: sections/activation-preflight.md
59
- params:
60
- checks:
61
- - order: "1"
62
- field: "session.initialized_at"
63
- level: "WARN"
64
- message: "Session not initialized. Run `/mvt-init` first."
65
- - order: "2"
66
- field: "no code to review"
67
- level: "WARN"
68
- message: "No code to review. Run `/mvt-implement` first or specify files."
69
-
70
- - type: file
71
- source: ./business.md
72
-
73
- - type: inline
74
- content: |
75
- ## Artifact Structure
76
- Read the document structure template from: `.ai-agents/skills/_templates/review-output.md`
77
- If a custom version exists at `.ai-agents/skills/_templates/custom/review-output.md`, use the custom version instead.
78
- The template defines section headings only. Generate content for each section based on review results.
79
- Write the artifact to: `.ai-agents/workspace/artifacts/{change-id}/review.md`
80
-
81
- - type: shared
82
- source: sections/session-update.md
83
-
84
- - type: shared
85
- source: sections/footer-next-steps.md
86
- params:
87
- current_skill: mvt-review
1
+ name: mvt-review
2
+ output: .claude/skills/mvt-review/SKILL.md
3
+
4
+ frontmatter:
5
+ name: mvt-review
6
+ description: "Perform code review for quality, standards compliance, and best practices. This skill should be used when user wants code reviewed, quality checked, or to identify issues before merging."
7
+
8
+ sections:
9
+ - type: inline
10
+ content: |
11
+ # MVT Review
12
+
13
+ ## Purpose
14
+
15
+ Review code for quality, standards compliance, and best practices. Identify issues by severity, suggest improvements, and ensure architecture compliance.
16
+
17
+ - type: shared
18
+ source: sections/role-header.md
19
+ params:
20
+ role: Reviewer
21
+ role_desc: "a Code Quality Guardian"
22
+ decision_rules:
23
+ - rule: "Critical issue found (security, data loss, crash) -> Mark as CRITICAL, require fix before merge"
24
+ - rule: "Layer violation found -> Flag for Architect, suggest `/mvt-design`"
25
+ - rule: "Minor style issue -> Note as suggestion, don't block"
26
+ - rule: "Subjective preference -> Mark as \"non-blocking\" optional improvement"
27
+ - rule: "Good code pattern found -> Highlight positively"
28
+ - rule: "Bug found -> Document with reproduction steps, suggest `/mvt-fix`"
29
+ - rule: "Insufficient test coverage -> Recommend specific scenarios, suggest `/mvt-test`"
30
+ boundaries:
31
+ - scope: "fix code directly"
32
+ skill: "/mvt-fix"
33
+ - scope: "make architecture decisions"
34
+ skill: "/mvt-design"
35
+ - scope: "modify source code"
36
+ skill: "(This is a read-only review)"
37
+
38
+ - type: inline
39
+ content: |
40
+ ## Aspect Options
41
+
42
+ | Aspect | Focus Areas |
43
+ |--------|-------------|
44
+ | `architecture` | Layer compliance, module boundaries, dependency direction |
45
+ | `security` | Input validation, injection prevention, authentication |
46
+ | `performance` | N+1 queries, memory leaks, caching |
47
+ | `style` | Naming conventions, formatting, documentation |
48
+
49
+ Usage: `/mvt-review` or `/mvt-review --aspect {type}`
50
+
51
+ - type: shared
52
+ source: sections/activation-load-context.md
53
+ params:
54
+ extended_context:
55
+ - ".ai-agents/workspace/artifacts/{active_change.id}/analysis.md -- Requirements analysis"
56
+ - ".ai-agents/workspace/artifacts/{active_change.id}/design.md -- Architecture design"
57
+ - ".ai-agents/workspace/artifacts/{active_change.id}/implementation.md -- Implementation record"
58
+
59
+ - type: shared
60
+ source: sections/activation-load-config.md
61
+
62
+ - type: shared
63
+ source: sections/output-language-constraint.md
64
+
65
+ - type: shared
66
+ source: sections/activation-preflight.md
67
+ params:
68
+ checks:
69
+ - order: "1"
70
+ field: "session.initialized_at"
71
+ level: "WARN"
72
+ message: "Session not initialized. Run `/mvt-init` first."
73
+ - order: "2"
74
+ field: "review target (user args, implementation.md, or git diff)"
75
+ level: "WARN"
76
+ message: "No code to review. Run `/mvt-implement` first or specify files."
77
+
78
+ - type: file
79
+ source: ./business.md
80
+
81
+ - type: inline
82
+ content: |
83
+ ## Artifact Structure
84
+ Read the document structure template from: `.ai-agents/skills/_templates/review-output.md`
85
+ If a custom version exists at `.ai-agents/skills/_templates/custom/review-output.md`, use the custom version instead.
86
+ The template defines section headings only. Generate content for each section based on review results.
87
+ Write the artifact to: `.ai-agents/workspace/artifacts/{change-id}/review.md`
88
+
89
+ - type: shared
90
+ source: sections/session-update.md
91
+ params:
92
+ current_skill: mvt-review
93
+
94
+ - type: shared
95
+ source: sections/footer-next-steps.md
96
+ params:
97
+ current_skill: mvt-review
98
+ conditional_suggestions:
99
+ conditions:
100
+ - condition: "critical issues found"
101
+ primary: mvt-fix
102
+ primary_desc: "Fix the critical issues before merge"
103
+ - condition: "review approved, tests not written"
104
+ primary: mvt-test
105
+ primary_desc: "Add test coverage"
106
+ - condition: "review approved, all checks passed"
107
+ primary: mvt-update-plan
108
+ primary_desc: "Mark review task done in the plan"
@@ -9,24 +9,24 @@
9
9
  - If `session.yaml` exists but is empty (zero keys), treat as `not initialized` -> recommend `/mvt-init`.
10
10
 
11
11
  ### Step 2: Build Activity Timeline
12
- - **What**: produce the most-recent-first list of skill_history entries with derived metadata.
12
+ - **What**: produce the most-recent-first list of history entries with derived metadata.
13
13
  - **How**:
14
- 1. Read `skill_history` from `session.yaml`.
14
+ 1. Read `history` from `session.yaml`.
15
15
  2. For each entry, attach: relative time (e.g., "2h ago"), `change_id` (if present), and the originating skill name.
16
16
  3. Limit to the last 10 entries for the rendered table; keep full count separately for the summary line.
17
17
 
18
18
  ### Step 3: Discover All Plans (Multi-Change Dashboard)
19
19
  - **What**: produce the canonical plan list across the workspace.
20
20
  - **How**:
21
- 1. Iterate `recent_changes[]` from `session.yaml`. For each entry with a `plan_path`, attempt to read the plan file.
22
- 2. Glob `.ai-agents/workspace/artifacts/*/plan.yaml` to find any plans not registered in `recent_changes` (mark them `unindexed`).
21
+ 1. Iterate `changes[]` from `session.yaml`. For each entry with a `plan_path`, attempt to read the plan file.
22
+ 2. Glob `.ai-agents/workspace/artifacts/*/plan.yaml` to find any plans not registered in `changes` (mark them `unindexed`). **Exclude paths under `artifacts/_archived/`** — those are completed changes archived by `/mvt-cleanup`.
23
23
  3. For each plan, extract: `change_id`, `title`, `status`, `current_task`, task progress (`done/total`), `updated_at`, `skill_hint` (from current task if present).
24
24
  4. If a plan file is present but malformed, include a row with `(corrupt)` in the status column and mark the file path; do not abort.
25
25
  - **Branches**:
26
26
 
27
27
  | Condition | Action |
28
28
  |-----------|--------|
29
- | No plans found anywhere | Skip the Changes Overview section entirely; render only legacy `active_change` summary |
29
+ | No plans found anywhere | Skip the Changes Overview section entirely; render "No active changes." |
30
30
  | One plan found | Render Changes Overview with one row |
31
31
  | Multiple plans found | Render Changes Overview sorted: `in_progress` desc by `updated_at` first, then `done` desc by `updated_at`, then `abandoned` last |
32
32
  | Any plan over the cap (more than ~12 rows) | Show top 10 rows; print a `+N older changes hidden -- see artifacts/` line |
@@ -37,35 +37,31 @@
37
37
  1. **Header** -- one-line summary: project name (from `project-context.yaml`), framework version, last synced timestamp.
38
38
  2. **Projects** -- table: name | type | tech stack (truncated). Cap at 10 rows; collapse the rest into `+N more`.
39
39
  3. **Semantic Context** -- one line: `project-context.md present` / `missing -- run /mvt-analyze-code`.
40
- 4. **Active Change** -- if `active_change` exists: id, title, current phase, start time. Else: `none`.
40
+ 4. **Active Change** -- if `active_change` exists: id, title, start time. Else: `none`.
41
41
  5. **Changes Overview** -- table from Step 3 (skip if no plans). Render with these columns:
42
42
 
43
- | change-id | title | status | progress | current_task | last_updated |
44
- |-----------|-------|--------|----------|--------------|--------------|
43
+ | change-id | title | status | progress | current_task | updated_at |
44
+ |-----------|-------|--------|----------|--------------|------------|
45
45
  6. **Skill History** -- last 5 rows of the timeline from Step 2.
46
- 7. **Recent Actions** -- compact list (max 5).
47
46
 
48
- - Hard cap: total rendered output should not exceed ~120 lines. If it would, truncate Skill History and Recent Actions first; never truncate the active change or Changes Overview header rows.
47
+ - Hard cap: total rendered output should not exceed ~120 lines. If it would, truncate Skill History first; never truncate the active change or Changes Overview header rows.
49
48
 
50
49
  ### Step 5: Suggest Next Step
51
50
  - Resolution order (first match wins):
52
51
  1. `active_change` has a plan in `in_progress`, `current_task` is set -> suggest the task's `skill_hint` (or, if missing, recommend `/mvt-update-plan` to set `current_task`).
53
- 2. `active_change` exists but no plan -> infer next workflow phase from `skill_history` (last completed phase determines next).
54
- 3. No `active_change`, but `project-context.md` is missing -> suggest `/mvt-analyze-code`.
55
- 4. No `active_change`, no missing context -> suggest `/mvt-analyze` to start a new feature OR `/mvt-help` to browse the catalog.
52
+ 2. `project-context.md` is missing -> suggest `/mvt-analyze-code`.
53
+ 3. No `active_change` or no active plan -> suggest `/mvt-analyze` to start a new feature OR `/mvt-help` to browse the catalog.
56
54
  - The suggestion must be a single line: skill command + one-clause reason.
57
55
 
58
- ### Step 6: (session update handled by shared section)
59
-
60
56
  ## Edge Cases & Errors
61
57
 
62
58
  | Case | Handling |
63
59
  |------|----------|
64
60
  | `session.yaml` missing entirely | Render a minimal report (Projects section if available) and recommend `/mvt-init` |
65
- | `session.yaml` corrupt (parse error) | Surface error with file path, render Projects only, recommend `/mvt-sync-context` |
66
- | `recent_changes[]` references a `plan_path` that no longer exists | Include in Changes Overview with `(missing)` marker; do not delete the index entry from this skill |
61
+ | `session.yaml` corrupt (parse error) | Surface error with file path, render Projects only, recommend `/mvt-init` to reinitialize |
62
+ | `changes[]` references a `plan_path` that no longer exists | Include in Changes Overview with `(missing)` marker; do not delete the index entry from this skill |
67
63
  | Plan file's `current_task` references a task id not in `tasks[]` | Render `current_task` as `(invalid: <id>)`; do not attempt to fix |
68
64
  | Plan file's `status` is not one of the known values | Render the raw value verbatim; flag in skip-checks of the report |
69
- | Both `recent_changes[]` and the artifact glob find the same plan | Deduplicate by `change_id`; prefer the indexed entry's metadata |
65
+ | Both `changes[]` and the artifact glob find the same plan | Deduplicate by `change_id`; prefer the indexed entry's metadata |
70
66
  | Multiple `in_progress` plans | All rendered in Changes Overview; Step 5's suggestion picks the most recently updated; mention the count in the suggestion line |
71
67
  | Workspace contains zero projects | Render header only with a single suggestion: `/mvt-init` |
@@ -1,66 +1,74 @@
1
- name: mvt-status
2
- output: .claude/skills/mvt-status/SKILL.md
3
-
4
- frontmatter:
5
- name: mvt-status
6
- description: "Display current project and workflow status including skill history, active changes, and session state. This skill should be used when user wants to check project status, review workflow progress, or see where they are in the development cycle."
7
-
8
- sections:
9
- - type: inline
10
- content: |
11
- # MVT Status
12
-
13
- ## Purpose
14
-
15
- Display comprehensive project and workflow status, showing project list, semantic context availability, skill history, active changes, and current session state.
16
-
17
- - type: shared
18
- source: sections/role-header.md
19
- params:
20
- role: Conductor
21
- role_desc: "a Workflow Coordinator"
22
- decision_rules:
23
- - rule: "If project not initialized -> Warn and suggest `/mvt-init`"
24
- - rule: "If no active change -> Show project info only, suggest starting a workflow"
25
- - rule: "If workflow in progress -> Highlight recent skill history and next recommended step"
26
- - rule: "If project-context.md missing -> Suggest `/mvt-analyze-code` to generate semantic context"
27
- - rule: "If one or more plans exist -> Show Changes Overview table with progress for all plans"
28
- - rule: "If an in_progress plan has a current_task -> Suggest the matching skill_hint as next step"
29
- boundaries:
30
- - scope: "analyze requirements"
31
- skill: "/mvt-analyze"
32
- - scope: "design architecture"
33
- skill: "/mvt-design"
34
- - scope: "write implementation code"
35
- skill: "/mvt-implement"
36
-
37
- - type: shared
38
- source: sections/activation-load-context.md
39
-
40
- - type: shared
41
- source: sections/activation-load-config.md
42
-
43
- - type: shared
44
- source: sections/output-language-constraint.md
45
-
46
- - type: shared
47
- source: sections/activation-preflight.md
48
- params:
49
- checks:
50
- - order: "1"
51
- field: "session.initialized_at"
52
- level: "WARN"
53
- message: "Session not initialized. Run `/mvt-init` first."
54
-
55
- - type: file
56
- source: ./business.md
57
-
58
- - type: shared
59
- source: sections/session-update.md
60
- params:
61
- read_only: true
62
-
63
- - type: shared
64
- source: sections/footer-next-steps.md
65
- params:
66
- current_skill: mvt-status
1
+ name: mvt-status
2
+ output: .claude/skills/mvt-status/SKILL.md
3
+
4
+ frontmatter:
5
+ name: mvt-status
6
+ description: "Display current project and workflow status including skill history, active changes, and session state. This skill should be used when user wants to check project status, review workflow progress, or see where they are in the development cycle."
7
+
8
+ sections:
9
+ - type: inline
10
+ content: |
11
+ # MVT Status
12
+
13
+ ## Purpose
14
+
15
+ Display comprehensive project and workflow status, showing project list, semantic context availability, skill history, active changes, and current session state.
16
+
17
+ - type: shared
18
+ source: sections/role-header.md
19
+ params:
20
+ role: Conductor
21
+ role_desc: "a Workflow Coordinator"
22
+ decision_rules:
23
+ - rule: "If project not initialized -> Warn and suggest `/mvt-init`"
24
+ - rule: "If no active change -> Show project info only, suggest starting a workflow"
25
+ - rule: "If workflow in progress -> Highlight recent skill history and next recommended step"
26
+ - rule: "If project-context.md missing -> Suggest `/mvt-analyze-code` to generate semantic context"
27
+ - rule: "If one or more plans exist -> Show Changes Overview table with progress for all plans"
28
+ - rule: "If an in_progress plan has a current_task -> Suggest the matching skill_hint as next step"
29
+ boundaries:
30
+ - scope: "analyze requirements"
31
+ skill: "/mvt-analyze"
32
+ - scope: "design architecture"
33
+ skill: "/mvt-design"
34
+ - scope: "write implementation code"
35
+ skill: "/mvt-implement"
36
+
37
+ - type: shared
38
+ source: sections/activation-load-context.md
39
+
40
+ - type: shared
41
+ source: sections/activation-load-config.md
42
+
43
+ - type: shared
44
+ source: sections/activation-preflight.md
45
+ params:
46
+ checks:
47
+ - order: "1"
48
+ field: "session.initialized_at"
49
+ level: "WARN"
50
+ message: "Session not initialized. Run `/mvt-init` first."
51
+
52
+ - type: file
53
+ source: ./business.md
54
+
55
+ - type: shared
56
+ source: sections/session-update.md
57
+ params:
58
+ read_only: true
59
+
60
+ - type: shared
61
+ source: sections/footer-next-steps.md
62
+ params:
63
+ current_skill: mvt-status
64
+ conditional_suggestions:
65
+ conditions:
66
+ - condition: "active change with current_task"
67
+ primary: mvt-resume
68
+ primary_desc: "Resume work on the current task"
69
+ - condition: "project-context.md missing"
70
+ primary: mvt-analyze-code
71
+ primary_desc: "Generate semantic project context"
72
+ - condition: "no active change"
73
+ primary: mvt-analyze
74
+ primary_desc: "Start analyzing a new feature"