@mindfoldhq/trellis 0.3.0-beta.5 → 0.3.0-beta.7
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/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +221 -8
- package/dist/commands/init.js.map +1 -1
- package/dist/configurators/claude.d.ts.map +1 -1
- package/dist/configurators/claude.js +9 -6
- package/dist/configurators/claude.js.map +1 -1
- package/dist/configurators/cursor.d.ts.map +1 -1
- package/dist/configurators/cursor.js +9 -6
- package/dist/configurators/cursor.js.map +1 -1
- package/dist/configurators/workflow.js +51 -59
- package/dist/configurators/workflow.js.map +1 -1
- package/dist/migrations/manifests/0.3.0-beta.7.json +11 -0
- package/dist/templates/claude/commands/trellis/break-loop.md +18 -0
- package/dist/templates/claude/hooks/inject-subagent-context.py +1 -1
- package/dist/templates/claude/hooks/session-start.py +40 -26
- package/dist/templates/claude/settings.json +3 -3
- package/dist/templates/extract.d.ts +2 -1
- package/dist/templates/extract.d.ts.map +1 -1
- package/dist/templates/extract.js +11 -10
- package/dist/templates/extract.js.map +1 -1
- package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md.txt +144 -4
- package/dist/templates/trellis/scripts/common/git_context.py +38 -20
- package/dist/templates/trellis/scripts/common/worktree.py +2 -3
- package/dist/templates/trellis/scripts/multi_agent/cleanup.py +34 -33
- package/dist/templates/trellis/scripts/multi_agent/create_pr.py +55 -29
- package/dist/templates/trellis/scripts/multi_agent/start.py +40 -38
- package/dist/templates/trellis/scripts/multi_agent/status.py +113 -54
- package/dist/templates/trellis/scripts/task.py +1 -1
- package/package.json +7 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA8RA,UAAU,WAAW;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAMD,wBAAsB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAoM9D"}
|
package/dist/commands/init.js
CHANGED
|
@@ -13,12 +13,228 @@ import { configureCursor } from "../configurators/cursor.js";
|
|
|
13
13
|
// configureOpenCodeAgents,
|
|
14
14
|
// } from "../configurators/opencode.js";
|
|
15
15
|
import { createWorkflowStructure } from "../configurators/workflow.js";
|
|
16
|
-
import { DIR_NAMES, PATHS } from "../constants/paths.js";
|
|
16
|
+
import { DIR_NAMES, FILE_NAMES, PATHS } from "../constants/paths.js";
|
|
17
17
|
import { VERSION } from "../cli/index.js";
|
|
18
18
|
import { agentsMdContent } from "../templates/markdown/index.js";
|
|
19
19
|
import { setWriteMode, writeFile, } from "../utils/file-writer.js";
|
|
20
20
|
import { detectProjectType, } from "../utils/project-detector.js";
|
|
21
21
|
import { initializeHashes } from "../utils/template-hash.js";
|
|
22
|
+
/**
|
|
23
|
+
* Detect available Python command (python3 or python)
|
|
24
|
+
*/
|
|
25
|
+
function getPythonCommand() {
|
|
26
|
+
// Try python3 first (preferred on macOS/Linux)
|
|
27
|
+
try {
|
|
28
|
+
execSync("python3 --version", { stdio: "pipe" });
|
|
29
|
+
return "python3";
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
// Fall back to python (common on Windows)
|
|
33
|
+
try {
|
|
34
|
+
execSync("python --version", { stdio: "pipe" });
|
|
35
|
+
return "python";
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
// Default to python3, let it fail with a clear error
|
|
39
|
+
return "python3";
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// =============================================================================
|
|
44
|
+
// Bootstrap Task Creation
|
|
45
|
+
// =============================================================================
|
|
46
|
+
const BOOTSTRAP_TASK_NAME = "00-bootstrap-guidelines";
|
|
47
|
+
function getBootstrapPrdContent(projectType) {
|
|
48
|
+
const header = `# Bootstrap: Fill Project Development Guidelines
|
|
49
|
+
|
|
50
|
+
## Purpose
|
|
51
|
+
|
|
52
|
+
Welcome to Trellis! This is your first task.
|
|
53
|
+
|
|
54
|
+
AI agents use \`.trellis/spec/\` to understand YOUR project's coding conventions.
|
|
55
|
+
**Empty templates = AI writes generic code that doesn't match your project style.**
|
|
56
|
+
|
|
57
|
+
Filling these guidelines is a one-time setup that pays off for every future AI session.
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## Your Task
|
|
62
|
+
|
|
63
|
+
Fill in the guideline files based on your **existing codebase**.
|
|
64
|
+
`;
|
|
65
|
+
const backendSection = `
|
|
66
|
+
|
|
67
|
+
### Backend Guidelines
|
|
68
|
+
|
|
69
|
+
| File | What to Document |
|
|
70
|
+
|------|------------------|
|
|
71
|
+
| \`.trellis/spec/backend/directory-structure.md\` | Where different file types go (routes, services, utils) |
|
|
72
|
+
| \`.trellis/spec/backend/database-guidelines.md\` | ORM, migrations, query patterns, naming conventions |
|
|
73
|
+
| \`.trellis/spec/backend/error-handling.md\` | How errors are caught, logged, and returned |
|
|
74
|
+
| \`.trellis/spec/backend/logging-guidelines.md\` | Log levels, format, what to log |
|
|
75
|
+
| \`.trellis/spec/backend/quality-guidelines.md\` | Code review standards, testing requirements |
|
|
76
|
+
`;
|
|
77
|
+
const frontendSection = `
|
|
78
|
+
|
|
79
|
+
### Frontend Guidelines
|
|
80
|
+
|
|
81
|
+
| File | What to Document |
|
|
82
|
+
|------|------------------|
|
|
83
|
+
| \`.trellis/spec/frontend/directory-structure.md\` | Component/page/hook organization |
|
|
84
|
+
| \`.trellis/spec/frontend/component-guidelines.md\` | Component patterns, props conventions |
|
|
85
|
+
| \`.trellis/spec/frontend/hook-guidelines.md\` | Custom hook naming, patterns |
|
|
86
|
+
| \`.trellis/spec/frontend/state-management.md\` | State library, patterns, what goes where |
|
|
87
|
+
| \`.trellis/spec/frontend/type-safety.md\` | TypeScript conventions, type organization |
|
|
88
|
+
| \`.trellis/spec/frontend/quality-guidelines.md\` | Linting, testing, accessibility |
|
|
89
|
+
`;
|
|
90
|
+
const footer = `
|
|
91
|
+
|
|
92
|
+
### Thinking Guides (Optional)
|
|
93
|
+
|
|
94
|
+
The \`.trellis/spec/guides/\` directory contains thinking guides that are already
|
|
95
|
+
filled with general best practices. You can customize them for your project if needed.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## How to Fill Guidelines
|
|
100
|
+
|
|
101
|
+
### Principle: Document Reality, Not Ideals
|
|
102
|
+
|
|
103
|
+
Write what your codebase **actually does**, not what you wish it did.
|
|
104
|
+
AI needs to match existing patterns, not introduce new ones.
|
|
105
|
+
|
|
106
|
+
### Steps
|
|
107
|
+
|
|
108
|
+
1. **Look at existing code** - Find 2-3 examples of each pattern
|
|
109
|
+
2. **Document the pattern** - Describe what you see
|
|
110
|
+
3. **Include file paths** - Reference real files as examples
|
|
111
|
+
4. **List anti-patterns** - What does your team avoid?
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Tips for Using AI
|
|
116
|
+
|
|
117
|
+
Ask AI to help analyze your codebase:
|
|
118
|
+
|
|
119
|
+
- "Look at my codebase and document the patterns you see"
|
|
120
|
+
- "Analyze my code structure and summarize the conventions"
|
|
121
|
+
- "Find error handling patterns and document them"
|
|
122
|
+
|
|
123
|
+
The AI will read your code and help you document it.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Completion Checklist
|
|
128
|
+
|
|
129
|
+
- [ ] Guidelines filled for your project type
|
|
130
|
+
- [ ] At least 2-3 real code examples in each guideline
|
|
131
|
+
- [ ] Anti-patterns documented
|
|
132
|
+
|
|
133
|
+
When done:
|
|
134
|
+
|
|
135
|
+
\`\`\`bash
|
|
136
|
+
python3 ./.trellis/scripts/task.py finish
|
|
137
|
+
python3 ./.trellis/scripts/task.py archive 00-bootstrap-guidelines
|
|
138
|
+
\`\`\`
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Why This Matters
|
|
143
|
+
|
|
144
|
+
After completing this task:
|
|
145
|
+
|
|
146
|
+
1. AI will write code that matches your project style
|
|
147
|
+
2. Relevant \`/trellis:before-*-dev\` commands will inject real context
|
|
148
|
+
3. \`/trellis:check-*\` commands will validate against your actual standards
|
|
149
|
+
4. Future developers (human or AI) will onboard faster
|
|
150
|
+
`;
|
|
151
|
+
let content = header;
|
|
152
|
+
if (projectType === "frontend") {
|
|
153
|
+
content += frontendSection;
|
|
154
|
+
}
|
|
155
|
+
else if (projectType === "backend") {
|
|
156
|
+
content += backendSection;
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// fullstack
|
|
160
|
+
content += backendSection;
|
|
161
|
+
content += frontendSection;
|
|
162
|
+
}
|
|
163
|
+
content += footer;
|
|
164
|
+
return content;
|
|
165
|
+
}
|
|
166
|
+
function getBootstrapTaskJson(developer, projectType) {
|
|
167
|
+
const today = new Date().toISOString().split("T")[0];
|
|
168
|
+
let subtasks;
|
|
169
|
+
let relatedFiles;
|
|
170
|
+
if (projectType === "frontend") {
|
|
171
|
+
subtasks = [
|
|
172
|
+
{ name: "Fill frontend guidelines", status: "pending" },
|
|
173
|
+
{ name: "Add code examples", status: "pending" },
|
|
174
|
+
];
|
|
175
|
+
relatedFiles = [".trellis/spec/frontend/"];
|
|
176
|
+
}
|
|
177
|
+
else if (projectType === "backend") {
|
|
178
|
+
subtasks = [
|
|
179
|
+
{ name: "Fill backend guidelines", status: "pending" },
|
|
180
|
+
{ name: "Add code examples", status: "pending" },
|
|
181
|
+
];
|
|
182
|
+
relatedFiles = [".trellis/spec/backend/"];
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
// fullstack
|
|
186
|
+
subtasks = [
|
|
187
|
+
{ name: "Fill backend guidelines", status: "pending" },
|
|
188
|
+
{ name: "Fill frontend guidelines", status: "pending" },
|
|
189
|
+
{ name: "Add code examples", status: "pending" },
|
|
190
|
+
];
|
|
191
|
+
relatedFiles = [".trellis/spec/backend/", ".trellis/spec/frontend/"];
|
|
192
|
+
}
|
|
193
|
+
return {
|
|
194
|
+
id: BOOTSTRAP_TASK_NAME,
|
|
195
|
+
name: "Bootstrap Guidelines",
|
|
196
|
+
description: "Fill in project development guidelines for AI agents",
|
|
197
|
+
status: "in_progress",
|
|
198
|
+
dev_type: "docs",
|
|
199
|
+
priority: "P1",
|
|
200
|
+
creator: developer,
|
|
201
|
+
assignee: developer,
|
|
202
|
+
createdAt: today,
|
|
203
|
+
completedAt: null,
|
|
204
|
+
commit: null,
|
|
205
|
+
subtasks,
|
|
206
|
+
relatedFiles,
|
|
207
|
+
notes: `First-time setup task created by trellis init (${projectType} project)`,
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Create bootstrap task for first-time setup
|
|
212
|
+
*/
|
|
213
|
+
function createBootstrapTask(cwd, developer, projectType) {
|
|
214
|
+
const taskDir = path.join(cwd, PATHS.TASKS, BOOTSTRAP_TASK_NAME);
|
|
215
|
+
const taskRelativePath = `${PATHS.TASKS}/${BOOTSTRAP_TASK_NAME}`;
|
|
216
|
+
// Check if already exists
|
|
217
|
+
if (fs.existsSync(taskDir)) {
|
|
218
|
+
return true; // Already exists, not an error
|
|
219
|
+
}
|
|
220
|
+
try {
|
|
221
|
+
// Create task directory
|
|
222
|
+
fs.mkdirSync(taskDir, { recursive: true });
|
|
223
|
+
// Write task.json
|
|
224
|
+
const taskJson = getBootstrapTaskJson(developer, projectType);
|
|
225
|
+
fs.writeFileSync(path.join(taskDir, FILE_NAMES.TASK_JSON), JSON.stringify(taskJson, null, 2), "utf-8");
|
|
226
|
+
// Write prd.md
|
|
227
|
+
const prdContent = getBootstrapPrdContent(projectType);
|
|
228
|
+
fs.writeFileSync(path.join(taskDir, FILE_NAMES.PRD), prdContent, "utf-8");
|
|
229
|
+
// Set as current task
|
|
230
|
+
const currentTaskFile = path.join(cwd, PATHS.CURRENT_TASK_FILE);
|
|
231
|
+
fs.writeFileSync(currentTaskFile, taskRelativePath, "utf-8");
|
|
232
|
+
return true;
|
|
233
|
+
}
|
|
234
|
+
catch {
|
|
235
|
+
return false;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
22
238
|
export async function init(options) {
|
|
23
239
|
const cwd = process.cwd();
|
|
24
240
|
// Generate ASCII art banner dynamically using FIGlet "Rebel" font
|
|
@@ -163,17 +379,14 @@ export async function init(options) {
|
|
|
163
379
|
// Initialize developer identity (silent - no output)
|
|
164
380
|
if (developerName) {
|
|
165
381
|
try {
|
|
382
|
+
const pythonCmd = getPythonCommand();
|
|
166
383
|
const scriptPath = path.join(cwd, PATHS.SCRIPTS, "init_developer.py");
|
|
167
|
-
execSync(
|
|
168
|
-
cwd,
|
|
169
|
-
stdio: "pipe", // Silent
|
|
170
|
-
});
|
|
171
|
-
// Create bootstrap feature to guide user through filling guidelines
|
|
172
|
-
const bootstrapScriptPath = path.join(cwd, PATHS.SCRIPTS, "create_bootstrap.py");
|
|
173
|
-
execSync(`python3 "${bootstrapScriptPath}" "${projectType}"`, {
|
|
384
|
+
execSync(`${pythonCmd} "${scriptPath}" "${developerName}"`, {
|
|
174
385
|
cwd,
|
|
175
386
|
stdio: "pipe", // Silent
|
|
176
387
|
});
|
|
388
|
+
// Create bootstrap task to guide user through filling guidelines
|
|
389
|
+
createBootstrapTask(cwd, developerName, projectType);
|
|
177
390
|
}
|
|
178
391
|
catch {
|
|
179
392
|
// Silent failure - user can run init_developer.py manually
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,kDAAkD;AAClD,WAAW;AACX,uBAAuB;AACvB,6BAA6B;AAC7B,yCAAyC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,SAAS,GAEV,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,iBAAiB,GAElB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D;;GAEG;AACH,SAAS,gBAAgB;IACvB,+CAA+C;IAC/C,IAAI,CAAC;QACH,QAAQ,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,0CAA0C;QAC1C,IAAI,CAAC;YACH,QAAQ,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAChD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,qDAAqD;YACrD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,0BAA0B;AAC1B,gFAAgF;AAEhF,MAAM,mBAAmB,GAAG,yBAAyB,CAAC;AAEtD,SAAS,sBAAsB,CAAC,WAAwB;IACtD,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;CAgBhB,CAAC;IAEA,MAAM,cAAc,GAAG;;;;;;;;;;;CAWxB,CAAC;IAEA,MAAM,eAAe,GAAG;;;;;;;;;;;;CAYzB,CAAC;IAEA,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DhB,CAAC;IAEA,IAAI,OAAO,GAAG,MAAM,CAAC;IACrB,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;QAC/B,OAAO,IAAI,eAAe,CAAC;IAC7B,CAAC;SAAM,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,IAAI,cAAc,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,YAAY;QACZ,OAAO,IAAI,cAAc,CAAC;QAC1B,OAAO,IAAI,eAAe,CAAC;IAC7B,CAAC;IACD,OAAO,IAAI,MAAM,CAAC;IAElB,OAAO,OAAO,CAAC;AACjB,CAAC;AAmBD,SAAS,oBAAoB,CAC3B,SAAiB,EACjB,WAAwB;IAExB,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAErD,IAAI,QAA4C,CAAC;IACjD,IAAI,YAAsB,CAAC;IAE3B,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;QAC/B,QAAQ,GAAG;YACT,EAAE,IAAI,EAAE,0BAA0B,EAAE,MAAM,EAAE,SAAS,EAAE;YACvD,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,SAAS,EAAE;SACjD,CAAC;QACF,YAAY,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;SAAM,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QACrC,QAAQ,GAAG;YACT,EAAE,IAAI,EAAE,yBAAyB,EAAE,MAAM,EAAE,SAAS,EAAE;YACtD,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,SAAS,EAAE;SACjD,CAAC;QACF,YAAY,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,YAAY;QACZ,QAAQ,GAAG;YACT,EAAE,IAAI,EAAE,yBAAyB,EAAE,MAAM,EAAE,SAAS,EAAE;YACtD,EAAE,IAAI,EAAE,0BAA0B,EAAE,MAAM,EAAE,SAAS,EAAE;YACvD,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,SAAS,EAAE;SACjD,CAAC;QACF,YAAY,GAAG,CAAC,wBAAwB,EAAE,yBAAyB,CAAC,CAAC;IACvE,CAAC;IAED,OAAO;QACL,EAAE,EAAE,mBAAmB;QACvB,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,sDAAsD;QACnE,MAAM,EAAE,aAAa;QACrB,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,SAAS;QACnB,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE,IAAI;QACZ,QAAQ;QACR,YAAY;QACZ,KAAK,EAAE,kDAAkD,WAAW,WAAW;KAChF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAC1B,GAAW,EACX,SAAiB,EACjB,WAAwB;IAExB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;IACjE,MAAM,gBAAgB,GAAG,GAAG,KAAK,CAAC,KAAK,IAAI,mBAAmB,EAAE,CAAC;IAEjE,0BAA0B;IAC1B,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,CAAC,+BAA+B;IAC9C,CAAC;IAED,IAAI,CAAC;QACH,wBAAwB;QACxB,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3C,kBAAkB;QAClB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC9D,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,EACxC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EACjC,OAAO,CACR,CAAC;QAEF,eAAe;QACf,MAAM,UAAU,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACvD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAE1E,sBAAsB;QACtB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAChE,EAAE,CAAC,aAAa,CAAC,eAAe,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAgBD,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAoB;IAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,kEAAkE;IAClE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,mEAAmE,CACpE,CACF,CAAC;IAEF,kCAAkC;IAClC,IAAI,SAAS,GAAc,KAAK,CAAC;IACjC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,SAAS,GAAG,OAAO,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC;IACpE,CAAC;SAAM,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QAChC,SAAS,GAAG,MAAM,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,YAAY,CAAC,SAAS,CAAC,CAAC;IAExB,mDAAmD;IACnD,IAAI,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IACjC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,0DAA0D;QAC1D,MAAM,SAAS,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QACxD,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,aAAa,GAAG,QAAQ,CAAC,sBAAsB,EAAE;oBAC/C,GAAG;oBACH,QAAQ,EAAE,OAAO;iBAClB,CAAC,CAAC,IAAI,EAAE,CAAC;YACZ,CAAC;YAAC,MAAM,CAAC;gBACP,+CAA+C;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACtE,CAAC;SAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACxB,6DAA6D;QAC7D,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CACR,wEAAwE;YACtE,wBAAwB,KAAK,CAAC,SAAS,mCAAmC;YAC1E,kEAAkE,CACrE,CACF,CAAC;QACF,aAAa,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC9C,OAAO,CAAC,aAAa,EAAE,CAAC;YACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC9C,aAAa,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,2CAA2C;IAC3C,MAAM,YAAY,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAE5C,IAAI,KAAe,CAAC;IACpB,IAAI,WAAW,GAAgB,YAAY,CAAC;IAE5C,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,kCAAkC;QAClC,KAAK,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC7B,6BAA6B;QAC7B,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,WAAW,GAAG,WAAW,CAAC;QAC5B,CAAC;IACH,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAC5C,YAAY;QACZ,KAAK,GAAG,EAAE,CAAC;QACX,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;QACD,kDAAkD;QAClD,0BAA0B;QAC1B,4BAA4B;QAC5B,IAAI;QACJ,6BAA6B;QAC7B,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,WAAW,GAAG,WAAW,CAAC;QAC5B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,mBAAmB;QACnB,MAAM,SAAS,GAOT;YACJ;gBACE,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,+BAA+B;gBACxC,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;oBAClD,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE;oBACvD,kDAAkD;oBAClD,2DAA2D;iBAC5D;aACF;SACF,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAc,SAAS,CAAC,CAAC;QAC9D,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAEtB,6BAA6B;QAC7B,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,WAAW,GAAG,WAAW,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,2DAA2D;IAE3D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,mDAAmD,CAAC,CAClE,CAAC;QACF,OAAO;IACT,CAAC;IAED,mCAAmC;IAEnC,8CAA8C;IAC9C,oCAAoC;IACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAC7D,MAAM,uBAAuB,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtE,yCAAyC;IACzC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACnE,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAEvC,sEAAsE;IACtE,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpD,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CACtE,CAAC;QACF,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,kDAAkD;IAClD,oCAAoC;IACpC,2DAA2D;IAC3D,kCAAkC;IAClC,EAAE;IACF,gCAAgC;IAChC,oEAAoE;IACpE,0CAA0C;IAC1C,MAAM;IACN,IAAI;IAEJ,qCAAqC;IACrC,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAE3B,uDAAuD;IACvD,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,eAAe,WAAW,6BAA6B,CAAC,CACpE,CAAC;IACJ,CAAC;IAED,qDAAqD;IACrD,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;YACtE,QAAQ,CAAC,GAAG,SAAS,KAAK,UAAU,MAAM,aAAa,GAAG,EAAE;gBAC1D,GAAG;gBACH,KAAK,EAAE,MAAM,EAAE,SAAS;aACzB,CAAC,CAAC;YAEH,iEAAiE;YACjE,mBAAmB,CAAC,GAAG,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,2DAA2D;QAC7D,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,gBAAgB,EAAE,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAC,MAAc;IAC9B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;YAC7B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,GAAW;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAE/C,gCAAgC;IAChC,MAAM,aAAa,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IACnE,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC;IAClD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB;IACvB,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CACjD,CAAC;IAEF,wDAAwD;IACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,wCAAwC,CAAC,CAAC;IACzE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QACjB,KAAK,CAAC,KAAK,CAAC,yDAAyD,CAAC,CACzE,CAAC;IACF,uFAAuF;IACvF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;QACd,yEAAyE,CAC5E,CAAC;IACF,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QACjB,KAAK,CAAC,KAAK,CAAC,uDAAuD,CAAC,CACvE,CAAC;IACF,wDAAwD;IACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,sCAAsC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QACjB,KAAK,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAChE,CAAC;IACF,4CAA4C;IAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,sCAAsC,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;QACjB,KAAK,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAChE,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/configurators/claude.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/configurators/claude.ts"],"names":[],"mappings":"AAsDA;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMhE;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGvE;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGtE;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { readFileSync, readdirSync, statSync } from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { getClaudeTemplatePath } from "../templates/extract.js";
|
|
4
|
+
import { ensureDir, writeFile } from "../utils/file-writer.js";
|
|
4
5
|
/**
|
|
5
6
|
* Files to exclude when copying templates
|
|
6
7
|
* These are TypeScript compilation artifacts
|
|
@@ -25,9 +26,10 @@ function shouldExclude(filename) {
|
|
|
25
26
|
}
|
|
26
27
|
/**
|
|
27
28
|
* Recursively copy directory, excluding build artifacts
|
|
29
|
+
* Uses writeFile to handle file conflicts with the global writeMode setting
|
|
28
30
|
*/
|
|
29
|
-
function copyDirFiltered(src, dest) {
|
|
30
|
-
|
|
31
|
+
async function copyDirFiltered(src, dest) {
|
|
32
|
+
ensureDir(dest);
|
|
31
33
|
for (const entry of readdirSync(src)) {
|
|
32
34
|
if (shouldExclude(entry)) {
|
|
33
35
|
continue;
|
|
@@ -36,10 +38,11 @@ function copyDirFiltered(src, dest) {
|
|
|
36
38
|
const destPath = path.join(dest, entry);
|
|
37
39
|
const stat = statSync(srcPath);
|
|
38
40
|
if (stat.isDirectory()) {
|
|
39
|
-
copyDirFiltered(srcPath, destPath);
|
|
41
|
+
await copyDirFiltered(srcPath, destPath);
|
|
40
42
|
}
|
|
41
43
|
else {
|
|
42
|
-
|
|
44
|
+
const content = readFileSync(srcPath, "utf-8");
|
|
45
|
+
await writeFile(destPath, content);
|
|
43
46
|
}
|
|
44
47
|
}
|
|
45
48
|
}
|
|
@@ -56,7 +59,7 @@ export async function configureClaude(cwd) {
|
|
|
56
59
|
const sourcePath = getClaudeTemplatePath();
|
|
57
60
|
const destPath = path.join(cwd, ".claude");
|
|
58
61
|
// Copy templates, excluding build artifacts
|
|
59
|
-
copyDirFiltered(sourcePath, destPath);
|
|
62
|
+
await copyDirFiltered(sourcePath, destPath);
|
|
60
63
|
}
|
|
61
64
|
/**
|
|
62
65
|
* Configure Claude Code agents for Multi-Agent Pipeline
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/configurators/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/configurators/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE/D;;;GAGG;AACH,MAAM,gBAAgB,GAAG;IACvB,OAAO;IACP,WAAW;IACX,KAAK;IACL,SAAS;IACT,aAAa;CACd,CAAC;AAEF;;GAEG;AACH,SAAS,aAAa,CAAC,QAAgB;IACrC,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;QACvC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,eAAe,CAAC,GAAW,EAAE,IAAY;IACtD,SAAS,CAAC,IAAI,CAAC,CAAC;IAEhB,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE/B,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,MAAM,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAW;IAC/C,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAE3C,4CAA4C;IAC5C,MAAM,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAAY;IACtD,mDAAmD;IACnD,8CAA8C;AAChD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAY;IACrD,kDAAkD;IAClD,8CAA8C;AAChD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAW;IACnD,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/configurators/cursor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/configurators/cursor.ts"],"names":[],"mappings":"AAgDA;;GAEG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMhE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { readFileSync, readdirSync, statSync } from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { getCursorTemplatePath } from "../templates/extract.js";
|
|
4
|
+
import { ensureDir, writeFile } from "../utils/file-writer.js";
|
|
4
5
|
/**
|
|
5
6
|
* Files to exclude when copying templates
|
|
6
7
|
* These are TypeScript compilation artifacts
|
|
@@ -19,9 +20,10 @@ function shouldExclude(filename) {
|
|
|
19
20
|
}
|
|
20
21
|
/**
|
|
21
22
|
* Recursively copy directory, excluding build artifacts
|
|
23
|
+
* Uses writeFile to handle file conflicts with the global writeMode setting
|
|
22
24
|
*/
|
|
23
|
-
function copyDirFiltered(src, dest) {
|
|
24
|
-
|
|
25
|
+
async function copyDirFiltered(src, dest) {
|
|
26
|
+
ensureDir(dest);
|
|
25
27
|
for (const entry of readdirSync(src)) {
|
|
26
28
|
if (shouldExclude(entry)) {
|
|
27
29
|
continue;
|
|
@@ -30,10 +32,11 @@ function copyDirFiltered(src, dest) {
|
|
|
30
32
|
const destPath = path.join(dest, entry);
|
|
31
33
|
const stat = statSync(srcPath);
|
|
32
34
|
if (stat.isDirectory()) {
|
|
33
|
-
copyDirFiltered(srcPath, destPath);
|
|
35
|
+
await copyDirFiltered(srcPath, destPath);
|
|
34
36
|
}
|
|
35
37
|
else {
|
|
36
|
-
|
|
38
|
+
const content = readFileSync(srcPath, "utf-8");
|
|
39
|
+
await writeFile(destPath, content);
|
|
37
40
|
}
|
|
38
41
|
}
|
|
39
42
|
}
|
|
@@ -44,6 +47,6 @@ export async function configureCursor(cwd) {
|
|
|
44
47
|
const sourcePath = getCursorTemplatePath();
|
|
45
48
|
const destPath = path.join(cwd, ".cursor");
|
|
46
49
|
// Copy templates, excluding build artifacts
|
|
47
|
-
copyDirFiltered(sourcePath, destPath);
|
|
50
|
+
await copyDirFiltered(sourcePath, destPath);
|
|
48
51
|
}
|
|
49
52
|
//# sourceMappingURL=cursor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/configurators/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/configurators/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE/D;;;GAGG;AACH,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;AAElE;;GAEG;AACH,SAAS,aAAa,CAAC,QAAgB;IACrC,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;QACvC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,eAAe,CAAC,GAAW,EAAE,IAAY;IACtD,SAAS,CAAC,IAAI,CAAC,CAAC;IAEhB,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;QACrC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,SAAS;QACX,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;QAE/B,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,MAAM,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAW;IAC/C,MAAM,UAAU,GAAG,qBAAqB,EAAE,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAE3C,4CAA4C;IAC5C,MAAM,eAAe,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -32,7 +32,7 @@ export async function createWorkflowStructure(cwd, options) {
|
|
|
32
32
|
// Create base .trellis directory
|
|
33
33
|
ensureDir(path.join(cwd, DIR_NAMES.WORKFLOW));
|
|
34
34
|
// Copy scripts/ directory from templates
|
|
35
|
-
copyTrellisDir("scripts", path.join(cwd, PATHS.SCRIPTS), {
|
|
35
|
+
await copyTrellisDir("scripts", path.join(cwd, PATHS.SCRIPTS), {
|
|
36
36
|
executable: true,
|
|
37
37
|
});
|
|
38
38
|
// Copy workflow.md from templates
|
|
@@ -52,7 +52,7 @@ export async function createWorkflowStructure(cwd, options) {
|
|
|
52
52
|
// These are NOT dogfooded - they are generic templates for new projects
|
|
53
53
|
await createSpecTemplates(cwd, projectType);
|
|
54
54
|
}
|
|
55
|
-
async function createSpecTemplates(cwd,
|
|
55
|
+
async function createSpecTemplates(cwd, _projectType) {
|
|
56
56
|
// Ensure spec directory exists
|
|
57
57
|
ensureDir(path.join(cwd, PATHS.SPEC));
|
|
58
58
|
// Guides - always created
|
|
@@ -71,64 +71,56 @@ async function createSpecTemplates(cwd, projectType) {
|
|
|
71
71
|
for (const doc of guidesDocs) {
|
|
72
72
|
await writeFile(path.join(cwd, `${PATHS.SPEC}/guides`, doc.name), doc.content);
|
|
73
73
|
}
|
|
74
|
-
//
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
];
|
|
99
|
-
for (const doc of backendDocs) {
|
|
100
|
-
await writeFile(path.join(cwd, `${PATHS.SPEC}/backend`, doc.name), doc.content);
|
|
101
|
-
}
|
|
74
|
+
// Always create backend spec
|
|
75
|
+
ensureDir(path.join(cwd, `${PATHS.SPEC}/backend`));
|
|
76
|
+
const backendDocs = [
|
|
77
|
+
{ name: "index.md", content: backendIndexContent },
|
|
78
|
+
{
|
|
79
|
+
name: "directory-structure.md",
|
|
80
|
+
content: backendDirectoryStructureContent,
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
name: "database-guidelines.md",
|
|
84
|
+
content: backendDatabaseGuidelinesContent,
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: "logging-guidelines.md",
|
|
88
|
+
content: backendLoggingGuidelinesContent,
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
name: "quality-guidelines.md",
|
|
92
|
+
content: backendQualityGuidelinesContent,
|
|
93
|
+
},
|
|
94
|
+
{ name: "error-handling.md", content: backendErrorHandlingContent },
|
|
95
|
+
];
|
|
96
|
+
for (const doc of backendDocs) {
|
|
97
|
+
await writeFile(path.join(cwd, `${PATHS.SPEC}/backend`, doc.name), doc.content);
|
|
102
98
|
}
|
|
103
|
-
//
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
];
|
|
129
|
-
for (const doc of frontendDocs) {
|
|
130
|
-
await writeFile(path.join(cwd, `${PATHS.SPEC}/frontend`, doc.name), doc.content);
|
|
131
|
-
}
|
|
99
|
+
// Always create frontend spec
|
|
100
|
+
ensureDir(path.join(cwd, `${PATHS.SPEC}/frontend`));
|
|
101
|
+
const frontendDocs = [
|
|
102
|
+
{ name: "index.md", content: frontendIndexContent },
|
|
103
|
+
{
|
|
104
|
+
name: "directory-structure.md",
|
|
105
|
+
content: frontendDirectoryStructureContent,
|
|
106
|
+
},
|
|
107
|
+
{ name: "type-safety.md", content: frontendTypeSafetyContent },
|
|
108
|
+
{ name: "hook-guidelines.md", content: frontendHookGuidelinesContent },
|
|
109
|
+
{
|
|
110
|
+
name: "component-guidelines.md",
|
|
111
|
+
content: frontendComponentGuidelinesContent,
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
name: "quality-guidelines.md",
|
|
115
|
+
content: frontendQualityGuidelinesContent,
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
name: "state-management.md",
|
|
119
|
+
content: frontendStateManagementContent,
|
|
120
|
+
},
|
|
121
|
+
];
|
|
122
|
+
for (const doc of frontendDocs) {
|
|
123
|
+
await writeFile(path.join(cwd, `${PATHS.SPEC}/frontend`, doc.name), doc.content);
|
|
132
124
|
}
|
|
133
125
|
}
|
|
134
126
|
//# sourceMappingURL=workflow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/configurators/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD,2DAA2D;AAC3D,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AAEvC,4BAA4B;AAC5B,OAAO,EACL,yBAAyB;AACzB,gCAAgC;AAChC,mBAAmB,EACnB,gCAAgC,EAChC,gCAAgC,EAChC,+BAA+B,EAC/B,+BAA+B,EAC/B,2BAA2B;AAC3B,iCAAiC;AACjC,oBAAoB,EACpB,iCAAiC,EACjC,yBAAyB,EACzB,6BAA6B,EAC7B,kCAAkC,EAClC,gCAAgC,EAChC,8BAA8B;AAC9B,mBAAmB;AACnB,kBAAkB,EAClB,oCAAoC,EACpC,mCAAmC,GACpC,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAkB/D;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,GAAW,EACX,OAAyB;IAEzB,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,WAAW,CAAC;IACxD,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,KAAK,CAAC;IAEhD,iCAAiC;IACjC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE9C,yCAAyC;IACzC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/configurators/workflow.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.3.0-beta.7",
|
|
3
|
+
"description": "Windows compatibility fixes and hook JSON format corrections",
|
|
4
|
+
"breaking": false,
|
|
5
|
+
"recommendMigrate": true,
|
|
6
|
+
"changelog": "Fixes for Windows compatibility (Issue #19) and Claude Code hook JSON format (Issue #18). Hook commands now use `python3` directly. Windows users may need to manually update `.claude/settings.json` if `python3` is not available on their system.",
|
|
7
|
+
"migrationGuide": "# Migration Guide: v0.3.0-beta.7 Windows Compatibility\n\n## Overview\n\nThis release fixes Windows compatibility issues and corrects the Claude Code hook JSON output format.\n\n## What Changed\n\n### Hook JSON Format (Issue #18)\n\nSessionStart hooks now output the correct JSON format expected by Claude Code:\n\n```json\n{\n \"hookSpecificOutput\": {\n \"hookEventName\": \"SessionStart\",\n \"additionalContext\": \"...\"\n }\n}\n```\n\n### UTF-8 Encoding (Issue #19)\n\n- Git commands now force UTF-8 output encoding\n- Python subprocess calls use `encoding=\"utf-8\"` and `errors=\"replace\"`\n- Cross-platform `tail_follow()` implementation in status.py\n\n### Hook Command Change\n\nHook commands in `.claude/settings.json` now use `python3` directly:\n\n```json\n\"command\": \"python3 .claude/hooks/session-start.py\"\n```\n\n## Windows Users: Manual Step Required\n\nIf your Windows system uses `python` instead of `python3`, you need to manually update `.claude/settings.json`:\n\n1. Open `.claude/settings.json`\n2. Find all `\"command\": \"python3 ...\"` entries\n3. Change `python3` to `python` if needed\n\nExample:\n```json\n// Before (if python3 not available)\n\"command\": \"python3 .claude/hooks/session-start.py\"\n\n// After\n\"command\": \"python .claude/hooks/session-start.py\"\n```\n\n## Affected Files\n\n- `.claude/settings.json` - Hook commands updated\n- `.claude/hooks/session-start.py` - JSON format fixed\n- `.trellis/scripts/common/git_context.py` - UTF-8 encoding\n- `.trellis/scripts/multi_agent/status.py` - Cross-platform tail\n- Other scripts - UTF-8 encoding fixes",
|
|
8
|
+
"aiInstructions": "1. Update `.claude/settings.json` hook commands to use `python3`\n2. If user reports Python not found on Windows, guide them to change `python3` to `python` in settings.json\n3. Verify hook scripts output correct JSON format\n4. Check that git commands work with non-ASCII characters",
|
|
9
|
+
"migrations": [],
|
|
10
|
+
"notes": "This is a compatibility fix release. No file migrations required. Windows users using `python` instead of `python3` should manually update their `.claude/settings.json` file."
|
|
11
|
+
}
|
|
@@ -105,3 +105,21 @@ Three levels of insight:
|
|
|
105
105
|
3. **Philosophical**: How to expand thinking patterns
|
|
106
106
|
|
|
107
107
|
30 minutes of analysis saves 30 hours of future debugging.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## After Analysis: Immediate Actions
|
|
112
|
+
|
|
113
|
+
**IMPORTANT**: After completing the analysis above, you MUST immediately:
|
|
114
|
+
|
|
115
|
+
1. **Update spec/guides** - Don't just list TODOs, actually update the relevant files:
|
|
116
|
+
- If it's a cross-platform issue → update `cross-platform-thinking-guide.md`
|
|
117
|
+
- If it's a cross-layer issue → update `cross-layer-thinking-guide.md`
|
|
118
|
+
- If it's a code reuse issue → update `code-reuse-thinking-guide.md`
|
|
119
|
+
- If it's domain-specific → update `backend/*.md` or `frontend/*.md`
|
|
120
|
+
|
|
121
|
+
2. **Sync templates** - After updating `.trellis/spec/`, sync to `src/templates/markdown/spec/`
|
|
122
|
+
|
|
123
|
+
3. **Commit the spec updates** - This is the primary output, not just the analysis text
|
|
124
|
+
|
|
125
|
+
> **The analysis is worthless if it stays in chat. The value is in the updated specs.**
|