@jahanxu/trellis 0.5.8 → 0.6.0

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 (85) hide show
  1. package/README.md +74 -130
  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 +30 -2
  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 +11 -39
  10. package/dist/commands/update.js.map +1 -1
  11. package/dist/configurators/index.d.ts.map +1 -1
  12. package/dist/configurators/index.js +13 -1
  13. package/dist/configurators/index.js.map +1 -1
  14. package/dist/configurators/qoder.d.ts +8 -0
  15. package/dist/configurators/qoder.d.ts.map +1 -0
  16. package/dist/configurators/qoder.js +52 -0
  17. package/dist/configurators/qoder.js.map +1 -0
  18. package/dist/configurators/workflow.d.ts.map +1 -1
  19. package/dist/configurators/workflow.js +3 -1
  20. package/dist/configurators/workflow.js.map +1 -1
  21. package/dist/migrations/manifests/0.3.0-beta.0.json +60 -41
  22. package/dist/migrations/manifests/0.3.0.json +2 -2
  23. package/dist/migrations/manifests/0.3.1.json +9 -0
  24. package/dist/migrations/manifests/0.3.2.json +9 -0
  25. package/dist/migrations/manifests/0.3.3.json +9 -0
  26. package/dist/templates/claude/commands/trellis/record-session.md +12 -16
  27. package/dist/templates/claude/settings.json +20 -0
  28. package/dist/templates/codex/skills/record-session/SKILL.md +13 -17
  29. package/dist/templates/cursor/commands/trellis-record-session.md +12 -16
  30. package/dist/templates/extract.d.ts +7 -0
  31. package/dist/templates/extract.d.ts.map +1 -1
  32. package/dist/templates/extract.js +13 -0
  33. package/dist/templates/extract.js.map +1 -1
  34. package/dist/templates/gemini/commands/trellis/record-session.toml +12 -16
  35. package/dist/templates/iflow/commands/trellis/record-session.md +12 -16
  36. package/dist/templates/iflow/hooks/session-start.py +1 -0
  37. package/dist/templates/iflow/settings.json +20 -0
  38. package/dist/templates/kilo/commands/trellis/record-session.md +12 -16
  39. package/dist/templates/kiro/skills/record-session/SKILL.md +13 -17
  40. package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md.txt +13 -0
  41. package/dist/templates/opencode/commands/trellis/record-session.md +12 -16
  42. package/dist/templates/qoder/index.d.ts +18 -0
  43. package/dist/templates/qoder/index.d.ts.map +1 -0
  44. package/dist/templates/qoder/index.js +40 -0
  45. package/dist/templates/qoder/index.js.map +1 -0
  46. package/dist/templates/qoder/skills/before-backend-dev/SKILL.md +18 -0
  47. package/dist/templates/qoder/skills/before-frontend-dev/SKILL.md +18 -0
  48. package/dist/templates/qoder/skills/brainstorm/SKILL.md +479 -0
  49. package/dist/templates/qoder/skills/break-loop/SKILL.md +130 -0
  50. package/dist/templates/qoder/skills/check-backend/SKILL.md +18 -0
  51. package/dist/templates/qoder/skills/check-cross-layer/SKILL.md +158 -0
  52. package/dist/templates/qoder/skills/check-frontend/SKILL.md +18 -0
  53. package/dist/templates/qoder/skills/create-command/SKILL.md +101 -0
  54. package/dist/templates/qoder/skills/finish-work/SKILL.md +134 -0
  55. package/dist/templates/qoder/skills/integrate-skill/SKILL.md +221 -0
  56. package/dist/templates/qoder/skills/onboard/SKILL.md +363 -0
  57. package/dist/templates/qoder/skills/record-session/SKILL.md +63 -0
  58. package/dist/templates/qoder/skills/start/SKILL.md +326 -0
  59. package/dist/templates/qoder/skills/update-spec/SKILL.md +290 -0
  60. package/dist/templates/trellis/config.yaml +15 -0
  61. package/dist/templates/trellis/index.d.ts +3 -0
  62. package/dist/templates/trellis/index.d.ts.map +1 -1
  63. package/dist/templates/trellis/index.js +4 -0
  64. package/dist/templates/trellis/index.js.map +1 -1
  65. package/dist/templates/trellis/scripts/add_session.py +52 -21
  66. package/dist/templates/trellis/scripts/common/__init__.py +3 -1
  67. package/dist/templates/trellis/scripts/common/cli_adapter.py +122 -19
  68. package/dist/templates/trellis/scripts/common/config.py +52 -0
  69. package/dist/templates/trellis/scripts/common/git_context.py +121 -11
  70. package/dist/templates/trellis/scripts/multi_agent/plan.py +4 -1
  71. package/dist/templates/trellis/scripts/multi_agent/start.py +5 -1
  72. package/dist/templates/trellis/scripts/task.py +26 -0
  73. package/dist/types/ai-tools.d.ts +3 -3
  74. package/dist/types/ai-tools.d.ts.map +1 -1
  75. package/dist/types/ai-tools.js +8 -0
  76. package/dist/types/ai-tools.js.map +1 -1
  77. package/dist/utils/proxy.d.ts +25 -0
  78. package/dist/utils/proxy.d.ts.map +1 -0
  79. package/dist/utils/proxy.js +60 -0
  80. package/dist/utils/proxy.js.map +1 -0
  81. package/dist/utils/template-fetcher.d.ts +11 -2
  82. package/dist/utils/template-fetcher.d.ts.map +1 -1
  83. package/dist/utils/template-fetcher.js +92 -19
  84. package/dist/utils/template-fetcher.js.map +1 -1
  85. package/package.json +4 -3
