@mindfoldhq/trellis 0.6.0-beta.22 → 0.6.0-beta.23

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 (66) hide show
  1. package/README.md +49 -49
  2. package/dist/cli/index.js +1 -0
  3. package/dist/cli/index.js.map +1 -1
  4. package/dist/commands/init.d.ts +1 -0
  5. package/dist/commands/init.d.ts.map +1 -1
  6. package/dist/commands/init.js +65 -1
  7. package/dist/commands/init.js.map +1 -1
  8. package/dist/commands/update.d.ts.map +1 -1
  9. package/dist/commands/update.js +81 -4
  10. package/dist/commands/update.js.map +1 -1
  11. package/dist/commands/workflow.d.ts.map +1 -1
  12. package/dist/commands/workflow.js +13 -0
  13. package/dist/commands/workflow.js.map +1 -1
  14. package/dist/configurators/index.d.ts.map +1 -1
  15. package/dist/configurators/index.js +5 -0
  16. package/dist/configurators/index.js.map +1 -1
  17. package/dist/configurators/reasonix.d.ts +23 -0
  18. package/dist/configurators/reasonix.d.ts.map +1 -0
  19. package/dist/configurators/reasonix.js +60 -0
  20. package/dist/configurators/reasonix.js.map +1 -0
  21. package/dist/configurators/workflow.d.ts.map +1 -1
  22. package/dist/configurators/workflow.js +11 -1
  23. package/dist/configurators/workflow.js.map +1 -1
  24. package/dist/constants/paths.d.ts +4 -0
  25. package/dist/constants/paths.d.ts.map +1 -1
  26. package/dist/constants/paths.js +4 -0
  27. package/dist/constants/paths.js.map +1 -1
  28. package/dist/migrations/manifests/0.6.0-beta.23.json +88 -0
  29. package/dist/templates/common/bundled-skills/trellis-session-insight/SKILL.md +81 -0
  30. package/dist/templates/common/bundled-skills/trellis-session-insight/references/cli-quick-reference.md +66 -0
  31. package/dist/templates/common/bundled-skills/trellis-session-insight/references/triggering-patterns.md +93 -0
  32. package/dist/templates/common/bundled-skills/{trellis-spec-bootstarp → trellis-spec-bootstrap}/SKILL.md +2 -2
  33. package/dist/templates/markdown/spec/guides/cross-layer-thinking-guide.md.txt +68 -0
  34. package/dist/templates/reasonix/agents/trellis-check.md +36 -0
  35. package/dist/templates/reasonix/agents/trellis-implement.md +41 -0
  36. package/dist/templates/reasonix/index.d.ts +13 -0
  37. package/dist/templates/reasonix/index.d.ts.map +1 -0
  38. package/dist/templates/reasonix/index.js +16 -0
  39. package/dist/templates/reasonix/index.js.map +1 -0
  40. package/dist/templates/trellis/agents/check.md +70 -0
  41. package/dist/templates/trellis/agents/implement.md +71 -0
  42. package/dist/templates/trellis/index.d.ts +13 -0
  43. package/dist/templates/trellis/index.d.ts.map +1 -1
  44. package/dist/templates/trellis/index.js +22 -0
  45. package/dist/templates/trellis/index.js.map +1 -1
  46. package/dist/types/ai-tools.d.ts +4 -4
  47. package/dist/types/ai-tools.d.ts.map +1 -1
  48. package/dist/types/ai-tools.js +16 -0
  49. package/dist/types/ai-tools.js.map +1 -1
  50. package/dist/utils/agent-refs.d.ts +31 -0
  51. package/dist/utils/agent-refs.d.ts.map +1 -0
  52. package/dist/utils/agent-refs.js +63 -0
  53. package/dist/utils/agent-refs.js.map +1 -0
  54. package/dist/utils/registry-config.d.ts +7 -0
  55. package/dist/utils/registry-config.d.ts.map +1 -0
  56. package/dist/utils/registry-config.js +171 -0
  57. package/dist/utils/registry-config.js.map +1 -0
  58. package/dist/utils/template-fetcher.d.ts +11 -0
  59. package/dist/utils/template-fetcher.d.ts.map +1 -1
  60. package/dist/utils/template-fetcher.js +51 -2
  61. package/dist/utils/template-fetcher.js.map +1 -1
  62. package/package.json +2 -2
  63. /package/dist/templates/common/bundled-skills/{trellis-spec-bootstarp → trellis-spec-bootstrap}/references/mcp-setup.md +0 -0
  64. /package/dist/templates/common/bundled-skills/{trellis-spec-bootstarp → trellis-spec-bootstrap}/references/repository-analysis.md +0 -0
  65. /package/dist/templates/common/bundled-skills/{trellis-spec-bootstarp → trellis-spec-bootstrap}/references/spec-task-planning.md +0 -0
  66. /package/dist/templates/common/bundled-skills/{trellis-spec-bootstarp → trellis-spec-bootstrap}/references/spec-writing.md +0 -0
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Reasonix configurator.
3
+ *
4
+ * Reasonix (DeepSeek-Reasonix) stores skills as `.reasonix/skills/<name>/SKILL.md`
5
+ * with YAML frontmatter (name + description). Slash commands are code-built-in,
6
+ * so no commands directory is generated.
7
+ *
8
+ * Workflow templates are surfaced as skills with `trellis-` prefix (invocable
9
+ * via `/skill trellis-start`, `/skill trellis-continue`, etc.).
10
+ * Subagent skills (trellis-implement, trellis-check) use `runAs: subagent`
11
+ * frontmatter so Reasonix spawns them as isolated subagent loops.
12
+ */
13
+ /**
14
+ * Collect all Reasonix template files for `trellis update` diff tracking.
15
+ * Must stay in sync with `configureReasonix`.
16
+ */
17
+ export declare function collectReasonixTemplates(): Map<string, string>;
18
+ /**
19
+ * Configure Reasonix at init time: write workflow skills + subagent skills
20
+ * to `.reasonix/skills/`.
21
+ */
22
+ export declare function configureReasonix(cwd: string): Promise<void>;
23
+ //# sourceMappingURL=reasonix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasonix.d.ts","sourceRoot":"","sources":["../../src/configurators/reasonix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA0B9D;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBlE"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Reasonix configurator.
3
+ *
4
+ * Reasonix (DeepSeek-Reasonix) stores skills as `.reasonix/skills/<name>/SKILL.md`
5
+ * with YAML frontmatter (name + description). Slash commands are code-built-in,
6
+ * so no commands directory is generated.
7
+ *
8
+ * Workflow templates are surfaced as skills with `trellis-` prefix (invocable
9
+ * via `/skill trellis-start`, `/skill trellis-continue`, etc.).
10
+ * Subagent skills (trellis-implement, trellis-check) use `runAs: subagent`
11
+ * frontmatter so Reasonix spawns them as isolated subagent loops.
12
+ */
13
+ import path from "node:path";
14
+ import { AI_TOOLS } from "../types/ai-tools.js";
15
+ import { ensureDir, writeFile } from "../utils/file-writer.js";
16
+ import { getAllAgents } from "../templates/reasonix/index.js";
17
+ import { collectSkillTemplates, resolveAllAsSkills, resolveBundledSkills, writeSkills, } from "./shared.js";
18
+ /**
19
+ * Collect all Reasonix template files for `trellis update` diff tracking.
20
+ * Must stay in sync with `configureReasonix`.
21
+ */
22
+ export function collectReasonixTemplates() {
23
+ const config = AI_TOOLS.reasonix;
24
+ const ctx = config.templateContext;
25
+ const files = new Map();
26
+ // Subagent skill names that replace common-skill equivalents.
27
+ const agentNames = new Set(getAllAgents().map((a) => a.name));
28
+ // Workflow skills filtered to avoid collision with subagent skills.
29
+ const skills = resolveAllAsSkills(ctx).filter((s) => !agentNames.has(s.name));
30
+ for (const [filePath, content] of collectSkillTemplates(".reasonix/skills", skills, resolveBundledSkills(ctx))) {
31
+ files.set(filePath, content);
32
+ }
33
+ // Subagent skills (trellis-implement, trellis-check) — written with
34
+ // runAs: subagent frontmatter for isolated subagent loops.
35
+ for (const agent of getAllAgents()) {
36
+ files.set(`.reasonix/skills/${agent.name}/SKILL.md`, agent.content);
37
+ }
38
+ return files;
39
+ }
40
+ /**
41
+ * Configure Reasonix at init time: write workflow skills + subagent skills
42
+ * to `.reasonix/skills/`.
43
+ */
44
+ export async function configureReasonix(cwd) {
45
+ const config = AI_TOOLS.reasonix;
46
+ const ctx = config.templateContext;
47
+ const skillsRoot = path.join(cwd, config.configDir, "skills");
48
+ // Subagent skill names that replace common-skill equivalents.
49
+ const agentNames = new Set(getAllAgents().map((a) => a.name));
50
+ // Write workflow skills, filtering out any that have subagent equivalents.
51
+ const skills = resolveAllAsSkills(ctx).filter((s) => !agentNames.has(s.name));
52
+ await writeSkills(skillsRoot, skills, resolveBundledSkills(ctx));
53
+ // Subagent skills with runAs: subagent frontmatter
54
+ for (const agent of getAllAgents()) {
55
+ const agentDir = path.join(skillsRoot, agent.name);
56
+ ensureDir(agentDir);
57
+ await writeFile(path.join(agentDir, "SKILL.md"), agent.content);
58
+ }
59
+ }
60
+ //# sourceMappingURL=reasonix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasonix.js","sourceRoot":"","sources":["../../src/configurators/reasonix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,GACZ,MAAM,aAAa,CAAC;AAErB;;;GAGG;AACH,MAAM,UAAU,wBAAwB;IACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACjC,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IAExC,8DAA8D;IAC9D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9D,oEAAoE;IACpE,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9E,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,qBAAqB,CACrD,kBAAkB,EAClB,MAAM,EACN,oBAAoB,CAAC,GAAG,CAAC,CAC1B,EAAE,CAAC;QACF,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,oEAAoE;IACpE,2DAA2D;IAC3D,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,EAAE,CAAC;QACnC,KAAK,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,IAAI,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACtE,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAW;IACjD,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACjC,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE9D,8DAA8D;IAC9D,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE9D,2EAA2E;IAC3E,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,MAAM,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC;IAEjE,mDAAmD;IACnD,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACnD,SAAS,CAAC,QAAQ,CAAC,CAAC;QACpB,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/configurators/workflow.ts"],"names":[],"mappings":"AAsCA,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,CAoDf"}
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"}
@@ -2,7 +2,7 @@ import path from "node:path";
2
2
  import { DIR_NAMES, PATHS } from "../constants/paths.js";
