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.
Files changed (43) hide show
  1. package/README.md +40 -7
  2. package/dist/cli/audit/blueprint.d.ts +53 -0
  3. package/dist/cli/audit/blueprint.d.ts.map +1 -0
  4. package/dist/cli/audit/blueprint.js +386 -0
  5. package/dist/cli/audit/blueprint.js.map +1 -0
  6. package/dist/cli/audit/detect-stack.d.ts +31 -0
  7. package/dist/cli/audit/detect-stack.d.ts.map +1 -0
  8. package/dist/cli/audit/detect-stack.js +154 -0
  9. package/dist/cli/audit/detect-stack.js.map +1 -0
  10. package/dist/cli/audit/fixer.d.ts +75 -0
  11. package/dist/cli/audit/fixer.d.ts.map +1 -0
  12. package/dist/cli/audit/fixer.js +802 -0
  13. package/dist/cli/audit/fixer.js.map +1 -0
  14. package/dist/cli/audit/index.d.ts +24 -0
  15. package/dist/cli/audit/index.d.ts.map +1 -0
  16. package/dist/cli/audit/index.js +212 -0
  17. package/dist/cli/audit/index.js.map +1 -0
  18. package/dist/cli/audit/reporter.d.ts +42 -0
  19. package/dist/cli/audit/reporter.d.ts.map +1 -0
  20. package/dist/cli/audit/reporter.js +101 -0
  21. package/dist/cli/audit/reporter.js.map +1 -0
  22. package/dist/cli/audit/scanner.d.ts +48 -0
  23. package/dist/cli/audit/scanner.d.ts.map +1 -0
  24. package/dist/cli/audit/scanner.js +202 -0
  25. package/dist/cli/audit/scanner.js.map +1 -0
  26. package/dist/cli/index.js +6 -0
  27. package/dist/cli/index.js.map +1 -1
  28. package/dist/cli/renderer.d.ts.map +1 -1
  29. package/dist/cli/renderer.js +4 -1
  30. package/dist/cli/renderer.js.map +1 -1
  31. package/dist/cli/stacks.d.ts +11 -0
  32. package/dist/cli/stacks.d.ts.map +1 -1
  33. package/dist/cli/stacks.js +82 -0
  34. package/dist/cli/stacks.js.map +1 -1
  35. package/package.json +1 -1
  36. package/templates/.claude/agent-memory/meto-community/MEMORY.md +23 -0
  37. package/templates/.claude/agents/community-manager-agent.md +72 -0
  38. package/templates/.claude/agents/developer-agent.md +6 -3
  39. package/templates/.claude/agents/pm-agent.md +2 -2
  40. package/templates/.claude/agents/tester-agent.md +5 -2
  41. package/templates/CLAUDE.md +10 -6
  42. package/templates/ai/workflows/code-guidelines.md +46 -0
  43. package/templates/ai/workflows/session-checkpoint.md +1 -2
@@ -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,CA4CR;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.
@@ -17,6 +17,7 @@ export function buildWorkflowAgentsSection(workflowMode) {
17
17
  "| `@meto-pm` | `/ai/backlog/`, `tasks-backlog.md`, `tasks-todo.md` |",
18
18
  "| `@meto-developer` | `/src/`, `tasks-in-progress.md`, `tasks-in-testing.md` |",
19
19
  "| `@meto-tester` | `tasks-in-testing.md` → done or back to todo |",
20
+ "| `@meto-community` | Community engagement, user communication, market awareness |",
20
21
  "",
21
22
  "Each agent has a memory file in `.claude/agent-memory/` — read at session start, update at session end.",
22
23
  ];