@@ -5,7 +5,7 @@
5
5
  "recommendMigrate": false,
6
6
  "changelog": "**BREAKING: Shell to Python Migration**\n- All `.trellis/scripts/*.sh` replaced by Python equivalents (requires Python 3.10+)\n- Directory rename: `multi-agent/` → `multi_agent/` (underscore)\n- Command namespace migration: Claude uses `.claude/commands/trellis/` subdirectory, Cursor uses `trellis-` prefix\n\n**New Platforms (9 total):**\n- Codex (`.agents/skills/`) — OpenAI's CLI agent\n- Kilo (`.kilocode/commands/trellis/`) — commands-only platform\n- Kiro (`.kiro/skills/`) — skills-based platform\n- Gemini CLI (`.gemini/commands/trellis/*.toml`) — TOML-format commands\n- Antigravity (`.agent/workflows/`) — workflow-based platform\n- Plus existing: Claude Code, Cursor, iFlow, OpenCode\n\n**Architecture:**\n- Centralized platform registry replacing scattered init/update logic\n- Extracted `resolvePlaceholders()` to shared module\n- Deduplicated `compareVersions()` to `utils/compare-versions.ts`\n- Remote spec templates from docs repo\n\n**Key Fixes:**\n- Windows encoding: `_configure_stream` with reconfigure/detach fallback for stdout/stderr\n- Windows subprocess: `CREATE_NEW_PROCESS_GROUP` on win32, `start_new_session` on Unix\n- Template placeholder roundtrip (`{{PYTHON_CMD}}` resolution)\n- CLI version comparison for prerelease versions\n- add_session.py table separator tolerance for formatted markdown\n\n**Quality:**\n- 312+ tests across 17+ files (unit, integration, regression)\n- @vitest/coverage-v8 support\n- Executable spec enforcement (7-section structure)",
7
7
  "migrations": [],
8
- "migrationGuide": "# Migration Guide: v0.2.x → v0.3.0\n\n## Overview\n\nAll shell scripts (.sh) have been replaced by Python scripts (.py). This affects any custom workflows, slash commands, or documentation that references the old scripts.\n\n## Requirements\n\n- Python 3.10 or higher\n\n## What Changed\n\n### Script Extensions\n\n| Old Path | New Path |\n|----------|----------|\n| `.trellis/scripts/*.sh` | `.trellis/scripts/*.py` |\n| `.trellis/scripts/common/*.sh` | `.trellis/scripts/common/*.py` |\n| `.trellis/scripts/multi-agent/*.sh` | `.trellis/scripts/multi_agent/*.py` |\n\n### Directory Rename\n\n| Old | New |\n|-----|-----|\n| `multi-agent/` (hyphen) | `multi_agent/` (underscore) |\n\n### Invocation Change\n\n| Old | New |\n|-----|-----|\n| `./script.sh` | `python3 ./script.py` |\n| `./.trellis/scripts/task.sh` | `python3 ./.trellis/scripts/task.py` |\n\n## After Migration\n\nRun `trellis update --migrate` to remove the old shell scripts from your project.",
8
+ "migrationGuide": "# Migration Guide: v0.2.x → v0.3.0\n\n## Overview\n\nAll shell scripts (.sh) have been replaced by Python scripts (.py). This affects any custom workflows, slash commands, or documentation that references the old scripts.\n\n## Requirements\n\n- Python 3.10 or higher\n\n## What Changed\n\n### Script Extensions\n\n| Old Path | New Path |\n|----------|----------|\n| `.trellis/scripts/*.sh` | `.trellis/scripts/*.py` |\n| `.trellis/scripts/common/*.sh` | `.trellis/scripts/common/*.py` |\n| `.trellis/scripts/multi-agent/*.sh` | `.trellis/scripts/multi_agent/*.py` |\n\n### Directory Rename\n\n| Old | New |\n|-----|-----|\n| `multi-agent/` (hyphen) | `multi_agent/` (underscore) |\n\n### Invocation Change\n\n| Old | New |\n|-----|-----|\n| `./script.sh` | `python3 ./script.py` |\n| `./.trellis/scripts/task.sh` | `python3 ./.trellis/scripts/task.py` |\n\n## After Migration\n\nRun `trellis update --migrate` to archive the old shell scripts to `.trellis/scripts-shell-archive/`.",
9
9
  "aiInstructions": "When assisting users upgrading from 0.2.x to 0.3.0:\n1. Search for files containing `.trellis/scripts/*.sh` references and update to `.py`\n2. Replace `multi-agent/` directory references with `multi_agent/` (underscore)\n3. Always use `python3` explicitly, not just `python` (Windows compatibility)\n4. Check ALL locations: docstrings, help text, error messages, markdown docs\n5. Run `trellis update --migrate` to remove legacy shell scripts\n\nNote: Users upgrading from any 0.3.0 prerelease (beta/rc) need no file changes — only the version stamp is updated.",
