@uoyo/mvtt 2.0.0-beta.4 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +299 -64
- package/README.zh-CN.md +419 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +14 -6
- package/dist/cli.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +28 -16
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/install.d.ts.map +1 -1
- package/dist/commands/install.js +71 -41
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/uninstall.d.ts.map +1 -1
- package/dist/commands/uninstall.js +75 -30
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +34 -21
- package/dist/commands/update.js.map +1 -1
- package/dist/fs/install-manifest.d.ts +4 -1
- package/dist/fs/install-manifest.d.ts.map +1 -1
- package/dist/fs/install-manifest.js +13 -1
- package/dist/fs/install-manifest.js.map +1 -1
- package/dist/fs/materialize.d.ts +2 -0
- package/dist/fs/materialize.d.ts.map +1 -1
- package/dist/fs/materialize.js +39 -9
- package/dist/fs/materialize.js.map +1 -1
- package/dist/fs/registry-merge.d.ts.map +1 -1
- package/dist/fs/registry-merge.js +72 -29
- package/dist/fs/registry-merge.js.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/scripts/epic-update.cjs +7713 -0
- package/dist/scripts/plan-update.cjs +491 -275
- package/dist/scripts/session-update.cjs +320 -199
- package/dist/types/platform.d.ts +12 -0
- package/dist/types/platform.d.ts.map +1 -0
- package/dist/types/platform.js +36 -0
- package/dist/types/platform.js.map +1 -0
- package/dist/types/registry.d.ts +3 -24
- package/dist/types/registry.d.ts.map +1 -1
- package/dist/util/bilingual.d.ts +10 -0
- package/dist/util/bilingual.d.ts.map +1 -0
- package/dist/util/bilingual.js +14 -0
- package/dist/util/bilingual.js.map +1 -0
- package/dist/util/cancel.d.ts +2 -0
- package/dist/util/cancel.d.ts.map +1 -0
- package/dist/util/cancel.js +6 -0
- package/dist/util/cancel.js.map +1 -0
- package/dist/util/color.d.ts +9 -6
- package/dist/util/color.d.ts.map +1 -1
- package/dist/util/color.js +10 -10
- package/dist/util/color.js.map +1 -1
- package/dist/util/spinner.d.ts +8 -0
- package/dist/util/spinner.d.ts.map +1 -0
- package/dist/util/spinner.js +17 -0
- package/dist/util/spinner.js.map +1 -0
- package/install-manifest.yaml +4 -0
- package/package.json +4 -3
- package/registry.yaml +33 -159
- package/sources/defaults/config.yaml +8 -13
- package/sources/defaults/project-context.yaml +2 -5
- package/sources/defaults/session.yaml +14 -2
- package/sources/knowledge/core/manifest.yaml +1 -4
- package/sources/scripts/epic-update.js +512 -0
- package/sources/scripts/plan-update.js +614 -353
- package/sources/scripts/session-update.js +102 -2
- package/sources/sections/activation-load-config.md +3 -3
- package/sources/sections/activation-load-context.md +42 -13
- package/sources/sections/activation-preflight.md +1 -1
- package/sources/sections/footer-next-steps.md +3 -2
- package/sources/sections/language-constraint.md +26 -0
- package/sources/sections/output-format-constraint.md +14 -14
- package/sources/sections/project-context-profile.md +29 -29
- package/sources/sections/session-update.md +41 -1
- package/sources/skills/mvt-analyze/business.md +46 -8
- package/sources/skills/mvt-analyze/manifest.yaml +6 -2
- package/sources/skills/mvt-analyze-code/business.md +18 -17
- package/sources/skills/mvt-analyze-code/manifest.yaml +4 -7
- package/sources/skills/mvt-bug-detect/manifest.yaml +3 -0
- package/sources/skills/mvt-check-context/business.md +13 -6
- package/sources/skills/mvt-check-context/manifest.yaml +2 -4
- package/sources/skills/mvt-cleanup/business.md +17 -2
- package/sources/skills/mvt-cleanup/manifest.yaml +1 -1
- package/sources/skills/mvt-config/business.md +5 -5
- package/sources/skills/mvt-config/manifest.yaml +6 -6
- package/sources/skills/mvt-create-skill/business.md +3 -15
- package/sources/skills/mvt-create-skill/manifest.yaml +1 -6
- package/sources/skills/mvt-decompose/business.md +94 -0
- package/sources/skills/mvt-decompose/manifest.yaml +121 -0
- package/sources/skills/mvt-design/manifest.yaml +1 -1
- package/sources/skills/mvt-fix/business.md +21 -6
- package/sources/skills/mvt-fix/manifest.yaml +2 -2
- package/sources/skills/mvt-help/business.md +11 -9
- package/sources/skills/mvt-help/manifest.yaml +2 -4
- package/sources/skills/mvt-implement/business.md +51 -8
- package/sources/skills/mvt-implement/manifest.yaml +1 -1
- package/sources/skills/mvt-init/business.md +23 -13
- package/sources/skills/mvt-init/manifest.yaml +2 -3
- package/sources/skills/mvt-manage-context/business.md +41 -14
- package/sources/skills/mvt-manage-context/manifest.yaml +3 -7
- package/sources/skills/mvt-plan-dev/business.md +17 -9
- package/sources/skills/mvt-plan-dev/manifest.yaml +1 -1
- package/sources/skills/mvt-quick-dev/business.md +22 -7
- package/sources/skills/mvt-quick-dev/manifest.yaml +1 -2
- package/sources/skills/mvt-refactor/business.md +32 -17
- package/sources/skills/mvt-refactor/manifest.yaml +1 -6
- package/sources/skills/mvt-resume/business.md +32 -12
- package/sources/skills/mvt-resume/manifest.yaml +6 -3
- package/sources/skills/mvt-review/business.md +24 -9
- package/sources/skills/mvt-review/manifest.yaml +1 -1
- package/sources/skills/mvt-status/business.md +37 -9
- package/sources/skills/mvt-status/manifest.yaml +5 -2
- package/sources/skills/mvt-sync-context/business.md +30 -16
- package/sources/skills/mvt-sync-context/manifest.yaml +1 -1
- package/sources/skills/mvt-template/business.md +1 -1
- package/sources/skills/mvt-template/manifest.yaml +2 -4
- package/sources/skills/mvt-test/business.md +30 -15
- package/sources/skills/mvt-test/manifest.yaml +1 -1
- package/sources/skills/mvt-update-plan/business.md +41 -12
- package/sources/skills/mvt-update-plan/manifest.yaml +8 -8
- package/sources/templates/decompose-output/body.md +13 -0
- package/sources/templates/decompose-output/manifest.yaml +11 -0
- package/sources/sections/output-language-constraint.md +0 -11
package/README.md
CHANGED
|
@@ -1,14 +1,55 @@
|
|
|
1
1
|
# My Virtual Tech Team (MVTT)
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> **Stop repeating context. Ship features end-to-end.**
|
|
4
|
+
>
|
|
5
|
+
> 24 specialized AI skills that share a persistent workspace — covering the full development lifecycle from requirements to tested code.
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
**English** | [中文](README.zh-CN.md)
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
[](https://www.npmjs.com/package/@uoyo/mvtt) [](LICENSE) [](https://github.com/uoyoCsharp/My-Virtual-TechTeam/stargazers)
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
## We Know The Problem You Are Facing
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
Every AI session starts from zero. The project context you built yesterday — the architecture, the conventions, the domain knowledge — is gone today.
|
|
14
|
+
|
|
15
|
+
Three things make this painful on real projects:
|
|
16
|
+
|
|
17
|
+
- **Context evaporates** — close the IDE, switch machines, come back next week, and the AI has forgotten everything.
|
|
18
|
+
- **Same preamble every time** — re-explain the tech stack, re-state the conventions, re-describe the domain.
|
|
19
|
+
- **No separation of concerns** — analysis, design, code, and tests jumbled in a single conversation.
|
|
20
|
+
|
|
21
|
+
> **Mental model in 30 seconds**: imagine hiring a tiny engineering team — Analyst, Architect, Developer, Reviewer, Tester — with a shared project notebook that lives in your repo. The workflow is standardized, so it works the same whether you're a senior engineer or a junior — AI proficiency no longer determines output quality. That's MVTT.
|
|
22
|
+
|
|
23
|
+
## Quick Start
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
# Install into any project
|
|
27
|
+
npx @uoyo/mvtt install
|
|
28
|
+
|
|
29
|
+
# Open in Claude Code, then:
|
|
30
|
+
/mvt-init # Detect tech stack, initialize context
|
|
31
|
+
/mvt-analyze # Start with requirements analysis
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Who MVTT Is For
|
|
35
|
+
|
|
36
|
+
MVTT is for developers who use Claude Code on real, ongoing projects — not one-off scripts.
|
|
37
|
+
|
|
38
|
+
**Use MVTT if you:**
|
|
39
|
+
|
|
40
|
+
- Maintain a medium-sized codebase (5k+ LOC) and feel context-loss pain
|
|
41
|
+
- Want a structured workflow even when working solo — analysis, design, implement, review, test
|
|
42
|
+
- Lead a team where AI proficiency varies — MVTT standardizes the workflow so juniors and seniors produce consistent output
|
|
43
|
+
- Bilingual projects: MVTT works in both English and Chinese
|
|
44
|
+
- Want a project notebook that travels with the repo (version-controlled, team-shared)
|
|
45
|
+
|
|
46
|
+
**Skip MVTT if you:**
|
|
47
|
+
|
|
48
|
+
- Build throwaway scripts (regular Claude Code is faster)
|
|
49
|
+
- Need enterprise CI/CD pipelines or role-based access control (not what MVTT does)
|
|
50
|
+
- Prefer a single CLAUDE.md and rolling your own prompts
|
|
51
|
+
|
|
52
|
+
## How It Works
|
|
12
53
|
|
|
13
54
|
### Persistent Context That Grows With Your Project
|
|
14
55
|
|
|
@@ -39,17 +80,33 @@ You can close your IDE, switch machines, or come back days later — the context
|
|
|
39
80
|
|
|
40
81
|
### One Shared Truth, Zero Drift
|
|
41
82
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
83
|
+
```mermaid
|
|
84
|
+
flowchart LR
|
|
85
|
+
ctx["📚 Shared Context Layer"]
|
|
86
|
+
|
|
87
|
+
subgraph roles ["<b>👥 Your Virtual Tech Team</b>"]
|
|
88
|
+
direction TB
|
|
89
|
+
a["🔍<br/><b>Analyst</b><sub><br/>analyze</sub>"]
|
|
90
|
+
ar["🏗️<br/><b>Architect</b><br/><sub>design · plan-dev</sub>"]
|
|
91
|
+
d["⚙️<br/><b>Developer</b><br/><sub>implement · fix</sub>"]
|
|
92
|
+
r["👀<br/><b>Reviewer</b><br/><sub>review</sub>"]
|
|
93
|
+
t["🧪<br/><b>Tester</b><br/><sub>test</sub>"]
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
a ~~~ r
|
|
97
|
+
ar ~~~ t
|
|
98
|
+
d ~~~ t
|
|
99
|
+
|
|
100
|
+
ctx ==> roles
|
|
101
|
+
|
|
102
|
+
style ctx fill:#6d4ad6,stroke:#4c1d95,stroke-width:3px,color:#ffffff,font-weight:bold,font-size:16px
|
|
103
|
+
style roles fill:#faf7ff,stroke:#a78bfa,stroke-width:1px,stroke-dasharray:4 3,color:#4c1d95
|
|
104
|
+
|
|
105
|
+
style a fill:#fef3c7,stroke:#f59e0b,stroke-width:2px,color:#78350f
|
|
106
|
+
style ar fill:#dbeafe,stroke:#3b82f6,stroke-width:2px,color:#1e3a8a
|
|
107
|
+
style d fill:#dcfce7,stroke:#22c55e,stroke-width:2px,color:#14532d
|
|
108
|
+
style r fill:#fce7f3,stroke:#ec4899,stroke-width:2px,color:#831843
|
|
109
|
+
style t fill:#e0e7ff,stroke:#6366f1,stroke-width:2px,color:#312e81
|
|
53
110
|
```
|
|
54
111
|
|
|
55
112
|
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.
|
|
@@ -58,74 +115,215 @@ When the Analyst discovers a new domain concept, the Architect sees it. When the
|
|
|
58
115
|
|
|
59
116
|
MVTT covers the full engineering workflow — not just code generation:
|
|
60
117
|
|
|
118
|
+
```mermaid
|
|
119
|
+
flowchart LR
|
|
120
|
+
A["🔎<br/><b>Analyze</b><br/><sub>Extract domain concepts</sub>"] ==> B["🏗️<br/><b>Design</b><br/><sub>Define architecture</sub>"] ==> C["📋<br/><b>Plan</b><br/><sub>Break into tasks</sub>"] ==> D["⚡<br/><b>Implement</b><br/><sub>Write code</sub>"] ==> E["🔍<br/><b>Review</b><br/><sub>Check quality</sub>"] ==> F["🧪<br/><b>Test</b><br/><sub>Generate tests</sub>"]
|
|
121
|
+
|
|
122
|
+
A -.->|epic scale| G["🧩<br/><b>Decompose</b><br/><sub>Break into sub-changes</sub>"]
|
|
123
|
+
G -.-> B
|
|
124
|
+
|
|
125
|
+
A -.->|simple change| H["🚀<br/><b>Quick Dev</b><br/><sub>Skip the ceremony</sub>"]
|
|
126
|
+
|
|
127
|
+
style A fill:#dbeafe,stroke:#3b82f6,stroke-width:2px,color:#1e3a8a,font-weight:bold
|
|
128
|
+
style B fill:#e0e7ff,stroke:#6366f1,stroke-width:2px,color:#312e81,font-weight:bold
|
|
129
|
+
style C fill:#ede9fe,stroke:#8b5cf6,stroke-width:2px,color:#4c1d95,font-weight:bold
|
|
130
|
+
style D fill:#fae8ff,stroke:#a855f7,stroke-width:2px,color:#581c87,font-weight:bold
|
|
131
|
+
style E fill:#fce7f3,stroke:#ec4899,stroke-width:2px,color:#831843,font-weight:bold
|
|
132
|
+
style F fill:#dcfce7,stroke:#22c55e,stroke-width:2px,color:#14532d,font-weight:bold
|
|
133
|
+
style G fill:#fef3c7,stroke:#f59e0b,stroke-width:1.5px,stroke-dasharray:5 5,color:#78350f
|
|
134
|
+
style H fill:#e0e7ff,stroke:#6366f1,stroke-width:1.5px,stroke-dasharray:5 5,color:#312e81
|
|
135
|
+
|
|
136
|
+
linkStyle 0 stroke:#6366f1,stroke-width:3px
|
|
137
|
+
linkStyle 1 stroke:#6366f1,stroke-width:3px
|
|
138
|
+
linkStyle 2 stroke:#6366f1,stroke-width:3px
|
|
139
|
+
linkStyle 3 stroke:#6366f1,stroke-width:3px
|
|
140
|
+
linkStyle 4 stroke:#6366f1,stroke-width:3px
|
|
61
141
|
```
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
142
|
+
|
|
143
|
+
For epic-scale work, `/mvt-decompose` runs *before* `/mvt-analyze` and breaks the requirement into right-sized sub-changes with DAG dependencies. For small changes, `/mvt-quick-dev` skips the full workflow entirely.
|
|
144
|
+
|
|
145
|
+
Context flows through every phase via `session.yaml` and `project-context.yaml` — each step's output is the next step's input. The context accumulates, it doesn't reset.
|
|
146
|
+
|
|
147
|
+
### Multi-Project & Dependency-Aware
|
|
148
|
+
|
|
149
|
+
Real-world repos are rarely a single project. MVTT handles both shapes that slow other tools down.
|
|
150
|
+
|
|
151
|
+
**Multi-project in one repo.** Monorepos, microservices, multi-app repos — MVTT handles them natively. A single `project-context.yaml` tracks all sub-projects in a `projects[]` array, and the registry routes knowledge by project name. Skills scope to the active project automatically; you can switch scopes explicitly. One workspace, many projects, no context bleed.
|
|
152
|
+
|
|
153
|
+
```mermaid
|
|
154
|
+
flowchart TB
|
|
155
|
+
repo["🗂️<br/><b>Workspace</b><br/><sub>.ai-agents/</sub>"]
|
|
156
|
+
|
|
157
|
+
subgraph projects ["<b>📦 Multi-Project Tracking</b>"]
|
|
158
|
+
direction LR
|
|
159
|
+
p1["📘<br/><b>Project A</b><br/><sub>api-server</sub>"]
|
|
160
|
+
p2["📗<br/><b>Project B</b><br/><sub>web-app</sub>"]
|
|
161
|
+
p3["📙<br/><b>Project C</b><br/><sub>mobile-app</sub>"]
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
shared["🌐<br/><b>Shared Knowledge</b><br/><sub>core/ · principle/</sub>"]
|
|
165
|
+
|
|
166
|
+
repo ==> projects
|
|
167
|
+
repo ==> shared
|
|
168
|
+
|
|
169
|
+
style repo fill:#6d4ad6,stroke:#4c1d95,stroke-width:3px,color:#ffffff,font-weight:bold,font-size:16px
|
|
170
|
+
style projects fill:#faf7ff,stroke:#a78bfa,stroke-width:2px,stroke-dasharray:5 3,color:#4c1d95
|
|
171
|
+
style shared fill:#dcfce7,stroke:#22c55e,stroke-width:2px,color:#14532d,font-weight:bold
|
|
172
|
+
|
|
173
|
+
style p1 fill:#dbeafe,stroke:#3b82f6,stroke-width:2px,color:#1e3a8a,font-weight:bold
|
|
174
|
+
style p2 fill:#dcfce7,stroke:#22c55e,stroke-width:2px,color:#14532d,font-weight:bold
|
|
175
|
+
style p3 fill:#fef3c7,stroke:#f59e0b,stroke-width:2px,color:#78350f,font-weight:bold
|
|
176
|
+
|
|
177
|
+
linkStyle 0 stroke:#a855f7,stroke-width:3px
|
|
178
|
+
linkStyle 1 stroke:#22c55e,stroke-width:3px
|
|
70
179
|
```
|
|
71
180
|
|
|
72
|
-
|
|
181
|
+
**Dependency-aware task tracking.** Real features have dependencies — some tasks block others, some can run in parallel. Instead of tracking these in your head (or a spreadsheet), `/mvt-decompose` produces a DAG of sub-changes, `/mvt-plan-dev` mirrors it in `plan.yaml`, and `/mvt-update-plan` walks you through in the right order. You always see the critical path and what's runnable *now*.
|
|
182
|
+
|
|
183
|
+
```mermaid
|
|
184
|
+
flowchart LR
|
|
185
|
+
subgraph foundation ["<b>🏛️ Foundation</b>"]
|
|
186
|
+
direction LR
|
|
187
|
+
T1["🔐<br/><b>Auth module</b><br/><sub>T1</sub>"]
|
|
188
|
+
T2["🗄️<br/><b>DB schema</b><br/><sub>T2</sub>"]
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
subgraph parallel ["<b>⚡ Parallel Work</b>"]
|
|
192
|
+
direction LR
|
|
193
|
+
T3["🔌<br/><b>User API</b><br/><sub>T3</sub>"]
|
|
194
|
+
T4["📝<br/><b>Logging</b><br/><sub>T4</sub>"]
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
subgraph integration ["<b>✅ Integration</b>"]
|
|
198
|
+
direction TB
|
|
199
|
+
T5["🧪<br/><b>Tests</b><br/><sub>T5</sub>"]
|
|
200
|
+
end
|
|
201
|
+
|
|
202
|
+
T1 --> T3
|
|
203
|
+
T2 --> T3
|
|
204
|
+
T2 --> T4
|
|
205
|
+
T3 --> T5
|
|
206
|
+
T4 --> T5
|
|
207
|
+
|
|
208
|
+
style foundation fill:#faf7ff,stroke:#a78bfa,stroke-width:2px,stroke-dasharray:4 3,color:#4c1d95
|
|
209
|
+
style parallel fill:#fff7ed,stroke:#fb923c,stroke-width:2px,stroke-dasharray:4 3,color:#7c2d12
|
|
210
|
+
style integration fill:#f0fdf4,stroke:#22c55e,stroke-width:2px,stroke-dasharray:4 3,color:#14532d
|
|
211
|
+
|
|
212
|
+
style T1 fill:#dbeafe,stroke:#3b82f6,stroke-width:2px,color:#1e3a8a,font-weight:bold
|
|
213
|
+
style T2 fill:#dbeafe,stroke:#3b82f6,stroke-width:2px,color:#1e3a8a,font-weight:bold
|
|
214
|
+
style T3 fill:#fef3c7,stroke:#f59e0b,stroke-width:2px,color:#78350f,font-weight:bold
|
|
215
|
+
style T4 fill:#fef3c7,stroke:#f59e0b,stroke-width:2px,color:#78350f,font-weight:bold
|
|
216
|
+
style T5 fill:#dcfce7,stroke:#22c55e,stroke-width:2px,color:#14532d,font-weight:bold
|
|
217
|
+
|
|
218
|
+
linkStyle 0 stroke:#6366f1,stroke-width:2.5px
|
|
219
|
+
linkStyle 1 stroke:#6366f1,stroke-width:2.5px
|
|
220
|
+
linkStyle 2 stroke:#6366f1,stroke-width:2.5px
|
|
221
|
+
linkStyle 3 stroke:#a855f7,stroke-width:2.5px
|
|
222
|
+
linkStyle 4 stroke:#a855f7,stroke-width:2.5px
|
|
223
|
+
```
|
|
73
224
|
|
|
74
|
-
|
|
225
|
+
Read this as: `T3` and `T4` run in parallel (both only need `T2`); `T5` waits for both. The plan tracks all of this automatically.
|
|
75
226
|
|
|
76
|
-
|
|
77
|
-
# Install into any project
|
|
78
|
-
npx @uoyo/mvtt install
|
|
227
|
+
<!-- SCREENSHOT PLACEHOLDER #2: a 30-second GIF (or 3-panel screenshot) showing the full lifecycle: /mvt-analyze output → /mvt-design output → /mvt-test output. Recommended size: ~1200x800. Save as docs/assets/lifecycle.gif (or .png) and replace this comment with:  -->
|
|
79
228
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
229
|
+
## Skills Working as a Team
|
|
230
|
+
|
|
231
|
+
MVTT's 24 skills aren't 24 independent commands — they're an **integrated team** that shares one project notebook. Every skill's output becomes the next skill's input, so context compounds instead of evaporating.
|
|
232
|
+
|
|
233
|
+
### One Feature, Six Skills, One Continuous Flow
|
|
234
|
+
|
|
235
|
+
Adding a new feature end-to-end looks like this:
|
|
236
|
+
|
|
237
|
+
```mermaid
|
|
238
|
+
flowchart LR
|
|
239
|
+
A["🔎<br/><b>/mvt-analyze</b><br/><sub>Extract requirements</sub>"] ==> B["🏗️<br/><b>/mvt-design</b><br/><sub>Define architecture</sub>"] ==> C["📋<br/><b>/mvt-plan-dev</b><br/><sub>Break into tasks</sub>"] ==> D["⚡<br/><b>/mvt-implement</b><br/><sub>Write code</sub>"] ==> E["🔍<br/><b>/mvt-review</b><br/><sub>Check quality</sub>"] ==> F["🧪<br/><b>/mvt-test</b><br/><sub>Generate tests</sub>"]
|
|
240
|
+
|
|
241
|
+
style A fill:#dbeafe,stroke:#3b82f6,stroke-width:2.5px,color:#1e3a8a,font-weight:bold
|
|
242
|
+
style B fill:#e0e7ff,stroke:#6366f1,stroke-width:2.5px,color:#312e81,font-weight:bold
|
|
243
|
+
style C fill:#ede9fe,stroke:#8b5cf6,stroke-width:2.5px,color:#4c1d95,font-weight:bold
|
|
244
|
+
style D fill:#fae8ff,stroke:#a855f7,stroke-width:2.5px,color:#581c87,font-weight:bold
|
|
245
|
+
style E fill:#fce7f3,stroke:#ec4899,stroke-width:2.5px,color:#831843,font-weight:bold
|
|
246
|
+
style F fill:#dcfce7,stroke:#22c55e,stroke-width:2.5px,color:#14532d,font-weight:bold
|
|
247
|
+
|
|
248
|
+
linkStyle 0 stroke:#6366f1,stroke-width:3px
|
|
249
|
+
linkStyle 1 stroke:#8b5cf6,stroke-width:3px
|
|
250
|
+
linkStyle 2 stroke:#a855f7,stroke-width:3px
|
|
251
|
+
linkStyle 3 stroke:#ec4899,stroke-width:3px
|
|
252
|
+
linkStyle 4 stroke:#22c55e,stroke-width:3px
|
|
83
253
|
```
|
|
84
254
|
|
|
85
|
-
|
|
255
|
+
What would take 6 separate Claude Code sessions (and 6 rounds of re-explaining the project) takes **one continuous workflow** — same context, no re-explanation, no copy-paste.
|
|
256
|
+
|
|
257
|
+
### Common Recipes
|
|
258
|
+
|
|
259
|
+
You don't always need all 6. Pick the recipe that fits:
|
|
260
|
+
|
|
261
|
+
| Task | Skills used |
|
|
262
|
+
|------|-------------|
|
|
263
|
+
| Add a new feature | `analyze` → `design` → `plan-dev` → `implement` → `review` → `test` |
|
|
264
|
+
| Investigate a suspected bug | `bug-detect` (read-only diagnosis) |
|
|
265
|
+
| Fix a known bug | `fix` (with optional `bug-detect` first) |
|
|
266
|
+
| Refactor a module | `analyze-code` → `refactor` → `review` → `test` |
|
|
267
|
+
| Tackle an epic-scale change | `decompose` → `analyze` (per sub-change) → ... |
|
|
268
|
+
| Quick 1–3 file tweak | `quick-dev` |
|
|
269
|
+
| Onboard to an existing codebase | `analyze-code` |
|
|
270
|
+
| Resume after days off | `resume` (then continue the workflow) |
|
|
271
|
+
| Clean up accumulated artifacts | `cleanup` + `check-context` |
|
|
272
|
+
|
|
273
|
+
Each recipe is a **starting point** — `/mvt-help` suggests the next step based on your project's actual state, and you can drop or reorder skills as needed.
|
|
274
|
+
|
|
275
|
+
### Why Multi-Skill Coordination Wins
|
|
276
|
+
|
|
277
|
+
- **Compounding context** — the Analyst's extracted domain concepts feed the Architect; the Architect's design decisions feed the Developer. No skill re-derives what another already learned.
|
|
278
|
+
- **Specialized prompts** — each skill is a focused prompt tuned for one phase, not one bloated "do everything" prompt. Focused prompts produce higher-quality output.
|
|
279
|
+
- **Built-in handoffs** — the artifact from one skill (analysis doc, design spec, plan.yaml) is explicitly read by the next. Nothing gets lost in the conversation.
|
|
280
|
+
- **Interruptible** — stop mid-workflow, come back days later, `/mvt-resume` picks up exactly where you left off, with full state restored.
|
|
281
|
+
|
|
282
|
+
## The 24 Skills
|
|
86
283
|
|
|
87
284
|
### Workflow — Full Development Lifecycle
|
|
88
285
|
|
|
89
|
-
| Skill |
|
|
90
|
-
|
|
91
|
-
| `/mvt-analyze` |
|
|
92
|
-
| `/mvt-
|
|
93
|
-
| `/mvt-
|
|
94
|
-
| `/mvt-
|
|
95
|
-
| `/mvt-
|
|
96
|
-
| `/mvt-
|
|
97
|
-
| `/mvt-
|
|
98
|
-
| `/mvt-
|
|
286
|
+
| Skill | Use when... | What it does |
|
|
287
|
+
|-------|-------------|--------------|
|
|
288
|
+
| `/mvt-analyze` | You have a new requirements doc | Extracts domain concepts, features, and acceptance criteria |
|
|
289
|
+
| `/mvt-decompose` | A requirement is epic-scale, spans multiple domains | Breaks it into right-sized sub-changes with DAG dependencies |
|
|
290
|
+
| `/mvt-analyze-code` | Joining an existing codebase | Reverse-analyzes code into structured project context |
|
|
291
|
+
| `/mvt-design` | Requirements ready, need architecture | Defines modules, boundaries, and data flow |
|
|
292
|
+
| `/mvt-plan-dev` | Design is too big for a single implement pass | Generates a tracked plan with ordered tasks |
|
|
293
|
+
| `/mvt-update-plan` | A task just completed or scope changed | Marks task done/blocked/skipped, auto-advances `current_tasks` |
|
|
294
|
+
| `/mvt-implement` | Design and plan are ready | Writes code following the design and plan |
|
|
295
|
+
| `/mvt-review` | Implementation is written | Checks quality, standards, and potential issues |
|
|
296
|
+
| `/mvt-test` | Implementation is reviewed | Generates tests that validate the behavior |
|
|
99
297
|
|
|
100
298
|
### Shortcuts — Skip the Ceremony
|
|
101
299
|
|
|
102
|
-
| Skill |
|
|
103
|
-
|
|
104
|
-
| `/mvt-bug-detect` |
|
|
105
|
-
| `/mvt-fix` |
|
|
106
|
-
| `/mvt-refactor` |
|
|
107
|
-
| `/mvt-quick-dev` |
|
|
300
|
+
| Skill | Use when... | What it does |
|
|
301
|
+
|-------|-------------|--------------|
|
|
302
|
+
| `/mvt-bug-detect` | Suspect a bug, want diagnosis before any change | Investigates root cause and impact, makes no code changes |
|
|
303
|
+
| `/mvt-fix` | Bug confirmed, ready to resolve | Diagnoses and fixes with full context awareness |
|
|
304
|
+
| `/mvt-refactor` | Want to restructure, keep behavior unchanged | Refactors with awareness of architecture decisions |
|
|
305
|
+
| `/mvt-quick-dev` | 1–3 file change, well-scoped, architecturally neutral | Goes straight to implementation, no full workflow |
|
|
108
306
|
|
|
109
307
|
### Context Management
|
|
110
308
|
|
|
111
|
-
| Skill |
|
|
112
|
-
|
|
113
|
-
| `/mvt-init` |
|
|
114
|
-
| `/mvt-sync-context` |
|
|
115
|
-
| `/mvt-resume` |
|
|
116
|
-
| `/mvt-status` |
|
|
117
|
-
| `/mvt-manage-context` |
|
|
118
|
-
| `/mvt-check-context` |
|
|
119
|
-
| `/mvt-cleanup` |
|
|
309
|
+
| Skill | Use when... | What it does |
|
|
310
|
+
|-------|-------------|--------------|
|
|
311
|
+
| `/mvt-init` | First time on a project, or major restructure | Detects tech stack and initializes the workspace |
|
|
312
|
+
| `/mvt-sync-context` | Code changed outside the MVTT workflow | Reconciles workspace with actual code state |
|
|
313
|
+
| `/mvt-resume` | New session, work was in progress | Restores full context from `session.yaml` |
|
|
314
|
+
| `/mvt-status` | "Where am I in the workflow?" | Shows progress and loaded context |
|
|
315
|
+
| `/mvt-manage-context` | Want to add/remove/reorganize knowledge | Manages knowledge entries and the registry |
|
|
316
|
+
| `/mvt-check-context` | Token usage feels high | Analyzes footprint and suggests optimizations |
|
|
317
|
+
| `/mvt-cleanup` | Workspace feels bloated | Archives stale artifacts, maintains health |
|
|
120
318
|
|
|
121
319
|
### Utility
|
|
122
320
|
|
|
123
|
-
| Skill |
|
|
124
|
-
|
|
125
|
-
| `/mvt-help` |
|
|
126
|
-
| `/mvt-config` |
|
|
127
|
-
| `/mvt-create-skill` |
|
|
128
|
-
| `/mvt-template` |
|
|
321
|
+
| Skill | Use when... | What it does |
|
|
322
|
+
|-------|-------------|--------------|
|
|
323
|
+
| `/mvt-help` | New to MVTT or unsure what to do next | Shows skills, status, and workflow guidance |
|
|
324
|
+
| `/mvt-config` | Want different language or output format | Changes framework settings |
|
|
325
|
+
| `/mvt-create-skill` | Need a custom workflow for your team | Scaffolds a new skill interactively |
|
|
326
|
+
| `/mvt-template` | Want to customize output formats | Views and manages output templates |
|
|
129
327
|
|
|
130
328
|
## How Context Stays in Sync
|
|
131
329
|
|
|
@@ -169,6 +367,43 @@ preferences:
|
|
|
169
367
|
relevance_threshold: 70
|
|
170
368
|
```
|
|
171
369
|
|
|
370
|
+
## FAQ
|
|
371
|
+
|
|
372
|
+
### How is MVTT different from a well-written CLAUDE.md?
|
|
373
|
+
|
|
374
|
+
A CLAUDE.md gives Claude **instructions**. MVTT gives Claude a **team** — 24 specialized skills with shared memory, dedicated templates, and a handoff protocol. CLAUDE.md is a memo; MVTT is an org chart. You can use both; they don't conflict.
|
|
375
|
+
|
|
376
|
+
### Does it explode my token usage?
|
|
377
|
+
|
|
378
|
+
No. The workspace is file-based and on-demand. MVTT loads only the context that's relevant to the current skill (default relevance threshold: 70%). Run `/mvt-check-context` to see your token footprint and optimize.
|
|
379
|
+
|
|
380
|
+
### Is it English-only?
|
|
381
|
+
|
|
382
|
+
No. Set `preferences.interaction_language: zh-CN` and the framework switches to Chinese — both in chat and in generated artifacts. Bilingual projects are first-class.
|
|
383
|
+
|
|
384
|
+
### Can my team use it together?
|
|
385
|
+
|
|
386
|
+
Yes. The `.ai-agents/` workspace is version-controlled, so it travels with your repo. Everyone on the team sees the same context, the same plans, the same history. The only requirement: commit `.ai-agents/` (or at least the `knowledge/` and `project-context.yaml` parts).
|
|
387
|
+
|
|
388
|
+
### Does it work with any existing project?
|
|
389
|
+
|
|
390
|
+
Yes. `npx @uoyo/mvtt install` adds MVTT to any repo. It doesn't change your code, your git history, or your workflow — it adds structure on top.
|
|
391
|
+
|
|
392
|
+
### What happens to my data when I uninstall?
|
|
393
|
+
|
|
394
|
+
`mvtt uninstall` removes the generated framework files but preserves your `.ai-agents/workspace/` and `.ai-agents/knowledge/`. Nothing you've written is lost.
|
|
395
|
+
|
|
396
|
+
### Why 24 skills? Isn't that overkill?
|
|
397
|
+
|
|
398
|
+
Most teams use 5–8 skills regularly. The other 15–19 are there for specific situations (epic decomposition, context sync, output templating) — you don't need to learn them up front. Run `/mvt-help` and it tells you exactly which one to use next.
|
|
399
|
+
|
|
400
|
+
## Community & Roadmap
|
|
401
|
+
|
|
402
|
+
- **Issues**: [github.com/uoyoCsharp/My-Virtual-TechTeam/issues](https://github.com/uoyoCsharp/My-Virtual-TechTeam/issues)
|
|
403
|
+
- **Discussions**: [github.com/uoyoCsharp/My-Virtual-TechTeam/discussions](https://github.com/uoyoCsharp/My-Virtual-TechTeam/discussions)
|
|
404
|
+
- **Roadmap**: see [open milestones](https://github.com/uoyoCsharp/My-Virtual-TechTeam/milestones)
|
|
405
|
+
- **Star the repo** if MVTT helps you ship faster
|
|
406
|
+
|
|
172
407
|
## Development
|
|
173
408
|
|
|
174
409
|
```bash
|