meto-cli 0.9.3 → 0.11.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 +40 -7
- package/dist/cli/audit/blueprint.d.ts +53 -0
- package/dist/cli/audit/blueprint.d.ts.map +1 -0
- package/dist/cli/audit/blueprint.js +386 -0
- package/dist/cli/audit/blueprint.js.map +1 -0
- package/dist/cli/audit/detect-stack.d.ts +31 -0
- package/dist/cli/audit/detect-stack.d.ts.map +1 -0
- package/dist/cli/audit/detect-stack.js +154 -0
- package/dist/cli/audit/detect-stack.js.map +1 -0
- package/dist/cli/audit/fixer.d.ts +75 -0
- package/dist/cli/audit/fixer.d.ts.map +1 -0
- package/dist/cli/audit/fixer.js +802 -0
- package/dist/cli/audit/fixer.js.map +1 -0
- package/dist/cli/audit/index.d.ts +24 -0
- package/dist/cli/audit/index.d.ts.map +1 -0
- package/dist/cli/audit/index.js +212 -0
- package/dist/cli/audit/index.js.map +1 -0
- package/dist/cli/audit/reporter.d.ts +42 -0
- package/dist/cli/audit/reporter.d.ts.map +1 -0
- package/dist/cli/audit/reporter.js +101 -0
- package/dist/cli/audit/reporter.js.map +1 -0
- package/dist/cli/audit/scanner.d.ts +48 -0
- package/dist/cli/audit/scanner.d.ts.map +1 -0
- package/dist/cli/audit/scanner.js +202 -0
- package/dist/cli/audit/scanner.js.map +1 -0
- package/dist/cli/index.js +6 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/renderer.d.ts.map +1 -1
- package/dist/cli/renderer.js +4 -1
- package/dist/cli/renderer.js.map +1 -1
- package/dist/cli/stacks.d.ts +11 -0
- package/dist/cli/stacks.d.ts.map +1 -1
- package/dist/cli/stacks.js +82 -0
- package/dist/cli/stacks.js.map +1 -1
- package/package.json +1 -1
- package/templates/.claude/agent-memory/meto-community/MEMORY.md +23 -0
- package/templates/.claude/agents/community-manager-agent.md +72 -0
- package/templates/.claude/agents/developer-agent.md +6 -3
- package/templates/.claude/agents/pm-agent.md +2 -2
- package/templates/.claude/agents/tester-agent.md +5 -2
- package/templates/CLAUDE.md +10 -6
- package/templates/ai/workflows/code-guidelines.md +46 -0
- package/templates/ai/workflows/session-checkpoint.md +1 -2
package/README.md
CHANGED
|
@@ -65,10 +65,12 @@ Each preset populates your tech-stack description, definition of done (with stac
|
|
|
65
65
|
your-project/
|
|
66
66
|
├── .claude/
|
|
67
67
|
│ ├── agents/
|
|
68
|
+
│ │ ├── community-manager-agent.md
|
|
68
69
|
│ │ ├── developer-agent.md
|
|
69
70
|
│ │ ├── pm-agent.md
|
|
70
71
|
│ │ └── tester-agent.md
|
|
71
72
|
│ ├── agent-memory/
|
|
73
|
+
│ │ ├── meto-community/MEMORY.md
|
|
72
74
|
│ │ ├── meto-developer/MEMORY.md
|
|
73
75
|
│ │ ├── meto-pm/MEMORY.md
|
|
74
76
|
│ │ └── meto-tester/MEMORY.md
|
|
@@ -89,7 +91,8 @@ your-project/
|
|
|
89
91
|
│ │ └── tasks-todo.md
|
|
90
92
|
│ └── workflows/
|
|
91
93
|
│ ├── commit-conventions.md
|
|
92
|
-
│
|
|
94
|
+
│ ├── definition-of-done.md
|
|
95
|
+
│ └── session-checkpoint.md
|
|
93
96
|
├── src/
|
|
94
97
|
├── .gitignore
|
|
95
98
|
└── CLAUDE.md
|
|
@@ -116,15 +119,32 @@ your-project/
|
|
|
116
119
|
**What's inside:**
|
|
117
120
|
- **CLAUDE.md** -- project instructions that Claude Code reads every session, pre-filled with your vision, stack, and conventions
|
|
118
121
|
- **Kanban board** -- task pipeline (backlog, todo, in-progress, testing, done) ready for your first sprint
|
|
119
|
-
- **
|
|
122
|
+
- **4 agent definitions** -- PM, developer, tester, and community manager agents configured to follow your methodology from day one
|
|
120
123
|
- **Agent memory** -- persistent memory files so agents retain context across sessions
|
|
121
124
|
- **Product context** -- vision, tech stack, and decisions captured in structured files
|
|
122
|
-
- **Epics and workflows** -- definition of done, commit conventions, and an epic backlog to plan against
|
|
123
|
-
- **Agent Teams ready** --
|
|
125
|
+
- **Epics and workflows** -- definition of done, commit conventions, session checkpoints, and an epic backlog to plan against
|
|
126
|
+
- **Agent Teams ready** -- four agents configured to work in parallel with file ownership boundaries
|
|
124
127
|
- **Swarm mode** -- parallel epic agents with domain ownership, checkpoint rhythm, and a live status dashboard
|
|
125
128
|
|
|
126
129
|
---
|
|
127
130
|
|
|
131
|
+
## Agents
|
|
132
|
+
|
|
133
|
+
Every scaffolded project comes with 4 pre-configured agents:
|
|
134
|
+
|
|
135
|
+
| Agent | Role | Can write code? |
|
|
136
|
+
|---|---|---|
|
|
137
|
+
| `@meto-pm` | Planning, backlog management, epic definition, task slicing | No |
|
|
138
|
+
| `@meto-developer` | Code implementation -- picks tasks from todo, builds, tests | Yes |
|
|
139
|
+
| `@meto-tester` | Validates completed work against acceptance criteria | No |
|
|
140
|
+
| `@meto-community` | Community engagement, user communication, market awareness | No |
|
|
141
|
+
|
|
142
|
+
The **community manager** understands the product and its market. It reads product context files, drafts Reddit posts, changelog summaries, and feature announcements, and surfaces user feedback themes back to `@meto-pm`. It never writes code or edits source files -- read-only access to the codebase.
|
|
143
|
+
|
|
144
|
+
In **swarm mode**, additional `@meto-epic-[id]` agents are generated -- one per epic, each scoped to its own file domain.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
128
148
|
## Workflow Modes
|
|
129
149
|
|
|
130
150
|
### Sprint (default)
|
|
@@ -152,18 +172,31 @@ Best for projects with multiple independent epics where parallelism speeds thing
|
|
|
152
172
|
|
|
153
173
|
---
|
|
154
174
|
|
|
175
|
+
## Context & Sessions
|
|
176
|
+
|
|
177
|
+
Meto is optimized for Claude Code's **1M token context window**. With 5x more room than before:
|
|
178
|
+
|
|
179
|
+
- **10-15 slices per session** before needing a fresh start
|
|
180
|
+
- **Agents can hold more files** in context without degrading
|
|
181
|
+
- **Less frequent `/compact`** -- use it when responses slow down, not proactively
|
|
182
|
+
- **Memory files still matter** -- they persist across sessions, not just within them
|
|
183
|
+
|
|
184
|
+
Each agent has a memory file in `.claude/agent-memory/` that it reads at session start and updates at session end. Session checkpoints (`ai/workflows/session-checkpoint.md`) help hand off between sessions when needed.
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
155
188
|
## Agent Teams
|
|
156
189
|
|
|
157
190
|
Agent Teams is a Claude Code feature where multiple AI agents work in parallel on the same codebase, each with a specialized role.
|
|
158
191
|
|
|
159
192
|
Meto scaffolds projects ready for Agent Teams out of the box:
|
|
160
193
|
|
|
161
|
-
- **
|
|
194
|
+
- **Four pre-configured agents** (Sprint) or **per-epic agents** (Swarm) -- all with file ownership boundaries
|
|
162
195
|
- **Feature enabled automatically** -- `.claude/settings.json` sets the experimental flag so Agent Teams works immediately
|
|
163
196
|
|
|
164
197
|
**To activate:** start `claude` in your project, then say:
|
|
165
198
|
|
|
166
|
-
> Sprint: "Create an agent team with @meto-pm for planning, @meto-developer for building, @meto-tester for validation"
|
|
199
|
+
> Sprint: "Create an agent team with @meto-pm for planning, @meto-developer for building, @meto-tester for validation, and @meto-community for community engagement"
|
|
167
200
|
|
|
168
201
|
> Swarm: "Launch @meto-epic-E1 to work on Epic 1"
|
|
169
202
|
|
|
@@ -174,7 +207,7 @@ Meto scaffolds projects ready for Agent Teams out of the box:
|
|
|
174
207
|
1. `cd your-project`
|
|
175
208
|
2. Open the project in your editor
|
|
176
209
|
3. Start a Claude Code session and call `@meto-pm` to populate your backlog
|
|
177
|
-
4. **Sprint:** spawn an agent team with @meto-pm, @meto-developer, and @meto-
|
|
210
|
+
4. **Sprint:** spawn an agent team with @meto-pm, @meto-developer, @meto-tester, and @meto-community
|
|
178
211
|
5. **Swarm:** launch epic agents in parallel, run `npx meto-cli status` to monitor
|
|
179
212
|
6. Pick your first task and start building
|
|
180
213
|
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Declarative blueprint that defines what each audit layer expects.
|
|
3
|
+
* The scanner reads this data structure to determine which checks to run.
|
|
4
|
+
* Adding new checks is data-driven: add an entry here, the scanner picks it up.
|
|
5
|
+
*/
|
|
6
|
+
/** The kind of filesystem check the scanner should perform. */
|
|
7
|
+
export type CheckType = "file-exists" | "dir-exists" | "file-contains" | "custom";
|
|
8
|
+
/**
|
|
9
|
+
* A single expectation within a layer.
|
|
10
|
+
* Describes one thing the scanner should verify.
|
|
11
|
+
*/
|
|
12
|
+
export interface BlueprintExpectation {
|
|
13
|
+
/** Unique identifier (e.g. "L0-git", "L1-claude-md") */
|
|
14
|
+
id: string;
|
|
15
|
+
/** Human-readable description shown in reports */
|
|
16
|
+
description: string;
|
|
17
|
+
/** What kind of check the scanner should perform */
|
|
18
|
+
checkType: CheckType;
|
|
19
|
+
/**
|
|
20
|
+
* Relative path (from project root) the check targets.
|
|
21
|
+
* For "custom" checks this may be a hint or pattern rather than a literal path.
|
|
22
|
+
*/
|
|
23
|
+
path: string;
|
|
24
|
+
/** Which layer this expectation belongs to (0, 1, 2, 3) */
|
|
25
|
+
layer: number;
|
|
26
|
+
/** Whether the fixer can automatically resolve a failure */
|
|
27
|
+
fixable: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* For "file-contains" checks: the pattern (substring or heading) expected
|
|
30
|
+
* inside the file. Ignored for other check types.
|
|
31
|
+
*/
|
|
32
|
+
containsPattern?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* A layer groups related expectations under a name and numeric id.
|
|
36
|
+
* Layers are ordered: higher layers gate on lower layers passing.
|
|
37
|
+
*/
|
|
38
|
+
export interface BlueprintLayer {
|
|
39
|
+
/** Numeric layer identifier (0, 1, 2, 3) */
|
|
40
|
+
id: number;
|
|
41
|
+
/** Human-readable layer name */
|
|
42
|
+
name: string;
|
|
43
|
+
/** Ordered list of expectations for this layer */
|
|
44
|
+
expectations: BlueprintExpectation[];
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* The complete audit blueprint. Layers are ordered; the scanner should
|
|
48
|
+
* evaluate them sequentially and gate higher layers on lower ones passing.
|
|
49
|
+
*
|
|
50
|
+
* Exported as a constant -- no runtime construction.
|
|
51
|
+
*/
|
|
52
|
+
export declare const AUDIT_BLUEPRINT: readonly BlueprintLayer[];
|
|
53
|
+
//# sourceMappingURL=blueprint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blueprint.d.ts","sourceRoot":"","sources":["../../../src/cli/audit/blueprint.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,+DAA+D;AAC/D,MAAM,MAAM,SAAS,GACjB,aAAa,GACb,YAAY,GACZ,eAAe,GACf,QAAQ,CAAC;AAEb;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,wDAAwD;IACxD,EAAE,EAAE,MAAM,CAAC;IACX,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,SAAS,EAAE,SAAS,CAAC;IACrB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,YAAY,EAAE,oBAAoB,EAAE,CAAC;CACtC;AA2WD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,cAAc,EAqB3C,CAAC"}
|
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Declarative blueprint that defines what each audit layer expects.
|
|
3
|
+
* The scanner reads this data structure to determine which checks to run.
|
|
4
|
+
* Adding new checks is data-driven: add an entry here, the scanner picks it up.
|
|
5
|
+
*/
|
|
6
|
+
// ---------------------------------------------------------------------------
|
|
7
|
+
// Layer 0 -- Project Prerequisites
|
|
8
|
+
// ---------------------------------------------------------------------------
|
|
9
|
+
const LAYER_0_EXPECTATIONS = [
|
|
10
|
+
{
|
|
11
|
+
id: "L0-git",
|
|
12
|
+
description: "Git initialized",
|
|
13
|
+
checkType: "dir-exists",
|
|
14
|
+
path: ".git",
|
|
15
|
+
layer: 0,
|
|
16
|
+
fixable: false,
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
id: "L0-readme",
|
|
20
|
+
description: "README exists",
|
|
21
|
+
checkType: "custom",
|
|
22
|
+
path: "README*",
|
|
23
|
+
layer: 0,
|
|
24
|
+
fixable: false,
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
id: "L0-source-dir",
|
|
28
|
+
description: "Source code directory exists",
|
|
29
|
+
checkType: "custom",
|
|
30
|
+
path: "src|lib|app|pkg|cmd|internal",
|
|
31
|
+
layer: 0,
|
|
32
|
+
fixable: false,
|
|
33
|
+
},
|
|
34
|
+
];
|
|
35
|
+
// ---------------------------------------------------------------------------
|
|
36
|
+
// Layer 1 -- Methodology
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
const LAYER_1_EXPECTATIONS = [
|
|
39
|
+
{
|
|
40
|
+
id: "L1-claude-md",
|
|
41
|
+
description: "CLAUDE.md project instructions",
|
|
42
|
+
checkType: "file-exists",
|
|
43
|
+
path: "CLAUDE.md",
|
|
44
|
+
layer: 1,
|
|
45
|
+
fixable: true,
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
id: "L1-ai-dir",
|
|
49
|
+
description: "ai/ directory",
|
|
50
|
+
checkType: "dir-exists",
|
|
51
|
+
path: "ai",
|
|
52
|
+
layer: 1,
|
|
53
|
+
fixable: true,
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
id: "L1-context-dir",
|
|
57
|
+
description: "ai/context/ directory",
|
|
58
|
+
checkType: "dir-exists",
|
|
59
|
+
path: "ai/context",
|
|
60
|
+
layer: 1,
|
|
61
|
+
fixable: true,
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
id: "L1-product-vision",
|
|
65
|
+
description: "Product vision document",
|
|
66
|
+
checkType: "file-exists",
|
|
67
|
+
path: "ai/context/product-vision.md",
|
|
68
|
+
layer: 1,
|
|
69
|
+
fixable: true,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
id: "L1-tech-stack",
|
|
73
|
+
description: "Tech stack document",
|
|
74
|
+
checkType: "file-exists",
|
|
75
|
+
path: "ai/context/tech-stack.md",
|
|
76
|
+
layer: 1,
|
|
77
|
+
fixable: true,
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
id: "L1-decisions",
|
|
81
|
+
description: "Decisions log",
|
|
82
|
+
checkType: "file-exists",
|
|
83
|
+
path: "ai/context/decisions.md",
|
|
84
|
+
layer: 1,
|
|
85
|
+
fixable: true,
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
id: "L1-tasks-dir",
|
|
89
|
+
description: "ai/tasks/ directory",
|
|
90
|
+
checkType: "dir-exists",
|
|
91
|
+
path: "ai/tasks",
|
|
92
|
+
layer: 1,
|
|
93
|
+
fixable: true,
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
id: "L1-tasks-backlog",
|
|
97
|
+
description: "Task board: backlog",
|
|
98
|
+
checkType: "file-exists",
|
|
99
|
+
path: "ai/tasks/tasks-backlog.md",
|
|
100
|
+
layer: 1,
|
|
101
|
+
fixable: true,
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
id: "L1-tasks-todo",
|
|
105
|
+
description: "Task board: todo",
|
|
106
|
+
checkType: "file-exists",
|
|
107
|
+
path: "ai/tasks/tasks-todo.md",
|
|
108
|
+
layer: 1,
|
|
109
|
+
fixable: true,
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
id: "L1-tasks-in-progress",
|
|
113
|
+
description: "Task board: in-progress",
|
|
114
|
+
checkType: "file-exists",
|
|
115
|
+
path: "ai/tasks/tasks-in-progress.md",
|
|
116
|
+
layer: 1,
|
|
117
|
+
fixable: true,
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
id: "L1-tasks-in-testing",
|
|
121
|
+
description: "Task board: in-testing",
|
|
122
|
+
checkType: "file-exists",
|
|
123
|
+
path: "ai/tasks/tasks-in-testing.md",
|
|
124
|
+
layer: 1,
|
|
125
|
+
fixable: true,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
id: "L1-tasks-done",
|
|
129
|
+
description: "Task board: done",
|
|
130
|
+
checkType: "file-exists",
|
|
131
|
+
path: "ai/tasks/tasks-done.md",
|
|
132
|
+
layer: 1,
|
|
133
|
+
fixable: true,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
id: "L1-workflows-dir",
|
|
137
|
+
description: "ai/workflows/ directory",
|
|
138
|
+
checkType: "dir-exists",
|
|
139
|
+
path: "ai/workflows",
|
|
140
|
+
layer: 1,
|
|
141
|
+
fixable: true,
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
id: "L1-definition-of-done",
|
|
145
|
+
description: "Definition of done workflow",
|
|
146
|
+
checkType: "file-exists",
|
|
147
|
+
path: "ai/workflows/definition-of-done.md",
|
|
148
|
+
layer: 1,
|
|
149
|
+
fixable: true,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
id: "L1-commit-conventions",
|
|
153
|
+
description: "Commit conventions workflow",
|
|
154
|
+
checkType: "file-exists",
|
|
155
|
+
path: "ai/workflows/commit-conventions.md",
|
|
156
|
+
layer: 1,
|
|
157
|
+
fixable: true,
|
|
158
|
+
},
|
|
159
|
+
];
|
|
160
|
+
// ---------------------------------------------------------------------------
|
|
161
|
+
// Layer 2 -- Agents
|
|
162
|
+
// ---------------------------------------------------------------------------
|
|
163
|
+
const LAYER_2_EXPECTATIONS = [
|
|
164
|
+
{
|
|
165
|
+
id: "L2-claude-dir",
|
|
166
|
+
description: ".claude/ directory",
|
|
167
|
+
checkType: "dir-exists",
|
|
168
|
+
path: ".claude",
|
|
169
|
+
layer: 2,
|
|
170
|
+
fixable: true,
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
id: "L2-settings-json",
|
|
174
|
+
description: "Agent settings (.claude/settings.json)",
|
|
175
|
+
checkType: "file-exists",
|
|
176
|
+
path: ".claude/settings.json",
|
|
177
|
+
layer: 2,
|
|
178
|
+
fixable: true,
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
id: "L2-agents-dir",
|
|
182
|
+
description: ".claude/agents/ directory",
|
|
183
|
+
checkType: "dir-exists",
|
|
184
|
+
path: ".claude/agents",
|
|
185
|
+
layer: 2,
|
|
186
|
+
fixable: true,
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
id: "L2-pm-agent",
|
|
190
|
+
description: "PM agent definition",
|
|
191
|
+
checkType: "file-exists",
|
|
192
|
+
path: ".claude/agents/pm-agent.md",
|
|
193
|
+
layer: 2,
|
|
194
|
+
fixable: true,
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
id: "L2-developer-agent",
|
|
198
|
+
description: "Developer agent definition",
|
|
199
|
+
checkType: "file-exists",
|
|
200
|
+
path: ".claude/agents/developer-agent.md",
|
|
201
|
+
layer: 2,
|
|
202
|
+
fixable: true,
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
id: "L2-tester-agent",
|
|
206
|
+
description: "Tester agent definition",
|
|
207
|
+
checkType: "file-exists",
|
|
208
|
+
path: ".claude/agents/tester-agent.md",
|
|
209
|
+
layer: 2,
|
|
210
|
+
fixable: true,
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
id: "L2-agent-memory-dir",
|
|
214
|
+
description: ".claude/agent-memory/ directory",
|
|
215
|
+
checkType: "dir-exists",
|
|
216
|
+
path: ".claude/agent-memory",
|
|
217
|
+
layer: 2,
|
|
218
|
+
fixable: true,
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
id: "L2-pm-memory",
|
|
222
|
+
description: "PM agent memory directory",
|
|
223
|
+
checkType: "dir-exists",
|
|
224
|
+
path: ".claude/agent-memory/meto-pm",
|
|
225
|
+
layer: 2,
|
|
226
|
+
fixable: true,
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
id: "L2-developer-memory",
|
|
230
|
+
description: "Developer agent memory directory",
|
|
231
|
+
checkType: "dir-exists",
|
|
232
|
+
path: ".claude/agent-memory/meto-developer",
|
|
233
|
+
layer: 2,
|
|
234
|
+
fixable: true,
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
id: "L2-tester-memory",
|
|
238
|
+
description: "Tester agent memory directory",
|
|
239
|
+
checkType: "dir-exists",
|
|
240
|
+
path: ".claude/agent-memory/meto-tester",
|
|
241
|
+
layer: 2,
|
|
242
|
+
fixable: true,
|
|
243
|
+
},
|
|
244
|
+
];
|
|
245
|
+
// ---------------------------------------------------------------------------
|
|
246
|
+
// Layer 3 -- Governance
|
|
247
|
+
// ---------------------------------------------------------------------------
|
|
248
|
+
const LAYER_3_EXPECTATIONS = [
|
|
249
|
+
{
|
|
250
|
+
id: "L3-dod-exists",
|
|
251
|
+
description: "Definition of done workflow exists",
|
|
252
|
+
checkType: "file-exists",
|
|
253
|
+
path: "ai/workflows/definition-of-done.md",
|
|
254
|
+
layer: 3,
|
|
255
|
+
fixable: true,
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
id: "L3-code-guidelines-exists",
|
|
259
|
+
description: "Code guidelines workflow exists",
|
|
260
|
+
checkType: "file-exists",
|
|
261
|
+
path: "ai/workflows/code-guidelines.md",
|
|
262
|
+
layer: 3,
|
|
263
|
+
fixable: true,
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
id: "L3-developer-agent-refs-guidelines",
|
|
267
|
+
description: "Developer agent references code guidelines",
|
|
268
|
+
checkType: "file-contains",
|
|
269
|
+
path: ".claude/agents/developer-agent.md",
|
|
270
|
+
layer: 3,
|
|
271
|
+
fixable: true,
|
|
272
|
+
containsPattern: "code-guidelines",
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
id: "L3-tester-agent-refs-guidelines",
|
|
276
|
+
description: "Tester agent references code guidelines",
|
|
277
|
+
checkType: "file-contains",
|
|
278
|
+
path: ".claude/agents/tester-agent.md",
|
|
279
|
+
layer: 3,
|
|
280
|
+
fixable: true,
|
|
281
|
+
containsPattern: "code-guidelines",
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
id: "L3-commit-conventions-defined",
|
|
285
|
+
description: "Commit conventions defined",
|
|
286
|
+
checkType: "file-contains",
|
|
287
|
+
path: "CLAUDE.md",
|
|
288
|
+
layer: 3,
|
|
289
|
+
fixable: true,
|
|
290
|
+
containsPattern: "Commit",
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
id: "L3-session-checkpoint",
|
|
294
|
+
description: "Session checkpoint workflow present",
|
|
295
|
+
checkType: "file-exists",
|
|
296
|
+
path: "ai/workflows/session-checkpoint.md",
|
|
297
|
+
layer: 3,
|
|
298
|
+
fixable: true,
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
id: "L3-pm-agent-refs-dod",
|
|
302
|
+
description: "PM agent references definition of done",
|
|
303
|
+
checkType: "file-contains",
|
|
304
|
+
path: ".claude/agents/pm-agent.md",
|
|
305
|
+
layer: 3,
|
|
306
|
+
fixable: true,
|
|
307
|
+
containsPattern: "definition-of-done",
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
id: "L3-developer-agent-refs-commit",
|
|
311
|
+
description: "Developer agent references commit conventions",
|
|
312
|
+
checkType: "file-contains",
|
|
313
|
+
path: ".claude/agents/developer-agent.md",
|
|
314
|
+
layer: 3,
|
|
315
|
+
fixable: true,
|
|
316
|
+
containsPattern: "commit",
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
id: "L3-tester-agent-refs-dod",
|
|
320
|
+
description: "Tester agent references definition of done",
|
|
321
|
+
checkType: "file-contains",
|
|
322
|
+
path: ".claude/agents/tester-agent.md",
|
|
323
|
+
layer: 3,
|
|
324
|
+
fixable: true,
|
|
325
|
+
containsPattern: "definition-of-done",
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
id: "L3-pm-agent-refs-memory",
|
|
329
|
+
description: "PM agent references memory file",
|
|
330
|
+
checkType: "file-contains",
|
|
331
|
+
path: ".claude/agents/pm-agent.md",
|
|
332
|
+
layer: 3,
|
|
333
|
+
fixable: true,
|
|
334
|
+
containsPattern: "agent-memory",
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
id: "L3-developer-agent-refs-memory",
|
|
338
|
+
description: "Developer agent references memory file",
|
|
339
|
+
checkType: "file-contains",
|
|
340
|
+
path: ".claude/agents/developer-agent.md",
|
|
341
|
+
layer: 3,
|
|
342
|
+
fixable: true,
|
|
343
|
+
containsPattern: "agent-memory",
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
id: "L3-tester-agent-refs-memory",
|
|
347
|
+
description: "Tester agent references memory file",
|
|
348
|
+
checkType: "file-contains",
|
|
349
|
+
path: ".claude/agents/tester-agent.md",
|
|
350
|
+
layer: 3,
|
|
351
|
+
fixable: true,
|
|
352
|
+
containsPattern: "agent-memory",
|
|
353
|
+
},
|
|
354
|
+
];
|
|
355
|
+
// ---------------------------------------------------------------------------
|
|
356
|
+
// Blueprint (all layers)
|
|
357
|
+
// ---------------------------------------------------------------------------
|
|
358
|
+
/**
|
|
359
|
+
* The complete audit blueprint. Layers are ordered; the scanner should
|
|
360
|
+
* evaluate them sequentially and gate higher layers on lower ones passing.
|
|
361
|
+
*
|
|
362
|
+
* Exported as a constant -- no runtime construction.
|
|
363
|
+
*/
|
|
364
|
+
export const AUDIT_BLUEPRINT = [
|
|
365
|
+
{
|
|
366
|
+
id: 0,
|
|
367
|
+
name: "Project Prerequisites",
|
|
368
|
+
expectations: LAYER_0_EXPECTATIONS,
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
id: 1,
|
|
372
|
+
name: "Methodology",
|
|
373
|
+
expectations: LAYER_1_EXPECTATIONS,
|
|
374
|
+
},
|
|
375
|
+
{
|
|
376
|
+
id: 2,
|
|
377
|
+
name: "Agents",
|
|
378
|
+
expectations: LAYER_2_EXPECTATIONS,
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
id: 3,
|
|
382
|
+
name: "Governance",
|
|
383
|
+
expectations: LAYER_3_EXPECTATIONS,
|
|
384
|
+
},
|
|
385
|
+
];
|
|
386
|
+
//# sourceMappingURL=blueprint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blueprint.js","sourceRoot":"","sources":["../../../src/cli/audit/blueprint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { TechStack } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Result of tech stack auto-detection.
|
|
4
|
+
*/
|
|
5
|
+
export interface DetectedStack {
|
|
6
|
+
/** The detected stack identifier matching TechStack presets, or "custom" */
|
|
7
|
+
stack: TechStack;
|
|
8
|
+
/** The manifest file that was used for detection */
|
|
9
|
+
detectedVia: string;
|
|
10
|
+
/** Human-readable label for the detected stack */
|
|
11
|
+
label: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Auto-detects the tech stack of a project by examining manifest files
|
|
15
|
+
* in the project root directory.
|
|
16
|
+
*
|
|
17
|
+
* Detection order:
|
|
18
|
+
* 1. package.json — inspects dependencies for Next.js, React Native,
|
|
19
|
+
* Vite+React, or falls back to Node.js CLI
|
|
20
|
+
* 2. go.mod — Go
|
|
21
|
+
* 3. pyproject.toml or requirements.txt — Python (FastAPI preset)
|
|
22
|
+
* 4. pubspec.yaml — Flutter
|
|
23
|
+
* 5. Cargo.toml — Rust (returns "custom" since no Rust preset exists)
|
|
24
|
+
*
|
|
25
|
+
* Root-level manifests only. Does not recurse into subdirectories.
|
|
26
|
+
*
|
|
27
|
+
* @param projectDir - Absolute path to the project root directory
|
|
28
|
+
* @returns The detected stack result, or a "custom" fallback if no manifest is found
|
|
29
|
+
*/
|
|
30
|
+
export declare function detectStack(projectDir: string): Promise<DetectedStack>;
|
|
31
|
+
//# sourceMappingURL=detect-stack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-stack.d.ts","sourceRoot":"","sources":["../../../src/cli/audit/detect-stack.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,4EAA4E;IAC5E,KAAK,EAAE,SAAS,CAAC;IACjB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,KAAK,EAAE,MAAM,CAAC;CACf;AAiGD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAyD5E"}
|