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

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 (145) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +131 -147
  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 +18 -0
  24. package/dist/commands/migrate.d.ts.map +1 -0
  25. package/dist/commands/migrate.js +163 -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 +192 -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 +34 -26
  65. package/sources/skills/mvt-check-context/business.md +89 -42
  66. package/sources/skills/mvt-check-context/manifest.yaml +10 -21
  67. package/sources/skills/mvt-cleanup/business.md +80 -31
  68. package/sources/skills/mvt-cleanup/manifest.yaml +85 -93
  69. package/sources/skills/mvt-config/business.md +94 -26
  70. package/sources/skills/mvt-config/manifest.yaml +15 -27
  71. package/sources/skills/mvt-create-skill/business.md +224 -111
  72. package/sources/skills/mvt-create-skill/manifest.yaml +31 -15
  73. package/sources/skills/mvt-design/business.md +116 -34
  74. package/sources/skills/mvt-design/manifest.yaml +22 -31
  75. package/sources/skills/mvt-fix/business.md +103 -28
  76. package/sources/skills/mvt-fix/manifest.yaml +8 -22
  77. package/sources/skills/mvt-help/business.md +74 -70
  78. package/sources/skills/mvt-help/manifest.yaml +16 -10
  79. package/sources/skills/mvt-implement/business.md +91 -32
  80. package/sources/skills/mvt-implement/manifest.yaml +17 -33
  81. package/sources/skills/mvt-init/business.md +164 -49
  82. package/sources/skills/mvt-init/manifest.yaml +36 -28
  83. package/sources/skills/mvt-manage-context/business.md +175 -0
  84. package/sources/skills/mvt-manage-context/manifest.yaml +123 -0
  85. package/sources/skills/mvt-plan-dev/business.md +75 -0
  86. package/sources/skills/mvt-plan-dev/manifest.yaml +91 -0
  87. package/sources/skills/mvt-quick-dev/business.md +99 -0
  88. package/sources/skills/mvt-quick-dev/manifest.yaml +69 -0
  89. package/sources/skills/mvt-refactor/business.md +104 -33
  90. package/sources/skills/mvt-refactor/manifest.yaml +17 -32
  91. package/sources/skills/mvt-resume/business.md +137 -0
  92. package/sources/skills/mvt-resume/manifest.yaml +71 -0
  93. package/sources/skills/mvt-review/business.md +112 -49
  94. package/sources/skills/mvt-review/manifest.yaml +15 -34
  95. package/sources/skills/mvt-status/business.md +71 -24
  96. package/sources/skills/mvt-status/manifest.yaml +18 -26
  97. package/sources/skills/mvt-sync-context/business.md +148 -23
  98. package/sources/skills/mvt-sync-context/manifest.yaml +51 -39
  99. package/sources/skills/mvt-template/business.md +96 -49
  100. package/sources/skills/mvt-template/manifest.yaml +13 -21
  101. package/sources/skills/mvt-test/business.md +104 -36
  102. package/sources/skills/mvt-test/manifest.yaml +14 -23
  103. package/sources/skills/mvt-update-plan/business.md +72 -0
  104. package/sources/skills/mvt-update-plan/manifest.yaml +132 -0
  105. package/sources/templates/analyze-output/body.md +8 -31
  106. package/sources/templates/analyze-output/manifest.yaml +11 -11
  107. package/sources/templates/design-output/body.md +17 -50
  108. package/sources/templates/design-output/manifest.yaml +11 -11
  109. package/sources/templates/implement-output/body.md +6 -27
  110. package/sources/templates/implement-output/manifest.yaml +11 -11
  111. package/sources/templates/project-context/body.md +13 -0
  112. package/sources/templates/project-context/manifest.yaml +12 -0
  113. package/sources/templates/review-output/body.md +6 -40
  114. package/sources/templates/review-output/manifest.yaml +11 -11
  115. package/sources/templates/test-output/body.md +4 -28
  116. package/sources/templates/test-output/manifest.yaml +11 -11
  117. package/sources/knowledge/core/review-principles.md +0 -51
  118. package/sources/knowledge/patterns/clean-architecture/manifest.yaml +0 -66
  119. package/sources/knowledge/patterns/clean-architecture/review-checklist.md +0 -230
  120. package/sources/knowledge/patterns/ddd/manifest.yaml +0 -83
  121. package/sources/knowledge/patterns/ddd/review-checklist.md +0 -226
  122. package/sources/knowledge/patterns/ddd/tactical-patterns.md +0 -12
  123. package/sources/knowledge/patterns/frontend-react/manifest.yaml +0 -44
  124. package/sources/knowledge/patterns/frontend-react/review-checklist.md +0 -78
  125. package/sources/knowledge/patterns/manifest.yaml +0 -113
  126. package/sources/skills/mvt-add-context/business.md +0 -47
  127. package/sources/skills/mvt-add-context/manifest.yaml +0 -83
  128. package/sources/templates/analyze-code-output/body.md +0 -44
  129. package/sources/templates/analyze-code-output/manifest.yaml +0 -11
  130. package/sources/templates/cleanup-output/body.md +0 -9
  131. package/sources/templates/cleanup-output/manifest.yaml +0 -11
  132. package/sources/templates/config-output/body.md +0 -11
  133. package/sources/templates/config-output/manifest.yaml +0 -11
  134. package/sources/templates/context-check-output/body.md +0 -32
  135. package/sources/templates/context-check-output/manifest.yaml +0 -11
  136. package/sources/templates/fix-output/body.md +0 -30
  137. package/sources/templates/fix-output/manifest.yaml +0 -11
  138. package/sources/templates/init-output/body.md +0 -34
  139. package/sources/templates/init-output/manifest.yaml +0 -11
  140. package/sources/templates/refactor-output/body.md +0 -32
  141. package/sources/templates/refactor-output/manifest.yaml +0 -11
  142. package/sources/templates/status-output/body.md +0 -36
  143. package/sources/templates/status-output/manifest.yaml +0 -11
  144. package/sources/templates/sync-context-output/body.md +0 -16
  145. package/sources/templates/sync-context-output/manifest.yaml +0 -11
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 xiangjie
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 xiangjie
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,209 +1,193 @@
1
- # My-Virtual-TechTeam (MVTT)
1
+ # My Virtual Tech Team (MVTT)
2
2
 
