mustard-claude 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.
Files changed (72) hide show
  1. package/README.md +198 -0
  2. package/bin/mustard.js +5 -0
  3. package/dist/analyzers/llm.d.ts +13 -0
  4. package/dist/analyzers/llm.js +339 -0
  5. package/dist/analyzers/llm.js.map +1 -0
  6. package/dist/analyzers/semantic.d.ts +13 -0
  7. package/dist/analyzers/semantic.js +215 -0
  8. package/dist/analyzers/semantic.js.map +1 -0
  9. package/dist/cli.d.ts +1 -0
  10. package/dist/cli.js +42 -0
  11. package/dist/cli.js.map +1 -0
  12. package/dist/commands/init.d.ts +5 -0
  13. package/dist/commands/init.js +377 -0
  14. package/dist/commands/init.js.map +1 -0
  15. package/dist/commands/sync.d.ts +5 -0
  16. package/dist/commands/sync.js +235 -0
  17. package/dist/commands/sync.js.map +1 -0
  18. package/dist/commands/update.d.ts +8 -0
  19. package/dist/commands/update.js +237 -0
  20. package/dist/commands/update.js.map +1 -0
  21. package/dist/generators/claude-md-llm.d.ts +5 -0
  22. package/dist/generators/claude-md-llm.js +101 -0
  23. package/dist/generators/claude-md-llm.js.map +1 -0
  24. package/dist/generators/claude-md-template.d.ts +5 -0
  25. package/dist/generators/claude-md-template.js +273 -0
  26. package/dist/generators/claude-md-template.js.map +1 -0
  27. package/dist/generators/commands.d.ts +17 -0
  28. package/dist/generators/commands.js +845 -0
  29. package/dist/generators/commands.js.map +1 -0
  30. package/dist/generators/context.d.ts +11 -0
  31. package/dist/generators/context.js +621 -0
  32. package/dist/generators/context.js.map +1 -0
  33. package/dist/generators/hooks.d.ts +5 -0
  34. package/dist/generators/hooks.js +128 -0
  35. package/dist/generators/hooks.js.map +1 -0
  36. package/dist/generators/index.d.ts +11 -0
  37. package/dist/generators/index.js +541 -0
  38. package/dist/generators/index.js.map +1 -0
  39. package/dist/generators/prompts.d.ts +13 -0
  40. package/dist/generators/prompts.js +579 -0
  41. package/dist/generators/prompts.js.map +1 -0
  42. package/dist/generators/registry.d.ts +5 -0
  43. package/dist/generators/registry.js +93 -0
  44. package/dist/generators/registry.js.map +1 -0
  45. package/dist/scanners/dependencies.d.ts +7 -0
  46. package/dist/scanners/dependencies.js +195 -0
  47. package/dist/scanners/dependencies.js.map +1 -0
  48. package/dist/scanners/index.d.ts +6 -0
  49. package/dist/scanners/index.js +37 -0
  50. package/dist/scanners/index.js.map +1 -0
  51. package/dist/scanners/samples.d.ts +8 -0
  52. package/dist/scanners/samples.js +193 -0
  53. package/dist/scanners/samples.js.map +1 -0
  54. package/dist/scanners/stack.d.ts +5 -0
  55. package/dist/scanners/stack.js +294 -0
  56. package/dist/scanners/stack.js.map +1 -0
  57. package/dist/scanners/structure.d.ts +5 -0
  58. package/dist/scanners/structure.js +274 -0
  59. package/dist/scanners/structure.js.map +1 -0
  60. package/dist/services/grepai.d.ts +25 -0
  61. package/dist/services/grepai.js +89 -0
  62. package/dist/services/grepai.js.map +1 -0
  63. package/dist/services/ollama.d.ts +22 -0
  64. package/dist/services/ollama.js +86 -0
  65. package/dist/services/ollama.js.map +1 -0
  66. package/dist/services/package-manager.d.ts +95 -0
  67. package/dist/services/package-manager.js +164 -0
  68. package/dist/services/package-manager.js.map +1 -0
  69. package/dist/types.d.ts +233 -0
  70. package/dist/types.js +5 -0
  71. package/dist/types.js.map +1 -0
  72. package/package.json +56 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-md-llm.js","sourceRoot":"","sources":["../../src/generators/claude-md-llm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { ProjectInfo, Analysis } from '../types.js';
