@mindfoldhq/trellis 0.6.10 → 0.7.0-beta.1

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 (55) hide show
  1. package/dist/cli/index.d.ts.map +1 -1
  2. package/dist/cli/index.js +20 -2
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/commands/update.d.ts.map +1 -1
  5. package/dist/commands/update.js +0 -8
  6. package/dist/commands/update.js.map +1 -1
  7. package/dist/commands/workflow.d.ts +17 -0
  8. package/dist/commands/workflow.d.ts.map +1 -1
  9. package/dist/commands/workflow.js +222 -0
  10. package/dist/commands/workflow.js.map +1 -1
  11. package/dist/configurators/opencode.d.ts.map +1 -1
  12. package/dist/configurators/opencode.js +4 -0
  13. package/dist/configurators/opencode.js.map +1 -1
  14. package/dist/configurators/workflow.d.ts +0 -14
  15. package/dist/configurators/workflow.d.ts.map +1 -1
  16. package/dist/configurators/workflow.js +1 -37
  17. package/dist/configurators/workflow.js.map +1 -1
  18. package/dist/migrations/manifests/0.7.0-beta.0.json +9 -0
  19. package/dist/migrations/manifests/0.7.0-beta.1.json +9 -0
  20. package/dist/templates/claude/settings.json +22 -0
  21. package/dist/templates/codex/agents/trellis-check.toml +2 -2
  22. package/dist/templates/codex/agents/trellis-implement.toml +2 -2
  23. package/dist/templates/codex/agents/trellis-research.toml +2 -2
  24. package/dist/templates/codex/hooks/session-start.py +20 -1
  25. package/dist/templates/codex/hooks.json +25 -0
  26. package/dist/templates/common/bundled-skills/trellis-meta/references/platform-files/hooks-and-settings.md +2 -1
  27. package/dist/templates/copilot/hooks/session-start.py +20 -1
  28. package/dist/templates/opencode/plugins/inject-spec-context.js +121 -0
  29. package/dist/templates/opencode/plugins/inject-workflow-state.js +111 -10
  30. package/dist/templates/pi/extensions/trellis/index.ts.txt +61 -4
  31. package/dist/templates/shared-hooks/index.d.ts +8 -2
  32. package/dist/templates/shared-hooks/index.d.ts.map +1 -1
  33. package/dist/templates/shared-hooks/index.js +13 -1
  34. package/dist/templates/shared-hooks/index.js.map +1 -1
  35. package/dist/templates/shared-hooks/inject-spec-context.py +844 -0
  36. package/dist/templates/shared-hooks/inject-subagent-context.py +4 -3
  37. package/dist/templates/shared-hooks/inject-workflow-state.py +35 -9
  38. package/dist/templates/shared-hooks/session-start.py +22 -1
  39. package/dist/templates/trellis/config.yaml +47 -0
  40. package/dist/templates/trellis/index.d.ts +4 -3
  41. package/dist/templates/trellis/index.d.ts.map +1 -1
  42. package/dist/templates/trellis/index.js +7 -3
  43. package/dist/templates/trellis/index.js.map +1 -1
  44. package/dist/templates/trellis/scripts/add_session.py +0 -45
  45. package/dist/templates/trellis/scripts/common/config.py +18 -0
  46. package/dist/templates/trellis/scripts/common/git_context.py +34 -2
  47. package/dist/templates/trellis/scripts/common/paths.py +28 -0
  48. package/dist/templates/trellis/scripts/common/spec_inject.py +439 -0
  49. package/dist/templates/trellis/scripts/common/spec_match.py +395 -0
  50. package/dist/templates/trellis/scripts/common/task_store.py +30 -0
  51. package/dist/templates/trellis/scripts/common/workflow_phase.py +3 -2
  52. package/dist/templates/trellis/scripts/common/workflow_selection.py +177 -0
  53. package/dist/templates/trellis/scripts/task.py +82 -0
  54. package/package.json +2 -2
  55. package/dist/templates/trellis/gitattributes.txt +0 -9
@@ -16,6 +16,11 @@
16
16
  *
17
17
  * - `--create-new`: never touches `.trellis/workflow.md`; writes
