@mindfoldhq/trellis 0.3.0 → 0.3.2
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.
- package/README.md +4 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +25 -17
- package/dist/commands/update.js.map +1 -1
- package/dist/configurators/index.js +1 -1
- package/dist/configurators/index.js.map +1 -1
- package/dist/configurators/workflow.d.ts.map +1 -1
- package/dist/configurators/workflow.js +57 -51
- package/dist/configurators/workflow.js.map +1 -1
- package/dist/migrations/manifests/0.3.0-beta.0.json +60 -41
- package/dist/migrations/manifests/0.3.0.json +4 -4
- package/dist/migrations/manifests/0.3.1.json +9 -0
- package/dist/migrations/manifests/0.3.2.json +9 -0
- package/dist/templates/claude/commands/trellis/record-session.md +3 -0
- package/dist/templates/claude/settings.json +20 -0
- package/dist/templates/codex/skills/record-session/SKILL.md +3 -0
- package/dist/templates/cursor/commands/trellis-record-session.md +3 -0
- package/dist/templates/gemini/commands/trellis/record-session.toml +3 -0
- package/dist/templates/iflow/commands/trellis/record-session.md +3 -0
- package/dist/templates/iflow/settings.json +20 -0
- package/dist/templates/kilo/commands/trellis/record-session.md +3 -0
- package/dist/templates/kiro/skills/record-session/SKILL.md +3 -0
- package/dist/templates/markdown/index.d.ts +0 -1
- package/dist/templates/markdown/index.d.ts.map +1 -1
- package/dist/templates/markdown/index.js +0 -1
- package/dist/templates/markdown/index.js.map +1 -1
- package/dist/templates/markdown/spec/guides/code-reuse-thinking-guide.md.txt +13 -0
- package/dist/templates/markdown/spec/guides/index.md.txt +0 -10
- package/dist/templates/opencode/commands/trellis/record-session.md +3 -0
- package/dist/templates/trellis/config.yaml +15 -0
- package/dist/templates/trellis/index.d.ts +3 -0
- package/dist/templates/trellis/index.d.ts.map +1 -1
- package/dist/templates/trellis/index.js +4 -0
- package/dist/templates/trellis/index.js.map +1 -1
- package/dist/templates/trellis/scripts/add_session.py +52 -10
- package/dist/templates/trellis/scripts/common/config.py +52 -0
- package/package.json +1 -1
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
"description": "Command path namespace migration + Shell to Python script migration",
|
|
4
4
|
"breaking": true,
|
|
5
5
|
"recommendMigrate": true,
|
|
6
|
-
"changelog": "BREAKING: All shell scripts (.sh) have been replaced by Python scripts (.py). Requires Python 3.10+. The multi-agent/ directory is now multi_agent/ (underscore). Run with --migrate to
|
|
7
|
-
"migrationGuide": "# Migration Guide: v0.3.0 Shell to Python\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## Files to Check\n\nSearch your project for these patterns and update them:\n\n```bash\n# Find files with old .sh references\ngrep -r '\\.trellis/scripts.*\\.sh' .claude/ .cursor/ .trellis/\n\n# Find files with old multi-agent directory\ngrep -r 'multi-agent/' .claude/ .cursor/ .trellis/\n```\n\n## Common Replacements\n\n```\n# Task management\n./.trellis/scripts/task.sh → python3 ./.trellis/scripts/task.py\n\n# Context\n./.trellis/scripts/get-context.sh → python3 ./.trellis/scripts/get_context.py\n\n# Developer\n./.trellis/scripts/get-developer.sh → python3 ./.trellis/scripts/get_developer.py\n./.trellis/scripts/init-developer.sh → python3 ./.trellis/scripts/init_developer.py\n\n# Session\n./.trellis/scripts/add-session.sh → python3 ./.trellis/scripts/add_session.py\n\n# Multi-agent\n./.trellis/scripts/multi-agent/start.sh → python3 ./.trellis/scripts/multi_agent/start.py\n./.trellis/scripts/multi-agent/status.sh → python3 ./.trellis/scripts/multi_agent/status.py\n./.trellis/scripts/multi-agent/plan.sh → python3 ./.trellis/scripts/multi_agent/plan.py\n./.trellis/scripts/multi-agent/cleanup.sh → python3 ./.trellis/scripts/multi_agent/cleanup.py\n./.trellis/scripts/multi-agent/create-pr.sh → python3 ./.trellis/scripts/multi_agent/create_pr.py\n```\n\n## After Migration\n\nRun `trellis update --migrate` to
|
|
6
|
+
"changelog": "BREAKING: All shell scripts (.sh) have been replaced by Python scripts (.py). Requires Python 3.10+. The multi-agent/ directory is now multi_agent/ (underscore). Run with --migrate to archive legacy shell scripts to scripts-shell-archive/.",
|
|
7
|
+
"migrationGuide": "# Migration Guide: v0.3.0 Shell to Python\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## Files to Check\n\nSearch your project for these patterns and update them:\n\n```bash\n# Find files with old .sh references\ngrep -r '\\.trellis/scripts.*\\.sh' .claude/ .cursor/ .trellis/\n\n# Find files with old multi-agent directory\ngrep -r 'multi-agent/' .claude/ .cursor/ .trellis/\n```\n\n## Common Replacements\n\n```\n# Task management\n./.trellis/scripts/task.sh → python3 ./.trellis/scripts/task.py\n\n# Context\n./.trellis/scripts/get-context.sh → python3 ./.trellis/scripts/get_context.py\n\n# Developer\n./.trellis/scripts/get-developer.sh → python3 ./.trellis/scripts/get_developer.py\n./.trellis/scripts/init-developer.sh → python3 ./.trellis/scripts/init_developer.py\n\n# Session\n./.trellis/scripts/add-session.sh → python3 ./.trellis/scripts/add_session.py\n\n# Multi-agent\n./.trellis/scripts/multi-agent/start.sh → python3 ./.trellis/scripts/multi_agent/start.py\n./.trellis/scripts/multi-agent/status.sh → python3 ./.trellis/scripts/multi_agent/status.py\n./.trellis/scripts/multi-agent/plan.sh → python3 ./.trellis/scripts/multi_agent/plan.py\n./.trellis/scripts/multi-agent/cleanup.sh → python3 ./.trellis/scripts/multi_agent/cleanup.py\n./.trellis/scripts/multi-agent/create-pr.sh → python3 ./.trellis/scripts/multi_agent/create_pr.py\n```\n\n## After Migration\n\nRun `trellis update --migrate` to archive the old shell scripts to `.trellis/scripts-shell-archive/`.",
|
|
8
8
|
"aiInstructions": "1. Search for files containing old patterns:\n - `.trellis/scripts/*.sh` references\n - `multi-agent/` directory references (should be `multi_agent/`)\n - `python script.py` without `python3` (Windows compatibility)\n2. For each file found, apply the replacements from the migration guide\n3. IMPORTANT: Always use `python3` explicitly, not just `python` or relying on shebang (Windows doesn't support shebang)\n4. Check ALL locations: docstrings, help text, error messages, markdown docs\n5. Verify the changes compile/work correctly\n6. After all files are updated, remind user to run `trellis update --migrate`",
|
|
9
9
|
"migrations": [
|
|
10
10
|
{
|
|
@@ -177,102 +177,121 @@
|
|
|
177
177
|
},
|
|
178
178
|
|
|
179
179
|
{
|
|
180
|
-
"type": "
|
|
180
|
+
"type": "rename",
|
|
181
181
|
"from": ".trellis/scripts/get-developer.sh",
|
|
182
|
-
"
|
|
182
|
+
"to": ".trellis/scripts-shell-archive/get-developer.sh",
|
|
183
|
+
"description": "Archive legacy shell script (replaced by Python)"
|
|
183
184
|
},
|
|
184
185
|
{
|
|
185
|
-
"type": "
|
|
186
|
+
"type": "rename",
|
|
186
187
|
"from": ".trellis/scripts/init-developer.sh",
|
|
187
|
-
"
|
|
188
|
+
"to": ".trellis/scripts-shell-archive/init-developer.sh",
|
|
189
|
+
"description": "Archive legacy shell script (replaced by Python)"
|
|
188
190
|
},
|
|
189
191
|
{
|
|
190
|
-
"type": "
|
|
192
|
+
"type": "rename",
|
|
191
193
|
"from": ".trellis/scripts/get-context.sh",
|
|
192
|
-
"
|
|
194
|
+
"to": ".trellis/scripts-shell-archive/get-context.sh",
|
|
195
|
+
"description": "Archive legacy shell script (replaced by Python)"
|
|
193
196
|
},
|
|
194
197
|
{
|
|
195
|
-
"type": "
|
|
198
|
+
"type": "rename",
|
|
196
199
|
"from": ".trellis/scripts/task.sh",
|
|
197
|
-
"
|
|
200
|
+
"to": ".trellis/scripts-shell-archive/task.sh",
|
|
201
|
+
"description": "Archive legacy shell script (replaced by Python)"
|
|
198
202
|
},
|
|
199
203
|
{
|
|
200
|
-
"type": "
|
|
204
|
+
"type": "rename",
|
|
201
205
|
"from": ".trellis/scripts/add-session.sh",
|
|
202
|
-
"
|
|
206
|
+
"to": ".trellis/scripts-shell-archive/add-session.sh",
|
|
207
|
+
"description": "Archive legacy shell script (replaced by Python)"
|
|
203
208
|
},
|
|
204
209
|
{
|
|
205
|
-
"type": "
|
|
210
|
+
"type": "rename",
|
|
206
211
|
"from": ".trellis/scripts/create-bootstrap.sh",
|
|
207
|
-
"
|
|
212
|
+
"to": ".trellis/scripts-shell-archive/create-bootstrap.sh",
|
|
213
|
+
"description": "Archive legacy shell script (replaced by Python)"
|
|
208
214
|
},
|
|
209
215
|
|
|
210
216
|
{
|
|
211
|
-
"type": "
|
|
217
|
+
"type": "rename",
|
|
212
218
|
"from": ".trellis/scripts/common/paths.sh",
|
|
213
|
-
"
|
|
219
|
+
"to": ".trellis/scripts-shell-archive/common/paths.sh",
|
|
220
|
+
"description": "Archive legacy shell script (replaced by Python)"
|
|
214
221
|
},
|
|
215
222
|
{
|
|
216
|
-
"type": "
|
|
223
|
+
"type": "rename",
|
|
217
224
|
"from": ".trellis/scripts/common/developer.sh",
|
|
218
|
-
"
|
|
225
|
+
"to": ".trellis/scripts-shell-archive/common/developer.sh",
|
|
226
|
+
"description": "Archive legacy shell script (replaced by Python)"
|
|
219
227
|
},
|
|
220
228
|
{
|
|
221
|
-
"type": "
|
|
229
|
+
"type": "rename",
|
|
222
230
|
"from": ".trellis/scripts/common/git-context.sh",
|
|
223
|
-
"
|
|
231
|
+
"to": ".trellis/scripts-shell-archive/common/git-context.sh",
|
|
232
|
+
"description": "Archive legacy shell script (replaced by Python)"
|
|
224
233
|
},
|
|
225
234
|
{
|
|
226
|
-
"type": "
|
|
235
|
+
"type": "rename",
|
|
227
236
|
"from": ".trellis/scripts/common/worktree.sh",
|
|
228
|
-
"
|
|
237
|
+
"to": ".trellis/scripts-shell-archive/common/worktree.sh",
|
|
238
|
+
"description": "Archive legacy shell script (replaced by Python)"
|
|
229
239
|
},
|
|
230
240
|
{
|
|
231
|
-
"type": "
|
|
241
|
+
"type": "rename",
|
|
232
242
|
"from": ".trellis/scripts/common/task-queue.sh",
|
|
233
|
-
"
|
|
243
|
+
"to": ".trellis/scripts-shell-archive/common/task-queue.sh",
|
|
244
|
+
"description": "Archive legacy shell script (replaced by Python)"
|
|
234
245
|
},
|
|
235
246
|
{
|
|
236
|
-
"type": "
|
|
247
|
+
"type": "rename",
|
|
237
248
|
"from": ".trellis/scripts/common/task-utils.sh",
|
|
238
|
-
"
|
|
249
|
+
"to": ".trellis/scripts-shell-archive/common/task-utils.sh",
|
|
250
|
+
"description": "Archive legacy shell script (replaced by Python)"
|
|
239
251
|
},
|
|
240
252
|
{
|
|
241
|
-
"type": "
|
|
253
|
+
"type": "rename",
|
|
242
254
|
"from": ".trellis/scripts/common/phase.sh",
|
|
243
|
-
"
|
|
255
|
+
"to": ".trellis/scripts-shell-archive/common/phase.sh",
|
|
256
|
+
"description": "Archive legacy shell script (replaced by Python)"
|
|
244
257
|
},
|
|
245
258
|
{
|
|
246
|
-
"type": "
|
|
259
|
+
"type": "rename",
|
|
247
260
|
"from": ".trellis/scripts/common/registry.sh",
|
|
248
|
-
"
|
|
261
|
+
"to": ".trellis/scripts-shell-archive/common/registry.sh",
|
|
262
|
+
"description": "Archive legacy shell script (replaced by Python)"
|
|
249
263
|
},
|
|
250
264
|
|
|
251
265
|
{
|
|
252
|
-
"type": "
|
|
266
|
+
"type": "rename",
|
|
253
267
|
"from": ".trellis/scripts/multi-agent/start.sh",
|
|
254
|
-
"
|
|
268
|
+
"to": ".trellis/scripts-shell-archive/multi-agent/start.sh",
|
|
269
|
+
"description": "Archive legacy shell script (replaced by Python in multi_agent/)"
|
|
255
270
|
},
|
|
256
271
|
{
|
|
257
|
-
"type": "
|
|
272
|
+
"type": "rename",
|
|
258
273
|
"from": ".trellis/scripts/multi-agent/plan.sh",
|
|
259
|
-
"
|
|
274
|
+
"to": ".trellis/scripts-shell-archive/multi-agent/plan.sh",
|
|
275
|
+
"description": "Archive legacy shell script (replaced by Python in multi_agent/)"
|
|
260
276
|
},
|
|
261
277
|
{
|
|
262
|
-
"type": "
|
|
278
|
+
"type": "rename",
|
|
263
279
|
"from": ".trellis/scripts/multi-agent/status.sh",
|
|
264
|
-
"
|
|
280
|
+
"to": ".trellis/scripts-shell-archive/multi-agent/status.sh",
|
|
281
|
+
"description": "Archive legacy shell script (replaced by Python in multi_agent/)"
|
|
265
282
|
},
|
|
266
283
|
{
|
|
267
|
-
"type": "
|
|
284
|
+
"type": "rename",
|
|
268
285
|
"from": ".trellis/scripts/multi-agent/create-pr.sh",
|
|
269
|
-
"
|
|
286
|
+
"to": ".trellis/scripts-shell-archive/multi-agent/create-pr.sh",
|
|
287
|
+
"description": "Archive legacy shell script (replaced by Python in multi_agent/)"
|
|
270
288
|
},
|
|
271
289
|
{
|
|
272
|
-
"type": "
|
|
290
|
+
"type": "rename",
|
|
273
291
|
"from": ".trellis/scripts/multi-agent/cleanup.sh",
|
|
274
|
-
"
|
|
292
|
+
"to": ".trellis/scripts-shell-archive/multi-agent/cleanup.sh",
|
|
293
|
+
"description": "Archive legacy shell script (replaced by Python in multi_agent/)"
|
|
275
294
|
}
|
|
276
295
|
],
|
|
277
|
-
"notes": "Part 1: Command namespace migration - Claude Code uses subdirectory namespacing (.claude/commands/trellis/), Cursor uses filename prefix (.cursor/commands/trellis-*). Part 2: Shell to Python migration - All .trellis/scripts/*.sh files are
|
|
296
|
+
"notes": "Part 1: Command namespace migration - Claude Code uses subdirectory namespacing (.claude/commands/trellis/), Cursor uses filename prefix (.cursor/commands/trellis-*). Part 2: Shell to Python migration - All .trellis/scripts/*.sh files are archived to .trellis/scripts-shell-archive/ (not deleted). The multi-agent/ directory (with hyphen) is replaced by multi_agent/ (with underscore). Empty source directories are automatically cleaned up after rename."
|
|
278
297
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": "0.3.0",
|
|
3
3
|
"description": "Stable release: Shell→Python migration, 9 AI platforms, centralized registry",
|
|
4
|
-
"breaking":
|
|
5
|
-
"recommendMigrate":
|
|
4
|
+
"breaking": false,
|
|
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
|
|
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
|
+
}
|
|
@@ -38,6 +38,9 @@ EOF
|
|
|
38
38
|
- [OK] Appends session to journal-N.md
|
|
39
39
|
- [OK] Auto-detects line count, creates new file if >2000 lines
|
|
40
40
|
- [OK] Updates index.md (Total Sessions +1, Last Active, line stats, history)
|
|
41
|
+
- [OK] Auto-commits workspace changes
|
|
42
|
+
|
|
43
|
+
> Use `--no-commit` to skip auto-commit if needed.
|
|
41
44
|
|
|
42
45
|
---
|
|
43
46
|
|
|
@@ -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": [
|
|
@@ -43,6 +43,9 @@ EOF
|
|
|
43
43
|
- [OK] Appends session to journal-N.md
|
|
44
44
|
- [OK] Auto-detects line count, creates new file if >2000 lines
|
|
45
45
|
- [OK] Updates index.md (Total Sessions +1, Last Active, line stats, history)
|
|
46
|
+
- [OK] Auto-commits workspace changes
|
|
47
|
+
|
|
48
|
+
> Use `--no-commit` to skip auto-commit if needed.
|
|
46
49
|
|
|
47
50
|
---
|
|
48
51
|
|
|
@@ -38,6 +38,9 @@ EOF
|
|
|
38
38
|
- [OK] Appends session to journal-N.md
|
|
39
39
|
- [OK] Auto-detects line count, creates new file if >2000 lines
|
|
40
40
|
- [OK] Updates index.md (Total Sessions +1, Last Active, line stats, history)
|
|
41
|
+
- [OK] Auto-commits workspace changes
|
|
42
|
+
|
|
43
|
+
> Use `--no-commit` to skip auto-commit if needed.
|
|
41
44
|
|
|
42
45
|
---
|
|
43
46
|
|
|
@@ -41,6 +41,9 @@ EOF
|
|
|
41
41
|
- [OK] Appends session to journal-N.md
|
|
42
42
|
- [OK] Auto-detects line count, creates new file if >2000 lines
|
|
43
43
|
- [OK] Updates index.md (Total Sessions +1, Last Active, line stats, history)
|
|
44
|
+
- [OK] Auto-commits workspace changes
|
|
45
|
+
|
|
46
|
+
> Use `--no-commit` to skip auto-commit if needed.
|
|
44
47
|
|
|
45
48
|
---
|
|
46
49
|
|
|
@@ -38,6 +38,9 @@ EOF
|
|
|
38
38
|
- [OK] Appends session to journal-N.md
|
|
39
39
|
- [OK] Auto-detects line count, creates new file if >2000 lines
|
|
40
40
|
- [OK] Updates index.md (Total Sessions +1, Last Active, line stats, history)
|
|
41
|
+
- [OK] Auto-commits workspace changes
|
|
42
|
+
|
|
43
|
+
> Use `--no-commit` to skip auto-commit if needed.
|
|
41
44
|
|
|
42
45
|
---
|
|
43
46
|
|
|
@@ -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": [
|
|
@@ -38,6 +38,9 @@ EOF
|
|
|
38
38
|
- [OK] Appends session to journal-N.md
|
|
39
39
|
- [OK] Auto-detects line count, creates new file if >2000 lines
|
|
40
40
|
- [OK] Updates index.md (Total Sessions +1, Last Active, line stats, history)
|
|
41
|
+
- [OK] Auto-commits workspace changes
|
|
42
|
+
|
|
43
|
+
> Use `--no-commit` to skip auto-commit if needed.
|
|
41
44
|
|
|
42
45
|
---
|
|
43
46
|
|
|
@@ -43,6 +43,9 @@ EOF
|
|
|
43
43
|
- [OK] Appends session to journal-N.md
|
|
44
44
|
- [OK] Auto-detects line count, creates new file if >2000 lines
|
|
45
45
|
- [OK] Updates index.md (Total Sessions +1, Last Active, line stats, history)
|
|
46
|
+
- [OK] Auto-commits workspace changes
|
|
47
|
+
|
|
48
|
+
> Use `--no-commit` to skip auto-commit if needed.
|
|
46
49
|
|
|
47
50
|
---
|
|
48
51
|
|
|
@@ -24,5 +24,4 @@ export declare const frontendStateManagementContent: string;
|
|
|
24
24
|
export declare const guidesIndexContent: string;
|
|
25
25
|
export declare const guidesCrossLayerThinkingGuideContent: string;
|
|
26
26
|
export declare const guidesCodeReuseThinkingGuideContent: string;
|
|
27
|
-
export declare const guidesCrossPlatformThinkingGuideContent: string;
|
|
28
27
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/markdown/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH,eAAO,MAAM,eAAe,EAAE,MAAuC,CAAC;AAGtE,eAAO,MAAM,qBAAqB,EAAE,MACK,CAAC;AAG1C,eAAO,MAAM,yBAAyB,QAAwB,CAAC;AAG/D,eAAO,MAAM,wBAAwB,EAAE,MACH,CAAC;AAQrC,eAAO,MAAM,mBAAmB,EAAE,MAEjC,CAAC;AACF,eAAO,MAAM,gCAAgC,EAAE,MAE9C,CAAC;AACF,eAAO,MAAM,gCAAgC,EAAE,MAE9C,CAAC;AACF,eAAO,MAAM,+BAA+B,EAAE,MAE7C,CAAC;AACF,eAAO,MAAM,+BAA+B,EAAE,MAE7C,CAAC;AACF,eAAO,MAAM,2BAA2B,EAAE,MAEzC,CAAC;AAGF,eAAO,MAAM,oBAAoB,EAAE,MAElC,CAAC;AACF,eAAO,MAAM,iCAAiC,EAAE,MAE/C,CAAC;AACF,eAAO,MAAM,yBAAyB,EAAE,MAEvC,CAAC;AACF,eAAO,MAAM,6BAA6B,EAAE,MAE3C,CAAC;AACF,eAAO,MAAM,kCAAkC,EAAE,MAEhD,CAAC;AACF,eAAO,MAAM,gCAAgC,EAAE,MAE9C,CAAC;AACF,eAAO,MAAM,8BAA8B,EAAE,MAE5C,CAAC;AAGF,eAAO,MAAM,kBAAkB,EAAE,MAEhC,CAAC;AACF,eAAO,MAAM,oCAAoC,EAAE,MAElD,CAAC;AACF,eAAO,MAAM,mCAAmC,EAAE,MAEjD,CAAC
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/markdown/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH,eAAO,MAAM,eAAe,EAAE,MAAuC,CAAC;AAGtE,eAAO,MAAM,qBAAqB,EAAE,MACK,CAAC;AAG1C,eAAO,MAAM,yBAAyB,QAAwB,CAAC;AAG/D,eAAO,MAAM,wBAAwB,EAAE,MACH,CAAC;AAQrC,eAAO,MAAM,mBAAmB,EAAE,MAEjC,CAAC;AACF,eAAO,MAAM,gCAAgC,EAAE,MAE9C,CAAC;AACF,eAAO,MAAM,gCAAgC,EAAE,MAE9C,CAAC;AACF,eAAO,MAAM,+BAA+B,EAAE,MAE7C,CAAC;AACF,eAAO,MAAM,+BAA+B,EAAE,MAE7C,CAAC;AACF,eAAO,MAAM,2BAA2B,EAAE,MAEzC,CAAC;AAGF,eAAO,MAAM,oBAAoB,EAAE,MAElC,CAAC;AACF,eAAO,MAAM,iCAAiC,EAAE,MAE/C,CAAC;AACF,eAAO,MAAM,yBAAyB,EAAE,MAEvC,CAAC;AACF,eAAO,MAAM,6BAA6B,EAAE,MAE3C,CAAC;AACF,eAAO,MAAM,kCAAkC,EAAE,MAEhD,CAAC;AACF,eAAO,MAAM,gCAAgC,EAAE,MAE9C,CAAC;AACF,eAAO,MAAM,8BAA8B,EAAE,MAE5C,CAAC;AAGF,eAAO,MAAM,kBAAkB,EAAE,MAEhC,CAAC;AACF,eAAO,MAAM,oCAAoC,EAAE,MAElD,CAAC;AACF,eAAO,MAAM,mCAAmC,EAAE,MAEjD,CAAC"}
|
|
@@ -49,5 +49,4 @@ export const frontendStateManagementContent = readLocalTemplate("spec/frontend/s
|
|
|
49
49
|
export const guidesIndexContent = readLocalTemplate("spec/guides/index.md.txt");
|
|
50
50
|
export const guidesCrossLayerThinkingGuideContent = readLocalTemplate("spec/guides/cross-layer-thinking-guide.md.txt");
|
|
51
51
|
export const guidesCodeReuseThinkingGuideContent = readLocalTemplate("spec/guides/code-reuse-thinking-guide.md.txt");
|
|
52
|
-
export const guidesCrossPlatformThinkingGuideContent = readLocalTemplate("spec/guides/cross-platform-thinking-guide.md.txt");
|
|
53
52
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/markdown/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;GAEG;AACH,SAAS,iBAAiB,CAAC,QAAgB;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC3C,OAAO,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAEhF,MAAM,CAAC,MAAM,eAAe,GAAW,iBAAiB,CAAC,WAAW,CAAC,CAAC;AAEtE,oDAAoD;AACpD,MAAM,CAAC,MAAM,qBAAqB,GAChC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;AAE1C,gCAAgC;AAChC,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAE/D,2DAA2D;AAC3D,MAAM,CAAC,MAAM,wBAAwB,GACnC,iBAAiB,CAAC,eAAe,CAAC,CAAC;AAErC,gFAAgF;AAChF,0DAA0D;AAC1D,wEAAwE;AACxE,gFAAgF;AAEhF,uCAAuC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAW,iBAAiB,CAC1D,2BAA2B,CAC5B,CAAC;AACF,MAAM,CAAC,MAAM,gCAAgC,GAAW,iBAAiB,CACvE,yCAAyC,CAC1C,CAAC;AACF,MAAM,CAAC,MAAM,gCAAgC,GAAW,iBAAiB,CACvE,yCAAyC,CAC1C,CAAC;AACF,MAAM,CAAC,MAAM,+BAA+B,GAAW,iBAAiB,CACtE,wCAAwC,CACzC,CAAC;AACF,MAAM,CAAC,MAAM,+BAA+B,GAAW,iBAAiB,CACtE,wCAAwC,CACzC,CAAC;AACF,MAAM,CAAC,MAAM,2BAA2B,GAAW,iBAAiB,CAClE,oCAAoC,CACrC,CAAC;AAEF,wCAAwC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAW,iBAAiB,CAC3D,4BAA4B,CAC7B,CAAC;AACF,MAAM,CAAC,MAAM,iCAAiC,GAAW,iBAAiB,CACxE,0CAA0C,CAC3C,CAAC;AACF,MAAM,CAAC,MAAM,yBAAyB,GAAW,iBAAiB,CAChE,kCAAkC,CACnC,CAAC;AACF,MAAM,CAAC,MAAM,6BAA6B,GAAW,iBAAiB,CACpE,sCAAsC,CACvC,CAAC;AACF,MAAM,CAAC,MAAM,kCAAkC,GAAW,iBAAiB,CACzE,2CAA2C,CAC5C,CAAC;AACF,MAAM,CAAC,MAAM,gCAAgC,GAAW,iBAAiB,CACvE,yCAAyC,CAC1C,CAAC;AACF,MAAM,CAAC,MAAM,8BAA8B,GAAW,iBAAiB,CACrE,uCAAuC,CACxC,CAAC;AAEF,mBAAmB;AACnB,MAAM,CAAC,MAAM,kBAAkB,GAAW,iBAAiB,CACzD,0BAA0B,CAC3B,CAAC;AACF,MAAM,CAAC,MAAM,oCAAoC,GAAW,iBAAiB,CAC3E,+CAA+C,CAChD,CAAC;AACF,MAAM,CAAC,MAAM,mCAAmC,GAAW,iBAAiB,CAC1E,8CAA8C,CAC/C,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/markdown/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;GAEG;AACH,SAAS,iBAAiB,CAAC,QAAgB;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC3C,OAAO,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAED,gFAAgF;AAChF,8BAA8B;AAC9B,gFAAgF;AAEhF,MAAM,CAAC,MAAM,eAAe,GAAW,iBAAiB,CAAC,WAAW,CAAC,CAAC;AAEtE,oDAAoD;AACpD,MAAM,CAAC,MAAM,qBAAqB,GAChC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;AAE1C,gCAAgC;AAChC,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAE/D,2DAA2D;AAC3D,MAAM,CAAC,MAAM,wBAAwB,GACnC,iBAAiB,CAAC,eAAe,CAAC,CAAC;AAErC,gFAAgF;AAChF,0DAA0D;AAC1D,wEAAwE;AACxE,gFAAgF;AAEhF,uCAAuC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAW,iBAAiB,CAC1D,2BAA2B,CAC5B,CAAC;AACF,MAAM,CAAC,MAAM,gCAAgC,GAAW,iBAAiB,CACvE,yCAAyC,CAC1C,CAAC;AACF,MAAM,CAAC,MAAM,gCAAgC,GAAW,iBAAiB,CACvE,yCAAyC,CAC1C,CAAC;AACF,MAAM,CAAC,MAAM,+BAA+B,GAAW,iBAAiB,CACtE,wCAAwC,CACzC,CAAC;AACF,MAAM,CAAC,MAAM,+BAA+B,GAAW,iBAAiB,CACtE,wCAAwC,CACzC,CAAC;AACF,MAAM,CAAC,MAAM,2BAA2B,GAAW,iBAAiB,CAClE,oCAAoC,CACrC,CAAC;AAEF,wCAAwC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAW,iBAAiB,CAC3D,4BAA4B,CAC7B,CAAC;AACF,MAAM,CAAC,MAAM,iCAAiC,GAAW,iBAAiB,CACxE,0CAA0C,CAC3C,CAAC;AACF,MAAM,CAAC,MAAM,yBAAyB,GAAW,iBAAiB,CAChE,kCAAkC,CACnC,CAAC;AACF,MAAM,CAAC,MAAM,6BAA6B,GAAW,iBAAiB,CACpE,sCAAsC,CACvC,CAAC;AACF,MAAM,CAAC,MAAM,kCAAkC,GAAW,iBAAiB,CACzE,2CAA2C,CAC5C,CAAC;AACF,MAAM,CAAC,MAAM,gCAAgC,GAAW,iBAAiB,CACvE,yCAAyC,CAC1C,CAAC;AACF,MAAM,CAAC,MAAM,8BAA8B,GAAW,iBAAiB,CACrE,uCAAuC,CACxC,CAAC;AAEF,mBAAmB;AACnB,MAAM,CAAC,MAAM,kBAAkB,GAAW,iBAAiB,CACzD,0BAA0B,CAC3B,CAAC;AACF,MAAM,CAAC,MAAM,oCAAoC,GAAW,iBAAiB,CAC3E,+CAA+C,CAChD,CAAC;AACF,MAAM,CAAC,MAAM,mCAAmC,GAAW,iBAAiB,CAC1E,8CAA8C,CAC/C,CAAC"}
|
|
@@ -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
|
|
@@ -23,7 +23,6 @@ These guides help you **ask the right questions before coding**.
|
|
|
23
23
|
|-------|---------|-------------|
|
|
24
24
|
| [Code Reuse Thinking Guide](./code-reuse-thinking-guide.md) | Identify patterns and reduce duplication | When you notice repeated patterns |
|
|
25
25
|
| [Cross-Layer Thinking Guide](./cross-layer-thinking-guide.md) | Think through data flow across layers | Features spanning multiple layers |
|
|
26
|
-
| [Cross-Platform Thinking Guide](./cross-platform-thinking-guide.md) | Catch platform-specific assumptions | Scripts, paths, commands |
|
|
27
26
|
|
|
28
27
|
---
|
|
29
28
|
|
|
@@ -48,15 +47,6 @@ These guides help you **ask the right questions before coding**.
|
|
|
48
47
|
|
|
49
48
|
→ Read [Code Reuse Thinking Guide](./code-reuse-thinking-guide.md)
|
|
50
49
|
|
|
51
|
-
### When to Think About Cross-Platform Issues
|
|
52
|
-
|
|
53
|
-
- [ ] Writing scripts that users will run directly
|
|
54
|
-
- [ ] Adding usage examples or help text
|
|
55
|
-
- [ ] Working with file paths or commands
|
|
56
|
-
- [ ] **Migrating from shell scripts to Python**
|
|
57
|
-
|
|
58
|
-
→ Read [Cross-Platform Thinking Guide](./cross-platform-thinking-guide.md)
|
|
59
|
-
|
|
60
50
|
---
|
|
61
51
|
|
|
62
52
|
## Pre-Modification Rule (CRITICAL)
|
|
@@ -38,6 +38,9 @@ EOF
|
|
|
38
38
|
- [OK] Appends session to journal-N.md
|
|
39
39
|
- [OK] Auto-detects line count, creates new file if >2000 lines
|
|
40
40
|
- [OK] Updates index.md (Total Sessions +1, Last Active, line stats, history)
|
|
41
|
+
- [OK] Auto-commits workspace changes
|
|
42
|
+
|
|
43
|
+
> Use `--no-commit` to skip auto-commit if needed.
|
|
41
44
|
|
|
42
45
|
---
|
|
43
46
|
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Trellis Configuration
|
|
2
|
+
# Project-level settings for the Trellis workflow system
|
|
3
|
+
#
|
|
4
|
+
# All values have sensible defaults. Only override what you need.
|
|
5
|
+
|
|
6
|
+
#-------------------------------------------------------------------------------
|
|
7
|
+
# Session Recording
|
|
8
|
+
#-------------------------------------------------------------------------------
|
|
9
|
+
|
|
10
|
+
# Commit message used when auto-committing journal/index changes
|
|
11
|
+
# after running add_session.py
|
|
12
|
+
session_commit_message: "chore: record journal"
|
|
13
|
+
|
|
14
|
+
# Maximum lines per journal file before rotating to a new one
|
|
15
|
+
max_journal_lines: 2000
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* │ └── *.py # Main scripts (Python)
|
|
14
14
|
* ├── scripts-shell-archive/ # Archived shell scripts (for reference)
|
|
15
15
|
* ├── workflow.md # Workflow guide
|
|
16
|
+
* ├── config.yaml # Trellis configuration
|
|
16
17
|
* ├── worktree.yaml # Worktree configuration
|
|
17
18
|
* └── gitignore.txt # .gitignore content
|
|
18
19
|
*/
|
|
@@ -27,6 +28,7 @@ export declare const commonTaskUtils: string;
|
|
|
27
28
|
export declare const commonPhase: string;
|
|
28
29
|
export declare const commonRegistry: string;
|
|
29
30
|
export declare const commonCliAdapter: string;
|
|
31
|
+
export declare const commonConfig: string;
|
|
30
32
|
export declare const multiAgentInit: string;
|
|
31
33
|
export declare const multiAgentStart: string;
|
|
32
34
|
export declare const multiAgentCleanup: string;
|
|
@@ -40,6 +42,7 @@ export declare const getContextScript: string;
|
|
|
40
42
|
export declare const addSessionScript: string;
|
|
41
43
|
export declare const createBootstrapScript: string;
|
|
42
44
|
export declare const workflowMdTemplate: string;
|
|
45
|
+
export declare const configYamlTemplate: string;
|
|
43
46
|
export declare const worktreeYamlTemplate: string;
|
|
44
47
|
export declare const gitignoreTemplate: string;
|
|
45
48
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAcH,eAAO,MAAM,WAAW,QAAsC,CAAC;AAG/D,eAAO,MAAM,UAAU,QAA6C,CAAC;AACrE,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,eAAe,QAA8C,CAAC;AAC3E,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,cAAc,QAA6C,CAAC;AACzE,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,cAAc,QAA6C,CAAC;AACzE,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,YAAY,QAA2C,CAAC;AAGrE,eAAO,MAAM,cAAc,QAAkD,CAAC;AAC9E,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,iBAAiB,QAAiD,CAAC;AAChF,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,kBAAkB,QAAmD,CAAC;AACnF,eAAO,MAAM,cAAc,QAA8C,CAAC;AAG1E,eAAO,MAAM,kBAAkB,QAA2C,CAAC;AAC3E,eAAO,MAAM,mBAAmB,QAA4C,CAAC;AAC7E,eAAO,MAAM,UAAU,QAAkC,CAAC;AAC1D,eAAO,MAAM,gBAAgB,QAAyC,CAAC;AACvE,eAAO,MAAM,gBAAgB,QAAyC,CAAC;AACvE,eAAO,MAAM,qBAAqB,QAA8C,CAAC;AAGjF,eAAO,MAAM,kBAAkB,QAA8B,CAAC;AAC9D,eAAO,MAAM,kBAAkB,QAA8B,CAAC;AAC9D,eAAO,MAAM,oBAAoB,QAAgC,CAAC;AAClE,eAAO,MAAM,iBAAiB,QAAgC,CAAC;AAE/D;;GAEG;AACH,wBAAgB,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAoCnD"}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* │ └── *.py # Main scripts (Python)
|
|
14
14
|
* ├── scripts-shell-archive/ # Archived shell scripts (for reference)
|
|
15
15
|
* ├── workflow.md # Workflow guide
|
|
16
|
+
* ├── config.yaml # Trellis configuration
|
|
16
17
|
* ├── worktree.yaml # Worktree configuration
|
|
17
18
|
* └── gitignore.txt # .gitignore content
|
|
18
19
|
*/
|
|
@@ -37,6 +38,7 @@ export const commonTaskUtils = readTemplate("scripts/common/task_utils.py");
|
|
|
37
38
|
export const commonPhase = readTemplate("scripts/common/phase.py");
|
|
38
39
|
export const commonRegistry = readTemplate("scripts/common/registry.py");
|
|
39
40
|
export const commonCliAdapter = readTemplate("scripts/common/cli_adapter.py");
|
|
41
|
+
export const commonConfig = readTemplate("scripts/common/config.py");
|
|
40
42
|
// Python scripts - multi_agent
|
|
41
43
|
export const multiAgentInit = readTemplate("scripts/multi_agent/__init__.py");
|
|
42
44
|
export const multiAgentStart = readTemplate("scripts/multi_agent/start.py");
|
|
@@ -53,6 +55,7 @@ export const addSessionScript = readTemplate("scripts/add_session.py");
|
|
|
53
55
|
export const createBootstrapScript = readTemplate("scripts/create_bootstrap.py");
|
|
54
56
|
// Configuration files
|
|
55
57
|
export const workflowMdTemplate = readTemplate("workflow.md");
|
|
58
|
+
export const configYamlTemplate = readTemplate("config.yaml");
|
|
56
59
|
export const worktreeYamlTemplate = readTemplate("worktree.yaml");
|
|
57
60
|
export const gitignoreTemplate = readTemplate("gitignore.txt");
|
|
58
61
|
/**
|
|
@@ -73,6 +76,7 @@ export function getAllScripts() {
|
|
|
73
76
|
scripts.set("common/phase.py", commonPhase);
|
|
74
77
|
scripts.set("common/registry.py", commonRegistry);
|
|
75
78
|
scripts.set("common/cli_adapter.py", commonCliAdapter);
|
|
79
|
+
scripts.set("common/config.py", commonConfig);
|
|
76
80
|
// Multi-agent
|
|
77
81
|
scripts.set("multi_agent/__init__.py", multiAgentInit);
|
|
78
82
|
scripts.set("multi_agent/start.py", multiAgentStart);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/templates/trellis/index.ts"],"names":[],"mappings":"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"}
|