@mindfoldhq/trellis 0.2.7 β 0.2.8
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 +37 -57
- package/dist/commands/init.js.map +1 -1
- package/package.json +1 -1
- package/readme.md +10 -37
|
@@ -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":"AA6BA,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,CA2M9D"}
|
package/dist/commands/init.js
CHANGED
|
@@ -17,14 +17,14 @@ import { DIR_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
|
-
import { detectProjectType,
|
|
20
|
+
import { detectProjectType, } from "../utils/project-detector.js";
|
|
21
21
|
import { initializeHashes } from "../utils/template-hash.js";
|
|
22
22
|
export async function init(options) {
|
|
23
23
|
const cwd = process.cwd();
|
|
24
24
|
// Generate ASCII art banner dynamically using FIGlet "Rebel" font
|
|
25
25
|
const banner = figlet.textSync("Trellis", { font: "Rebel" });
|
|
26
26
|
console.log(chalk.cyan(`\n${banner.trimEnd()}`));
|
|
27
|
-
console.log(chalk.gray("\n
|
|
27
|
+
console.log(chalk.gray("\n All-in-one AI framework & toolkit for Claude Code & Cursor\n"));
|
|
28
28
|
// Set write mode based on options
|
|
29
29
|
let writeMode = "ask";
|
|
30
30
|
if (options.force) {
|
|
@@ -68,9 +68,8 @@ export async function init(options) {
|
|
|
68
68
|
}
|
|
69
69
|
console.log(chalk.blue("π€ Developer:"), chalk.gray(developerName));
|
|
70
70
|
}
|
|
71
|
-
// Detect project type
|
|
71
|
+
// Detect project type (silent - no output)
|
|
72
72
|
const detectedType = detectProjectType(cwd);
|
|
73
|
-
console.log(chalk.blue("π Project type:"), chalk.gray(getProjectTypeDescription(detectedType)));
|
|
74
73
|
let tools;
|
|
75
74
|
let projectType = detectedType;
|
|
76
75
|
if (options.yes) {
|
|
@@ -127,8 +126,7 @@ export async function init(options) {
|
|
|
127
126
|
console.log(chalk.yellow("No tools selected. At least one tool is required."));
|
|
128
127
|
return;
|
|
129
128
|
}
|
|
130
|
-
|
|
131
|
-
console.log(chalk.gray(`Project type: ${getProjectTypeDescription(projectType)}\n`));
|
|
129
|
+
// Silent - no "Configuring" output
|
|
132
130
|
// Create workflow structure with project type
|
|
133
131
|
// Multi-agent is enabled by default
|
|
134
132
|
console.log(chalk.blue("π Creating workflow structure..."));
|
|
@@ -162,71 +160,27 @@ export async function init(options) {
|
|
|
162
160
|
if (hashedCount > 0) {
|
|
163
161
|
console.log(chalk.gray(`π Tracking ${hashedCount} template files for updates`));
|
|
164
162
|
}
|
|
165
|
-
// Initialize developer identity (
|
|
166
|
-
let developerInitialized = false;
|
|
167
|
-
let bootstrapCreated = false;
|
|
163
|
+
// Initialize developer identity (silent - no output)
|
|
168
164
|
if (developerName) {
|
|
169
165
|
try {
|
|
170
166
|
const scriptPath = path.join(cwd, PATHS.SCRIPTS, "init-developer.sh");
|
|
171
167
|
execSync(`bash "${scriptPath}" "${developerName}"`, {
|
|
172
168
|
cwd,
|
|
173
|
-
stdio: "
|
|
169
|
+
stdio: "pipe", // Silent
|
|
174
170
|
});
|
|
175
|
-
developerInitialized = true;
|
|
176
171
|
// Create bootstrap feature to guide user through filling guidelines
|
|
177
172
|
const bootstrapScriptPath = path.join(cwd, PATHS.SCRIPTS, "create-bootstrap.sh");
|
|
178
173
|
execSync(`bash "${bootstrapScriptPath}" "${projectType}"`, {
|
|
179
174
|
cwd,
|
|
180
|
-
stdio: "pipe", // Silent
|
|
175
|
+
stdio: "pipe", // Silent
|
|
181
176
|
});
|
|
182
|
-
bootstrapCreated = true;
|
|
183
177
|
}
|
|
184
|
-
catch
|
|
185
|
-
|
|
178
|
+
catch {
|
|
179
|
+
// Silent failure - user can run init-developer.sh manually
|
|
186
180
|
}
|
|
187
181
|
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
console.log(chalk.cyan("Next steps:"));
|
|
191
|
-
let stepNum = 1;
|
|
192
|
-
if (!developerInitialized) {
|
|
193
|
-
console.log(chalk.gray(`${stepNum}. Run `) +
|
|
194
|
-
chalk.white(`./${PATHS.SCRIPTS}/init-developer.sh <your-name>`) +
|
|
195
|
-
chalk.gray(" to set up your developer identity"));
|
|
196
|
-
stepNum++;
|
|
197
|
-
console.log(chalk.gray(`${stepNum}. Fill in `) +
|
|
198
|
-
chalk.white(`${PATHS.SPEC}/`) +
|
|
199
|
-
chalk.gray(" with your project-specific guidelines"));
|
|
200
|
-
stepNum++;
|
|
201
|
-
}
|
|
202
|
-
else if (bootstrapCreated) {
|
|
203
|
-
console.log(chalk.gray(`${stepNum}. Use `) +
|
|
204
|
-
chalk.white("/start") +
|
|
205
|
-
chalk.gray(" command in your AI tool to begin a session"));
|
|
206
|
-
stepNum++;
|
|
207
|
-
console.log(chalk.gray(`${stepNum}. Ask AI to help you `) +
|
|
208
|
-
chalk.white("fill in project guidelines") +
|
|
209
|
-
chalk.gray(` in ${PATHS.SPEC}/\n`));
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
console.log(chalk.gray(`${stepNum}. Use `) +
|
|
213
|
-
chalk.white("/start") +
|
|
214
|
-
chalk.gray(" command in your AI tool to begin a session\n"));
|
|
215
|
-
}
|
|
216
|
-
// Print structure info
|
|
217
|
-
console.log(chalk.cyan("Generated structure files:"));
|
|
218
|
-
console.log(chalk.gray(` ${PATHS.SPEC}/guides/ - Thinking guides (filled)`));
|
|
219
|
-
if (projectType === "frontend" ||
|
|
220
|
-
projectType === "fullstack" ||
|
|
221
|
-
projectType === "unknown") {
|
|
222
|
-
console.log(chalk.gray(` ${PATHS.SPEC}/frontend/ - Frontend guidelines (to fill)`));
|
|
223
|
-
}
|
|
224
|
-
if (projectType === "backend" ||
|
|
225
|
-
projectType === "fullstack" ||
|
|
226
|
-
projectType === "unknown") {
|
|
227
|
-
console.log(chalk.gray(` ${PATHS.SPEC}/backend/ - Backend guidelines (to fill)`));
|
|
228
|
-
}
|
|
229
|
-
console.log("");
|
|
182
|
+
// Print "What We Solve" section
|
|
183
|
+
printWhatWeSolve();
|
|
230
184
|
}
|
|
231
185
|
/**
|
|
232
186
|
* Simple readline-based input (no flickering like inquirer)
|
|
@@ -251,4 +205,30 @@ async function createRootFiles(cwd) {
|
|
|
251
205
|
console.log(chalk.blue("π Created AGENTS.md"));
|
|
252
206
|
}
|
|
253
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* Print "What We Solve" section showing Trellis value proposition
|
|
210
|
+
* Styled like a meme/rant to resonate with developer pain points
|
|
211
|
+
*/
|
|
212
|
+
function printWhatWeSolve() {
|
|
213
|
+
console.log(chalk.gray("\nSound familiar? ") +
|
|
214
|
+
chalk.bold("You'll never say these again!!\n"));
|
|
215
|
+
// Pain point 1: Bug loop β Thinking Guides + Ralph Loop
|
|
216
|
+
console.log(chalk.gray("β ") + '"Fix A β break B β fix B β break A..."');
|
|
217
|
+
console.log(chalk.green(" β ") +
|
|
218
|
+
chalk.white("Thinking Guides + Ralph Loop: Think first, verify after"));
|
|
219
|
+
// Pain point 2: Instructions ignored/forgotten β Sub-agents + per-agent spec injection
|
|
220
|
+
console.log(chalk.gray("β ") +
|
|
221
|
+
'"Wrote CLAUDE.md, AI ignored it. Reminded AI, it forgot 5 turns later."');
|
|
222
|
+
console.log(chalk.green(" β ") +
|
|
223
|
+
chalk.white("Spec Injection: Rules enforced per task, not per chat"));
|
|
224
|
+
// Pain point 3: Missing connections β Cross-Layer Guide
|
|
225
|
+
console.log(chalk.gray("β ") + '"Code works but nothing connects..."');
|
|
226
|
+
console.log(chalk.green(" β ") +
|
|
227
|
+
chalk.white("Cross-Layer Guide: Map data flow before coding"));
|
|
228
|
+
// Pain point 4: Code explosion β Plan Agent
|
|
229
|
+
console.log(chalk.gray("β ") + '"Asked for a button, got 9000 lines"');
|
|
230
|
+
console.log(chalk.green(" β ") +
|
|
231
|
+
chalk.white("Plan Agent: Rejects and splits oversized tasks"));
|
|
232
|
+
console.log("");
|
|
233
|
+
}
|
|
254
234
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
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,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACzD,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,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
</p>-->
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
6
|
-
<
|
|
6
|
+
<picture>
|
|
7
|
+
<source srcset="assets/trellis.png" media="(prefers-color-scheme: dark)">
|
|
8
|
+
<source srcset="assets/trellis.png" media="(prefers-color-scheme: light)">
|
|
9
|
+
<img src="assets/trellis.png" alt="Trellis Logo" width="500" style="image-rendering: -webkit-optimize-contrast; image-rendering: crisp-edges;">
|
|
10
|
+
</picture>
|
|
7
11
|
</p>
|
|
8
12
|
|
|
9
13
|
<p align="center">
|
|
@@ -96,8 +100,7 @@ AI: [Plan] Analyze codebase, write PRD
|
|
|
96
100
|
|
|
97
101
|
## How It Works
|
|
98
102
|
|
|
99
|
-
|
|
100
|
-
<summary><strong>Project Structure</strong></summary>
|
|
103
|
+
### Project Structure
|
|
101
104
|
|
|
102
105
|
```
|
|
103
106
|
.trellis/
|
|
@@ -125,41 +128,11 @@ AI: [Plan] Analyze codebase, write PRD
|
|
|
125
128
|
βββ ralph-loop.py # Quality control loop
|
|
126
129
|
```
|
|
127
130
|
|
|
128
|
-
</details>
|
|
129
|
-
|
|
130
131
|
### Workflow Diagram
|
|
131
132
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
β Hook auto-injects: workflow.md + spec indexes + current state β
|
|
136
|
-
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
137
|
-
β
|
|
138
|
-
βΌ
|
|
139
|
-
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
140
|
-
β Task Classification β
|
|
141
|
-
β Question β Answer directly β
|
|
142
|
-
β Trivial fix β Direct edit β
|
|
143
|
-
β Development β Task Workflow (with spec injection) β
|
|
144
|
-
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
145
|
-
β
|
|
146
|
-
βββββββββββββββββββββββΌββββββββββββββββββββββ
|
|
147
|
-
βΌ βΌ βΌ
|
|
148
|
-
βββββββββββ ββββββββββββ βββββββββββ
|
|
149
|
-
βResearch β βImplement β β Check β
|
|
150
|
-
β Agent β β β Agent β β β Agent β
|
|
151
|
-
βββββββββββ ββββββββββββ βββββββββββ
|
|
152
|
-
Find specs Specs injected Specs injected
|
|
153
|
-
& patterns via Hook via Hook
|
|
154
|
-
β
|
|
155
|
-
βΌ
|
|
156
|
-
ββββββββββββββββββββ
|
|
157
|
-
β Ralph Loop β
|
|
158
|
-
β (Quality Gate) β
|
|
159
|
-
ββββββββββββββββββββ
|
|
160
|
-
Verify: lint, typecheck
|
|
161
|
-
Retry if failed (max 5x)
|
|
162
|
-
```
|
|
133
|
+
<p align="center">
|
|
134
|
+
<img src="assets/workflow.png" alt="Trellis Workflow Diagram" />
|
|
135
|
+
</p>
|
|
163
136
|
|
|
164
137
|
|
|
165
138
|
## Roadmap
|
|
@@ -212,5 +185,5 @@ No. Each person has their own space at `.trellis/workspace/{name}/`. Spec files
|
|
|
212
185
|
</p>
|
|
213
186
|
|
|
214
187
|
<p align="center">
|
|
215
|
-
<sub>
|
|
188
|
+
<sub>Found Trellis useful? Please consider giving it a β</sub>
|
|
216
189
|
</p>
|