18
18
  * `.trellis/workflow.md.new` and leaves the hash file alone.
19
+ *
20
+ * - `--save <id>`: resolves a template through the same pipeline but writes it
21
+ * to the per-task variant library (`.trellis/workflows/<id>.md`) instead of
22
+ * the active workflow. Library files are user-managed by definition: this
23
+ * path never touches `.trellis/workflow.md` or `.template-hashes.json`.
19
24
  */
20
25
  import fs from "node:fs";
21
26
  import path from "node:path";
@@ -26,9 +31,28 @@ import { collectMissingAgents } from "../utils/agent-refs.js";
26
31
  import { replacePythonCommandLiterals } from "../configurators/shared.js";
27
32
  import { computeHash, loadHashes, removeHash, updateHashes, } from "../utils/template-hash.js";
28
33
  import { listWorkflowTemplates, resolveWorkflowTemplate, NATIVE_WORKFLOW_ID, WorkflowResolveError, } from "../utils/workflow-resolver.js";
34
+ import { writeFileAtomic } from "../utils/atomic-write.js";
35
+ /**
36
+ * Per-task workflow variant library. Files here are user-managed: never
37
+ * hash-tracked, never touched by `trellis update` (same ownership stance as a
38
+ * non-native `.trellis/workflow.md`).
39
+ */
40
+ const WORKFLOWS_LIB_REL = `${DIR_NAMES.WORKFLOW}/workflows`;
41
+ /**
42
+ * Library id charset — must match the per-task resolution rule in the runtime
43
+ * consumers (`common/workflow_selection.py`) so a saved id is resolvable and
44
+ * cannot traverse paths.
45
+ */
46
+ const WORKFLOW_ID_RE = /^[A-Za-z0-9_-]+$/;
29
47
  function workflowFilePath(cwd) {
30
48
  return path.join(cwd, PATHS.WORKFLOW_GUIDE_FILE);
31
49
  }
50
+ function workflowsLibraryDir(cwd) {
51
+ return path.join(cwd, WORKFLOWS_LIB_REL);
52
+ }
53
+ function workflowLibraryPath(cwd, id) {
54
+ return path.join(workflowsLibraryDir(cwd), `${id}.md`);
55
+ }
32
56
  function isInteractive() {
33
57
  return Boolean(process.stdin.isTTY);
34
58
  }
@@ -45,6 +69,27 @@ function printListing(templates) {
45
69
  }
46
70
  console.log("");
47
71
  }
