@mindfoldhq/trellis 0.5.0-beta.8 → 0.5.0-beta.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.
Files changed (45) hide show
  1. package/dist/commands/init.d.ts +10 -0
  2. package/dist/commands/init.d.ts.map +1 -1
  3. package/dist/commands/init.js +380 -116
  4. package/dist/commands/init.js.map +1 -1
  5. package/dist/commands/update.d.ts.map +1 -1
  6. package/dist/commands/update.js +6 -21
  7. package/dist/commands/update.js.map +1 -1
  8. package/dist/configurators/index.d.ts.map +1 -1
  9. package/dist/configurators/index.js +8 -7
  10. package/dist/configurators/index.js.map +1 -1
  11. package/dist/configurators/qoder.d.ts +7 -6
  12. package/dist/configurators/qoder.d.ts.map +1 -1
  13. package/dist/configurators/qoder.js +17 -9
  14. package/dist/configurators/qoder.js.map +1 -1
  15. package/dist/configurators/shared.d.ts +2 -0
  16. package/dist/configurators/shared.d.ts.map +1 -1
  17. package/dist/configurators/shared.js +18 -0
  18. package/dist/configurators/shared.js.map +1 -1
  19. package/dist/migrations/manifests/0.5.0-beta.9.json +48 -0
  20. package/dist/templates/common/skills/brainstorm.md +47 -4
  21. package/dist/templates/opencode/plugins/inject-workflow-state.js +21 -7
  22. package/dist/templates/shared-hooks/inject-workflow-state.py +21 -8
  23. package/dist/templates/shared-hooks/session-start.py +14 -4
  24. package/dist/templates/trellis/config.yaml +6 -0
  25. package/dist/templates/trellis/index.d.ts +0 -1
  26. package/dist/templates/trellis/index.d.ts.map +1 -1
  27. package/dist/templates/trellis/index.js +0 -2
  28. package/dist/templates/trellis/index.js.map +1 -1
  29. package/dist/templates/trellis/scripts/common/types.py +0 -2
  30. package/dist/templates/trellis/workflow.md +8 -3
  31. package/dist/utils/project-detector.d.ts +2 -0
  32. package/dist/utils/project-detector.d.ts.map +1 -1
  33. package/dist/utils/project-detector.js +120 -11
  34. package/dist/utils/project-detector.js.map +1 -1
  35. package/dist/utils/task-json.d.ts +46 -0
  36. package/dist/utils/task-json.d.ts.map +1 -0
  37. package/dist/utils/task-json.js +49 -0
  38. package/dist/utils/task-json.js.map +1 -0
  39. package/package.json +1 -1
  40. package/dist/templates/markdown/spec/backend/directory-structure.md +0 -292
  41. package/dist/templates/markdown/spec/backend/index.md +0 -40
  42. package/dist/templates/markdown/spec/backend/script-conventions.md +0 -742
  43. package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md +0 -118
  44. package/dist/templates/markdown/spec/guides/cross-platform-thinking-guide.md +0 -394
  45. package/dist/templates/trellis/scripts/create_bootstrap.py +0 -298
@@ -436,6 +436,78 @@ function parseUvWorkspace(cwd) {
436
436
  return null;
437
437
  }
438
438
  }