10
- "notes": "Aggregated release covering beta.0 through rc.6. All file migrations were applied in beta.0. Users upgrading from any 0.3.0 prerelease will see no file changes — only the .version stamp is updated. New projects get all 9 platform options via `trellis init`."
10
+ "notes": "Aggregated release covering beta.0 through rc.6. All file migrations were applied in beta.0 — shell scripts are archived to .trellis/scripts-shell-archive/ (not deleted). Users upgrading from any 0.3.0 prerelease will see no file changes — only the .version stamp is updated. New projects get all 9 platform options via `trellis init`."
11
11
  }
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": "0.3.1",
3
+ "description": "SessionStart reinject on clear/compact + spec template project-type awareness",
4
+ "breaking": false,
5
+ "recommendMigrate": false,
6
+ "changelog": "**Enhancements:**\n- feat(hooks): SessionStart hook now fires on `clear` and `compact` events in addition to `startup` — ensures context is always re-injected after session reset (Claude + iFlow)\n\n**Bug Fixes:**\n- fix(iflow): command templates now write to `.iflow/commands/trellis/` subdirectory (was missing `trellis/` prefix)\n- fix(update): `collectTemplateFiles()` now checks `fs.existsSync` for backend/frontend spec dirs — prevents ghost spec files on project types that don't have them\n- fix(init): `createSpecTemplates()` respects project type — backend-only projects skip frontend spec, vice versa\n- fix(templates): removed dead `guidesCrossPlatformThinkingGuideContent` export and dead links in guides/index.md.txt",
7
+ "migrations": [],
8
+ "notes": "No migration required. Template-level changes only — run `trellis update` to sync. The settings.json changes (clear/compact matchers) will be applied automatically if the file hasn't been user-modified."
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": "0.3.2",
3
+ "description": "Auto-commit workspace changes after record-session",
4
+ "breaking": false,
5
+ "recommendMigrate": false,
6
+ "changelog": "**Enhancements:**\n- feat(scripts): add auto-commit for workspace changes after record-session — journal/index changes are now automatically committed, keeping the working directory clean\n- feat(scripts): add `.trellis/config.yaml` for project-level settings (session_commit_message, max_journal_lines)\n- feat(scripts): add `--no-commit` flag to `add_session.py` to skip auto-commit\n- feat(scripts): add `common/config.py` module for reading config.yaml with sensible defaults\n- feat(templates): update all 8 platform record-session templates with auto-commit documentation",
7
+ "migrations": [],
8
+ "notes": "Run `trellis update` to sync new files (config.yaml, config.py) and updated templates."
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": "0.3.3",
3
+ "description": "Init download UX, update spec protection, and Windows encoding fixes",
4
+ "breaking": false,
5
+ "recommendMigrate": false,
6
+ "changelog": "**Enhancements:**\n- feat(init): add proxy detection with undici ProxyAgent for fetch/giget network calls\n- feat(init): add 5s timeout with live countdown for template index fetch\n- feat(init): add 30s timeout for template downloads via Promise.race\n- feat(init): show source URL and retry hint on download failure\n- feat(init): eliminate double-fetch by passing pre-fetched SpecTemplate to downloadTemplateById\n- feat(update): skip .trellis/spec/ directory entirely — user-customized content is no longer overwritten\n- feat(update): set up proxy before npm version check\n\n**Bug Fixes:**\n- fix(scripts): centralize Windows stdio UTF-8 encoding in common/__init__.py — adds stdin to fix garbled Chinese text when piping via stdin on Windows\n- fix(scripts): remove inline encoding code from add_session.py and git_context.py\n- fix(templates): remove auto-commit details from all 8 platform record-session templates to prevent AI misusing --no-commit flag\n\n**Dependencies:**\n- Add undici ^6.21.0 for ProxyAgent support\n- Bump engines.node from >=18.0.0 to >=18.17.0 (required by undici v6)",
7
+ "migrations": [],
8
+ "notes": "Run `trellis update` to sync updated scripts and templates. Node.js >=18.17.0 is now required."
9
+ }
@@ -4,12 +4,18 @@
4
4
 
5
5
  ---
6
6
 
7
- ## Record Work Progress (Simplified - Only 2 Steps)
7
+ ## Record Work Progress
8
8
 
9
- ### Step 1: Get Context
9
+ ### Step 1: Get Context & Check Tasks
10
10
 
