meto-cli 0.10.0 → 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.
Files changed (38) hide show
  1. package/dist/cli/audit/blueprint.d.ts +53 -0
  2. package/dist/cli/audit/blueprint.d.ts.map +1 -0
  3. package/dist/cli/audit/blueprint.js +386 -0
  4. package/dist/cli/audit/blueprint.js.map +1 -0
  5. package/dist/cli/audit/detect-stack.d.ts +31 -0
  6. package/dist/cli/audit/detect-stack.d.ts.map +1 -0
  7. package/dist/cli/audit/detect-stack.js +154 -0
  8. package/dist/cli/audit/detect-stack.js.map +1 -0
  9. package/dist/cli/audit/fixer.d.ts +75 -0
  10. package/dist/cli/audit/fixer.d.ts.map +1 -0
  11. package/dist/cli/audit/fixer.js +802 -0
  12. package/dist/cli/audit/fixer.js.map +1 -0
  13. package/dist/cli/audit/index.d.ts +24 -0
  14. package/dist/cli/audit/index.d.ts.map +1 -0
  15. package/dist/cli/audit/index.js +212 -0
  16. package/dist/cli/audit/index.js.map +1 -0
  17. package/dist/cli/audit/reporter.d.ts +42 -0
  18. package/dist/cli/audit/reporter.d.ts.map +1 -0
  19. package/dist/cli/audit/reporter.js +101 -0
  20. package/dist/cli/audit/reporter.js.map +1 -0
  21. package/dist/cli/audit/scanner.d.ts +48 -0
  22. package/dist/cli/audit/scanner.d.ts.map +1 -0
  23. package/dist/cli/audit/scanner.js +202 -0
  24. package/dist/cli/audit/scanner.js.map +1 -0
  25. package/dist/cli/index.js +6 -0
  26. package/dist/cli/index.js.map +1 -1
  27. package/dist/cli/renderer.d.ts.map +1 -1
  28. package/dist/cli/renderer.js +3 -1
  29. package/dist/cli/renderer.js.map +1 -1
  30. package/dist/cli/stacks.d.ts +11 -0
  31. package/dist/cli/stacks.d.ts.map +1 -1
  32. package/dist/cli/stacks.js +82 -0
  33. package/dist/cli/stacks.js.map +1 -1
  34. package/package.json +1 -1
  35. package/templates/.claude/agents/developer-agent.md +4 -1
  36. package/templates/.claude/agents/tester-agent.md +4 -1
  37. package/templates/CLAUDE.md +3 -0
  38. package/templates/ai/workflows/code-guidelines.md +46 -0