439
+ /**
440
+ * Scan for sibling/grandchild directories that contain their own `.git`
441
+ * (polyrepo / meta-repo layout: independent clones placed under one parent).
442
+ *
443
+ * Rules:
444
+ * - Scans up to 2 levels deep (immediate children + grandchildren).
445
+ * - When a `.git` is found at a path, that path is a candidate and we DO NOT
446
+ * descend into it (a package is atomic).
447
+ * - Filters out hidden dirs (starting with `.`) and common build/vendor dirs.
448
+ * - `.git` may be a directory OR a file (worktree gitlink form) — uses
449
+ * `fs.existsSync` without `isDirectory()` check.
450
+ * - Skips paths in `submodulePaths` to avoid double-counting.
451
+ * - Returns `null` if fewer than 2 candidates (a single sibling repo is just
452
+ * a misclick, not a polyrepo).
453
+ */
454
+ const POLYREPO_IGNORED_DIRS = new Set([
455
+ "node_modules",
456
+ "target",
457
+ "dist",
458
+ "build",
459
+ "out",
460
+ "bin",
461
+ "obj",
462
+ "vendor",
463
+ "coverage",
464
+ "tmp",
465
+ "__pycache__",
466
+ ]);
467
+ function parsePolyrepo(cwd, submodulePaths) {
468
+ const MAX_DEPTH = 2;
469
+ const found = [];
470
+ function isCandidateDir(name) {
471
+ if (name.startsWith("."))
472
+ return false;
473
+ if (POLYREPO_IGNORED_DIRS.has(name))
474
+ return false;
475
+ return true;
476
+ }
477
+ function scan(relDir, depth) {
478
+ if (depth >= MAX_DEPTH)
479
+ return;
480
+ const absDir = relDir ? path.join(cwd, relDir) : cwd;
481
+ let entries;
482
+ try {
483
+ entries = fs.readdirSync(absDir, { withFileTypes: true });
484
+ }
485
+ catch {
486
+ return;
487
+ }
488
+ for (const entry of entries) {
489
+ if (!entry.isDirectory())
490
+ continue;
491
+ if (!isCandidateDir(entry.name))
492
+ continue;
493
+ const childRel = relDir ? `${relDir}/${entry.name}` : entry.name;
494
+ const childAbs = path.join(cwd, childRel);
495
+ // `.git` may be a file (worktree gitlink) or a directory — accept either.
496
+ const hasGit = fs.existsSync(path.join(childAbs, ".git"));
497
+ if (hasGit) {
498
+ // Skip if already covered by a submodule entry (avoid double-counting).
499
+ if (!submodulePaths.has(childRel)) {
500
+ found.push(childRel);
501
+ }
502
+ // Do NOT descend into a repo directory — package is atomic.
503
+ continue;
504
+ }
505
+ scan(childRel, depth + 1);
506
+ }
507
+ }
508
+ scan("", 0);
509
+ return found.length >= 2 ? found : null;
510
+ }
439
511
  /** Parse .gitmodules for submodule names and paths */
440
512
  function parseGitmodules(cwd) {
441
513
  try {
@@ -485,15 +557,18 @@ export function detectMonorepo(cwd) {
485
557
  }
486
558
  }
487
559
  }
488
- // 2. Try workspace managers in priority order
489
560
  const workspaceParsers = [
490
561
  () => {
491
562
  const p = parsePnpmWorkspace(cwd);
492
- return p ? expandWorkspaceGlobs(cwd, p) : null;
563
+ return p
564
+ ? { dirs: expandWorkspaceGlobs(cwd, p), isGitRepo: false }
565
+ : null;
493
566
  },
494
567
  () => {
495
568
  const p = parseNpmWorkspaces(cwd);
496
- return p ? expandWorkspaceGlobs(cwd, p) : null;
569
+ return p
570
+ ? { dirs: expandWorkspaceGlobs(cwd, p), isGitRepo: false }
571
+ : null;
497
572
  },
498
573
  () => {
499
574
  const r = parseCargoWorkspace(cwd);
@@ -501,27 +576,34 @@ export function detectMonorepo(cwd) {
501
576
  return null;
502
577
  const inc = expandWorkspaceGlobs(cwd, r.members);
503
578
  const exc = new Set(expandWorkspaceGlobs(cwd, r.exclude));
504
- return inc.filter((p) => !exc.has(p));
579
+ return { dirs: inc.filter((p) => !exc.has(p)), isGitRepo: false };
505
580
  },
506
581
  () => {
507
582
  const p = parseGoWork(cwd);
508
583
  if (!p)
509
584
  return null;
510
- return p
511
- .map(normalizePkgPath)
512
- .filter((d) => d && d !== "." && dirExists(cwd, d));
585
+ return {
586
+ dirs: p
587
+ .map(normalizePkgPath)
588
+ .filter((d) => d && d !== "." && dirExists(cwd, d)),
589
+ isGitRepo: false,
590
+ };
513
591
  },
514
592
  () => {
515
593
  const p = parseUvWorkspace(cwd);
516
- return p ? expandWorkspaceGlobs(cwd, p) : null;
594
+ return p
595
+ ? { dirs: expandWorkspaceGlobs(cwd, p), isGitRepo: false }
596
+ : null;
517
597
  },
518
598
  ];
599
+ let workspaceMatched = false;
519
600
  for (const parse of workspaceParsers) {
520
- const dirs = parse();
521
- if (!dirs)
601
+ const result = parse();
602
+ if (!result)
522
603
  continue;
604
+ workspaceMatched = true;
523
605
  detected = true;
524
- for (const dir of dirs) {
606
+ for (const dir of result.dirs) {
525
607
  const np = normalizePkgPath(dir);
526
608
  if (!np || np === ".")
527
609
  continue;
@@ -534,6 +616,7 @@ export function detectMonorepo(cwd) {
534
616
  ? detectProjectType(path.join(cwd, np))
535
617
  : "unknown",
536
618
  isSubmodule: submodulePaths.has(np),
619
+ isGitRepo: result.isGitRepo,
537
620
  });
538
621
  }
539
622
  }
@@ -548,8 +631,34 @@ export function detectMonorepo(cwd) {
548
631
  ? detectProjectType(path.join(cwd, np))
549
632
  : "unknown",
550
633
  isSubmodule: true,
634
+ isGitRepo: false,
551
635
  });