11
11
  ```bash
12
- python3 ./.trellis/scripts/get_context.py
12
+ python3 ./.trellis/scripts/get_context.py --mode record
13
+ ```
14
+
15
+ [!] If MY ACTIVE TASKS shows any completed tasks, archive them FIRST:
16
+
17
+ ```bash
18
+ python3 ./.trellis/scripts/task.py archive <task-name>
13
19
  ```
14
20
 
15
21
  ### Step 2: One-Click Add Session
@@ -38,16 +44,7 @@ EOF
38
44
  - [OK] Appends session to journal-N.md
39
45
  - [OK] Auto-detects line count, creates new file if >2000 lines
40
46
  - [OK] Updates index.md (Total Sessions +1, Last Active, line stats, history)
41
-
42
- ---
43
-
44
- ## Archive Completed Task (if any)
45
-
46
- If a task was completed this session:
47
-
48
- ```bash
49
- python3 ./.trellis/scripts/task.py archive <task-name>
50
- ```
47
+ - [OK] Auto-commits .trellis/workspace and .trellis/tasks changes
51
48
 
52
49
  ---
53
50
 
@@ -55,8 +52,7 @@ python3 ./.trellis/scripts/task.py archive <task-name>
55
52
 
56
53
  | Command | Purpose |
57
54
  |---------|---------|
58
- | `python3 ./.trellis/scripts/get_context.py` | Get all context info |
55
+ | `python3 ./.trellis/scripts/get_context.py --mode record` | Get context for record-session |
59
56
  | `python3 ./.trellis/scripts/add_session.py --title "..." --commit "..."` | **One-click add session (recommended)** |
60
- | `python3 ./.trellis/scripts/task.py create "<title>" [--slug <name>]` | Create new task directory |
61
- | `python3 ./.trellis/scripts/task.py archive <name>` | Archive completed task |
57
+ | `python3 ./.trellis/scripts/task.py archive <name>` | Archive completed task (auto-commits) |
62
58
  | `python3 ./.trellis/scripts/task.py list` | List active tasks |
@@ -10,6 +10,26 @@
10
10
  "timeout": 10
11
11
  }
12
12
  ]
13
+ },
14
+ {
15
+ "matcher": "clear",
16
+ "hooks": [
17
+ {
18
+ "type": "command",
19
+ "command": "{{PYTHON_CMD}} .claude/hooks/session-start.py",
20
+ "timeout": 10
21
+ }
22
+ ]
23
+ },
24
+ {
25
+ "matcher": "compact",
26
+ "hooks": [
27
+ {
28
+ "type": "command",
29
+ "command": "{{PYTHON_CMD}} .claude/hooks/session-start.py",
30
+ "timeout": 10
31
+ }
32
+ ]
13
33
  }
14
34
  ],