3
- A virtual IT team made up of AI agents. Built for [Claude Code](https://claude.ai/claude-code), MVTT turns your IDE into a coordinated squad of Analyst, Architect, Developer, Reviewer, and Tester each with a clear role, a shared workspace, and enforceable team conventions.
3
+ > A prompt orchestration framework for [Claude Code](https://claude.ai/claude-code) 22 AI skills that share persistent context and cover the full development lifecycle from requirements to testing.
4
4
 
5
- ## Why MVTT
5
+ [![npm](https://img.shields.io/npm/v/@uoyo/mvtt)](https://www.npmjs.com/package/@uoyo/mvtt) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
6
6
 
7
- - **One-command install** — `npx @uoyo/mvtt install` drops a full skill suite into any project
8
- - **Claude Code native** — 18 skills auto-discovered from `.claude/skills/`
9
- - **Bilingual output** — choose `en-US` or `zh-CN` at install time; every skill honors the setting
10
- - **Shared workspace** — `.ai-agents/` centralizes session state, domain knowledge, config, and output templates
11
- - **Safe lifecycle** — `install` / `update` / `uninstall` / `doctor` with manifest-based file ownership, so user data is never overwritten
12
- - **Extensible** — `/mvt-create-skill` lets your team grow its own skills for project-specific workflows
7
+ ## What is MVTT
13
8
 
14
- ## Installation
9
+ MVTT turns Claude Code into a coordinated engineering team — Analyst, Architect, Developer, Reviewer, and Tester — each with a distinct role but sharing the same persistent workspace. Every skill reads from and writes to a file-based context layer that lives in your repository, so knowledge accumulates across conversations instead of being lost.
15
10
 
16
- ```bash
17
- npx @uoyo/mvtt install
11
+ ## Highlights
12
+
13
+ ### Persistent Context That Grows With Your Project
14
+
15
+ ```
16
+ .ai-agents/
17
+ ├── workspace/
18
+ │ ├── session.yaml # Who did what, what's in progress
19
+ │ ├── project-context.yaml # Tech stack, domain model, conventions
20
+ │ └── artifacts/ # Analysis docs, design specs, review logs
21
+ └── knowledge/
22
+ ├── core/ # Framework principles & architecture patterns
23
+ ├── principle/ # Your team's coding standards
24
+ └── project/ # Domain-specific knowledge
18
25
  ```
19
26
 
20
- The installer is interactive:
27
+ Context is **never lost between conversations**. Start a new Claude Code session tomorrow and it picks up exactly where you left off — your domain model, architecture decisions, in-progress tasks, and team conventions are all there.
28
+
29
+ ### Save, Resume, and Sync
30
+
31
+ | Capability | How |
32
+ |---|---|
33
+ | **Save progress** | Every skill automatically updates `session.yaml` with what was done |
34
+ | **Resume anywhere** | `/mvt-resume` restores full context in a new conversation |
35
+ | **Sync after changes** | `/mvt-sync-context` updates context when code evolves outside the workflow |
36
+ | **Check context health** | `/mvt-check-context` analyzes token load and suggests optimizations |
37
+
38
+ You can close your IDE, switch machines, or come back days later — the context persists in version-controlled files that travel with your repo.
39
+
40
+ ### One Shared Truth, Zero Drift
41
+
42
+ Every skill operates against the **same context source**:
21
43
 
22
44
  ```
23
- ? Select language / 选择语言
24
- English (en-US)
25
- 中文 (zh-CN)
45
+ ┌─────────────────────────────────────────────────────┐
46
+ │ Shared Context Layer │
47
+ session.yaml + project-context.yaml + knowledge/ │
48
+ └───────────┬───────────┬───────────┬─────────────────┘
49
+ │ │ │
50
+ ┌─────┴──┐ ┌────┴────┐ ┌──┴──────┐
51
+ │Analyst │ │Architect│ │Developer│ ...
52
+ └────────┘ └─────────┘ └─────────┘
26
53
  ```
27
54
 
28
- Optional flags:
55
+ When the Analyst discovers a new domain concept, the Architect sees it. When the Architect makes a design decision, the Developer follows it. No skill can "go rogue" because they all read the same ground truth before acting.
29
56
 
30
- ```bash
31
- npx @uoyo/mvtt install --pattern ddd # Preset architecture pattern (ddd | clean-architecture | frontend-react)
57
+ ### Complete Development Lifecycle
58
+
59
+ MVTT covers the full engineering workflow — not just code generation:
60
+
61
+ ```
62
+ Analyze Design Plan Implement Review Test
63
+ ┌────────┐ ┌────────┐ ┌────────┐ ┌──────────┐ ┌────────┐ ┌──────┐
64
+ │Extract │ │Define │ │Break │ │Write code│ │Check │ │Write │
65
+ │domain │──▶│arch & │──▶│into │──▶│following │──▶│quality │──▶│tests │
66
+ │concepts│ │patterns│ │tasks │ │the design│ │& style │ │ │
67
+ └────────┘ └────────┘ └────────┘ └──────────┘ └────────┘ └──────┘
68
+ │ │
69
+ └──────────────── Context flows through every phase ───────────────┘
32
70
  ```
33
71
 
34
- ## Quick Start
72
+ Each phase produces artifacts that become input for the next. The context accumulates — it doesn't reset.
35
73
 
36
- 1. Run `npx @uoyo/mvtt install` in your project root
37
- 2. Open the project in Claude Code
38
- 3. Run `/mvt-init` to initialize the workspace
39
- 4. Run `/mvt-help` to see all available skills
40
- 5. Follow the guided workflow through your development phases
74
+ ## Quick Start
41
75
 
42
- ## CLI Commands
76
+ ```bash
77
+ # Install into any project
78
+ npx @uoyo/mvtt install
43
79
 
44
- | Command | Purpose |
45
- |---|---|
46
- | `npx @uoyo/mvtt install` | First-time install; interactive language selection |
47
- | `npx @uoyo/mvtt install --pattern <name>` | Install with a preset architecture pattern |
48
- | `npx @uoyo/mvtt update` | Upgrade to the latest version (user data preserved) |
49
- | `npx @uoyo/mvtt update --check` | Show version diff without modifying anything |
50
- | `npx @uoyo/mvtt doctor` | Check installation health and detect manual edits |
51
- | `npx @uoyo/mvtt uninstall` | Interactive confirmation, then remove generated files (user data preserved) |
52
- | `npx @uoyo/mvtt --help` | Full CLI help |
53
- | `npx @uoyo/mvtt --version` | Print version |
80
+ # Open in Claude Code, then:
81
+ /mvt-init # Detect tech stack, initialize context
82
+ /mvt-analyze # Start with requirements analysis
83
+ ```
54
84
 
55
- ## Skills (18 total)
85
+ ## All Skills (22)
56
86
 
57
- ### Workflow Skills (Sequential Phases)
87
+ ### Workflow Full Development Lifecycle
58
88
 
59
- | Skill | Description |
60
- |-------|-------------|
61
- | `/mvt-analyze` | Analyze requirements and extract domain concepts |
62
- | `/mvt-analyze-code` | Reverse-analyze existing code to generate context |
63
- | `/mvt-design` | Create architecture design based on requirements |
64
- | `/mvt-implement` | Implement features based on architecture design |
65
- | `/mvt-review` | Code review for quality and standards compliance |
66
- | `/mvt-test` | Generate tests to validate implementations |
89
+ | Skill | Role | What It Does |
90
+ |-------|------|--------------|
91
+ | `/mvt-analyze` | Analyst | Extract requirements, domain concepts, acceptance criteria |
92
+ | `/mvt-analyze-code` | Analyst | Reverse-analyze existing code into structured context |
93
+ | `/mvt-design` | Architect | Define architecture, component boundaries, data flow |
94
+ | `/mvt-plan-dev` | Architect | Break design into ordered implementation tasks |
95
+ | `/mvt-update-plan` | Architect | Update plan as tasks complete or scope changes |
96
+ | `/mvt-implement` | Developer | Write code following the design and plan |
97
+ | `/mvt-review` | Reviewer | Check quality, standards compliance, potential issues |
98
+ | `/mvt-test` | Tester | Generate tests that validate the implementation |
67
99
 
68
- ### Shortcut Skills (Anytime)
100
+ ### Shortcuts Skip the Ceremony
69
101
 
70
102
  | Skill | Description |
71
103
  |-------|-------------|
72
- | `/mvt-fix` | Diagnose and fix bugs or issues |
73
- | `/mvt-refactor` | Refactor code while preserving behavior |
104
+ | `/mvt-fix` | Diagnose and fix bugs (reads context to understand the system) |
105
+ | `/mvt-refactor` | Refactor with full awareness of architecture decisions |
106
+ | `/mvt-quick-dev` | Fast implementation for simple, well-scoped changes |
74
107
 
75
- ### Project Management Skills
108
+ ### Context Management
76
109
 
77
110
  | Skill | Description |
78
111
  |-------|-------------|
79
- | `/mvt-init` | Initialize or refresh project setup |
80
- | `/mvt-status` | Show current project and workflow status |
81
- | `/mvt-config` | Manage framework configuration |
82
- | `/mvt-sync-context` | Synchronize context with code changes |
83
- | `/mvt-cleanup` | Clean up workspace artifacts |
112
+ | `/mvt-init` | Initialize project context, detect tech stack |
113
+ | `/mvt-sync-context` | Update context after code changes made outside MVTT |
114
+ | `/mvt-resume` | Restore full context in a new conversation |
115
+ | `/mvt-status` | Show what's in progress, what context is loaded |
116
+ | `/mvt-manage-context` | Add, remove, or reorganize knowledge entries |
117
+ | `/mvt-check-context` | Analyze context token usage and optimize |
118
+ | `/mvt-cleanup` | Archive stale artifacts, maintain context health |
84
119
 
85
- ### Utility Skills
120
+ ### Utility
86
121
 
87
122
  | Skill | Description |
88
123
  |-------|-------------|
89
- | `/mvt-help` | Show available skills and workflow guidance |
90
- | `/mvt-create-skill` | Create custom MVTT skills |
91
- | `/mvt-add-context` | Add or update project context interactively |
92
- | `/mvt-check-context` | Analyze context token load and optimization |
124
+ | `/mvt-help` | Overview of skills and workflow guidance |
125
+ | `/mvt-config` | Change language, output format, and preferences |
126
+ | `/mvt-create-skill` | Create custom skills for your team's workflows |
93
127
  | `/mvt-template` | View and customize output templates |
94
128
 
95
- ## Standard Workflow
96
-
97
- ```
98
- /mvt-analyze → /mvt-design → /mvt-implement → /mvt-review → /mvt-test
99
- Analyst Architect Developer Reviewer Tester
100
- ```
129
+ ## How Context Stays in Sync
101
130
 
102
- The Conductor (the underlying orchestration logic) keeps session state in `.ai-agents/workspace/session.yaml` so any skill can pick up where the previous one left off.
131
+ A common fear: "what if the context becomes outdated?" MVTT handles this at multiple levels:
103
132
 
104
- ## Configuration
133
+ 1. **Auto-update on skill execution** — Every skill writes its results back to session and artifacts
134
+ 2. **Explicit sync** — `/mvt-sync-context` reconciles context with actual code changes
135
+ 3. **Context health checks** — `/mvt-check-context` identifies stale or bloated entries
136
+ 4. **Artifact cleanup** — `/mvt-cleanup` archives old artifacts that no longer reflect reality
105
137
 
106
- All preferences live in `.ai-agents/config.yaml`:
138
+ The context is designed to be a **living document**, not a snapshot.
107
139
 
108
- ```yaml
109
- version: "2.0"
140
+ ## CLI Commands
110
141
 
111
- preferences:
112
- language: en-US # en-US | zh-CN chosen during install, changeable anytime
113
- output:
114
- no_emojis: true # Disable emojis in skill output
115
- data_format: yaml # yaml | json
116
-
117
- pattern:
118
- active: "" # Detected via /mvt-init or set via --pattern on install
119
- selection:
120
- auto_detect: true
121
- confirm_with_user: true
142
+ ```bash
143
+ mvtt install # First-time install (interactive language selection)
144
+ mvtt update [--check] # Upgrade to latest (user data preserved)
145
+ mvtt doctor # Check installation health
146
+ mvtt uninstall # Remove generated files (user data preserved)
122
147
  ```
123
148
 
124
- Every skill reads this file on activation and enforces the settings through the shared Activation Protocol.
125
-
126
149
  ## Architecture Patterns
127
150
 
128
- MVTT ships with first-class knowledge for three patterns (`.ai-agents/knowledge/patterns/`):
151
+ MVTT ships knowledge for three patterns that workflow skills automatically consume:
129
152
 
130
153
  - **`ddd`** — Domain-Driven Design (bounded contexts, aggregates, domain events)
131
154
  - **`clean-architecture`** — Layered boundaries, dependency inversion
132
155
  - **`frontend-react`** — React-specific structural conventions
133
156
 
134
- Each pattern contributes its own review checklist and design guidance that `/mvt-design`, `/mvt-review`, and `/mvt-refactor` automatically consume.
135
-
136
- ## Runtime Layout
137
-
138
- After `install`, your project has:
139
-
140
- ```
141
- .claude/skills/mvt-*/SKILL.md # GENERATED (18 skills, Claude Code entry points)
142
-
143
- .ai-agents/
144
- ├── config.yaml # CREATE_ONCE (user-editable)
145
- ├── registry.yaml # GENERATED (skill metadata)
146
- ├── .mvtt-manifest.json # GENERATED (install metadata, hashes)
147
- ├── workspace/
148
- │ ├── session.yaml # CREATE_ONCE
149
- │ ├── project-context.yaml # CREATE_ONCE
150
- │ └── artifacts/ # USER DATA (skill outputs)
151
- ├── skills/_templates/
152
- │ ├── *-output.md # GENERATED (14 templates)
153
- │ └── custom/ # USER DATA (your overrides)
154
- └── knowledge/
155
- ├── core/ # GENERATED (framework-wide principles)
156
- ├── patterns/ # GENERATED (ddd, clean-architecture, frontend-react)
157
- ├── principle/ # USER DATA (team conventions)
158
- └── project/ # USER DATA (domain-specific knowledge)
159
- ```
160
-
161
- File classification:
157
+ Detected automatically by `/mvt-init` or configured via `/mvt-config`.
162
158
 
163
- - **GENERATED** — owned by the CLI; overwritten on every `update`
164
- - **CREATE_ONCE** — created only on first install; never overwritten
165
- - **USER DATA** — CLI never touches these paths
166
-
167
- `doctor` hashes every GENERATED file against the manifest, so manual edits are detected immediately.
168
-
169
- ## Activation Protocol (Runtime)
170
-
171
- Every skill shares a 4-step activation sequence, inlined into each `SKILL.md` at build time:
172
-
173
- 1. **Load Context** — `session.yaml` + `project-context.yaml` + skill-specific extended context
174
- 2. **Load Config & Apply Preferences** — read `config.yaml`, enforce language and output style
175
- 3. **Pre-flight Checks** — validate prerequisites (workspace initialized, required artifacts exist, etc.)
176
- 4. **Execute** — run skill-specific logic
159
+ ## Extending MVTT
177
160
 
178
- DRY at source (one shared section per step), flat at runtime (each `SKILL.md` is self-contained no cross-file reads when Claude Code loads a skill).
161
+ - **Add team knowledge** Drop markdown files into `.ai-agents/knowledge/principle/` for coding standards, or `project/` for domain knowledge. All skills load them automatically.
162
+ - **Create custom skills** — `/mvt-create-skill` scaffolds project-specific skills (e.g., `/mvt-test-e2e` for your E2E conventions).
163
+ - **Customize templates** — Override output formats in `.ai-agents/skills/_templates/custom/`.
179
164
 
180
- ## Extending MVTT
165
+ ## Configuration
181
166
 
182
- Beyond the 18 built-in skills, run `/mvt-create-skill` to scaffold a project-specific skill interactively. Custom skills live under `.ai-agents/skills/` and can override or complement any default behavior (e.g. a `/mvt-test-gherkin` variant that emits Gherkin feature files in your team's house style).
167
+ Edit `.ai-agents/config.yaml` or use `/mvt-config`:
183
168
 
184
- ## Development (Contributing to MVTT Itself)
169
+ ```yaml
170
+ version: "2.0"
171
+ preferences:
172
+ interaction_language: en-US # en-US | zh-CN
173
+ document_output_language: en-US # Language for generated artifacts
174
+ output:
175
+ no_emojis: true
176
+ data_format: yaml # yaml | json
177
+ context_routing:
178
+ relevance_threshold: 70
179
+ ```
185
180
 
186
- Requirements: Node.js ≥ 18.
181
+ ## Development
187
182
 
188
183
  ```bash
184
+ git clone https://github.com/uoyoCsharp/My-Virtual-TechTeam.git
185
+ cd My-Virtual-TechTeam
189
186
  npm install
190
- npm run build # Compile TypeScript
191
- npm test # Run test suite (66 tests)
192
- npm test -- --coverage # With coverage report
193
-
194
- # Rebuild skills / templates from sources into any output directory
195
- node dist/index.js build --out .test-output
187
+ npm run build # Compile TypeScript
188
+ npm test # Run test suite
196
189
  ```
197
190
 
198
- Source layout:
199
-
200
- - `src/` — CLI TypeScript source (commander-based; uses `prompts` for interactive selection)
201
- - `sources/skills/<name>/manifest.yaml + business.md` — Skill source files
202
- - `sources/templates/<name>/manifest.yaml + body.md` — Template source files
203
- - `sources/sections/*.md` — Shared activation protocol sections (mustache-style blocks)
204
- - `registry.yaml` — Single source of truth for skill metadata
205
- - `install-manifest.yaml` — File classification (generated / create_once / user_data)
206
-
207
191
  ## License
208
192
 
209
193
  MIT
@@ -1 +1 @@
1
- {"version":3,"file":"assembler.d.ts","sourceRoot":"","sources":["../../src/build/assembler.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,eAAe,GACvB,MAAM,CAiBR"}
1
+ {"version":3,"file":"assembler.d.ts","sourceRoot":"","sources":["../../src/build/assembler.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,eAAe,GACvB,MAAM,CAkBR"}
@@ -24,6 +24,8 @@ export function assembleFromManifest(manifestPath, options) {
24
24
  parts.push("");
25
25
  for (const section of manifest.sections) {
26
26
  const content = loadSection(section, skillDir, options.sourcesDir);
27
+ if (content.trim() === "")
28
+ continue;
27
29
  parts.push(content.trimEnd());
28
30
  parts.push("");
29
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"assembler.js","sourceRoot":"","sources":["../../src/build/assembler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,SAAS,gBAAgB,CAAC,EAA0B;IAClD,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;IACtB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QAC9C,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,KAAK,GAAG,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAOD,MAAM,UAAU,oBAAoB,CAClC,YAAoB,EACpB,OAAwB;IAExB,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAa,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAE5C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"assembler.js","sourceRoot":"","sources":["../../src/build/assembler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,SAAS,gBAAgB,CAAC,EAA0B;IAClD,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;IACtB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QAC9C,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,KAAK,GAAG,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAOD,MAAM,UAAU,oBAAoB,CAClC,YAAoB,EACpB,OAAwB;IAExB,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAa,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAE5C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;IACnD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACnE,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,SAAS;QACpC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,26 @@
1
+ export interface PlanValidationError {
2
+ path: string;
3
+ message: string;
4
+ }
5
+ export interface PlanTask {
6
+ id: string;
7
+ title: string;
8
+ status: string;
9
+ depends_on: string[];
10
+ skill_hint?: string;
11
+ acceptance?: string[];
12
+ artifacts?: string[];
13
+ notes?: string;
14
+ }
15
+ export interface Plan {
16
+ version: number;
17
+ change_id: string;
18
+ title: string;
19
+ created_at: string;
20
+ updated_at: string;
21
+ status: string;
22
+ current_task: string | null;
23
+ tasks: PlanTask[];
24
+ }
25
+ export declare function validatePlan(rawYaml: string): PlanValidationError[];
26
+ //# sourceMappingURL=plan-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-validator.d.ts","sourceRoot":"","sources":["../../src/build/plan-validator.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,IAAI;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAsID,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,EAAE,CA+GnE"}