@mindfoldhq/trellis 0.2.7 → 0.2.9

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.
@@ -3,7 +3,11 @@
3
3
  </p>-->
4
4
 
5
5
  <p align="center">
6
- <img src="assets/trellis.png" alt="Trellis Logo" width="120" />
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
- <details>
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
- │ Session Start │
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
@@ -208,9 +181,9 @@ No. Each person has their own space at `.trellis/workspace/{name}/`. Spec files
208
181
 
209
182
  <p align="center">
210
183
  <a href="https://github.com/mindfold-ai/Trellis/blob/main/LICENSE">FSL License</a> •
211
- Made with care by <a href="https://mindfold.ai">Mindfold</a>
184
+ Made with care by Mindfold</a>
212
185
  </p>
213
186
 
214
187
  <p align="center">
215
- <sub>If you find Trellis useful, please consider giving it a ⭐</sub>
188
+ <sub>Found Trellis useful? Please consider giving it a ⭐</sub>
216
189
  </p>
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA8BA,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,CAuR9D"}
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"}
@@ -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, getProjectTypeDescription, } from "../utils/project-detector.js";
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 AI-assisted development workflow framework\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
- console.log(chalk.gray(`\nConfiguring: ${tools.join(", ")}`));
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 (developerName already detected at the start)
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: "inherit",
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 - we handle output in init
175
+ stdio: "pipe", // Silent
181
176
  });
182
- bootstrapCreated = true;
183
177
  }
184
- catch (error) {
185
- console.log(chalk.yellow(`⚠️ Failed to initialize developer: ${error instanceof Error ? error.message : error}`));
178
+ catch {
179
+ // Silent failure - user can run init-developer.sh manually
186
180
  }
187
181
  }