@@ -0,0 +1,202 @@
1
+ import { readdir, readFile, stat } from "node:fs/promises";
2
+ import { join } from "node:path";
3
+ // ---------------------------------------------------------------------------
4
+ // Filesystem helpers
5
+ // ---------------------------------------------------------------------------
6
+ /**
7
+ * Checks whether the given path is a directory.
8
+ */
9
+ async function isDirectory(filePath) {
10
+ try {
11
+ const stats = await stat(filePath);
12
+ return stats.isDirectory();
13
+ }
14
+ catch {
15
+ return false;
16
+ }
17
+ }
18
+ /**
19
+ * Checks whether the given path is a file.
20
+ */
21
+ async function isFile(filePath) {
22
+ try {
23
+ const stats = await stat(filePath);
24
+ return stats.isFile();
25
+ }
26
+ catch {
27
+ return false;
28
+ }
29
+ }
30
+ /**
31
+ * Checks whether a file exists and contains a given substring.
32
+ */
33
+ async function fileContains(filePath, pattern) {
34
+ try {
35
+ const content = await readFile(filePath, "utf-8");
36
+ return content.toLowerCase().includes(pattern.toLowerCase());
37
+ }
38
+ catch {
39
+ return false;
40
+ }
41
+ }
42
+ // ---------------------------------------------------------------------------
43
+ // Custom check handlers for Layer 0
44
+ // ---------------------------------------------------------------------------
45
+ /**
46
+ * Custom check: README exists (case-insensitive match).
47
+ * The blueprint path is a glob hint like "README*".
48
+ */
49
+ async function checkReadmeGlob(projectDir) {
50
+ try {
51
+ const entries = await readdir(projectDir);
52
+ return entries.some((entry) => entry.toLowerCase().startsWith("readme"));
53
+ }
54
+ catch {
55
+ return false;
56
+ }
57
+ }
58
+ /**
59
+ * Custom check: at least one of the pipe-delimited directory names exists.
60
+ * The blueprint path looks like "src|lib|app|pkg|cmd|internal".
61
+ */
62
+ async function checkAlternativeDirs(projectDir, pathSpec) {
63
+ const candidates = pathSpec.split("|");
64
+ for (const candidate of candidates) {
65
+ if (await isDirectory(join(projectDir, candidate))) {
66
+ return true;
67
+ }
68
+ }
69
+ return false;
70
+ }
71
+ // ---------------------------------------------------------------------------
72
+ // Core scanner
73
+ // ---------------------------------------------------------------------------
74
+ /**
75
+ * Evaluates a single blueprint expectation against the project filesystem.
76
+ */
77
+ async function evaluateExpectation(projectDir, expectation) {
78
+ const fullPath = join(projectDir, expectation.path);
79
+ switch (expectation.checkType) {
80
+ case "file-exists": {
81
+ const exists = await isFile(fullPath);
82
+ return {
83
+ expectation,
84
+ status: exists ? "pass" : "fail",
85
+ message: exists
86
+ ? `Found ${expectation.path}`
87
+ : `Missing ${expectation.path}`,
88
+ };
89
+ }
90
+ case "dir-exists": {
91
+ const exists = await isDirectory(fullPath);
92
+ return {
93
+ expectation,
94
+ status: exists ? "pass" : "fail",
95
+ message: exists
96
+ ? `Found ${expectation.path}/`
97
+ : `Missing ${expectation.path}/`,
98
+ };
99
+ }
100
+ case "file-contains": {
101
+ const pattern = expectation.containsPattern;
102
+ if (pattern === undefined) {
103
+ return {
104
+ expectation,
105
+ status: "skip",
106
+ message: `No containsPattern defined for ${expectation.id}`,
107
+ };
108
+ }
109
+ const found = await fileContains(fullPath, pattern);
110
+ return {
111
+ expectation,
112
+ status: found ? "pass" : "fail",
113
+ message: found
114
+ ? `${expectation.path} contains expected content`
115
+ : `${expectation.path} is missing expected content`,
116
+ };
117
+ }
118
+ case "custom": {
119
+ // Dispatch based on known custom patterns
120
+ if (expectation.path.toLowerCase().startsWith("readme")) {
121
+ const exists = await checkReadmeGlob(projectDir);
122
+ return {
123
+ expectation,
124
+ status: exists ? "pass" : "fail",
125
+ message: exists
126
+ ? "README file found"
127
+ : "No README file found in the project root",
128
+ };
129
+ }
130
+ if (expectation.path.includes("|")) {
131
+ const exists = await checkAlternativeDirs(projectDir, expectation.path);
132
+ return {
133
+ expectation,
134
+ status: exists ? "pass" : "fail",
135
+ message: exists
136
+ ? "Source code directory found"
137
+ : `No source directory found (looked for: ${expectation.path.replace(/\|/g, ", ")})`,
138
+ };
139
+ }
140
+ // Fallback: treat as file-exists
141
+ const exists = await isFile(fullPath);
142
+ return {
143
+ expectation,
144
+ status: exists ? "pass" : "fail",
145
+ message: exists
146
+ ? `Found ${expectation.path}`
147
+ : `Missing ${expectation.path}`,
148
+ };
149
+ }
150
+ }
151
+ }
152
+ /**
153
+ * Scans all expectations in a single blueprint layer against the project filesystem.
154
+ * Returns a LayerScanResult with individual results for each expectation.
155
+ *
156
+ * This function is layer-agnostic -- it works with any BlueprintLayer.
157
+ */
158
+ export async function scanLayer(projectDir, layer) {
159
+ const results = [];
160
+ for (const expectation of layer.expectations) {
161
+ const result = await evaluateExpectation(projectDir, expectation);
162
+ results.push(result);
163
+ }
164
+ return {
165
+ layer,
166
+ results,
167
+ skipped: false,
168
+ };
169
+ }
170
+ /**
171
+ * Creates a skipped LayerScanResult for a layer that was gated out.
172
+ * All expectations are marked as "skip" with a reason.
173
+ */
174
+ export function skipLayer(layer, reason) {
175
+ const results = layer.expectations.map((expectation) => ({
176
+ expectation,
177
+ status: "skip",
178
+ message: reason,
179
+ }));
180
+ return {
181
+ layer,
182
+ results,
183
+ skipped: true,
184
+ skipReason: reason,
185
+ };
186
+ }
187
+ /**
188
+ * Checks whether all expectations in a LayerScanResult passed.
189
+ */
190
+ export function layerPassed(layerResult) {
191
+ if (layerResult.skipped) {
192
+ return false;
193
+ }
194
+ return layerResult.results.every((r) => r.status === "pass");
195
+ }
196
+ /**
197
+ * Returns all failed results from a LayerScanResult.
198
+ */
199
+ export function getFailedResults(layerResult) {
200
+ return layerResult.results.filter((r) => r.status === "fail");
201
+ }
202
+ //# sourceMappingURL=scanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../../src/cli/audit/scanner.ts"],"names":[],"mappings":"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"}
package/dist/cli/index.js CHANGED
@@ -11,6 +11,7 @@ import { DirectoryNotEmptyError, writeScaffold } from "./scaffold.js";
11
11
  import { formatFileTree } from "./tree.js";