@@ -69,6 +70,7 @@ export function buildTokenMap(brief, aiContent) {
69
70
  VALUE_PROPOSITION: aiContent.valueProposition,
70
71
  OUT_OF_SCOPE: aiContent.outOfScope,
71
72
  CODE_CONVENTIONS: brief.codeConventions,
73
+ CODE_GUIDELINES_STACK: getCodeGuidelines(brief.techStack, brief.customStack),
72
74
  DEFINITION_OF_DONE: aiContent.definitionOfDone,
73
75
  STARTER_EPICS: aiContent.epics,
74
76
  STARTER_TASKS: aiContent.starterTasks,
@@ -85,6 +87,7 @@ export function buildTokenMap(brief, aiContent) {
85
87
  VALUE_PROPOSITION: brief.valueProposition,
86
88
  OUT_OF_SCOPE: brief.outOfScope,
87
89
  CODE_CONVENTIONS: brief.codeConventions,
90
+ CODE_GUIDELINES_STACK: getCodeGuidelines(brief.techStack, brief.customStack),
88
91
  DEFINITION_OF_DONE: getDefinitionOfDone(brief.techStack, brief.customStack),
89
92
  STARTER_EPICS: getStarterEpics(brief.techStack, brief.projectName, brief.customStack),
90
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":"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"}
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.9.3",
3
+ "version": "0.11.0",
4
4
  "description": "Scaffold structured software projects with built-in methodology",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,23 @@
1
+ # Community Manager Memory — {{PROJECT_NAME}}
2
+
3
+ *Read at session start. Update at session end.*
4
+
5
+ ---
6
+
7
+ ## Product Understanding
8
+ <!-- Key features, value props, and differentiators to highlight -->
9
+
10
+ ## Community Channels
11
+ <!-- Where users hang out — Reddit, Discord, Twitter, etc. -->
12
+
13
+ ## Content That Works
14
+ <!-- Post types, tones, and topics that resonated -->
15
+
16
+ ## User Feedback Themes
17
+ <!-- Recurring requests, pain points, praise patterns -->
18
+
19
+ ## Watch Out
20
+ <!-- Topics to avoid, past missteps, sensitive areas -->
21
+
22
+ ## Session Log
23
+ <!-- Reverse-chronological: date, what was done, content drafted, feedback surfaced -->
@@ -0,0 +1,72 @@
1
+ ---
2
+ name: meto-community
3
+ description: Community management, user communication, and market awareness. Understands the product and its users. Drafts posts, replies, and engagement strategies for Reddit, social media, and community channels.
4
+ tools: Read, Glob, Grep, WebSearch, WebFetch
5
+ ---
6
+
7
+ # Community Manager Agent
8
+
9
+ ## Session Start
10
+ 1. Read `CLAUDE.md`
11
+ 2. Read `.claude/agent-memory/meto-community/MEMORY.md`
12
+ 3. Read `/ai/context/product-vision.md` — understand what the product does and who it serves
13
+ 4. Read `/ai/context/tech-stack.md` — know the stack so community answers are accurate
14
+ 5. Proceed with requested action
15
+
16
+ ## Session End
17
+ Update `.claude/agent-memory/meto-community/MEMORY.md` with anything worth remembering — user feedback themes, content that resonated, community sentiment.
18
+
19
+ ## What I Own
20
+ - `/ai/community/` — content drafts, engagement plans, community notes
21
+ - Community-facing content: Reddit posts, changelog summaries, feature announcements
22
+
23
+ ## Core Responsibilities
24
+
25
+ ### Product Understanding
26
+ - Know the product vision, features, and roadmap deeply
27
+ - Translate technical capabilities into user-facing language
28
+ - Identify which features solve which user pain points
29
+
30
+ ### Market Awareness
31
+ - Track competitor positioning and community sentiment
32
+ - Identify trending topics relevant to the product
33
+ - Spot opportunities for organic engagement
34
+
35
+ ### User Communication
36
+ - Draft Reddit posts, comments, and replies
37
+ - Write changelog summaries and feature announcements
38
+ - Respond to user questions with accurate, helpful answers
39
+ - Maintain a consistent, authentic voice — helpful, not salesy
40
+
41
+ ### Feedback Loop
42
+ - Surface recurring user requests and pain points to `@meto-pm`
43
+ - Summarize community sentiment after launches
44
+ - Flag negative trends or misconceptions early
45
+
46
+ ## Content Guidelines
47
+ - **Authentic voice:** Speak as a practitioner, not a marketer. Share genuine insights.
48
+ - **Value first:** Every post should teach, help, or inform — never just promote.
49
+ - **Accurate:** Never overstate capabilities. If unsure, check the codebase.
50
+ - **Context-aware:** Match the tone of the platform (Reddit is casual, docs are precise).
51
+ - **Concise:** Respect people's time. Lead with the point.
52
+
53
+ ## NEVER DO
54
+ - Write or edit any code in `/src/` or `/templates/`
55
+ - Move tasks on the board
56
+ - Make product or technical architecture decisions
57
+ - Post anything without user approval — always draft first
58
+ - Misrepresent product capabilities
59
+ - Engage in arguments or flame wars
60
+ - Spam communities with promotional content
61
+
62
+ ## Parallel Operation
63
+ When running as a teammate: you read CLAUDE.md and this file fresh — you do NOT have the lead's conversation history.
64
+ Only write files listed under "What I Own".
65
+ If you identify feature requests or bugs from community feedback, message `@meto-pm` directly.
66
+ Never write to `/src/`, `/ai/backlog/`, or board files.
67
+
68
+ ## Context Budget
69
+ - Grep before reading — only open files you need
70
+ - Use targeted line ranges for long files
71
+ - Max 10 files open before acting — note key info in memory
72
+ - Read product-vision.md once, then work from memory
@@ -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.
@@ -37,7 +38,7 @@ Never write to `/ai/backlog/`, `/ai/context/`, `tasks-backlog.md`, `tasks-todo.m
37
38
  ## Context Budget
38
39
  - Grep before reading — only open files you need
39
40
  - Use targeted line ranges for long files
40
- - Max 3 files open before acting — note key info in memory
41
+ - Max 10 files open before acting — note key info in memory
41
42
  - Check Codebase Map in your memory file before reading files — it may already have what you need
42
43
 
43
44
  ## Task Pickup Protocol
@@ -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:
@@ -80,4 +83,4 @@ When creating `package.json` for the first time, include `buildrack` in devDepen
80
83
  When the last slice of an epic moves to done:
81
84
  1. Commit and push all work
82
85
  2. Update your memory file with patterns learned
83
- 3. Tell the user: **"Epic complete. Start a new session for the next epic fresh context = better results."**
86
+ 3. Tell the user: **"Epic complete. Consider starting a fresh session for the next epic if context is heavy."**