72
+ /**
73
+ * `--list` addition: ids already saved to the per-task variant library on
74
+ * disk. Skipped entirely when the directory is absent or empty.
75
+ */
76
+ function printLibraryListing(cwd) {
77
+ const libDir = workflowsLibraryDir(cwd);
78
+ if (!fs.existsSync(libDir))
79
+ return;
80
+ const ids = fs
81
+ .readdirSync(libDir)
82
+ .filter((f) => f.endsWith(".md"))
83
+ .map((f) => f.slice(0, -".md".length))
84
+ .sort();
85
+ if (ids.length === 0)
86
+ return;
87
+ console.log(chalk.cyan(`Library (${WORKFLOWS_LIB_REL}/):\n`));
88
+ for (const id of ids) {
89
+ console.log(` ${chalk.green(id)}`);
90
+ }
91
+ console.log("");
92
+ }
48
93
  /**
49
94
  * Decide whether the existing workflow.md is byte-identical to the resolved
50
95
  * template (treat as "safe to overwrite"), pristine (matches tracked hash —
@@ -158,6 +203,173 @@ async function writeWorkflow(cwd, template, options) {
158
203
  console.log(chalk.green(` ✓ Replaced ${PATHS.WORKFLOW_GUIDE_FILE} with "${template.id}"`));
159
204
  applyHashContract(cwd, template.id);
160
205
  }
206
+ /**
207
+ * The six breadcrumb statuses used by the bundled native template. Kept in
208
+ * sync with `.trellis/spec/cli/backend/workflow-state-contract.md` (status
209
+ * writer + reachability tables) — update both together.
210
+ */
211
+ const REQUIRED_WORKFLOW_STATE_IDS = [
212
+ "no_task",
213
+ "planning",
214
+ "planning-inline",
215
+ "in_progress",
216
+ "in_progress-inline",
217
+ "completed",
218
+ ];
219
+ /**
220
+ * Soft parser-contract validation for saved library variants: warn (never
221
+ * block) when runtime markers that SessionStart / per-turn hooks and
222
+ * `get_context.py --mode phase` rely on are missing. Warnings go to stderr —
223
+ * stdout stays reserved for command output.
224
+ */
225
+ function warnAboutMissingMarkers(content, relPath) {
226
+ const problems = [];
227
+ if (!content.includes("## Phase Index")) {
228
+ problems.push('missing "## Phase Index" section');
229
+ }
230
+ if (!/^#### \d+\.\d+/m.test(content)) {
231
+ problems.push('no "#### X.Y" step heading');
232
+ }
233
+ const missingStates = REQUIRED_WORKFLOW_STATE_IDS.filter((id) => !content.includes(`[workflow-state:${id}]`));
234
+ if (missingStates.length > 0) {
235
+ problems.push(`missing [workflow-state:*] blocks: ${missingStates.join(", ")}`);
236
+ }
237
+ if (problems.length === 0)
238
+ return;
239
+ process.stderr.write(chalk.yellow(`\n⚠ ${relPath} is missing runtime parser markers:\n` +
240
+ problems.map((p) => ` - ${p}\n`).join("") +
241
+ " Consumers degrade to generic breadcrumbs / partial phase detail where markers are absent.\n"));
242
+ }
243
+ /**
244
+ * `--save <id>`: resolve through the same template pipeline as `--template`
245
+ * and write to the per-task variant library. Never touches
246
+ * `.trellis/workflow.md` or `.template-hashes.json` — library files are
247
+ * user-managed by definition.
248
+ */
249
+ async function saveWorkflowToLibrary(cwd, id, options) {
250
+ if (!WORKFLOW_ID_RE.test(id)) {
251
+ throw new WorkflowCommandError(`Invalid workflow id "${id}". Library ids must match [A-Za-z0-9_-]+ so per-task resolution can find the saved file.`);
252
+ }
253
+ let template;
254
+ try {
255
+ template = await resolveWorkflowTemplate(id, {
256
+ source: options.marketplace,
257
+ });
258
+ }
259
+ catch (err) {
260
+ if (err instanceof WorkflowResolveError) {
261
+ throw new WorkflowCommandError(err.message);
262
+ }
263
+ throw err;
264
+ }
265
+ const libDir = workflowsLibraryDir(cwd);
266
+ const destPath = path.join(libDir, `${id}.md`);
267
+ const destRel = `${WORKFLOWS_LIB_REL}/${id}.md`;
268
+ if (fs.existsSync(destPath) && !options.force) {
269
+ throw new WorkflowCommandError(`${destRel} already exists. Re-run with --force to overwrite.`);
270
+ }
271
+ if (!fs.existsSync(libDir)) {
272
+ fs.mkdirSync(libDir, { recursive: true });
273
+ }
274
+ const finalContent = replacePythonCommandLiterals(template.content);
275
+ fs.writeFileSync(destPath, finalContent, "utf-8");
276
+ console.log(chalk.green(` ✓ Saved "${template.id}" to ${destRel}`));
277
+ warnAboutMissingMarkers(finalContent, destRel);
278
+ }
279
+ function setProjectDefaultWorkflow(cwd, id) {
280
+ const configPath = path.join(cwd, DIR_NAMES.WORKFLOW, "config.yaml");
281
+ if (!fs.existsSync(configPath)) {
282
+ throw new WorkflowCommandError(`Cannot set the project default because ${DIR_NAMES.WORKFLOW}/config.yaml is missing.`);
283
+ }
284
+ const content = fs.readFileSync(configPath, "utf-8");
285
+ const line = `default_workflow: ${id}`;
286
+ let next;
287
+ if (/^default_workflow\s*:/m.test(content)) {
288
+ next = content.replace(/^default_workflow\s*:.*$/m, line);
289
+ }
290
+ else if (/^#\s*default_workflow\s*:/m.test(content)) {
291
+ next = content.replace(/^#\s*default_workflow\s*:.*$/m, line);
292
+ }
293
+ else {
294
+ next = `${content.trimEnd()}\n\n${line}\n`;
295
+ }
296
+ writeFileAtomic(configPath, next);
297
+ }
298
+ function setPersonalDefaultWorkflow(cwd, id) {
299
+ const developerPath = path.join(cwd, PATHS.DEVELOPER_FILE);
300
+ if (!fs.existsSync(developerPath)) {
301
+ throw new WorkflowCommandError(`Cannot set the personal default because ${PATHS.DEVELOPER_FILE} is missing. Run \`trellis init -u <name>\` first.`);
302
+ }
303
+ const content = fs.readFileSync(developerPath, "utf-8");
304
+ const line = `workflow=${id}`;
305
+ const next = /^workflow=.*$/m.test(content)
306
+ ? content.replace(/^workflow=.*$/m, line)
307
+ : `${content.trimEnd()}\n${line}\n`;
308
+ writeFileAtomic(developerPath, next);
309
+ }
310
+ async function chooseWorkflowDefaults(id) {
311
+ const { projectDefault } = await inquirer.prompt([
312
+ {
313
+ type: "confirm",
314
+ name: "projectDefault",
315
+ message: `Set "${id}" as the project default in .trellis/config.yaml?`,
316
+ default: false,
317
+ },
318
+ ]);
319
+ const { personalDefault } = await inquirer.prompt([
320
+ {
321
+ type: "confirm",
322
+ name: "personalDefault",
323
+ message: `Set "${id}" as your personal default in .trellis/.developer?`,
324
+ default: false,
325
+ },
326
+ ]);
327
+ return { projectDefault, personalDefault };
328
+ }
329
+ /**
330
+ * Create a user-managed workflow variant from the bundled native workflow.
331
+ *
332
+ * Reusing native keeps every parser-sensitive heading, platform marker, and
333
+ * workflow-state block intact without maintaining a second scaffold template.
334
+ * The global `.trellis/workflow.md` and its hash entry are never changed.
335
+ */
336
+ export async function runCreateWorkflowCommand(id, options = {}) {
337
+ const cwd = process.cwd();
338
+ if (!fs.existsSync(path.join(cwd, DIR_NAMES.WORKFLOW))) {
339
+ throw new WorkflowCommandError("No .trellis/ directory found. Run `trellis init` first.");
340
+ }
341
+ if (!WORKFLOW_ID_RE.test(id)) {
342
+ throw new WorkflowCommandError(`Invalid workflow id "${id}". Workflow ids must match [A-Za-z0-9_-]+.`);
343
+ }
344
+ const destPath = workflowLibraryPath(cwd, id);
345
+ const destRel = `${WORKFLOWS_LIB_REL}/${id}.md`;
346
+ if (fs.existsSync(destPath)) {
347
+ throw new WorkflowCommandError(`${destRel} already exists. Choose another workflow id or edit the existing file.`);
348
+ }
349
+ fs.mkdirSync(path.dirname(destPath), { recursive: true });
350
+ const native = await resolveWorkflowTemplate(NATIVE_WORKFLOW_ID);
351
+ writeFileAtomic(destPath, replacePythonCommandLiterals(native.content));
352
+ console.log(chalk.green(` ✓ Created ${destRel} from the native workflow`));
353
+ if (options.skipDefaults || !isInteractive())
354
+ return;
355
+ const defaults = await chooseWorkflowDefaults(id);
356
+ if (defaults.projectDefault &&
357
+ !fs.existsSync(path.join(cwd, DIR_NAMES.WORKFLOW, "config.yaml"))) {
358
+ throw new WorkflowCommandError(`Created ${destRel}, but cannot set the project default because ${DIR_NAMES.WORKFLOW}/config.yaml is missing.`);
359
+ }
360
+ if (defaults.personalDefault &&
361
+ !fs.existsSync(path.join(cwd, PATHS.DEVELOPER_FILE))) {
362
+ throw new WorkflowCommandError(`Created ${destRel}, but cannot set the personal default because ${PATHS.DEVELOPER_FILE} is missing. Run \`trellis init -u <name>\` first.`);
363
+ }
364
+ if (defaults.projectDefault) {
365
+ setProjectDefaultWorkflow(cwd, id);
366
+ console.log(chalk.green(` ✓ Set default_workflow: ${id} in .trellis/config.yaml`));
367
+ }
368
+ if (defaults.personalDefault) {
369
+ setPersonalDefaultWorkflow(cwd, id);
370
+ console.log(chalk.green(` ✓ Set workflow=${id} in .trellis/.developer`));
371
+ }
372
+ }
161
373
  /**
162
374
  * Distinct error class so `cli/index.ts` can format these as user errors
163
375
  * without dumping stack traces.
@@ -179,11 +391,21 @@ export async function runWorkflowCommand(options) {
179
391
  source: options.marketplace,
180
392
  });
181
393
  printListing(templates);
394
+ printLibraryListing(cwd);
182
395
  if (errorMessage) {
183
396
  console.log(chalk.yellow(`⚠ ${errorMessage}`));
184
397
  }
185
398
  return;
186
399
  }
400
+ // `--save <id>` populates the per-task variant library; it never composes
401
+ // with the active-workflow write modes.
402
+ if (options.save !== undefined) {
403
+ if (options.template || options.createNew) {
404
+ throw new WorkflowCommandError("--save cannot be combined with --template or --create-new.");
405
+ }
406
+ await saveWorkflowToLibrary(cwd, options.save, options);
407
+ return;
408
+ }
187
409
  // Resolve template id (non-interactive flag or interactive picker).
188
410
  let templateId = options.template;
189
411
  if (!templateId) {
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/commands/workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/commands/workflow.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/configurators/opencode.ts"],"names":[],"mappings":"AA8EA;;;;;;GAMG;AACH,wBAAgB,wBAAwB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAc9D;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMlE"}
1
+ {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../src/configurators/opencode.ts"],"names":[],"mappings":"AA+EA;;;;;;GAMG;AACH,wBAAgB,wBAAwB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAoB9D;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMlE"}
@@ -2,6 +2,7 @@ import { readFileSync, readdirSync, statSync } from "node:fs";
2
2
  import path from "node:path";
3
3
  import { AI_TOOLS } from "../types/ai-tools.js";
4
4
  import { getOpenCodeTemplatePath } from "../templates/extract.js";
5
+ import { getSharedHookScriptsForPlatform } from "../templates/shared-hooks/index.js";
5
6
  import { ensureDir, writeFile } from "../utils/file-writer.js";
6
7
  import { toPosix } from "../utils/posix.js";
7
8
  import { collectSkillTemplates, replacePythonCommandLiterals, resolveBundledSkills, resolveCommands, resolveSkills, } from "./shared.js";
@@ -73,6 +74,9 @@ function walkOpenCodeTemplateDir() {
73
74
  */
74
75
  export function collectOpenCodeTemplates() {
75
76
  const files = walkOpenCodeTemplateDir();
77
+ for (const hook of getSharedHookScriptsForPlatform("opencode")) {
78
+ files.set(`.opencode/hooks/${hook.name}`, replacePythonCommandLiterals(hook.content));
79
+ }
76
80
  const ctx = AI_TOOLS.opencode.templateContext;
77
81
  for (const cmd of resolveCommands(ctx)) {
78
82
  files.set(`.opencode/commands/trellis/${cmd.name}.md`, cmd.content);
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/configurators/opencode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/configurators/opencode.ts"],"names":[],"mappings":"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"}
@@ -20,20 +20,6 @@ export interface WorkflowOptions {
20
20
  */
21
21
  workflowMdOverride?: string;
22
22
  }
23
- /**
24
- * Ensure the project-root `.gitattributes` carries the journal `merge=union`
25
- * rule, without ever overwriting a user's existing file wholesale.
26
- *
27
- * - No `.gitattributes` yet: write the bundled template directly.
28
- * - Existing file that already has a `journal-*.md merge=union` rule (user's
29
- * own or from a previous `trellis init`/`update`): no-op, avoids duplicates.
30
- * - Existing file without that rule: append the bundled template content.
31
- *
32
- * Intentionally does NOT go through the standard `writeFile` conflict-prompt
33
- * flow — this file is additive-only and never a candidate for whole-file
34
- * overwrite.
35
- */
36
- export declare function ensureGitattributes(cwd: string): void;
37
23
  /**
38
24
  * Create workflow structure based on project type
39
25
  *
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/configurators/workflow.ts"],"names":[],"mappings":"AAyCA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,8BAA8B,CAAC;AAOtC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,WAAW,EAAE,WAAW,CAAC;IACzB,yFAAyF;IACzF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AASD;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAerD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CAmEf"}
1
+ {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/configurators/workflow.ts"],"names":[],"mappings":"AAuCA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,8BAA8B,CAAC;AAOtC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,WAAW,EAAE,WAAW,CAAC;IACzB,yFAAyF;IACzF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,IAAI,CAAC,CA+Df"}
@@ -1,9 +1,8 @@
1
- import fs from "node:fs";
2
1
  import path from "node:path";
3
2
  import { DIR_NAMES, PATHS } from "../constants/paths.js";
4
3
  import { copyTrellisDir } from "../templates/extract.js";
5
4
  // Import trellis templates (generic, not project-specific)
6
- import { workflowMdTemplate, configYamlTemplate, gitignoreTemplate, gitattributesTemplate, getAllAgents, } from "../templates/trellis/index.js";
5
+ import { workflowMdTemplate, configYamlTemplate, gitignoreTemplate, getAllAgents, } from "../templates/trellis/index.js";
7
6
  // Import markdown templates
8
7
  import { agentProgressIndexContent,
9
8
  // Backend structure (multi-doc)
@@ -15,38 +14,6 @@ guidesIndexContent, guidesCrossLayerThinkingGuideContent, guidesCodeReuseThinkin
15
14
  import { writeFile, ensureDir } from "../utils/file-writer.js";
16
15
  import { replacePythonCommandLiterals } from "./shared.js";
17
16
  import { sanitizePkgName, } from "../utils/project-detector.js";
18
- /**
19
- * Regex used to detect an existing `journal-*.md merge=union` gitattributes
20
- * rule (any whitespace variant), so `ensureGitattributes` never appends a
21
- * duplicate entry to a project's pre-existing `.gitattributes`.
22
- */
23
- const JOURNAL_MERGE_UNION_PATTERN = /journal-\*\.md\s+merge=union/;
24
- /**
25
- * Ensure the project-root `.gitattributes` carries the journal `merge=union`
26
- * rule, without ever overwriting a user's existing file wholesale.
27
- *
28
- * - No `.gitattributes` yet: write the bundled template directly.
29
- * - Existing file that already has a `journal-*.md merge=union` rule (user's
30
- * own or from a previous `trellis init`/`update`): no-op, avoids duplicates.
31
- * - Existing file without that rule: append the bundled template content.
32
- *
33
- * Intentionally does NOT go through the standard `writeFile` conflict-prompt
34
- * flow — this file is additive-only and never a candidate for whole-file
35
- * overwrite.
36
- */
37
- export function ensureGitattributes(cwd) {
38
- const targetPath = path.join(cwd, ".gitattributes");
39
- if (!fs.existsSync(targetPath)) {
40
- fs.writeFileSync(targetPath, gitattributesTemplate);
41
- return;
42
- }
43
- const existing = fs.readFileSync(targetPath, "utf-8");
44
- if (JOURNAL_MERGE_UNION_PATTERN.test(existing)) {
45
- return;
46
- }
47
- const separator = existing.endsWith("\n") ? "\n" : "\n\n";
48
- fs.writeFileSync(targetPath, existing + separator + gitattributesTemplate);
49
- }
50
17
  /**
51
18
  * Create workflow structure based on project type
52
19
  *
@@ -78,9 +45,6 @@ export async function createWorkflowStructure(cwd, options) {
78
45
  await writeFile(path.join(cwd, DIR_NAMES.WORKFLOW, ".gitignore"), gitignoreTemplate);
79
46
  // Copy config.yaml from templates
80
47
  await writeFile(path.join(cwd, DIR_NAMES.WORKFLOW, "config.yaml"), configYamlTemplate);
81
- // Ensure project-root .gitattributes carries the journal merge=union rule
82
- // (additive-only — never overwrites a user's existing file wholesale).
83
- ensureGitattributes(cwd);
84
48
  // Dispatch channel runtime agent definitions. These are platform-agnostic
85
49
  // Trellis runtime files consumed by `trellis channel spawn --agent <name>`
86
50
  // through `packages/cli/src/commands/channel/agent-loader.ts`. They are
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/configurators/workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/configurators/workflow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": "0.7.0-beta.0",
3
+ "description": "Path-scoped dynamic spec loading for Claude Code and Codex, plus layered workflow selection per task, developer, and team.",
4
+ "breaking": false,
5
+ "recommendMigrate": false,
6
+ "changelog": "**Enhancements:**\n- feat(hooks): deliver path-scoped specs dynamically through Claude Code PostToolUse and Codex PreToolUse hooks, with documented session reset handling\n- feat(workflow): save workflow variants and resolve task, developer, team, and global selections through one runtime chain",
7
+ "migrations": [],
8
+ "notes": "Run `trellis update` to install the new spec-injection hooks, workflow library support, and layered workflow resolver. No `--migrate` required."
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": "0.7.0-beta.1",
3
+ "description": "Workflow scaffolding, Pi dynamic workflow selection, and OpenCode dynamic spec loading.",
4
+ "breaking": false,
5
+ "recommendMigrate": false,
6
+ "changelog": "**Enhancements:**\n- feat(workflow): add `trellis workflow create <workflow-id>` to scaffold a user-managed workflow variant and optionally select project and personal defaults\n- feat(pi): resolve task, personal, team, and global workflow selections in Pi breadcrumbs\n- feat(opencode): inject path-scoped governing specs before `write`, `edit`, and `apply_patch`, with model-visible block-and-retry delivery",
7
+ "migrations": [],
8
+ "notes": "Run `trellis update` to install the updated Pi extension and OpenCode dynamic spec plugin. No `--migrate` required."
9
+ }
@@ -21,6 +21,11 @@
21
21
  "type": "command",
22
22
  "command": "{{PYTHON_CMD}} .claude/hooks/session-start.py",
23
23
  "timeout": 30
24
+ },
25
+ {
26
+ "type": "command",
27
+ "command": "{{PYTHON_CMD}} .claude/hooks/inject-spec-context.py",
28
+ "timeout": 30
24
29
  }
25
30
  ]
26
31
  },
@@ -31,6 +36,11 @@
31
36
  "type": "command",
32
37
  "command": "{{PYTHON_CMD}} .claude/hooks/session-start.py",
33
38
  "timeout": 30
39
+ },
40
+ {
41
+ "type": "command",
42
+ "command": "{{PYTHON_CMD}} .claude/hooks/inject-spec-context.py",
43
+ "timeout": 30
34
44
  }
35
45
  ]
36
46
  }
@@ -57,6 +67,18 @@
57
67
  ]
58
68
  }
59
69
  ],
70
+ "PostToolUse": [
71
+ {
72
+ "matcher": "Read|Edit|Write|MultiEdit",
73
+ "hooks": [
74
+ {
75
+ "type": "command",
76
+ "command": "{{PYTHON_CMD}} .claude/hooks/inject-spec-context.py",
77
+ "timeout": 15
78
+ }
79
+ ]
80
+ }
81
+ ],
60
82
  "UserPromptSubmit": [
61
83
  {
62
84
  "hooks": [
@@ -1,8 +1,8 @@
1
1
  name = "trellis-check"
2
2
  description = "Workspace-write Trellis reviewer that self-fixes spec drift, lint/type-check failures, and missing tests."
3
3
  sandbox_mode = "workspace-write"
4
- # model = "gpt-5.6-terra"
5
- # model_reasoning_effort = "high"
4
+ # model = "gpt-5.4"
5
+ # model_reasoning_effort = "low"
6
6
 
7
7
  developer_instructions = """
8
8
  You are running as the `trellis-check` sub-agent. The main session has dispatched you to review and self-fix.
@@ -1,8 +1,8 @@
1
1
  name = "trellis-implement"
2
2
  description = "Workspace-write Trellis implementer that follows specs and keeps generated templates in sync."
3
3
  sandbox_mode = "workspace-write"
4
- # model = "gpt-5.6-terra"
5
- # model_reasoning_effort = "high"
4
+ # model = "gpt-5.4"
5
+ # model_reasoning_effort = "low"
6
6
 
7
7
  developer_instructions = """
8
8
  You are running as the `trellis-implement` sub-agent. The main session has dispatched you to do the work.
@@ -1,8 +1,8 @@
1
1
  name = "trellis-research"
2
2
  description = "Trellis researcher for specs, code patterns, and affected files. Writes findings into {TASK_DIR}/research/ — read-only elsewhere."
3
3
  sandbox_mode = "workspace-write"
4
- # model = "gpt-5.6-terra"
5
- # model_reasoning_effort = "high"
4
+ # model = "gpt-5.4"
5
+ # model_reasoning_effort = "low"
6
6
 
7
7
  developer_instructions = """
8
8
  You are the Trellis researcher agent.
@@ -452,6 +452,25 @@ def _strip_breadcrumb_tag_blocks(content: str) -> str:
452
452
  return re.sub(r"\n{3,}", "\n\n", stripped).strip()
453
453
 
454
454
 
455
+ def _resolve_workflow_md(root: Path, input_data: dict) -> Path:
456
+ """Resolve the active task's workflow file, falling back to the global one.
457
+
458
+ The per-task resolution rule lives in common.workflow_selection inside
459
+ .trellis/scripts. Older installed projects may not ship that module, and
460
+ hooks must never crash the session — ANY failure (import error, old
461
+ scripts tree, resolver bug) falls back to the global workflow.md.
462
+ """
463
+ try:
464
+ scripts_dir = root / ".trellis" / "scripts"
465
+ if str(scripts_dir) not in sys.path:
466
+ sys.path.insert(0, str(scripts_dir))
467
+ from common.workflow_selection import resolve_workflow_md # type: ignore[import-not-found]
468
+
469
+ return resolve_workflow_md(root, input_data, platform="codex")
470
+ except Exception:
471
+ return root / ".trellis" / "workflow.md"
472
+
473
+
455
474
  def _build_workflow_toc(workflow_path: Path) -> str:
456
475
  """Inject only the compact Phase Index summary for SessionStart."""
457
476
  content = read_file(workflow_path)
@@ -505,7 +524,7 @@ Trellis compact SessionStart context. Use it to orient the session; load details
505
524
  output.write("\n</current-state>\n\n")
506
525
 
507
526
  output.write("<trellis-workflow>\n")
508
- output.write(_build_workflow_toc(trellis_dir / "workflow.md"))
527
+ output.write(_build_workflow_toc(_resolve_workflow_md(project_dir, hook_input)))
509
528
  output.write("\n</trellis-workflow>\n\n")
510
529
 
511
530
  output.write("<guidelines>\n")
@@ -1,5 +1,17 @@
1
1
  {
2
2
  "hooks": {
3
+ "SessionStart": [
4
+ {
5
+ "matcher": "^(?:clear|compact)$",
6
+ "hooks": [
7
+ {
8
+ "type": "command",
9
+ "command": "{{PYTHON_CMD}} -X utf8 .codex/hooks/inject-spec-context.py",
10
+ "timeout": 15
11
+ }
12
+ ]
13
+ }
14
+ ],
3
15
  "UserPromptSubmit": [
4
16
  {
5
17
  "hooks": [
@@ -22,6 +34,19 @@
22
34
  }
23
35
  ]
24
36
  }
37
+ ],
38
+ "PreToolUse": [
39
+ {
40
+ "matcher": "Edit|Write",
41
+ "hooks": [
42
+ {
43
+ "type": "command",
44
+ "command": "{{PYTHON_CMD}} -X utf8 .codex/hooks/inject-spec-context.py",
45
+ "timeout": 15,
46
+ "additionalContextLimit": 0
47
+ }
48
+ ]
49
+ }
25
50
  ]
26
51
  }
27
52
  }