12
12
  import { runDoctor } from "./doctor.js";
13
13
  import { runStatus } from "./status.js";
14
+ import { runAudit } from "./audit/index.js";
14
15
  import { generateWithAI, AIGenerationTimeoutError } from "./ai-generator.js";
15
16
  import { parseAIOutput, validateAIContent } from "./ai-parser.js";
16
17
  import { generateEpicAgents, readEpicAgentTemplate, generateSwarmSettings, parseEpics, } from "./swarm.js";
@@ -50,6 +51,7 @@ function printHelp() {
50
51
  " init Scaffold a new structured project",
51
52
  " init --dry-run Preview files without writing to disk",
52
53
  " init --no-ai Skip AI generation, use standard prompts",
54
+ " audit Check project prerequisites and methodology compliance",
53
55
  " doctor Check methodology health of the current project",
54
56
  " status Show swarm progress dashboard (reads SWARM_AWARENESS.md)",
55
57
  "",
@@ -310,6 +312,10 @@ async function main() {
310
312
  interruption.uninstall();
311
313
  return;
312
314
  }
315
+ if (arg === "audit") {
316
+ await runAudit();
317
+ return;
318
+ }
313
319
  if (arg === "doctor") {
314
320
  await runDoctor();
315
321
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/cli/renderer.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,YAAY,GACzB,MAAM,CA6CR;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,YAAY,EACnB,SAAS,CAAC,EAAE,kBAAkB,GAC7B,QAAQ,CA0CV;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,MAAM,CAOvE;AAqDD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAK5C;AAiCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,QAAQ,EAChB,YAAY,GAAE,YAAuB,GACpC,OAAO,CAAC,YAAY,EAAE,CAAC,CAwBzB"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/cli/renderer.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,sEAAsE;IACtE,YAAY,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,YAAY,GACzB,MAAM,CA6CR;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,YAAY,EACnB,SAAS,CAAC,EAAE,kBAAkB,GAC7B,QAAQ,CA4CV;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,MAAM,CAOvE;AAqDD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAK5C;AAiCD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,QAAQ,EAChB,YAAY,GAAE,YAAuB,GACpC,OAAO,CAAC,YAAY,EAAE,CAAC,CAwBzB"}
@@ -1,6 +1,6 @@
1
1
  import { readdir, readFile } from "node:fs/promises";
2
2
  import { basename, dirname, join, relative } from "node:path";
3
- import { getDefinitionOfDone, getStackDescription, getStarterEpics, } from "./stacks.js";
3
+ import { getCodeGuidelines, getDefinitionOfDone, getStackDescription, getStarterEpics, } from "./stacks.js";
4
4
  /**
5
5
  * Generates the Agents section for CLAUDE.md based on workflow mode.
6
6
  * Sprint mode includes the standard 3-agent table.
@@ -70,6 +70,7 @@ export function buildTokenMap(brief, aiContent) {
70
70
  VALUE_PROPOSITION: aiContent.valueProposition,
71
71
  OUT_OF_SCOPE: aiContent.outOfScope,
72
72
  CODE_CONVENTIONS: brief.codeConventions,
73
+ CODE_GUIDELINES_STACK: getCodeGuidelines(brief.techStack, brief.customStack),
73
74
  DEFINITION_OF_DONE: aiContent.definitionOfDone,
74
75
  STARTER_EPICS: aiContent.epics,
75
76
  STARTER_TASKS: aiContent.starterTasks,
@@ -86,6 +87,7 @@ export function buildTokenMap(brief, aiContent) {
86
87
  VALUE_PROPOSITION: brief.valueProposition,
87
88
  OUT_OF_SCOPE: brief.outOfScope,
88
89
  CODE_CONVENTIONS: brief.codeConventions,
90
+ CODE_GUIDELINES_STACK: getCodeGuidelines(brief.techStack, brief.customStack),
89
91
  DEFINITION_OF_DONE: getDefinitionOfDone(brief.techStack, brief.customStack),
90
92
  STARTER_EPICS: getStarterEpics(brief.techStack, brief.projectName, brief.customStack),
91
93
  STARTER_TASKS: "",
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/cli/renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/cli/renderer.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,17 @@ export declare function getStackDescription(stack: TechStack, customStack?: stri
23
23
  * @returns Formatted markdown string with Definition of Done checklist
24
24
  */
25
25
  export declare function getDefinitionOfDone(stack: TechStack, customStack?: string): string;
26
+ /**
27
+ * Returns stack-specific code guidelines for the selected tech stack.
28
+ *
29
+ * For preset stacks, returns guidelines tailored to the technology.
30
+ * For custom stacks, returns a placeholder to be filled by the user.
31
+ *
32
+ * @param stack - The selected tech stack preset
33
+ * @param customStack - The user's free-text stack description (when stack is "custom")
34
+ * @returns Formatted markdown string with stack-specific code guidelines
35
+ */
36
+ export declare function getCodeGuidelines(stack: TechStack, customStack?: string): string;
26
37
  /**
27
38
  * Returns starter epics for the selected tech stack.
28
39
  *
@@ -1 +1 @@
1
- {"version":3,"file":"stacks.d.ts","sourceRoot":"","sources":["../../src/cli/stacks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA6f5C;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAOR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAQR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAYR"}
1
+ {"version":3,"file":"stacks.d.ts","sourceRoot":"","sources":["../../src/cli/stacks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAukB5C;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAOR;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAQR;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,SAAS,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAQR;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,MAAM,EACnB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAYR"}
@@ -470,6 +470,70 @@ const FLUTTER_EPICS = `## E1 -- Project Setup
470
470
  **Goal:** Prepare app icons, splash screen, metadata, and production builds for App Store and Play Store submission.
471
471
  **Status:** Not started
472
472
  **Tasks:** To be sliced by @meto-pm`;
473
+ // ---------------------------------------------------------------------------
474
+ // Code Guidelines (stack-specific sections)
475
+ // ---------------------------------------------------------------------------
476
+ const NEXTJS_SUPABASE_GUIDELINES = `## Stack-Specific Guidelines (Next.js + Supabase)
477
+
478
+ - **Components:** Max 200 lines per component. Extract hooks into \`use*.ts\` files
479
+ - **API routes:** One route per file. Keep handlers under 50 lines — extract business logic to services
480
+ - **Supabase queries:** Never call Supabase directly from components — use a data access layer
481
+ - **Server vs Client:** Mark components explicitly with \`"use client"\` only when needed. Default to server components
482
+ - **Environment variables:** Never hardcode secrets. Use \`.env.local\` and document in \`.env.example\``;
483
+ const REACT_NATIVE_GUIDELINES = `## Stack-Specific Guidelines (React Native)
484
+
485
+ - **Components:** Max 200 lines. Extract hooks into \`use*.ts\` files
486
+ - **Styles:** Co-locate \`StyleSheet.create\` at the bottom of the component file, or extract to \`*.styles.ts\` if large
487
+ - **No inline styles** — always use StyleSheet for performance
488
+ - **Platform-specific code:** Use \`.ios.ts\` / \`.android.ts\` suffixes, not runtime \`Platform.OS\` checks in render
489
+ - **Navigation:** Keep screen components thin — extract business logic to hooks`;
490
+ const NODEJS_CLI_GUIDELINES = `## Stack-Specific Guidelines (Node.js CLI)
491
+
492
+ - **One command per file** — each subcommand gets its own module
493
+ - **No process.exit() in library code** — only at the top-level entry point
494
+ - **Stderr for errors, stdout for output** — never mix them
495
+ - **Graceful shutdown:** Handle SIGINT and SIGTERM for cleanup
496
+ - **No synchronous I/O** in hot paths — use async/await`;
497
+ const PYTHON_FASTAPI_GUIDELINES = `## Stack-Specific Guidelines (Python / FastAPI)
498
+
499
+ - **One router per domain** — e.g., \`routers/users.py\`, \`routers/orders.py\`
500
+ - **Pydantic models for all I/O** — never return raw dicts from endpoints
501
+ - **Type hints on every function** — mypy strict mode enforced
502
+ - **No business logic in route handlers** — extract to service layer
503
+ - **Max function length:** 30 lines (Python functions tend shorter than TS)`;
504
+ const GO_GUIDELINES = `## Stack-Specific Guidelines (Go)
505
+
506
+ - **Accept interfaces, return structs** — keep function signatures flexible
507
+ - **Error wrapping:** Use \`fmt.Errorf("context: %w", err)\` — never discard errors
508
+ - **No \`init()\` functions** unless absolutely necessary — prefer explicit initialization
509
+ - **Package naming:** Short, lowercase, no underscores. The package name is part of the API (\`http.Client\`, not \`httppackage.HTTPClient\`)
510
+ - **Test files:** \`*_test.go\` next to the source, same package for white-box tests`;
511
+ const VITE_REACT_GUIDELINES = `## Stack-Specific Guidelines (Vite + React)
512
+
513
+ - **Components:** Max 200 lines. Extract hooks into \`use*.ts\` files
514
+ - **State management:** Keep state as close to where it's used as possible. Lift only when shared
515
+ - **No prop drilling past 2 levels** — use context or a state library
516
+ - **CSS:** One stylesheet per component (\`*.module.css\`) or co-located Tailwind classes
517
+ - **Bundle awareness:** Lazy-load routes with \`React.lazy\` — never load everything upfront`;
518
+ const FLUTTER_GUIDELINES = `## Stack-Specific Guidelines (Flutter)
519
+
520
+ - **Widgets:** Max 200 lines per widget. Extract sub-widgets into separate files
521
+ - **No build method over 50 lines** — decompose into smaller widgets or extract methods
522
+ - **State management:** Use Riverpod/Bloc consistently — never mix \`setState\` with state management in the same feature
523
+ - **Const constructors:** Use \`const\` wherever possible for widget performance
524
+ - **No magic strings** — extract routes, asset paths, and keys to constants`;
525
+ const CUSTOM_STACK_GUIDELINES = `## Stack-Specific Guidelines
526
+
527
+ *Add guidelines specific to your chosen technology stack here.*`;
528
+ const STACK_GUIDELINES = {
529
+ "nextjs-supabase": NEXTJS_SUPABASE_GUIDELINES,
530
+ "react-native": REACT_NATIVE_GUIDELINES,
531
+ "nodejs-cli": NODEJS_CLI_GUIDELINES,
532
+ "python-fastapi": PYTHON_FASTAPI_GUIDELINES,
533
+ "go": GO_GUIDELINES,
534
+ "vite-react": VITE_REACT_GUIDELINES,
535
+ "flutter": FLUTTER_GUIDELINES,
536
+ };
473
537
  const STACK_EPICS = {
474
538
  "nextjs-supabase": NEXTJS_SUPABASE_EPICS,
475
539
  "react-native": REACT_NATIVE_EPICS,
@@ -516,6 +580,24 @@ export function getDefinitionOfDone(stack, customStack) {
516
580
  }
517
581
  return STACK_DODS[stack];
518
582
  }
583
+ /**
584
+ * Returns stack-specific code guidelines for the selected tech stack.
585
+ *
586
+ * For preset stacks, returns guidelines tailored to the technology.
587
+ * For custom stacks, returns a placeholder to be filled by the user.
588
+ *
589
+ * @param stack - The selected tech stack preset
590
+ * @param customStack - The user's free-text stack description (when stack is "custom")
591
+ * @returns Formatted markdown string with stack-specific code guidelines
592
+ */
593
+ export function getCodeGuidelines(stack, customStack) {
594
+ if (stack === "custom") {
595
+ return customStack !== undefined
596
+ ? `${CUSTOM_STACK_GUIDELINES}\n\n> Custom stack: ${customStack}. Add your technology-specific rules above.`
597
+ : CUSTOM_STACK_GUIDELINES;
598
+ }
599
+ return STACK_GUIDELINES[stack];
600
+ }
519
601
  /**
520
602
  * Returns starter epics for the selected tech stack.
521
603
  *
@@ -1 +1 @@
1
- {"version":3,"file":"stacks.js","sourceRoot":"","sources":["../../src/cli/stacks.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,2BAA2B,GAAG;;;;;;;;;;;;2CAYO,CAAC;AAE5C;;GAEG;AACH,MAAM,wBAAwB,GAAG;;;;;;;;;;;2CAWU,CAAC;AAE5C;;GAEG;AACH,MAAM,sBAAsB,GAAG;;;;;;;;;;;+CAWgB,CAAC;AAEhD;;GAEG;AACH,MAAM,0BAA0B,GAAG;;;;;;;;;;;;+CAYY,CAAC;AAEhD;;GAEG;AACH,MAAM,cAAc,GAAG;;;;;;;;;;;wDAWiC,CAAC;AAEzD;;GAEG;AACH,MAAM,sBAAsB,GAAG;;;;;;;;;;;;yCAYU,CAAC;AAE1C;;GAEG;AACH,MAAM,mBAAmB,GAAG;;;;;;;;;;;;yDAY6B,CAAC;AAE1D,MAAM,kBAAkB,GAAiD;IACvE,iBAAiB,EAAE,2BAA2B;IAC9C,cAAc,EAAE,wBAAwB;IACxC,YAAY,EAAE,sBAAsB;IACpC,gBAAgB,EAAE,0BAA0B;IAC5C,IAAI,EAAE,cAAc;IACpB,YAAY,EAAE,sBAAsB;IACpC,SAAS,EAAE,mBAAmB;CAC/B,CAAC;AAEF;;GAEG;AACH,MAAM,mBAAmB,GAAG;;;;;;;;;;;;0DAY8B,CAAC;AAE3D;;GAEG;AACH,MAAM,gBAAgB,GAAG;;;;;;;;;;;;6CAYoB,CAAC;AAE9C;;GAEG;AACH,MAAM,cAAc,GAAG;;;;;;;;;;;;sEAY+C,CAAC;AAEvE;;GAEG;AACH,MAAM,gBAAgB,GAAG;;;;;;;;kEAQyC,CAAC;AAEnE;;GAEG;AACH,MAAM,kBAAkB,GAAG;;;;;;;;;;;iCAWM,CAAC;AAElC;;GAEG;AACH,MAAM,MAAM,GAAG;;;;;;;;;;;wCAWyB,CAAC;AAEzC;;GAEG;AACH,MAAM,cAAc,GAAG;;;;;;;;;;;;2CAYoB,CAAC;AAE5C;;GAEG;AACH,MAAM,WAAW,GAAG;;;;;;;;;;;qCAWiB,CAAC;AAEtC,MAAM,UAAU,GAAiD;IAC/D,iBAAiB,EAAE,mBAAmB;IACtC,cAAc,EAAE,gBAAgB;IAChC,YAAY,EAAE,cAAc;IAC5B,gBAAgB,EAAE,kBAAkB;IACpC,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,cAAc;IAC5B,SAAS,EAAE,WAAW;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;oCAwBM,CAAC;AAErC;;GAEG;AACH,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;oCAwBS,CAAC;AAErC;;GAEG;AACH,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;oCAwBW,CAAC;AAErC;;GAEG;AACH,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;oCAwBS,CAAC;AAErC;;GAEG;AACH,MAAM,oBAAoB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;oCAwBO,CAAC;AAErC;;GAEG;AACH,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;oCAwBmB,CAAC;AAErC;;GAEG;AACH,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;oCAwBW,CAAC;AAErC;;GAEG;AACH,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;oCAwBc,CAAC;AAErC,MAAM,WAAW,GAAiD;IAChE,iBAAiB,EAAE,qBAAqB;IACxC,cAAc,EAAE,kBAAkB;IAClC,YAAY,EAAE,gBAAgB;IAC9B,gBAAgB,EAAE,oBAAoB;IACtC,IAAI,EAAE,QAAQ;IACd,YAAY,EAAE,gBAAgB;IAC9B,SAAS,EAAE,aAAa;CACzB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAgB,EAChB,WAAoB;IAEpB,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,WAAW,IAAI,uCAAuC,CAAC;QAC3E,OAAO,sBAAsB,WAAW,EAAE,CAAC;IAC7C,CAAC;IAED,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAAgB,EAChB,WAAoB;IAEpB,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,OAAO,WAAW,KAAK,SAAS;YAC9B,CAAC,CAAC,GAAG,gBAAgB,uBAAuB,WAAW,EAAE;YACzD,CAAC,CAAC,gBAAgB,CAAC;IACvB,CAAC;IAED,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAgB,EAChB,WAAmB,EACnB,WAAoB;IAEpB,MAAM,OAAO,GAAG,cAAc,WAAW,+JAA+J,CAAC;IAEzM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,IAAI,GACR,WAAW,KAAK,SAAS;YACvB,CAAC,CAAC,8BAA8B,WAAW,kDAAkD;YAC7F,CAAC,CAAC,EAAE,CAAC;QACT,OAAO,OAAO,GAAG,kBAAkB,GAAG,IAAI,CAAC;IAC7C,CAAC;IAED,OAAO,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"stacks.js","sourceRoot":"","sources":["../../src/cli/stacks.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "meto-cli",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "Scaffold structured software projects with built-in methodology",
5
5
  "type": "module",
6
6
  "bin": {
@@ -9,7 +9,8 @@ tools: Read, Write, Edit, Bash, Glob, Grep
9
9
  ## Session Start
10
10
  1. Read `CLAUDE.md`
11
11
  2. Read `.claude/agent-memory/meto-developer/MEMORY.md`
12
- 3. Proceed with task pickup
12
+ 3. Read `/ai/workflows/code-guidelines.md` enforce these during implementation
13
+ 4. Proceed with task pickup
13
14
 
14
15
  ## Session End
15
16
  Update `.claude/agent-memory/meto-developer/MEMORY.md` with anything worth remembering.
@@ -60,6 +61,8 @@ Never write to `/ai/backlog/`, `/ai/context/`, `tasks-backlog.md`, `tasks-todo.m
60
61
  - [ ] No commented-out code
61
62
  - [ ] Error states handled
62
63
  - [ ] No hardcoded secrets
64
+ - [ ] No file exceeds 300 lines (split if it does)
65
+ - [ ] No function exceeds 50 lines (extract if it does)
63
66
 
64
67
  ## Scope Discipline
65
68
  If task is larger than estimated mid-implementation:
@@ -10,7 +10,8 @@ tools: Read, Bash, Glob, Grep
10
10
  1. Read `CLAUDE.md`
11
11
  2. Read `.claude/agent-memory/meto-tester/MEMORY.md`
12
12
  3. Read `/ai/workflows/definition-of-done.md`
13
- 4. Proceed with validation
13
+ 4. Read `/ai/workflows/code-guidelines.md` — verify these during validation
14
+ 5. Proceed with validation
14
15
 
15
16
  ## Session End
16
17
  Update `.claude/agent-memory/meto-tester/MEMORY.md` with patterns worth remembering.
@@ -61,6 +62,8 @@ ONE item at a time — parallel writes corrupt the board. Always sequential.
61
62
  - [ ] Error states handled
62
63
  - [ ] No hardcoded secrets
63
64
  - [ ] No broken imports
65
+ - [ ] No file exceeds 300 lines (check changed files with `wc -l`)
66
+ - [ ] No function exceeds 50 lines
64
67
 
65
68
  ## Pass Note
66
69
  ```
@@ -108,6 +108,9 @@ chore(scope): description [bootstrap]
108
108
  <!-- Keep to 3-4 rules max. More rules = more ignored. Focus on what actually causes bugs. -->
109
109
  {{CODE_CONVENTIONS}}
110
110
 
111
+ ## Code Guidelines
112
+ See `/ai/workflows/code-guidelines.md` for file size limits, structure rules, naming, and stack-specific standards. Both `@meto-developer` and `@meto-tester` enforce these.
113
+
111
114
  ---
112
115
 
113
116
  ## Buildrack — Project Tracking
@@ -0,0 +1,46 @@
1
+ # Code Guidelines — {{PROJECT_NAME}}
2
+
3
+ These guidelines are enforced by `@meto-developer` during implementation and verified by `@meto-tester` before sign-off.
4
+
5
+ ## File Size Limits
6
+
7
+ | Scope | Max Lines | Action |
8
+ |---|---|---|
9
+ | Single file | 300 | Split into focused modules |
10
+ | Single function/method | 50 | Extract helper functions |
11
+ | Single React component | 200 | Break into sub-components |
12
+
13
+ If a file exceeds these limits, refactor before adding more code. Never let a file grow past 500 lines — that is a hard stop.
14
+
15
+ ## Structure Rules
16
+
17
+ - **One responsibility per file** — if a file does two things, split it
18
+ - **No god files** — a file that everything imports from is a design smell
19
+ - **No circular imports** — if A imports B and B imports A, introduce a shared module or restructure
20
+ - **Flat over nested** — prefer 2 levels of directory nesting max; deeply nested trees are hard to navigate
21
+ - **Co-locate related code** — tests next to source, types next to usage
22
+
23
+ ## Naming
24
+
25
+ - Files: `kebab-case.ts` (e.g., `user-service.ts`)
26
+ - Classes/Types: `PascalCase` (e.g., `UserService`)
27
+ - Functions/Variables: `camelCase` (e.g., `getUserById`)
28
+ - Constants: `UPPER_SNAKE_CASE` (e.g., `MAX_RETRIES`)
29
+ - Boolean variables: prefix with `is`, `has`, `should` (e.g., `isLoading`)
30
+
31
+ ## Code Hygiene
32
+
33
+ - No `console.log` in committed code — use a proper logger
34
+ - No commented-out code — delete it, git has history
35
+ - No `any` types (TypeScript) — use `unknown` and narrow
36
+ - No magic numbers — extract to named constants
37
+ - No deeply nested conditionals (3+ levels) — use early returns or extract functions
38
+
39
+ ## Error Handling
40
+
41
+ - Handle errors at the boundary, not in every function
42
+ - Never swallow errors silently (`catch (e) {}`)
43
+ - Use typed errors where the language supports it
44
+ - User-facing errors must be human-readable, not stack traces
45
+
46
+ {{CODE_GUIDELINES_STACK}}