2
+ /**
3
+ * Generate CLAUDE.md using templates (fallback when Ollama is unavailable)
4
+ */
5
+ export declare function generateClaudeMd(projectInfo: ProjectInfo, analysis: Analysis): string;
@@ -0,0 +1,273 @@
1
+ import { getRunCommand } from '../services/package-manager.js';
2
+ /**
3
+ * Generate CLAUDE.md using templates (fallback when Ollama is unavailable)
4
+ */
5
+ export function generateClaudeMd(projectInfo, analysis) {
6
+ const sections = [
7
+ generateHeader(projectInfo),
8
+ generateQuickReference(projectInfo),
9
+ generateProjectState(projectInfo),
10
+ generateDelegation(),
11
+ generateCommands(projectInfo),
12
+ generatePipeline(),
13
+ generateEntityRegistry(projectInfo),
14
+ generateGrepai(),
15
+ generateRules(projectInfo, analysis),
16
+ generateLinks()
17
+ ];
18
+ return sections.join('\n\n---\n\n');
19
+ }
20
+ function generateHeader(projectInfo) {
21
+ return `# ${projectInfo.name} - Instructions for Claude
22
+
23
+ > Auto-generated by **Mustard CLI v2.0**
24
+
25
+ Type: **${projectInfo.type}**
26
+ Package Manager: **${projectInfo.packageManager ?? 'npm'}**`;
27
+ }
28
+ function generateQuickReference(projectInfo) {
29
+ const patterns = projectInfo.patterns;
30
+ return `## 1. Quick Reference
31
+
32
+ \`\`\`
33
+ Entities: PascalCase singular → Contract, Person, Company
34
+ DB Tables: snake_case plural → contracts, people, companies
35
+ Endpoints: /api/kebab-case → /api/contracts, /api/people
36
+ Components: PascalCase.tsx → ContractForm.tsx
37
+ Hooks: use + camelCase → useContracts.ts
38
+ \`\`\`
39
+
40
+ ### Detected Conventions
41
+
42
+ | Type | Pattern |
43
+ |------|---------|
44
+ | Classes | ${patterns?.classes ?? 'PascalCase'} |
45
+ | Files | ${typeof patterns?.files === 'object' ? JSON.stringify(patterns.files) : (patterns?.files ?? 'varies')} |
46
+ | Folders | ${patterns?.folders ?? 'plural'} |`;
47
+ }
48
+ function generateProjectState(projectInfo) {
49
+ const rows = projectInfo.stacks.map(s => {
50
+ const tech = s.name + (s.version ? ` ${s.version}` : '');
51
+ return `| ${s.path} | ${tech} | - | ✅ Detected |`;
52
+ }).join('\n');
53
+ return `## 2. Project State
54
+
55
+ | Project | Technology | Port | Status |
56
+ |---------|------------|------|--------|
57
+ ${rows}`;
58
+ }
59
+ function generateDelegation() {
60
+ return `## 3. DELEGATION VIA TASK TOOL
61
+
62
+ > 💡 **RECOMMENDED:** Use Task tool to delegate tasks to specialized agents.
63
+
64
+ ### Available Agents
65
+
66
+ | Agent | Usage | Model |
67
+ |-------|-------|-------|
68
+ | \`Explore\` | Explore codebase, find files | haiku |
69
+ | \`Plan\` | Plan complex implementations | sonnet |
70
+ | \`general-purpose\` | Implement code, bug fixes | opus/sonnet |
71
+ | \`Bash\` | Execute terminal commands | - |
72
+
73
+ ### Delegation Map
74
+
75
+ | Request | Agent | Model |
76
+ |---------|-------|-------|
77
+ | Bug fix | \`general-purpose\` | opus |
78
+ | New feature | \`Plan\` → \`general-purpose\` | sonnet/opus |
79
+ | Explore code | \`Explore\` | haiku |
80
+ | Backend/Frontend/DB | \`general-purpose\` | opus |`;
81
+ }
82
+ function generateCommands(projectInfo) {
83
+ // Detect appropriate commands based on stack
84
+ const hasNode = projectInfo.stacks.some(s => ['react', 'nextjs', 'node'].includes(s.name));
85
+ const hasDotnet = projectInfo.stacks.some(s => s.name === 'dotnet');
86
+ const hasPython = projectInfo.stacks.some(s => s.name === 'python');
87
+ let runCmd = getRunCommand(projectInfo.packageManager ?? 'npm', 'dev');
88
+ if (hasNode)
89
+ runCmd = getRunCommand(projectInfo.packageManager ?? 'npm', 'dev');
90
+ if (hasDotnet)
91
+ runCmd = 'dotnet run';
92
+ if (hasPython)
93
+ runCmd = 'python main.py';
94
+ return `## 4. Available Commands
95
+
96
+ > **Note:** Mustard commands use the \`mtd-{category}-{action}\` pattern.
97
+ > They are in \`commands/mustard/\`. Create your own in \`commands/\` - preserved on updates.
98
+
99
+ ### Pipeline
100
+
101
+ | Command | Description |
102
+ |---------|-------------|
103
+ | \`/mtd-pipeline-feature <name>\` | **Single entry point for features** - Starts full pipeline |
104
+ | \`/mtd-pipeline-bugfix <error>\` | **Single entry point for bugs** - Diagnosis + fix |
105
+ | \`/mtd-pipeline-approve\` | Approve spec and start implementation |
106
+ | \`/mtd-pipeline-complete\` | Finalize pipeline |
107
+ | \`/mtd-pipeline-resume\` | Resume active pipeline |
108
+
109
+ ### Git
110
+
111
+ | Command | Description |
112
+ |---------|-------------|
113
+ | \`/mtd-git-commit\` | Simple commit |
114
+ | \`/mtd-git-push\` | Commit and push |
115
+ | \`/mtd-git-merge\` | Merge to main |
116
+
117
+ ### Validate
118
+
119
+ | Command | Description |
120
+ |---------|-------------|
121
+ | \`/mtd-validate-build\` | Build + type-check |
122
+ | \`/mtd-validate-status\` | Consolidated status |
123
+
124
+ ### Sync
125
+
126
+ | Command | Description |
127
+ |---------|-------------|
128
+ | \`/mtd-sync-registry\` | Update Entity Registry |
129
+ | \`/mtd-sync-dependencies\` | Install dependencies |
130
+ | \`/mtd-sync-context\` | Load project context |
131
+
132
+ ### Report
133
+
134
+ | Command | Description |
135
+ |---------|-------------|
136
+ | \`/mtd-report-daily\` | Daily progress report |
137
+ | \`/mtd-report-weekly\` | Weekly progress report |
138
+
139
+ ### Scan
140
+
141
+ | Command | Description |
142
+ |---------|-------------|
143
+ | \`/mtd-scan-project\` | Scan project structure |`;
144
+ }
145
+ function generatePipeline() {
146
+ return `## 5. Single Pipeline
147
+
148
+ \`\`\`
149
+ /mtd-pipeline-feature or /mtd-pipeline-bugfix
150
+
151
+
152
+ EXPLORE (Task Explore)
153
+
154
+
155
+ SPEC (spec/active/{name}/spec.md)
156
+
157
+ ┌────┴────┐
158
+ ▼ ▼
159
+ [APPROVED] [ITERATE]
160
+ │ │
161
+ ▼ (back)
162
+ IMPLEMENT (Task general-purpose)
163
+
164
+
165
+ REVIEW
166
+
167
+
168
+ COMPLETED
169
+ \`\`\``;
170
+ }
171
+ function generateEntityRegistry(projectInfo) {
172
+ // Build patterns based on detected structure
173
+ const patterns = {};
174
+ const hasDrizzle = projectInfo.stacks.some(s => s.name === 'drizzle');
175
+ const hasDotnet = projectInfo.stacks.some(s => s.name === 'dotnet');
176
+ const hasReact = projectInfo.stacks.some(s => ['react', 'nextjs'].includes(s.name));
177
+ if (hasDrizzle) {
178
+ const dbPath = projectInfo.stacks.find(s => s.name === 'drizzle')?.path ?? 'database';
179
+ patterns.db = `${dbPath}/schema/{e}.ts`;
180
+ }
181
+ if (hasDotnet) {
182
+ const bePath = projectInfo.stacks.find(s => s.name === 'dotnet')?.path ?? 'backend';
183
+ patterns.be = `${bePath}/Modules/{E}/`;
184
+ }
185
+ if (hasReact) {
186
+ const fePath = projectInfo.stacks.find(s => ['react', 'nextjs'].includes(s.name))?.path ?? 'frontend';
187
+ patterns.fe = `${fePath}/src/features/{e}/`;
188
+ }
189
+ return `## 6. Entity Registry (REQUIRED)
190
+
191
+ **CRITICAL RULE**: Before searching for ANY entity files,
192
+ ALWAYS read \`.claude/entity-registry.json\` first.
193
+
194
+ ### Format
195
+
196
+ \`\`\`json
197
+ {
198
+ "_meta": { "version": "2.1" },
199
+ "_p": ${JSON.stringify(patterns, null, 4)},
200
+ "e": {
201
+ "Entity1": 1,
202
+ "Entity2": 1
203
+ }
204
+ }
205
+ \`\`\`
206
+
207
+ Paths are derived from \`_p\` (patterns) + entity name.`;
208
+ }
209
+ function generateGrepai() {
210
+ return `## 7. grepai - Semantic Search
211
+
212
+ Use grepai as the preferred tool for code search:
213
+
214
+ \`\`\`javascript
215
+ // Semantic search
216
+ grepai_search({ query: "authentication flow" })
217
+
218
+ // Call tracing
219
+ grepai_trace_callers({ symbol: "SaveContract" })
220
+ grepai_trace_callees({ symbol: "ValidatePayment" })
221
+ \`\`\`
222
+
223
+ ### Search Rules
224
+
225
+ | Tool | Recommendation |
226
+ |------|----------------|
227
+ | \`grepai_search\` | ✅ Prefer for semantic search |
228
+ | \`grepai_trace_*\` | ✅ Use to understand dependencies |
229
+ | \`Grep\` | ⚠️ Use only if grepai is unavailable |
230
+ | \`Glob\` | ⚠️ Use for specific file patterns |`;
231
+ }
232
+ function generateRules(projectInfo, analysis) {
233
+ const rules = analysis.rules ?? [];
234
+ const rulesText = rules.length > 0
235
+ ? rules.map(r => `- ${r}`).join('\n')
236
+ : `- Follow project naming conventions
237
+ - Use dependency injection
238
+ - Keep code testable and modular
239
+ - Document public APIs`;
240
+ return `## 8. Rules
241
+
242
+ ### Enforcement Rules
243
+
244
+ | Level | Rule | Description |
245
+ |-------|------|-------------|
246
+ | L0 | Delegation | Main Claude does NOT implement code |
247
+ | L1 | grepai | Prefer grepai for semantic search |
248
+ | L2 | Pipeline | Pipeline required for features/bugs |
249
+ | L3 | Patterns | Follow naming conventions |
250
+
251
+ ### Project Rules
252
+
253
+ ${rulesText}`;
254
+ }
255
+ function generateLinks() {
256
+ return `## 9. Links
257
+
258
+ ### Core
259
+ - [Enforcement](./core/enforcement.md)
260
+ - [Naming Conventions](./core/naming-conventions.md)
261
+ - [Pipeline](./core/pipeline.md)
262
+
263
+ ### Commands
264
+ - [Mustard Commands](./commands/mustard/) - Core commands (managed by Mustard)
265
+ - [User Commands](./commands/) - Custom commands (preserved on updates)
266
+
267
+ ### Prompts
268
+ - [Prompts Index](./prompts/_index.md)
269
+
270
+ ### Hooks
271
+ - [enforce-pipeline.js](./hooks/enforce-pipeline.js)`;
272
+ }
273
+ //# sourceMappingURL=claude-md-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-md-template.js","sourceRoot":"","sources":["../../src/generators/claude-md-template.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { ProjectInfo, GeneratedCommands } from '../types.js';
2
+ /**
3
+ * Mustard commands subfolder
4
+ * Commands generated by Mustard go in commands/mustard/
5
+ * User-created commands go directly in commands/
6
+ */
7
+ export declare const MUSTARD_COMMANDS_FOLDER = "mustard";
8
+ /**
9
+ * Command prefix for Mustard commands
10
+ */
11
+ export declare const MUSTARD_COMMAND_PREFIX = "mtd";
12
+ /**
13
+ * Generate command files
14
+ * All generated commands go in the mustard/ subfolder
15
+ * Pattern: mtd-{category}-{action}
16
+ */
17
+ export declare function generateCommands(projectInfo: ProjectInfo): GeneratedCommands;