15
35
  "PreToolUse": [
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: record-session
3
- description: "Method 1: Simple parameters"
3
+ description: "Record work progress after human has tested and committed code"
4
4
  ---
5
5
 
6
6
  [!] **Prerequisite**: This skill should only be used AFTER the human has tested and committed the code.
@@ -9,12 +9,18 @@ description: "Method 1: Simple parameters"
9
9
 
10
10
  ---
11
11
 
12
- ## Record Work Progress (Simplified - Only 2 Steps)
12
+ ## Record Work Progress
13
13
 
14
- ### Step 1: Get Context
14
+ ### Step 1: Get Context & Check Tasks
15
15
 
16
16
  ```bash
17
- python3 ./.trellis/scripts/get_context.py
17
+ python3 ./.trellis/scripts/get_context.py --mode record
18
+ ```
19
+
20
+ [!] If MY ACTIVE TASKS shows any completed tasks, archive them FIRST:
21
+
22
+ ```bash
23
+ python3 ./.trellis/scripts/task.py archive <task-name>
18
24
  ```
19
25
 
20
26
  ### Step 2: One-Click Add Session
@@ -43,16 +49,7 @@ EOF
43
49
  - [OK] Appends session to journal-N.md
44
50
  - [OK] Auto-detects line count, creates new file if >2000 lines
45
51
  - [OK] Updates index.md (Total Sessions +1, Last Active, line stats, history)
46
-
47
- ---
48
-
49
- ## Archive Completed Task (if any)
50
-
51
- If a task was completed this session:
52
-
53
- ```bash
54
- python3 ./.trellis/scripts/task.py archive <task-name>
55
- ```
52
+ - [OK] Auto-commits .trellis/workspace and .trellis/tasks changes
56
53
 
57
54
  ---
58
55
 
@@ -60,8 +57,7 @@ python3 ./.trellis/scripts/task.py archive <task-name>
60
57
 
61
58
  | Command | Purpose |
62
59
  |---------|---------|
63
- | `python3 ./.trellis/scripts/get_context.py` | Get all context info |
60
+ | `python3 ./.trellis/scripts/get_context.py --mode record` | Get context for record-session |
64
61
  | `python3 ./.trellis/scripts/add_session.py --title "..." --commit "..."` | **One-click add session (recommended)** |
65
- | `python3 ./.trellis/scripts/task.py create "<title>" [--slug <name>]` | Create new task directory |
66
- | `python3 ./.trellis/scripts/task.py archive <name>` | Archive completed task |
62
+ | `python3 ./.trellis/scripts/task.py archive <name>` | Archive completed task (auto-commits) |
67
63
  | `python3 ./.trellis/scripts/task.py list` | List active tasks |
@@ -4,12 +4,18 @@
4
4
 
5
5
  ---
6
6
 
7
- ## Record Work Progress (Simplified - Only 2 Steps)
7
+ ## Record Work Progress
8
8
 
9
- ### Step 1: Get Context
9
+ ### Step 1: Get Context & Check Tasks
10
10
 
11
11
  ```bash
12
- python3 ./.trellis/scripts/get_context.py
12
+ python3 ./.trellis/scripts/get_context.py --mode record
13
+ ```
14
+
15
+ [!] If MY ACTIVE TASKS shows any completed tasks, archive them FIRST:
16
+
17
+ ```bash
18
+ python3 ./.trellis/scripts/task.py archive <task-name>
13
19
  ```
14
20
 
15
21
  ### Step 2: One-Click Add Session
@@ -38,16 +44,7 @@ EOF
38
44
  - [OK] Appends session to journal-N.md
39
45
  - [OK] Auto-detects line count, creates new file if >2000 lines
40
46
  - [OK] Updates index.md (Total Sessions +1, Last Active, line stats, history)
41
-
42
- ---
43
-
44
- ## Archive Completed Task (if any)
45
-
46
- If a task was completed this session:
47
-
48
- ```bash
49
- python3 ./.trellis/scripts/task.py archive <task-name>
50
- ```
47
+ - [OK] Auto-commits .trellis/workspace and .trellis/tasks changes
51
48
 
52
49
  ---
53
50
 
@@ -55,8 +52,7 @@ python3 ./.trellis/scripts/task.py archive <task-name>
55
52
 
56
53
  | Command | Purpose |
57
54
  |---------|---------|
58
- | `python3 ./.trellis/scripts/get_context.py` | Get all context info |
55
+ | `python3 ./.trellis/scripts/get_context.py --mode record` | Get context for record-session |
59
56
  | `python3 ./.trellis/scripts/add_session.py --title "..." --commit "..."` | **One-click add session (recommended)** |
60
- | `python3 ./.trellis/scripts/task.py create "<title>" [--slug <name>]` | Create new task directory |
61
- | `python3 ./.trellis/scripts/task.py archive <name>` | Archive completed task |
57
+ | `python3 ./.trellis/scripts/task.py archive <name>` | Archive completed task (auto-commits) |
62
58
  | `python3 ./.trellis/scripts/task.py list` | List active tasks |
@@ -80,6 +80,13 @@ export declare function getAntigravityTemplatePath(): string;
80
80
  * @deprecated Use getAntigravityTemplatePath() instead.
81
81
  */
82
82
  export declare function getAntigravitySourcePath(): string;
83
+ /**
84
+ * Get the path to the qoder templates directory.
85
+ *
86
+ * This reads from src/templates/qoder/ (development) or dist/templates/qoder/ (production).
87
+ * These are GENERIC templates, not the Trellis project's own .qoder/ configuration.
88
+ */
89
+ export declare function getQoderTemplatePath(): string;
83
90
  /**
84
91
  * Read a file from the .trellis directory
85
92
  * @param relativePath - Path relative to .trellis/ (e.g., 'scripts/task.py')
@@ -1 +1 @@
1
- {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/templates/extract.ts"],"names":[],"mappings":"AAQA,KAAK,gBAAgB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAE5D;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAU/C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAS9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAS9C;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAShD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAS7C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAS5C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAS5C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CASnD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAI5D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,MAAM,GACf,MAAM,CAGR;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAIzD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAS9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACjC,OAAO,CAAC,IAAI,CAAC,CAIf"}
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/templates/extract.ts"],"names":[],"mappings":"AAQA,KAAK,gBAAgB,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAE5D;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAU/C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAS9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAS9C;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CAShD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAS7C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAS5C;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAS5C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,CASnD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAS7C;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAI5D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,MAAM,GACf,MAAM,CAGR;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAIzD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAS9C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAI3D;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,eAAe,EAAE,MAAM,EACvB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,GACjC,OAAO,CAAC,IAAI,CAAC,CAIf"}
@@ -146,6 +146,19 @@ export function getAntigravityTemplatePath() {
146
146
  export function getAntigravitySourcePath() {
147
147
  return getAntigravityTemplatePath();
148
148
  }
149
+ /**
150
+ * Get the path to the qoder templates directory.
151
+ *
152
+ * This reads from src/templates/qoder/ (development) or dist/templates/qoder/ (production).
153
+ * These are GENERIC templates, not the Trellis project's own .qoder/ configuration.
154
+ */
155
+ export function getQoderTemplatePath() {
156
+ const templatePath = path.join(__dirname, "qoder");
157
+ if (fs.existsSync(templatePath)) {
158
+ return templatePath;
159
+ }
160
+ throw new Error("Could not find qoder templates directory. Expected at templates/qoder/");
161
+ }
149
162
  /**
150
163
  * Read a file from the .trellis directory
151
164
  * @param relativePath - Path relative to .trellis/ (e.g., 'scripts/task.py')
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/templates/extract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/templates/extract.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,18 @@ prompt = """
7
7
 
8
8
  ---
9
9
 
10
- ## Record Work Progress (Simplified - Only 2 Steps)
10
+ ## Record Work Progress
11
11
 
12
- ### Step 1: Get Context
12
+ ### Step 1: Get Context & Check Tasks
13
13
 
14
14
  ```bash
15
- python3 ./.trellis/scripts/get_context.py
15
+ python3 ./.trellis/scripts/get_context.py --mode record
16
+ ```
17
+
18
+ [!] If MY ACTIVE TASKS shows any completed tasks, archive them FIRST:
19
+
20
+ ```bash
21
+ python3 ./.trellis/scripts/task.py archive <task-name>
16
22
  ```
17
23
 
18
24
  ### Step 2: One-Click Add Session
@@ -41,16 +47,7 @@ EOF
41
47
  - [OK] Appends session to journal-N.md
42
48
  - [OK] Auto-detects line count, creates new file if >2000 lines
43
49
  - [OK] Updates index.md (Total Sessions +1, Last Active, line stats, history)
44
-
45
- ---
46
-
47
- ## Archive Completed Task (if any)
48
-
49
- If a task was completed this session:
50
-
51
- ```bash
52
- python3 ./.trellis/scripts/task.py archive <task-name>
53
- ```
50
+ - [OK] Auto-commits .trellis/workspace and .trellis/tasks changes
54
51
 
55
52
  ---
56
53
 
@@ -58,9 +55,8 @@ python3 ./.trellis/scripts/task.py archive <task-name>
58
55
 
59
56
  | Command | Purpose |
60
57
  |---------|---------|
61
- | `python3 ./.trellis/scripts/get_context.py` | Get all context info |
58
+ | `python3 ./.trellis/scripts/get_context.py --mode record` | Get context for record-session |
62
59
  | `python3 ./.trellis/scripts/add_session.py --title "..." --commit "..."` | **One-click add session (recommended)** |
63
- | `python3 ./.trellis/scripts/task.py create "<title>" [--slug <name>]` | Create new task directory |
64
- | `python3 ./.trellis/scripts/task.py archive <name>` | Archive completed task |
60
+ | `python3 ./.trellis/scripts/task.py archive <name>` | Archive completed task (auto-commits) |
65
61
  | `python3 ./.trellis/scripts/task.py list` | List active tasks |
66
62
  """
@@ -4,12 +4,18 @@
4
4
 
5
5
  ---
6
6
 
7
- ## Record Work Progress (Simplified - Only 2 Steps)
7
+ ## Record Work Progress
8
8
 
9
- ### Step 1: Get Context
9
+ ### Step 1: Get Context & Check Tasks
10
10
 
11
11
  ```bash
12
- python3 ./.trellis/scripts/get_context.py
12
+ python3 ./.trellis/scripts/get_context.py --mode record
13
+ ```
14
+
15
+ [!] If MY ACTIVE TASKS shows any completed tasks, archive them FIRST:
16
+
17
+ ```bash
18
+ python3 ./.trellis/scripts/task.py archive <task-name>
13
19
  ```
14
20
 
15
21
  ### Step 2: One-Click Add Session
@@ -38,16 +44,7 @@ EOF
38
44
  - [OK] Appends session to journal-N.md
39
45
  - [OK] Auto-detects line count, creates new file if >2000 lines
40
46
  - [OK] Updates index.md (Total Sessions +1, Last Active, line stats, history)
41
-
42
- ---
43
-
44
- ## Archive Completed Task (if any)
45
-
46
- If a task was completed this session:
47
-
48
- ```bash
49
- python3 ./.trellis/scripts/task.py archive <task-name>
50
- ```
47
+ - [OK] Auto-commits .trellis/workspace and .trellis/tasks changes
51
48
 
52
49
  ---
53
50
 
@@ -55,8 +52,7 @@ python3 ./.trellis/scripts/task.py archive <task-name>
55
52
 
56
53
  | Command | Purpose |
57
54
  |---------|---------|
58
- | `python3 ./.trellis/scripts/get_context.py` | Get all context info |
55
+ | `python3 ./.trellis/scripts/get_context.py --mode record` | Get context for record-session |
59
56
  | `python3 ./.trellis/scripts/add_session.py --title "..." --commit "..."` | **One-click add session (recommended)** |
60
- | `python3 ./.trellis/scripts/task.py create "<title>" [--slug <name>]` | Create new task directory |
61
- | `python3 ./.trellis/scripts/task.py archive <name>` | Archive completed task |
57
+ | `python3 ./.trellis/scripts/task.py archive <name>` | Archive completed task (auto-commits) |
62
58
  | `python3 ./.trellis/scripts/task.py list` | List active tasks |
@@ -29,6 +29,7 @@ def should_skip_injection() -> bool:
29
29
  return (
30
30
  os.environ.get("CLAUDE_NON_INTERACTIVE") == "1"
31
31
  or os.environ.get("OPENCODE_NON_INTERACTIVE") == "1"
32
+ or os.environ.get("IFLOW_NON_INTERACTIVE") == "1"
32
33
  )
33
34
 
34
35
 
@@ -10,6 +10,26 @@
10
10
  "timeout": 10
11
11
  }
12
12
  ]
13
+ },
14
+ {
15
+ "matcher": "clear",
16
+ "hooks": [
17
+ {
18
+ "type": "command",
19
+ "command": "{{PYTHON_CMD}} .iflow/hooks/session-start.py",
20
+ "timeout": 10
21
+ }
22
+ ]
23
+ },
24
+ {
25
+ "matcher": "compact",
26
+ "hooks": [
27
+ {
28
+ "type": "command",
29
+ "command": "{{PYTHON_CMD}} .iflow/hooks/session-start.py",
30
+ "timeout": 10
31
+ }
32
+ ]
13
33
  }
14
34
  ],
15
35
  "PreToolUse": [
@@ -4,12 +4,18 @@
4
4
 
5
5
  ---
6
6
 
7
- ## Record Work Progress (Simplified - Only 2 Steps)
7
+ ## Record Work Progress
8
8
 
9
- ### Step 1: Get Context
9
+ ### Step 1: Get Context & Check Tasks
10
10
 
11
11
  ```bash
12
- python3 ./.trellis/scripts/get_context.py
12
+ python3 ./.trellis/scripts/get_context.py --mode record
13
+ ```
14
+
15
+ [!] If MY ACTIVE TASKS shows any completed tasks, archive them FIRST:
16
+
17
+ ```bash
18
+ python3 ./.trellis/scripts/task.py archive <task-name>
13
19
  ```
14
20
 
15
21
  ### Step 2: One-Click Add Session
@@ -38,16 +44,7 @@ EOF
38
44
  - [OK] Appends session to journal-N.md
39
45
  - [OK] Auto-detects line count, creates new file if >2000 lines
40
46
  - [OK] Updates index.md (Total Sessions +1, Last Active, line stats, history)
41
-
42
- ---
43
-
44
- ## Archive Completed Task (if any)
45
-
46
- If a task was completed this session:
47
-
48
- ```bash
49
- python3 ./.trellis/scripts/task.py archive <task-name>
50
- ```
47
+ - [OK] Auto-commits .trellis/workspace and .trellis/tasks changes
51
48
 
52
49
  ---
53
50
 
@@ -55,8 +52,7 @@ python3 ./.trellis/scripts/task.py archive <task-name>
55
52
 
56
53
  | Command | Purpose |
57
54
  |---------|---------|
58
- | `python3 ./.trellis/scripts/get_context.py` | Get all context info |
55
+ | `python3 ./.trellis/scripts/get_context.py --mode record` | Get context for record-session |
59
56
  | `python3 ./.trellis/scripts/add_session.py --title "..." --commit "..."` | **One-click add session (recommended)** |
60
- | `python3 ./.trellis/scripts/task.py create "<title>" [--slug <name>]` | Create new task directory |
61
- | `python3 ./.trellis/scripts/task.py archive <name>` | Archive completed task |
57
+ | `python3 ./.trellis/scripts/task.py archive <name>` | Archive completed task (auto-commits) |
62
58
  | `python3 ./.trellis/scripts/task.py list` | List active tasks |
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: record-session
3
- description: "Method 1: Simple parameters"
3
+ description: "Record work progress after human has tested and committed code"
4
4
  ---
5
5
 
6
6
  [!] **Prerequisite**: This skill should only be used AFTER the human has tested and committed the code.
@@ -9,12 +9,18 @@ description: "Method 1: Simple parameters"
9
9
 
10
10
  ---
11
11
 
12
- ## Record Work Progress (Simplified - Only 2 Steps)
12
+ ## Record Work Progress
13
13
 
14
- ### Step 1: Get Context
14
+ ### Step 1: Get Context & Check Tasks
15
15
 
16
16
  ```bash
17
- python3 ./.trellis/scripts/get_context.py
17
+ python3 ./.trellis/scripts/get_context.py --mode record
18
+ ```
19
+
20
+ [!] If MY ACTIVE TASKS shows any completed tasks, archive them FIRST:
21
+
22
+ ```bash
23
+ python3 ./.trellis/scripts/task.py archive <task-name>
18
24
  ```
19
25
 
20
26
  ### Step 2: One-Click Add Session
@@ -43,16 +49,7 @@ EOF
43
49
  - [OK] Appends session to journal-N.md
44
50
  - [OK] Auto-detects line count, creates new file if >2000 lines
45
51
  - [OK] Updates index.md (Total Sessions +1, Last Active, line stats, history)
46
-
47
- ---
48
-
49
- ## Archive Completed Task (if any)
50
-
51
- If a task was completed this session:
52
-
53
- ```bash
54
- python3 ./.trellis/scripts/task.py archive <task-name>
55
- ```
52
+ - [OK] Auto-commits .trellis/workspace and .trellis/tasks changes
56
53
 
57
54
  ---
58
55
 
@@ -60,8 +57,7 @@ python3 ./.trellis/scripts/task.py archive <task-name>
60
57
 
61
58
  | Command | Purpose |
62
59
  |---------|---------|
63
- | `python3 ./.trellis/scripts/get_context.py` | Get all context info |
60
+ | `python3 ./.trellis/scripts/get_context.py --mode record` | Get context for record-session |
64
61
  | `python3 ./.trellis/scripts/add_session.py --title "..." --commit "..."` | **One-click add session (recommended)** |
65
- | `python3 ./.trellis/scripts/task.py create "<title>" [--slug <name>]` | Create new task directory |
66
- | `python3 ./.trellis/scripts/task.py archive <name>` | Archive completed task |
62
+ | `python3 ./.trellis/scripts/task.py archive <name>` | Archive completed task (auto-commits) |
67
63
  | `python3 ./.trellis/scripts/task.py list` | List active tasks |
@@ -84,6 +84,19 @@ When you've made similar changes to multiple files:
84
84
 
85
85
  ---
86
86
 
87
+ ## Gotcha: Asymmetric Mechanisms Producing Same Output
88
+
89
+ **Problem**: When two different mechanisms must produce the same file set (e.g., recursive directory copy for init vs. manual `files.set()` for update), structural changes (renaming, moving, adding subdirectories) only propagate through the automatic mechanism. The manual one silently drifts.
90
+
91
+ **Symptom**: Init works perfectly, but update creates files at wrong paths or misses files entirely.
92
+
93
+ **Prevention checklist**:
94
+ - [ ] When migrating directory structures, search for ALL code paths that reference the old structure
95
+ - [ ] If one path is auto-derived (glob/copy) and another is manually listed, the manual one needs updating
96
+ - [ ] Add a regression test that compares outputs from both mechanisms
97
+
98
+ ---
99
+
87
100
  ## Checklist Before Commit
88
101
 
89
102
  - [ ] Searched for existing similar code
@@ -4,12 +4,18 @@
4
4
 
5
5
  ---
6
6
 
7
- ## Record Work Progress (Simplified - Only 2 Steps)
7
+ ## Record Work Progress
8
8
 
9
- ### Step 1: Get Context
9
+ ### Step 1: Get Context & Check Tasks
10
10
 
11
11
  ```bash
12
- python3 ./.trellis/scripts/get_context.py
12
+ python3 ./.trellis/scripts/get_context.py --mode record
13
+ ```
14
+
15
+ [!] If MY ACTIVE TASKS shows any completed tasks, archive them FIRST:
16
+
17
+ ```bash
18
+ python3 ./.trellis/scripts/task.py archive <task-name>
13
19
  ```
14
20
 
15
21
  ### Step 2: One-Click Add Session
@@ -38,16 +44,7 @@ EOF
38
44
  - [OK] Appends session to journal-N.md
39
45
  - [OK] Auto-detects line count, creates new file if >2000 lines
40
46
  - [OK] Updates index.md (Total Sessions +1, Last Active, line stats, history)
41
-
42
- ---
43
-
44
- ## Archive Completed Task (if any)
45
-
46
- If a task was completed this session:
47
-
48
- ```bash
49
- python3 ./.trellis/scripts/task.py archive <task-name>
50
- ```
47
+ - [OK] Auto-commits .trellis/workspace and .trellis/tasks changes
51
48
 
52
49
  ---
53
50
 
@@ -55,8 +52,7 @@ python3 ./.trellis/scripts/task.py archive <task-name>
55
52
 
56
53
  | Command | Purpose |
57
54
  |---------|---------|
58
- | `python3 ./.trellis/scripts/get_context.py` | Get all context info |
55
+ | `python3 ./.trellis/scripts/get_context.py --mode record` | Get context for record-session |
59
56
  | `python3 ./.trellis/scripts/add_session.py --title "..." --commit "..."` | **One-click add session (recommended)** |
60
- | `python3 ./.trellis/scripts/task.py create "<title>" [--slug <name>]` | Create new task directory |
61
- | `python3 ./.trellis/scripts/task.py archive <name>` | Archive completed task |
57
+ | `python3 ./.trellis/scripts/task.py archive <name>` | Archive completed task (auto-commits) |
62
58
  | `python3 ./.trellis/scripts/task.py list` | List active tasks |