552
636
  }
637
+ // 4. Polyrepo fallback: only fires if NO workspace parser matched AND no
638
+ // submodules were found. Sibling/grandchild .git directories indicate
639
+ // independent repos placed under one parent (meta-repo / polyrepo layout).
640
+ if (!workspaceMatched && submodulePaths.size === 0) {
641
+ const polyDirs = parsePolyrepo(cwd, new Set(submodulePaths.keys()));
642
+ if (polyDirs) {
643
+ detected = true;
644
+ for (const dir of polyDirs) {
645
+ const np = normalizePkgPath(dir);
646
+ if (!np || np === ".")
647
+ continue;
648
+ if (packages.has(np))
649
+ continue;
650
+ packages.set(np, {
651
+ name: readPackageName(cwd, np),
652
+ path: np,
653
+ type: dirExists(cwd, np)
654
+ ? detectProjectType(path.join(cwd, np))
655
+ : "unknown",
656
+ isSubmodule: false,
657
+ isGitRepo: true,
658
+ });
659
+ }
660
+ }
661
+ }
553
662
  if (!detected)
554
663
  return null;
555
664
  return Array.from(packages.values());
@@ -1 +1 @@
1
- {"version":3,"file":"project-detector.js","sourceRoot":"","sources":["../../src/utils/project-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-detector.js","sourceRoot":"","sources":["../../src/utils/project-detector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Canonical task.json shape — single source of truth shared by all TS writers.
3
+ *
4
+ * The runtime Python writer is `.trellis/scripts/common/task_store.py` in
5
+ * `cmd_create` (lines ~147-172). This TS factory mirrors that 24-field shape
6
+ * so bootstrap tasks (trellis init) and migration tasks (trellis update
7
+ * --migrate) produce structurally identical task.json files.
8
+ *
9
+ * Field names, order, and null defaults match task_store.py exactly.
10
+ */
11
+ export interface TaskJson {
12
+ id: string;
13
+ name: string;
14
+ title: string;
15
+ description: string;
16
+ status: string;
17
+ dev_type: string | null;
18
+ scope: string | null;
19
+ package: string | null;
20
+ priority: string;
21
+ creator: string;
22
+ assignee: string;
23
+ createdAt: string;
24
+ completedAt: string | null;
25
+ branch: string | null;
26
+ base_branch: string | null;
27
+ worktree_path: string | null;
28
+ commit: string | null;
29
+ pr_url: string | null;
30
+ subtasks: string[];
31
+ children: string[];
32
+ parent: string | null;
33
+ relatedFiles: string[];
34
+ notes: string;
35
+ meta: Record<string, unknown>;
36
+ }
37
+ /**
38
+ * Produce a fully-populated canonical-shape TaskJson.
39
+ *
40
+ * All 24 fields are emitted in canonical order. `overrides` shallow-merges on
41
+ * top — callers should supply the per-task values (id, name, title, assignee,
42
+ * createdAt, etc.) and leave null-default fields untouched unless they have a
43
+ * real value.
44
+ */
45
+ export declare function emptyTaskJson(overrides?: Partial<TaskJson>): TaskJson;
46
+ //# sourceMappingURL=task-json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-json.d.ts","sourceRoot":"","sources":["../../src/utils/task-json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,SAAS,GAAE,OAAO,CAAC,QAAQ,CAAM,GAAG,QAAQ,CA6BzE"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Canonical task.json shape — single source of truth shared by all TS writers.
3
+ *
4
+ * The runtime Python writer is `.trellis/scripts/common/task_store.py` in
5
+ * `cmd_create` (lines ~147-172). This TS factory mirrors that 24-field shape
6
+ * so bootstrap tasks (trellis init) and migration tasks (trellis update
7
+ * --migrate) produce structurally identical task.json files.
8
+ *
9
+ * Field names, order, and null defaults match task_store.py exactly.
10
+ */
11
+ /**
12
+ * Produce a fully-populated canonical-shape TaskJson.
13
+ *
14
+ * All 24 fields are emitted in canonical order. `overrides` shallow-merges on
15
+ * top — callers should supply the per-task values (id, name, title, assignee,
16
+ * createdAt, etc.) and leave null-default fields untouched unless they have a
17
+ * real value.
18
+ */
19
+ export function emptyTaskJson(overrides = {}) {
20
+ const today = new Date().toISOString().split("T")[0];
21
+ const base = {
22
+ id: "",
23
+ name: "",
24
+ title: "",
25
+ description: "",
26
+ status: "planning",
27
+ dev_type: null,
28
+ scope: null,
29
+ package: null,
30
+ priority: "P2",
31
+ creator: "",
32
+ assignee: "",
33
+ createdAt: today,
34
+ completedAt: null,
35
+ branch: null,
36
+ base_branch: null,
37
+ worktree_path: null,
38
+ commit: null,
39
+ pr_url: null,
40
+ subtasks: [],
41
+ children: [],
42
+ parent: null,
43
+ relatedFiles: [],
44
+ notes: "",
45
+ meta: {},
46
+ };
47
+ return { ...base, ...overrides };
48
+ }
49
+ //# sourceMappingURL=task-json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-json.js","sourceRoot":"","sources":["../../src/utils/task-json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA6BH;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,YAA+B,EAAE;IAC7D,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,IAAI,GAAa;QACrB,EAAE,EAAE,EAAE;QACN,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,EAAE;QACf,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,KAAK;QAChB,WAAW,EAAE,IAAI;QACjB,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,IAAI;QACjB,aAAa,EAAE,IAAI;QACnB,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE,EAAE;QAChB,KAAK,EAAE,EAAE;QACT,IAAI,EAAE,EAAE;KACT,CAAC;IACF,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;AACnC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindfoldhq/trellis",
3
- "version": "0.5.0-beta.8",
3
+ "version": "0.5.0-beta.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",
@@ -1,292 +0,0 @@
1
- # Directory Structure
2
-
3
- > How backend/CLI code is organized in this project.
4
-
5
- ---
6
-
7
- ## Overview
8
-
9
- This project is a **TypeScript CLI tool** using ES modules. The source code follows a **dogfooding architecture** - Trellis uses its own configuration files (`.cursor/`, `.claude/`, `.trellis/`) as templates for new projects.
10
-
11
- ---
12
-
13
- ## Directory Layout
14
-
15
- ```
16
- src/
17
- ├── cli/ # CLI entry point and argument parsing
18
- │ └── index.ts # Main CLI entry (Commander.js setup)
19
- ├── commands/ # Command implementations
20
- │ └── init.ts # Each command in its own file
21
- ├── configurators/ # Configuration generators
22
- │ ├── index.ts # Platform registry (PLATFORM_FUNCTIONS, derived helpers)
23
- │ ├── shared.ts # Shared utilities (resolvePlaceholders)
24
- │ ├── claude.ts # Claude Code configurator
25
- │ ├── cursor.ts # Cursor configurator
26
- │ ├── iflow.ts # iFlow CLI configurator
27
- │ ├── opencode.ts # OpenCode configurator
28
- │ └── workflow.ts # Creates .trellis/ structure
29
- ├── constants/ # Shared constants and paths
30
- │ └── paths.ts # Path constants (centralized)
31
- ├── templates/ # Template utilities and generic templates
32
- │ ├── markdown/ # Generic markdown templates
33
- │ │ ├── spec/ # Spec templates (*.md.txt)
34
- │ │ ├── init-agent.md # Project root file template
35
- │ │ ├── agents.md # Project root file template
36
- │ │ ├── worktree.yaml.txt # Generic worktree config
37
- │ │ └── index.ts # Template exports
38
- │ └── extract.ts # Template extraction utilities
39
- ├── types/ # TypeScript type definitions
40
- │ └── ai-tools.ts # AI tool types and registry
41
- ├── utils/ # Shared utility functions
42
- │ ├── compare-versions.ts # Semver comparison with prerelease support
43
- │ ├── file-writer.ts # File writing with conflict handling
44
- │ ├── project-detector.ts # Project type detection
45
- │ ├── template-fetcher.ts # Remote template download from GitHub
46
- │ └── template-hash.ts # Template hash tracking for update detection
47
- └── index.ts # Package entry point (exports public API)
48
- ```
49
-
50
- ### Dogfooding Directories (Project Root)
51
-
52
- These directories are copied to `dist/` during build and used as templates:
53
-
54
- ```
55
- .cursor/ # Cursor configuration (dogfooded)
56
- ├── commands/ # Slash commands for Cursor
57
- │ ├── start.md
58
- │ ├── finish-work.md
59
- │ └── ...
60
-
61
- .claude/ # Claude Code configuration (dogfooded)
62
- ├── commands/ # Slash commands
63
- ├── agents/ # Multi-agent pipeline agents
64
- ├── hooks/ # Context injection hooks
65
- └── settings.json # Hook configuration
66
-
67
- .trellis/ # Trellis workflow (partially dogfooded)
68
- ├── scripts/ # Python scripts (dogfooded)
69
- │ ├── common/ # Shared utilities (paths.py, developer.py, etc.)
70
- │ ├── multi_agent/ # Pipeline scripts (start.py, status.py, etc.)
71
- │ ├── hooks/ # Lifecycle hook scripts (project-specific, NOT dogfooded)
72
- │ └── *.py # Main scripts (task.py, get_context.py, etc.)
73
- ├── workspace/ # Developer progress tracking
74
- │ └── index.md # Index template (dogfooded)
75
- ├── spec/ # Project guidelines (NOT dogfooded)
76
- │ ├── backend/ # Backend development docs
77
- │ ├── frontend/ # Frontend development docs
78
- │ └── guides/ # Thinking guides
79
- ├── workflow.md # Workflow documentation (dogfooded)
80
- ├── worktree.yaml # Worktree config (Trellis-specific)
81
- └── .gitignore # Git ignore rules (dogfooded)
82
- ```
83
-
84
- ---
85
-
86
- ## Dogfooding Architecture
87
-
88
- ### What is Dogfooded
89
-
90
- Files that are copied directly from Trellis project to user projects:
91
-
92
- | Source | Destination | Description |
93
- |--------|-------------|-------------|
94
- | `.cursor/` | `.cursor/` | Entire directory copied |
95
- | `.claude/` | `.claude/` | Entire directory copied |
96
- | `.trellis/scripts/` | `.trellis/scripts/` | All scripts copied |
97
- | `.trellis/workflow.md` | `.trellis/workflow.md` | Direct copy |
98
- | `.trellis/.gitignore` | `.trellis/.gitignore` | Direct copy |
99
- | `.trellis/workspace/index.md` | `.trellis/workspace/index.md` | Direct copy |
100
-
101
- ### What is NOT Dogfooded
102
-
103
- Files that use generic templates (in `src/templates/`):
104
-
105
- | Template Source | Destination | Reason |
106
- |----------------|-------------|--------|
107
- | `src/templates/markdown/spec/**/*.md.txt` | `.trellis/spec/**/*.md` | User fills with project-specific content |
108
- | `src/templates/markdown/worktree.yaml.txt` | `.trellis/worktree.yaml` | Language-agnostic template |
109
- | `src/templates/markdown/init-agent.md` | `init-agent.md` | Project root file |
110
- | `src/templates/markdown/agents.md` | `AGENTS.md` | Project root file |
111
-
112
- ### Build Process
113
-
114
- ```bash
115
- # scripts/copy-templates.js copies dogfooding sources to dist/
116
- pnpm build
117
-
118
- # Result:
119
- dist/
120
- ├── .cursor/ # From project root .cursor/
121
- ├── .claude/ # From project root .claude/
122
- ├── .trellis/ # From project root .trellis/ (filtered)
123
- │ ├── scripts/ # All scripts
124
- │ ├── workspace/
125
- │ │ └── index.md # Only index.md, no developer subdirs
126
- │ ├── workflow.md
127
- │ ├── worktree.yaml
128
- │ └── .gitignore
129
- └── templates/ # From src/templates/ (no .ts files)
130
- └── markdown/
131
- └── spec/ # Generic templates
132
- ```
133
-
134
- ---
135
-
136
- ## Module Organization
137
-
138
- ### Layer Responsibilities
139
-
140
- | Layer | Directory | Responsibility |
141
- |-------|-----------|----------------|
142
- | CLI | `cli/` | Parse arguments, display help, call commands |
143
- | Commands | `commands/` | Implement CLI commands, orchestrate actions |
144
- | Configurators | `configurators/` | Copy/generate configuration for tools |
145
- | Templates | `templates/` | Extract template content, provide utilities |
146
- | Types | `types/` | TypeScript type definitions |
147
- | Utils | `utils/` | Reusable utility functions |
148
- | Constants | `constants/` | Shared constants (paths, names) |
149
-
150
- ### Configurator Pattern
151
-
152
- Configurators use `cpSync` for direct directory copy (dogfooding):
153
-
154
- ```typescript
155
- // configurators/cursor.ts
156
- export async function configureCursor(cwd: string): Promise<void> {
157
- const sourcePath = getCursorSourcePath(); // dist/.cursor/ or .cursor/
158
- const destPath = path.join(cwd, ".cursor");
159
- cpSync(sourcePath, destPath, { recursive: true });
160
- }
161
- ```
162
-
163
- ### Template Extraction
164
-
165
- `extract.ts` provides utilities for reading dogfooded files:
166
-
167
- ```typescript
168
- // Get path to .trellis/ (works in dev and production)
169
- getTrellisSourcePath(): string
170
-
171
- // Read file from .trellis/
172
- readTrellisFile(relativePath: string): string
173
-
174
- // Copy directory from .trellis/ with executable scripts
175
- copyTrellisDir(srcRelativePath: string, destPath: string, options?: { executable?: boolean }): void
176
- ```
177
-
178
- ---
179
-
180
- ## Naming Conventions
181
-
182
- ### Files and Directories
183
-
184
- | Convention | Example | Usage |
185
- |------------|---------|-------|
186
- | `kebab-case` | `file-writer.ts` | All TypeScript files |
187
- | `kebab-case` | `multi-agent/` | All directories |
188
- | `*.ts` | `init.ts` | TypeScript source files |
189
- | `*.md.txt` | `index.md.txt` | Template files for markdown |
190
- | `*.yaml.txt` | `worktree.yaml.txt` | Template files for yaml |
191
-
192
- ### Why `.txt` Extension for Templates
193
-
194
- Templates use `.txt` extension to:
195
- - Prevent IDE markdown preview from rendering templates
196
- - Make clear these are template sources, not actual docs
197
- - Avoid confusion with actual markdown files
198
-
199
- ---
200
-
201
- ## DO / DON'T
202
-
203
- ### DO
204
-
205
- - Dogfood from project's own config files when possible
206
- - Use `cpSync` for copying entire directories
207
- - Keep generic templates in `src/templates/markdown/`
208
- - Use `.md.txt` or `.yaml.txt` for template files
209
- - Update dogfooding sources (`.cursor/`, `.claude/`, `.trellis/scripts/`) when making changes
210
- - Always use `python3` explicitly when documenting script invocation (Windows compatibility)
211
-
212
- ### DON'T
213
-
214
- - Don't hardcode file lists - copy entire directories instead
215
- - Don't duplicate content between templates and dogfooding sources
216
- - Don't put project-specific content in generic templates
217
- - Don't use dogfooding for spec/ (users fill these in)
218
-
219
- ---
220
-
221
- ## Design Decisions
222
-
223
- ### Remote Template Download (giget)
224
-
225
- **Context**: Need to download GitHub subdirectories for remote template support.
226
-
227
- **Options Considered**:
228
- 1. `degit` / `tiged` - Simple, but no programmatic API
229
- 2. `giget` - TypeScript native, has programmatic API, used by Nuxt/UnJS
230
- 3. Manual GitHub API - Too complex
231
-
232
- **Decision**: Use `giget` because:
233
- - TypeScript native with programmatic API
234
- - Supports GitHub subdirectory: `gh:user/repo/path/to/subdir`
235
- - Built-in caching for offline support
236
- - Actively maintained by UnJS ecosystem
237
-
238
- **Example**:
239
- ```typescript
240
- import { downloadTemplate } from "giget";
241
-
242
- await downloadTemplate("gh:mindfold-ai/marketplace/specs/electron-fullstack", {
243
- dir: destDir,
244
- preferOffline: true,
245
- });
246
- ```
247
-
248
- ### Directory Conflict Strategy (skip/overwrite/append)
249
-
250
- **Context**: When downloading remote templates, target directory may already exist.
251
-
252
- **Decision**: Three strategies with `skip` as default:
253
- - `skip` - Don't download if directory exists (safe default)
254
- - `overwrite` - Delete existing, download fresh
255
- - `append` - Only copy files that don't exist (merge)
256
-
257
- **Why**: giget doesn't support append natively, so we:
258
- 1. Download to temp directory
259
- 2. Walk and copy missing files only
260
- 3. Clean up temp directory
261
-
262
- **Example**:
263
- ```typescript
264
- // append strategy implementation
265
- const tempDir = path.join(os.tmpdir(), `trellis-template-${Date.now()}`);
266
- await downloadTemplate(source, { dir: tempDir });
267
- await copyMissing(tempDir, destDir); // Only copy non-existing files
268
- await fs.promises.rm(tempDir, { recursive: true });
269
- ```
270
-
271
- ### Extensible Template Type Mapping
272
-
273
- **Context**: Currently only `spec` templates, but future needs `skill`, `command`, `full` types.
274
-
275
- **Decision**: Use type field + mapping table for extensibility:
276
-
277
- ```typescript
278
- const INSTALL_PATHS: Record<string, string> = {
279
- spec: ".trellis/spec",
280
- skill: ".claude/skills",
281
- command: ".claude/commands",
282
- full: ".", // Entire project root
283
- };
284
-
285
- // Usage: auto-detect install path from template type
286
- const destDir = INSTALL_PATHS[template.type] || INSTALL_PATHS.spec;
287
- ```
288
-
289
- **Extensibility**: To add new template type:
290
- 1. Add entry to `INSTALL_PATHS`
291
- 2. Add templates to `index.json` with new type
292
- 3. No code changes needed for download logic