3
3
  import { copyTrellisDir } from "../templates/extract.js";
4
4
  // Import trellis templates (generic, not project-specific)
5
- import { workflowMdTemplate, configYamlTemplate, gitignoreTemplate, } from "../templates/trellis/index.js";
5
+ import { workflowMdTemplate, configYamlTemplate, gitignoreTemplate, getAllAgents, } from "../templates/trellis/index.js";
6
6
  // Import markdown templates
7
7
  import { agentProgressIndexContent,
8
8
  // Backend structure (multi-doc)
@@ -45,6 +45,16 @@ export async function createWorkflowStructure(cwd, options) {
45
45
  await writeFile(path.join(cwd, DIR_NAMES.WORKFLOW, ".gitignore"), gitignoreTemplate);
46
46
  // Copy config.yaml from templates
47
47
  await writeFile(path.join(cwd, DIR_NAMES.WORKFLOW, "config.yaml"), configYamlTemplate);
48
+ // Dispatch channel runtime agent definitions. These are platform-agnostic
49
+ // Trellis runtime files consumed by `trellis channel spawn --agent <name>`
50
+ // through `packages/cli/src/commands/channel/agent-loader.ts`. They are
51
+ // dispatched on every init regardless of selected workflow because the user
52
+ // can switch to a channel-driven workflow at any time via `trellis workflow
53
+ // --template`.
54
+ ensureDir(path.join(cwd, PATHS.AGENTS));
55
+ for (const [agentFile, content] of getAllAgents()) {
56
+ await writeFile(path.join(cwd, PATHS.AGENTS, agentFile), content);
57
+ }
48
58
  // Create workspace/ with index.md
49
59
  ensureDir(path.join(cwd, PATHS.WORKSPACE));
50
60
  await writeFile(path.join(cwd, PATHS.WORKSPACE, "index.md"), replacePythonCommandLiterals(agentProgressIndexContent));
@@ -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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"}
@@ -17,6 +17,8 @@ export declare const DIR_NAMES: {
17
17
  readonly SPEC: "spec";
18
18
  /** Scripts directory (under .trellis/) */
19
19
  readonly SCRIPTS: "scripts";
20
+ /** Channel runtime agent definitions (under .trellis/) */
21
+ readonly AGENTS: "agents";
20
22
  };
21
23
  export declare const FILE_NAMES: {
22
24
  /** Root agent instructions file */
@@ -45,6 +47,8 @@ export declare const PATHS: {
45
47
  readonly SPEC: ".trellis/spec";
46
48
  /** .trellis/scripts/ */
47
49
  readonly SCRIPTS: ".trellis/scripts";
50
+ /** .trellis/agents/ */
51
+ readonly AGENTS: ".trellis/agents";
48
52
  /** .trellis/.developer */
49
53
  readonly DEVELOPER_FILE: ".trellis/.developer";
50
54
  /** .trellis/.current-task */
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/constants/paths.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,eAAO,MAAM,SAAS;IACpB,8BAA8B;;IAE9B,mEAAmE;;IAEnE,+DAA+D;;IAE/D,uCAAuC;;IAEvC,kDAAkD;;IAElD,0CAA0C;;CAElC,CAAC;AAGX,eAAO,MAAM,UAAU;IACrB,mCAAmC;;IAEnC,8BAA8B;;IAE9B,2BAA2B;;IAE3B,oBAAoB;;IAEpB,4BAA4B;;IAE5B,qBAAqB;;IAErB,0BAA0B;;CAElB,CAAC;AAGX,eAAO,MAAM,KAAK;IAChB,gBAAgB;;IAEhB,0BAA0B;;IAE1B,sBAAsB;;IAEtB,qBAAqB;;IAErB,wBAAwB;;IAExB,0BAA0B;;IAE1B,6BAA6B;;IAE7B,2BAA2B;;CAEnB,CAAC;AAEX;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/constants/paths.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,eAAO,MAAM,SAAS;IACpB,8BAA8B;;IAE9B,mEAAmE;;IAEnE,+DAA+D;;IAE/D,uCAAuC;;IAEvC,kDAAkD;;IAElD,0CAA0C;;IAE1C,0DAA0D;;CAElD,CAAC;AAGX,eAAO,MAAM,UAAU;IACrB,mCAAmC;;IAEnC,8BAA8B;;IAE9B,2BAA2B;;IAE3B,oBAAoB;;IAEpB,4BAA4B;;IAE5B,qBAAqB;;IAErB,0BAA0B;;CAElB,CAAC;AAGX,eAAO,MAAM,KAAK;IAChB,gBAAgB;;IAEhB,0BAA0B;;IAE1B,sBAAsB;;IAEtB,qBAAqB;;IAErB,wBAAwB;;IAExB,uBAAuB;;IAEvB,0BAA0B;;IAE1B,6BAA6B;;IAE7B,2BAA2B;;CAEnB,CAAC;AAEX;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
@@ -18,6 +18,8 @@ export const DIR_NAMES = {
18
18
  SPEC: "spec",
19
19
  /** Scripts directory (under .trellis/) */
20
20
  SCRIPTS: "scripts",
21
+ /** Channel runtime agent definitions (under .trellis/) */
22
+ AGENTS: "agents",
21
23
  };
22
24
  // File names
23
25
  export const FILE_NAMES = {
@@ -48,6 +50,8 @@ export const PATHS = {
48
50
  SPEC: `${DIR_NAMES.WORKFLOW}/${DIR_NAMES.SPEC}`,
49
51
  /** .trellis/scripts/ */
50
52
  SCRIPTS: `${DIR_NAMES.WORKFLOW}/${DIR_NAMES.SCRIPTS}`,
53
+ /** .trellis/agents/ */
54
+ AGENTS: `${DIR_NAMES.WORKFLOW}/${DIR_NAMES.AGENTS}`,
51
55
  /** .trellis/.developer */
52
56
  DEVELOPER_FILE: `${DIR_NAMES.WORKFLOW}/${FILE_NAMES.DEVELOPER}`,
53
57
  /** .trellis/.current-task */
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/constants/paths.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,mCAAmC;AACnC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,8BAA8B;IAC9B,QAAQ,EAAE,UAAU;IACpB,mEAAmE;IACnE,SAAS,EAAE,WAAW;IACtB,+DAA+D;IAC/D,KAAK,EAAE,OAAO;IACd,uCAAuC;IACvC,OAAO,EAAE,SAAS;IAClB,kDAAkD;IAClD,IAAI,EAAE,MAAM;IACZ,0CAA0C;IAC1C,OAAO,EAAE,SAAS;CACV,CAAC;AAEX,aAAa;AACb,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,mCAAmC;IACnC,MAAM,EAAE,WAAW;IACnB,8BAA8B;IAC9B,SAAS,EAAE,YAAY;IACvB,2BAA2B;IAC3B,YAAY,EAAE,eAAe;IAC7B,oBAAoB;IACpB,SAAS,EAAE,WAAW;IACtB,4BAA4B;IAC5B,GAAG,EAAE,QAAQ;IACb,qBAAqB;IACrB,cAAc,EAAE,aAAa;IAC7B,0BAA0B;IAC1B,cAAc,EAAE,UAAU;CAClB,CAAC;AAEX,+CAA+C;AAC/C,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,gBAAgB;IAChB,QAAQ,EAAE,SAAS,CAAC,QAAQ;IAC5B,0BAA0B;IAC1B,SAAS,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,SAAS,EAAE;IACzD,sBAAsB;IACtB,KAAK,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,KAAK,EAAE;IACjD,qBAAqB;IACrB,IAAI,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE;IAC/C,wBAAwB;IACxB,OAAO,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,OAAO,EAAE;IACrD,0BAA0B;IAC1B,cAAc,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,UAAU,CAAC,SAAS,EAAE;IAC/D,6BAA6B;IAC7B,iBAAiB,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,UAAU,CAAC,YAAY,EAAE;IACrE,2BAA2B;IAC3B,mBAAmB,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,UAAU,CAAC,cAAc,EAAE;CACjE,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,OAAO,GAAG,KAAK,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,OAAO,GAAG,KAAK,CAAC,KAAK,IAAI,QAAQ,EAAE,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,GAAG,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/constants/paths.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,mCAAmC;AACnC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,8BAA8B;IAC9B,QAAQ,EAAE,UAAU;IACpB,mEAAmE;IACnE,SAAS,EAAE,WAAW;IACtB,+DAA+D;IAC/D,KAAK,EAAE,OAAO;IACd,uCAAuC;IACvC,OAAO,EAAE,SAAS;IAClB,kDAAkD;IAClD,IAAI,EAAE,MAAM;IACZ,0CAA0C;IAC1C,OAAO,EAAE,SAAS;IAClB,0DAA0D;IAC1D,MAAM,EAAE,QAAQ;CACR,CAAC;AAEX,aAAa;AACb,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,mCAAmC;IACnC,MAAM,EAAE,WAAW;IACnB,8BAA8B;IAC9B,SAAS,EAAE,YAAY;IACvB,2BAA2B;IAC3B,YAAY,EAAE,eAAe;IAC7B,oBAAoB;IACpB,SAAS,EAAE,WAAW;IACtB,4BAA4B;IAC5B,GAAG,EAAE,QAAQ;IACb,qBAAqB;IACrB,cAAc,EAAE,aAAa;IAC7B,0BAA0B;IAC1B,cAAc,EAAE,UAAU;CAClB,CAAC;AAEX,+CAA+C;AAC/C,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,gBAAgB;IAChB,QAAQ,EAAE,SAAS,CAAC,QAAQ;IAC5B,0BAA0B;IAC1B,SAAS,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,SAAS,EAAE;IACzD,sBAAsB;IACtB,KAAK,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,KAAK,EAAE;IACjD,qBAAqB;IACrB,IAAI,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,IAAI,EAAE;IAC/C,wBAAwB;IACxB,OAAO,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,OAAO,EAAE;IACrD,uBAAuB;IACvB,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,MAAM,EAAE;IACnD,0BAA0B;IAC1B,cAAc,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,UAAU,CAAC,SAAS,EAAE;IAC/D,6BAA6B;IAC7B,iBAAiB,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,UAAU,CAAC,YAAY,EAAE;IACrE,2BAA2B;IAC3B,mBAAmB,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,UAAU,CAAC,cAAc,EAAE;CACjE,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,OAAO,GAAG,KAAK,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,OAAO,GAAG,KAAK,CAAC,KAAK,IAAI,QAAQ,EAAE,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,GAAG,KAAK,CAAC,KAAK,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,88 @@
1
+ {
2
+ "version": "0.6.0-beta.23",
3
+ "description": "Beta patch: dispatch channel runtime agent definitions, refresh registry-backed spec via update, add Reasonix platform support, ship trellis-session-insight bundled skill, and rename trellis-spec-bootstarp → trellis-spec-bootstrap.",
4
+ "breaking": false,
5
+ "recommendMigrate": true,
6
+ "changelog": "**Enhancements:**\n- feat(cli): `trellis init` and `trellis update` now ship `.trellis/agents/{check,implement}.md`, so switching to a channel-driven workflow no longer fails with \"Agent 'check' not found\" (#323).\n- feat(cli): `trellis update` refreshes registry-backed `.trellis/spec` templates through the existing hash/conflict flow. `trellis init --template <id>` persists the spec source/template in `.trellis/config.yaml` so subsequent updates can re-fetch it. Supports direct spec registries and marketplace-style registries (#324).\n- feat(platform): add **Reasonix** (DeepSeek-Reasonix) as the 15th supported AI coding tool via `trellis init --reasonix`. Subagent skills (`trellis-implement`, `trellis-check`) carry `runAs: subagent` frontmatter so Reasonix spawns them as isolated subagent loops (#301).\n- feat(skills): bundle `trellis-session-insight` skill that teaches the AI how and when to reach for `trellis mem` to recall past conversations across Claude Code and Codex sessions. Auto-dispatched to every supported platform on init/update.\n- feat(workflow): `trellis workflow --template <id>` and `trellis init --workflow <id>` print a stderr warning when the resolved workflow references `.trellis/agents/<name>.md` files that are missing on disk, pointing the user at `trellis update`.\n\n**Bug Fixes:**\n- fix(skills): rename bundled `trellis-spec-bootstarp` → `trellis-spec-bootstrap` (typo). `trellis update --migrate` ships a `rename-dir` migration that renames the installed directory across 13 platform skill roots; missing roots are silently skipped. Historical migration manifests `0.5.17.json` and `0.6.0-beta.18.json` keep the typoed text because they describe what already shipped to users on those versions (#296).",
7
+ "migrations": [
8
+ {
9
+ "type": "rename-dir",
10
+ "from": ".claude/skills/trellis-spec-bootstarp",
11
+ "to": ".claude/skills/trellis-spec-bootstrap",
12
+ "description": "Claude Code: rename installed bundled skill directory from typoed name to corrected name."
13
+ },
14
+ {
15
+ "type": "rename-dir",
16
+ "from": ".cursor/skills/trellis-spec-bootstarp",
17
+ "to": ".cursor/skills/trellis-spec-bootstrap",
18
+ "description": "Cursor: rename installed bundled skill directory from typoed name to corrected name."
19
+ },
20
+ {
21
+ "type": "rename-dir",
22
+ "from": ".opencode/skills/trellis-spec-bootstarp",
23
+ "to": ".opencode/skills/trellis-spec-bootstrap",
24
+ "description": "OpenCode: rename installed bundled skill directory from typoed name to corrected name."
25
+ },
26
+ {
27
+ "type": "rename-dir",
28
+ "from": ".agents/skills/trellis-spec-bootstarp",
29
+ "to": ".agents/skills/trellis-spec-bootstrap",
30
+ "description": "Codex / Gemini CLI (shared): rename installed bundled skill directory from typoed name to corrected name."
31
+ },
32
+ {
33
+ "type": "rename-dir",
34
+ "from": ".kiro/skills/trellis-spec-bootstarp",
35
+ "to": ".kiro/skills/trellis-spec-bootstrap",
36
+ "description": "Kiro: rename installed bundled skill directory from typoed name to corrected name."
37
+ },
38
+ {
39
+ "type": "rename-dir",
40
+ "from": ".qoder/skills/trellis-spec-bootstarp",
41
+ "to": ".qoder/skills/trellis-spec-bootstrap",
42
+ "description": "Qoder: rename installed bundled skill directory from typoed name to corrected name."
43
+ },
44
+ {
45
+ "type": "rename-dir",
46
+ "from": ".codebuddy/skills/trellis-spec-bootstarp",
47
+ "to": ".codebuddy/skills/trellis-spec-bootstrap",
48
+ "description": "CodeBuddy: rename installed bundled skill directory from typoed name to corrected name."
49
+ },
50
+ {
51
+ "type": "rename-dir",
52
+ "from": ".github/skills/trellis-spec-bootstarp",
53
+ "to": ".github/skills/trellis-spec-bootstrap",
54
+ "description": "GitHub Copilot: rename installed bundled skill directory from typoed name to corrected name."
55
+ },
56
+ {
57
+ "type": "rename-dir",
58
+ "from": ".factory/skills/trellis-spec-bootstarp",
59
+ "to": ".factory/skills/trellis-spec-bootstrap",
60
+ "description": "Droid: rename installed bundled skill directory from typoed name to corrected name."
61
+ },
62
+ {
63
+ "type": "rename-dir",
64
+ "from": ".pi/skills/trellis-spec-bootstarp",
65
+ "to": ".pi/skills/trellis-spec-bootstrap",
66
+ "description": "Pi Agent: rename installed bundled skill directory from typoed name to corrected name."
67
+ },
68
+ {
69
+ "type": "rename-dir",
70
+ "from": ".agent/skills/trellis-spec-bootstarp",
71
+ "to": ".agent/skills/trellis-spec-bootstrap",
72
+ "description": "Antigravity: rename installed bundled skill directory from typoed name to corrected name."
73
+ },
74
+ {
75
+ "type": "rename-dir",
76
+ "from": ".windsurf/skills/trellis-spec-bootstarp",
77
+ "to": ".windsurf/skills/trellis-spec-bootstrap",
78
+ "description": "Windsurf: rename installed bundled skill directory from typoed name to corrected name."
79
+ },
80
+ {
81
+ "type": "rename-dir",
82
+ "from": ".kilocode/skills/trellis-spec-bootstarp",
83
+ "to": ".kilocode/skills/trellis-spec-bootstrap",
84
+ "description": "Kilo: rename installed bundled skill directory from typoed name to corrected name."
85
+ }
86
+ ],
87
+ "notes": "Beta patch on top of 0.6.0-beta.22. Run `trellis update --migrate` to rename installed `trellis-spec-bootstarp/` skill directories to `trellis-spec-bootstrap/` across every platform you have configured (silently skips ones you do not). Plain `trellis update` also installs the new `trellis-session-insight` bundled skill and the `.trellis/agents/{check,implement}.md` channel runtime files."
88
+ }
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: trellis-session-insight
3
+ description: "Reach into past AI conversation history through the `trellis mem` CLI. Use whenever the user asks 'how did we solve X last time', 'have we discussed this before', 'what was the decision on X', 'remind me what we did in this task', '上次怎么解的', '之前讨论过吗', '想起一段对话', or when starting a brainstorm that overlaps prior work, debugging a familiar bug, continuing a task across sessions, or doing a finish-work review. Returns raw past dialogue; decide for the moment whether to update spec, append to task notes, quote inline in the answer, or just internalize."
4
+ ---
5
+
6
+ # Trellis Session Insight
7
+
8
+ This skill teaches an AI **how to call `trellis mem`** — the project's cross-session memory feedstock — and **when reaching for it is the right move**.
9
+
10
+ It is intentionally a **capability skill, not a workflow**. There is no fixed output file, no required write-back step, no "always run after finish-work" rule. What to do with what `mem` returns is a judgement call made in the moment of the conversation. The skill exists so the AI knows the capability is there and can decide.
11
+
12
+ ## What `trellis mem` is
13
+
14
+ A local CLI that indexes the user's past Claude Code and Codex conversation logs (the JSONL files each platform stores under `~/.claude/projects/` and `~/.codex/sessions/`) and lets you list, search, slice by Trellis task boundaries, and dump cleaned dialogue from them. OpenCode logs are not yet indexable (provider adapter pending) — when an OpenCode session is the obvious target, surface that limitation rather than guessing.
15
+
16
+ Nothing in `mem` is uploaded. All reads are local.
17
+
18
+ ## When to reach for it
19
+
20
+ The bar is "would a senior teammate ask 'didn't we already talk about this?'" — those are the moments. Some concrete patterns:
21
+
22
+ - **Brainstorm rerun risk.** Starting a new task that touches an area the user has been in before, and you want to check whether a decision was already made — before re-asking the user.
23
+ - **Familiar-bug debugging.** The current bug pattern feels like one the user reported / fixed before. Pulling the relevant past session can save a full debugging loop.
24
+ - **Cross-session continuation.** The user resumes work after a gap and says "where were we" / "继续上次的" without being specific.
25
+ - **Decision retrieval.** The user references "the decision we made about X" but the decision lives in an old brainstorm, not in any `prd.md` / `spec/`.
26
+ - **Finish-work retrospective.** When the user explicitly asks for a wrap-up of what was decided / what hurt / what surprised them in this task — not as a forced step on every finish-work.
27
+ - **Pattern-spotting across past work.** The user asks "do I keep making the same mistake on X" / "我每次都踩这个坑吗" — search across sessions answers that.
28
+
29
+ If none of these apply, don't call `mem`. It is a tool, not a ceremony.
30
+
31
+ ## When NOT to reach for it
32
+
33
+ - The relevant context is already in the current turn, `prd.md`, `design.md`, recent `git log`, or the open files. `mem` is for stuff that has fallen out of immediate reach.
34
+ - The user is asking about a fact in the code, not a fact from a past conversation. `git log -p` / `grep` / reading the file directly is faster and more authoritative.
35
+ - You are in a sub-agent (`trellis-implement` / `trellis-check`) whose dispatch prompt already includes the curated `implement.jsonl` / `check.jsonl` context. Adding `mem` on top usually just clutters.
36
+ - The user has explicitly said "don't dig through history, just answer what I asked".
37
+
38
+ ## What to do with what `mem` returns
39
+
40
+ Treat the output as **raw material**, not a deliverable. Once you have it, decide based on the live conversation:
41
+
42
+ - **Quote inline in your reply** if a specific past exchange answers the user's current question — and cite the session-id / phase so the user can verify.
43
+ - **Update `<task>/prd.md` or `<task>/design.md`** if `mem` surfaced a load-bearing decision that should have been written down but wasn't. Surface the proposed edit to the user first.
44
+ - **Append to a task-local notes file** (e.g. `<task>/notes.md` or extending an existing one) if the finding belongs to the current task's record but doesn't fit the PRD.
45
+ - **Update `.trellis/spec/`** if the finding is a project-wide convention or gotcha that would help future tasks. Run the `trellis-update-spec` skill for that — `session-insight` ends at the discovery.
46
+ - **Just absorb it** for the next few turns and answer better, without writing anything. This is often the right move for one-off recall.
47
+
48
+ Trellis does not prescribe a single destination. Forcing every recall into a fixed file makes the file grow into noise. Let the situation decide.
49
+
50
+ ## How to call it
51
+
52
+ Full CLI reference is in `references/cli-quick-reference.md`. The 80% case is one of:
53
+
54
+ ```bash
55
+ # Find sessions whose contents mention a keyword (project-scope is default;
56
+ # add --global to search every project on this machine).
57
+ trellis mem search "<keyword>"
58
+
59
+ # Dump dialogue from one session, optionally filtered by phase or keyword.
60
+ trellis mem extract <session-id> --phase brainstorm
61
+ trellis mem extract <session-id> --grep "<keyword>"
62
+
63
+ # Drill into a session: top-N hit turns + surrounding context.
64
+ trellis mem context <session-id> --turns 3 --around 2
65
+
66
+ # When you do not know the session id yet, start with list + filter.
67
+ trellis mem list --task <task-dir>
68
+ trellis mem projects # → list active project cwds, then narrow
69
+ ```
70
+
71
+ Phase slicing (`--phase brainstorm|implement|all`) cuts the session at `task.py create` and `task.py start` boundaries. For a finish-work review of the current task, `--phase brainstorm` recovers the planning discussion and `--phase implement` recovers the execution loop. Default is `all`.
72
+
73
+ ## Triggering patterns
74
+
75
+ `references/triggering-patterns.md` lists more verbatim user phrasings (English + Chinese) that should make you think "reach for `mem`" — keep that handy when training instinct.
76
+
77
+ ## Out of scope
78
+
79
+ - `mem` does not edit code or update files. Any write-back is your decision in the moment.
80
+ - `mem` is read-only on the platform JSONL stores. It does not push or sync to remote.
81
+ - This skill does not replace `trellis-update-spec` (which is the right tool for promoting a finding into project-wide guidance) or the platform-native task / spec workflow.
@@ -0,0 +1,66 @@
1
+ # `trellis mem` CLI Reference
2
+
3
+ Full flag reference for the five subcommands. Pin this as the authoritative source — `trellis mem help` prints the same content at runtime, so anything here that drifts is a bug.
4
+
5
+ ## Subcommands
6
+
7
+ | Command | Purpose |
8
+ |---|---|
9
+ | `list` | List sessions. Default subcommand when none is given. |
10
+ | `search <keyword>` | Find sessions whose contents match a keyword. |
11
+ | `context <session-id>` | Drill into one session: top-N hit turns + surrounding context. Pair with `--grep` for keyword anchoring. |
12
+ | `extract <session-id>` | Dump cleaned dialogue. Combine with `--phase` / `--grep` to slice. |
13
+ | `projects` | List active project `cwd` values with session counts. Use this to discover which `--cwd` to pass to other subcommands. |
14
+
15
+ ## Flags (apply where meaningful)
16
+
17
+ | Flag | Subcommands | Meaning |
18
+ |---|---|---|
19
+ | `--platform claude\|codex\|opencode\|all` | all | Default `all`. OpenCode adapter is currently a stub on `0.6.0-beta.*` — see "Caveats" below. |
20
+ | `--since YYYY-MM-DD` | list / search | Inclusive lower date bound. |
21
+ | `--until YYYY-MM-DD` | list / search | Inclusive upper date bound. |
22
+ | `--global` | list / search | Include sessions from every project on this machine. Default is the current project `cwd`. |
23
+ | `--cwd <path>` | list / search | Force a specific project cwd instead of inferring from where you are. |
24
+ | `--limit N` | list / search | Cap output rows. Default `50`. |
25
+ | `--grep KW` | extract / context | Filter turns by keyword. Multi-token AND when whitespace-separated. |
26
+ | `--phase brainstorm\|implement\|all` | extract | Slice session by Trellis task boundaries. `brainstorm` = `[task.py create, task.py start)`. `implement` = `[task.py start, task.py finish)` window. Default `all`. |
27
+ | `--turns N` | context | Number of hit turns to return. Default `3`. |
28
+ | `--around N` | context | Surrounding turns to include per hit. Default `1`. |
29
+ | `--max-chars N` | context | Total character budget. Default `6000` (~1500 tokens). |
30
+ | `--include-children` | search / context | Merge OpenCode sub-agent sessions into their parent session. |
31
+ | `--json` | all | Emit machine-parseable JSON instead of human-readable output. |
32
+ | `--task <task-dir>` | list | Narrow to sessions whose context-key resolved to a given task directory (uses `.trellis/.runtime/sessions/*.json`). |
33
+
34
+ ## Common one-liners
35
+
36
+ ```bash
37
+ # What past sessions discussed "deadlock" anywhere on this machine?
38
+ trellis mem search "deadlock" --global --limit 20
39
+
40
+ # Inside a specific session, surface the top 5 turns that mention "lock contention"
41
+ # plus 2 turns of surrounding context.
42
+ trellis mem context 5842592d --grep "lock contention" --turns 5 --around 2
43
+
44
+ # Recover the brainstorm window for a session — useful when continuing a task
45
+ # the user started a week ago.
46
+ trellis mem extract 5842592d --phase brainstorm
47
+
48
+ # List every project this machine has Trellis sessions for, with counts.
49
+ trellis mem projects
50
+ ```
51
+
52
+ ## Output shapes
53
+
54
+ - **Default human output** (no `--json`): wrapped to a terminal, with session ids highlighted and turn markers visible. Suitable to read inline but messy to paste into a markdown file.
55
+ - **`--json`**: stable schema, safe to parse and process. When piping `mem` output into a follow-up step (e.g. summarizing for a Lessons section), prefer `--json`.
56
+
57
+ ## Caveats
58
+
59
+ - **OpenCode adapter is a stub on `0.6.0-beta.*`.** When `--platform` resolves to OpenCode (or `all` and OpenCode would be included), `mem` prints a one-line "reader unavailable" notice and continues with the other platforms. Don't promise OpenCode coverage in your reply until the adapter ships.
60
+ - **`--phase` slicing depends on `task.py create` / `task.py start` invocations appearing in the recorded bash calls of the session.** Sessions where the user ran `task.py` from a different terminal — outside the recorded AI loop — will not have phase boundaries. `--phase all` is the safe fallback.
61
+ - **`mem` indexes platform JSONL files directly.** If the user has cleared their Claude / Codex session storage, `mem` cannot recover what is no longer on disk.
62
+ - **`mem` is read-only.** No remote sync, no edits to platform JSONL. Any write you do based on `mem` findings is your own follow-up call into the editing tools available to you.
63
+
64
+ ## When you need more than this reference
65
+
66
+ Run `trellis mem help` in the user's shell. The runtime help is authoritative and will be ahead of this reference during fast-moving beta releases.
@@ -0,0 +1,93 @@
1
+ # Triggering Patterns
2
+
3
+ Verbatim user phrasings that should make an AI reach for `trellis mem`. Calibrate instinct against these — if a user message hits one of these patterns and you do not reach for `mem`, you probably missed an obvious recall.
4
+
5
+ Patterns are grouped by the *intent* behind the phrasing, not the surface words. The same intent shows up in different languages and registers.
6
+
7
+ ## Past-solution recall
8
+
9
+ The user is asking "how did we (or I) solve this before". Past dialogue holds the answer; the codebase shows the result but not the reasoning.
10
+
11
+ - "How did we solve this last time?"
12
+ - "What did we end up doing about X?"
13
+ - "We dealt with this once already, didn't we?"
14
+ - "上次怎么解的?"
15
+ - "之前是怎么搞定 X 的?"
16
+ - "我记得以前修过类似的"
17
+
18
+ Reach: `trellis mem search "<symptom keyword>" --global --limit 10`, then `context` into the hit that looks closest.
19
+
20
+ ## Decision retrieval
21
+
22
+ The user is referencing a decision that lives in old dialogue, not in any committed file. Look in brainstorm windows.
23
+
24
+ - "What was the decision on X?"
25
+ - "Did we decide to use Postgres or SQLite?"
26
+ - "The rationale for choosing X over Y was…?"
27
+ - "我们当时为啥选了 X 而不是 Y?"
28
+ - "关于 X 我们之前是怎么定的?"
29
+ - "之前讨论过 X 的方案吗?"
30
+
31
+ Reach: `trellis mem search "<decision keyword>"` to find the session, then `extract <id> --phase brainstorm` to recover the discussion.
32
+
33
+ ## Cross-session continuation
34
+
35
+ The user resumed work after a gap and the context is implicit.
36
+
37
+ - "Where were we?"
38
+ - "Continue from last time."
39
+ - "Pick up where we left off."
40
+ - "继续上次的"
41
+ - "我们上次做到哪了"
42
+ - "接着昨天那个任务"
43
+
44
+ Reach: `trellis mem list --task <current-task-dir>` to find the most recent sessions tied to the active task, then `extract` the last one.
45
+
46
+ ## Familiar-bug debugging
47
+
48
+ The current bug feels like one already seen. Past sessions probably hold the resolution path.
49
+
50
+ - "I feel like I've hit this before."
51
+ - "Doesn't this look like that bug from last month?"
52
+ - "Same kind of timeout I had in X."
53
+ - "这个错好像之前见过"
54
+ - "这个 bug 是不是上次那个?"
55
+ - "怎么又是这个 error?"
56
+
57
+ Reach: `trellis mem search "<error message fragment>" --global`. Anchor on a short, distinctive token from the actual error string.
58
+
59
+ ## Self-pattern spotting
60
+
61
+ The user is asking whether they keep repeating the same kind of mistake or decision.
62
+
63
+ - "Do I always make this mistake?"
64
+ - "How often have I run into X?"
65
+ - "Is this a recurring thing for me?"
66
+ - "我每次都踩这个坑吗?"
67
+ - "我老犯这个错?"
68
+ - "这类问题之前出现过几次?"
69
+
70
+ Reach: `trellis mem search "<topic>" --global --limit 50` and scan the dates / projects in the listing. Optionally `extract` two or three for comparison.
71
+
72
+ ## Finish-work retrospective (on demand)
73
+
74
+ The user explicitly wants to look back at this task — not as a forced step, only when they ask.
75
+
76
+ - "Summarize what we did in this task."
77
+ - "What were the key decisions / surprises?"
78
+ - "Write up the lessons from this round."
79
+ - "总结一下这次的经验"
80
+ - "记一下这次踩的坑"
81
+ - "复盘下这个任务"
82
+
83
+ Reach: identify the current task's session id (from `.trellis/.runtime/sessions/*.json` or `mem list --task <task-dir>`), then `extract <id> --phase brainstorm` and `--phase implement`. Present a summary — surface concrete file:line citations where possible. Whether to also write the summary somewhere (PRD, spec, notes file) is the user's call; offer, don't auto-write.
84
+
85
+ ## Anti-patterns: do NOT reach for `mem` here
86
+
87
+ - "What does this function do?" → read the file.
88
+ - "Why is this test failing?" → read the test output and the file.
89
+ - "What's the right pattern for X in our codebase?" → grep / read spec files.
90
+ - "What's the latest npm version of Y?" → call `npm view`.
91
+ - "Fix this bug." → debug. Reach for `mem` only if you suspect prior context exists; otherwise it is noise.
92
+
93
+ The bar stays: would a senior teammate ask "didn't we already talk about this?" before answering? If yes, reach for `mem`. If no, don't.
@@ -1,9 +1,9 @@
1
1
  ---
2
- name: trellis-spec-bootstarp
2
+ name: trellis-spec-bootstrap
3
3
  description: "Bootstrap project-specific Trellis coding specs with a platform-neutral single-agent workflow. Use when creating or refreshing .trellis/spec guidelines, analyzing a codebase with GitNexus, ABCoder, or source inspection, decomposing package/layer spec work, and writing real codebase-backed spec docs without placeholder text."
4
4
  ---
5
5
 
6
- # Trellis Spec Bootstarp
6
+ # Trellis Spec Bootstrap
7
7
 
8
8
  Use this skill to create or refresh `.trellis/spec/` guidelines from the real codebase. One capable agent owns the full loop: analyze the repository, choose the spec boundaries, write the docs, and verify the result. The workflow does not depend on a specific host, CLI, or agent brand.
9
9