188
- console.log(chalk.green("\n✅ Trellis initialized successfully!\n"));
189
- // Print next steps
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":"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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,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,GAElB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAgB7D,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,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;YACtE,QAAQ,CAAC,SAAS,UAAU,MAAM,aAAa,GAAG,EAAE;gBAClD,GAAG;gBACH,KAAK,EAAE,MAAM,EAAE,SAAS;aACzB,CAAC,CAAC;YAEH,oEAAoE;YACpE,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CACnC,GAAG,EACH,KAAK,CAAC,OAAO,EACb,qBAAqB,CACtB,CAAC;YACF,QAAQ,CAAC,SAAS,mBAAmB,MAAM,WAAW,GAAG,EAAE;gBACzD,GAAG;gBACH,KAAK,EAAE,MAAM,EAAE,SAAS;aACzB,CAAC,CAAC;QACL,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"}
@@ -0,0 +1,213 @@
1
+ # Update Spec - Capture Knowledge into Specifications
2
+
3
+ When you learn something valuable (from debugging, implementing, or discussion), use this command to update the relevant spec documents.
4
+
5
+ **Timing**: After completing a task, fixing a bug, or discovering a new pattern
6
+
7
+ ---
8
+
9
+ ## When to Update Specs
10
+
11
+ | Trigger | Example | Target Spec |
12
+ |---------|---------|-------------|
13
+ | **Fixed a bug** | Found a subtle issue with error handling | `backend/error-handling.md` |
14
+ | **Discovered a pattern** | Found a better way to structure code | Relevant guidelines file |
15
+ | **Hit a gotcha** | Learned that X must be done before Y | Relevant spec + "Common Mistakes" section |
16
+ | **Established a convention** | Team agreed on naming pattern | `quality-guidelines.md` |
17
+ | **Cross-layer insight** | Understood how data flows between layers | `guides/cross-layer-thinking-guide.md` |
18
+
19
+ ---
20
+
21
+ ## Spec Structure Overview
22
+
23
+ ```
24
+ .trellis/spec/
25
+ ├── backend/ # Backend development standards
26
+ │ ├── index.md # Overview and links
27
+ │ └── *.md # Topic-specific guidelines
28
+ ├── frontend/ # Frontend development standards
29
+ │ ├── index.md # Overview and links
30
+ │ └── *.md # Topic-specific guidelines
31
+ └── guides/ # Thinking guides
32
+ ├── index.md # Guide index
33
+ └── *.md # Topic-specific guides
34
+ ```
35
+
36
+ ---
37
+
38
+ ## Update Process
39
+
40
+ ### Step 1: Identify What You Learned
41
+
42
+ Answer these questions:
43
+
44
+ 1. **What did you learn?** (Be specific)
45
+ 2. **Why is it important?** (What problem does it prevent?)
46
+ 3. **Where does it belong?** (Which spec file?)
47
+
48
+ ### Step 2: Classify the Update Type
49
+
50
+ | Type | Description | Action |
51
+ |------|-------------|--------|
52
+ | **New Pattern** | A reusable approach discovered | Add to "Patterns" section |
53
+ | **Forbidden Pattern** | Something that causes problems | Add to "Anti-patterns" or "Don't" section |
54
+ | **Common Mistake** | Easy-to-make error | Add to "Common Mistakes" section |
55
+ | **Convention** | Agreed-upon standard | Add to relevant section |
56
+ | **Gotcha** | Non-obvious behavior | Add warning callout |
57
+
58
+ ### Step 3: Read the Target Spec
59
+
60
+ Before editing, read the current spec to:
61
+ - Understand existing structure
62
+ - Avoid duplicating content
63
+ - Find the right section for your update
64
+
65
+ ```bash
66
+ cat .trellis/spec/<category>/<file>.md
67
+ ```
68
+
69
+ ### Step 4: Make the Update
70
+
71
+ Follow these principles:
72
+
73
+ 1. **Be Specific**: Include concrete examples, not just abstract rules
74
+ 2. **Explain Why**: State the problem this prevents
75
+ 3. **Show Code**: Add code snippets for patterns
76
+ 4. **Keep it Short**: One concept per section
77
+
78
+ ### Step 5: Update the Index (if needed)
79
+
80
+ If you added a new section or the spec status changed, update the category's `index.md`.
81
+
82
+ ---
83
+
84
+ ## Update Templates
85
+
86
+ ### Adding a New Pattern
87
+
88
+ ```markdown
89
+ ### Pattern Name
90
+
91
+ **Problem**: What problem does this solve?
92
+
93
+ **Solution**: Brief description of the approach.
94
+
95
+ **Example**:
96
+ \`\`\`
97
+ // Good
98
+ code example
99
+
100
+ // Bad
101
+ code example
102
+ \`\`\`
103
+
104
+ **Why**: Explanation of why this works better.
105
+ ```
106
+
107
+ ### Adding a Forbidden Pattern
108
+
109
+ ```markdown
110
+ ### Don't: Pattern Name
111
+
112
+ **Problem**:
113
+ \`\`\`
114
+ // Don't do this
115
+ bad code example
116
+ \`\`\`
117
+
118
+ **Why it's bad**: Explanation of the issue.
119
+
120
+ **Instead**:
121
+ \`\`\`
122
+ // Do this instead
123
+ good code example
124
+ \`\`\`
125
+ ```
126
+
127
+ ### Adding a Common Mistake
128
+
129
+ ```markdown
130
+ ### Common Mistake: Description
131
+
132
+ **Symptom**: What goes wrong
133
+
134
+ **Cause**: Why this happens
135
+
136
+ **Fix**: How to correct it
137
+
138
+ **Prevention**: How to avoid it in the future
139
+ ```
140
+
141
+ ### Adding a Gotcha
142
+
143
+ ```markdown
144
+ > **Warning**: Brief description of the non-obvious behavior.
145
+ >
146
+ > Details about when this happens and how to handle it.
147
+ ```
148
+
149
+ ---
150
+
151
+ ## Interactive Mode
152
+
153
+ If you're unsure what to update, answer these prompts:
154
+
155
+ 1. **What did you just finish?**
156
+ - [ ] Fixed a bug
157
+ - [ ] Implemented a feature
158
+ - [ ] Refactored code
159
+ - [ ] Had a discussion about approach
160
+
161
+ 2. **What surprised you or was non-obvious?**
162
+ - (Describe the insight)
163
+
164
+ 3. **Would this help someone else avoid the same problem?**
165
+ - Yes → Proceed to update spec
166
+ - No → Maybe not worth documenting
167
+
168
+ 4. **Which area does it relate to?**
169
+ - [ ] Backend code
170
+ - [ ] Frontend code
171
+ - [ ] Cross-layer data flow
172
+ - [ ] Code organization/reuse
173
+ - [ ] Quality/testing
174
+
175
+ ---
176
+
177
+ ## Quality Checklist
178
+
179
+ Before finishing your spec update:
180
+
181
+ - [ ] Is the content specific and actionable?
182
+ - [ ] Did you include a code example?
183
+ - [ ] Did you explain WHY, not just WHAT?
184
+ - [ ] Is it in the right spec file?
185
+ - [ ] Does it duplicate existing content?
186
+ - [ ] Would a new team member understand it?
187
+
188
+ ---
189
+
190
+ ## Relationship to Other Commands
191
+
192
+ ```
193
+ Development Flow:
194
+ Learn something → /update-spec → Knowledge captured
195
+ ↑ ↓
196
+ /break-loop ←──────────────────── Future sessions benefit
197
+ (deep bug analysis)
198
+ ```
199
+
200
+ - `/break-loop` - Analyzes bugs deeply, often reveals spec updates needed
201
+ - `/update-spec` - Actually makes the updates (this command)
202
+ - `/finish-work` - Reminds you to check if specs need updates
203
+
204
+ ---
205
+
206
+ ## Core Philosophy
207
+
208
+ > **Specs are living documents. Every debugging session, every "aha moment" is an opportunity to make the spec better.**
209
+
210
+ The goal is **institutional memory**:
211
+ - What one person learns, everyone benefits from
212
+ - What AI learns in one session, persists to future sessions
213
+ - Mistakes become documented guardrails
@@ -0,0 +1,213 @@
1
+ # Update Spec - Capture Knowledge into Specifications
2
+
3
+ When you learn something valuable (from debugging, implementing, or discussion), use this command to update the relevant spec documents.
4
+
5
+ **Timing**: After completing a task, fixing a bug, or discovering a new pattern
6
+
7
+ ---
8
+
9
+ ## When to Update Specs
10
+
11
+ | Trigger | Example | Target Spec |
12
+ |---------|---------|-------------|
13
+ | **Fixed a bug** | Found a subtle issue with error handling | `backend/error-handling.md` |
14
+ | **Discovered a pattern** | Found a better way to structure code | Relevant guidelines file |
15
+ | **Hit a gotcha** | Learned that X must be done before Y | Relevant spec + "Common Mistakes" section |
16
+ | **Established a convention** | Team agreed on naming pattern | `quality-guidelines.md` |
17
+ | **Cross-layer insight** | Understood how data flows between layers | `guides/cross-layer-thinking-guide.md` |
18
+
19
+ ---
20
+
21
+ ## Spec Structure Overview
22
+
23
+ ```
24
+ .trellis/spec/
25
+ ├── backend/ # Backend development standards
26
+ │ ├── index.md # Overview and links
27
+ │ └── *.md # Topic-specific guidelines
28
+ ├── frontend/ # Frontend development standards
29
+ │ ├── index.md # Overview and links
30
+ │ └── *.md # Topic-specific guidelines
31
+ └── guides/ # Thinking guides
32
+ ├── index.md # Guide index
33
+ └── *.md # Topic-specific guides
34
+ ```
35
+
36
+ ---
37
+
38
+ ## Update Process
39
+
40
+ ### Step 1: Identify What You Learned
41
+
42
+ Answer these questions:
43
+
44
+ 1. **What did you learn?** (Be specific)
45
+ 2. **Why is it important?** (What problem does it prevent?)
46
+ 3. **Where does it belong?** (Which spec file?)
47
+
48
+ ### Step 2: Classify the Update Type
49
+
50
+ | Type | Description | Action |
51
+ |------|-------------|--------|
52
+ | **New Pattern** | A reusable approach discovered | Add to "Patterns" section |
53
+ | **Forbidden Pattern** | Something that causes problems | Add to "Anti-patterns" or "Don't" section |
54
+ | **Common Mistake** | Easy-to-make error | Add to "Common Mistakes" section |
55
+ | **Convention** | Agreed-upon standard | Add to relevant section |
56
+ | **Gotcha** | Non-obvious behavior | Add warning callout |
57
+
58
+ ### Step 3: Read the Target Spec
59
+
60
+ Before editing, read the current spec to:
61
+ - Understand existing structure
62
+ - Avoid duplicating content
63
+ - Find the right section for your update
64
+
65
+ ```bash
66
+ cat .trellis/spec/<category>/<file>.md
67
+ ```
68
+
69
+ ### Step 4: Make the Update
70
+
71
+ Follow these principles:
72
+
73
+ 1. **Be Specific**: Include concrete examples, not just abstract rules
74
+ 2. **Explain Why**: State the problem this prevents
75
+ 3. **Show Code**: Add code snippets for patterns
76
+ 4. **Keep it Short**: One concept per section
77
+
78
+ ### Step 5: Update the Index (if needed)
79
+
80
+ If you added a new section or the spec status changed, update the category's `index.md`.
81
+
82
+ ---
83
+
84
+ ## Update Templates
85
+
86
+ ### Adding a New Pattern
87
+
88
+ ```markdown
89
+ ### Pattern Name
90
+
91
+ **Problem**: What problem does this solve?
92
+
93
+ **Solution**: Brief description of the approach.
94
+
95
+ **Example**:
96
+ \`\`\`
97
+ // Good
98
+ code example
99
+
100
+ // Bad
101
+ code example
102
+ \`\`\`
103
+
104
+ **Why**: Explanation of why this works better.
105
+ ```
106
+
107
+ ### Adding a Forbidden Pattern
108
+
109
+ ```markdown
110
+ ### Don't: Pattern Name
111
+
112
+ **Problem**:
113
+ \`\`\`
114
+ // Don't do this
115
+ bad code example
116
+ \`\`\`
117
+
118
+ **Why it's bad**: Explanation of the issue.
119
+
120
+ **Instead**:
121
+ \`\`\`
122
+ // Do this instead
123
+ good code example
124
+ \`\`\`
125
+ ```
126
+
127
+ ### Adding a Common Mistake
128
+
129
+ ```markdown
130
+ ### Common Mistake: Description
131
+
132
+ **Symptom**: What goes wrong
133
+
134
+ **Cause**: Why this happens
135
+
136
+ **Fix**: How to correct it
137
+
138
+ **Prevention**: How to avoid it in the future
139
+ ```
140
+
141
+ ### Adding a Gotcha
142
+
143
+ ```markdown
144
+ > **Warning**: Brief description of the non-obvious behavior.
145
+ >
146
+ > Details about when this happens and how to handle it.
147
+ ```
148
+
149
+ ---
150
+
151
+ ## Interactive Mode
152
+
153
+ If you're unsure what to update, answer these prompts:
154
+
155
+ 1. **What did you just finish?**
156
+ - [ ] Fixed a bug
157
+ - [ ] Implemented a feature
158
+ - [ ] Refactored code
159
+ - [ ] Had a discussion about approach
160
+
161
+ 2. **What surprised you or was non-obvious?**
162
+ - (Describe the insight)
163
+
164
+ 3. **Would this help someone else avoid the same problem?**
165
+ - Yes → Proceed to update spec
166
+ - No → Maybe not worth documenting
167
+
168
+ 4. **Which area does it relate to?**
169
+ - [ ] Backend code
170
+ - [ ] Frontend code
171
+ - [ ] Cross-layer data flow
172
+ - [ ] Code organization/reuse
173
+ - [ ] Quality/testing
174
+
175
+ ---
176
+
177
+ ## Quality Checklist
178
+
179
+ Before finishing your spec update:
180
+
181
+ - [ ] Is the content specific and actionable?
182
+ - [ ] Did you include a code example?
183
+ - [ ] Did you explain WHY, not just WHAT?
184
+ - [ ] Is it in the right spec file?
185
+ - [ ] Does it duplicate existing content?
186
+ - [ ] Would a new team member understand it?
187
+
188
+ ---
189
+
190
+ ## Relationship to Other Commands
191
+
192
+ ```
193
+ Development Flow:
194
+ Learn something → /update-spec → Knowledge captured
195
+ ↑ ↓
196
+ /break-loop ←──────────────────── Future sessions benefit
197
+ (deep bug analysis)
198
+ ```
199
+
200
+ - `/break-loop` - Analyzes bugs deeply, often reveals spec updates needed
201
+ - `/update-spec` - Actually makes the updates (this command)
202
+ - `/finish-work` - Reminds you to check if specs need updates
203
+
204
+ ---
205
+
206
+ ## Core Philosophy
207
+
208
+ > **Specs are living documents. Every debugging session, every "aha moment" is an opportunity to make the spec better.**
209
+
210
+ The goal is **institutional memory**:
211
+ - What one person learns, everyone benefits from
212
+ - What AI learns in one session, persists to future sessions
213
+ - Mistakes become documented guardrails
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindfoldhq/trellis",
3
- "version": "0.2.7",
3
+ "version": "0.2.9",
4
4
  "description": "AI capabilities grow like ivy — Trellis provides the structure to guide them along a disciplined path",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",