@blulotus/trellis 0.7.1 → 0.7.3
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/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +0 -8
- package/dist/commands/update.js.map +1 -1
- package/dist/configurators/workflow.d.ts +15 -14
- package/dist/configurators/workflow.d.ts.map +1 -1
- package/dist/configurators/workflow.js +70 -36
- package/dist/configurators/workflow.js.map +1 -1
- package/dist/migrations/manifests/0.7.2.json +9 -0
- package/dist/templates/claude/agents/trellis-research.md +10 -0
- package/dist/templates/codex/agents/trellis-research.toml +17 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-skills-or-commands.md +18 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-spec-structure.md +1 -0
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-workflow.md +1 -0
- package/dist/templates/common/skills/brainstorm.md +30 -0
- package/dist/templates/common/skills/check.md +22 -1
- package/dist/templates/common/skills/tdd.md +4 -0
- package/dist/templates/common/skills/update-spec.md +24 -0
- package/dist/templates/markdown/index.d.ts +1 -0
- package/dist/templates/markdown/index.d.ts.map +1 -1
- package/dist/templates/markdown/index.js +2 -0
- package/dist/templates/markdown/index.js.map +1 -1
- package/dist/templates/markdown/spec/backend/index.md.txt +29 -0
- package/dist/templates/markdown/spec/frontend/index.md.txt +33 -0
- package/dist/templates/markdown/spec/frontend/visual-design.md.txt +155 -0
- package/dist/templates/trellis/config.yaml +32 -8
- package/dist/templates/trellis/index.d.ts +1 -3
- package/dist/templates/trellis/index.d.ts.map +1 -1
- package/dist/templates/trellis/index.js +1 -3
- package/dist/templates/trellis/index.js.map +1 -1
- package/dist/templates/trellis/scripts/add_session.py +8 -7
- package/dist/templates/trellis/scripts/common/config.py +7 -7
- package/dist/templates/trellis/workflow.md +2 -0
- package/package.json +2 -2
- package/dist/templates/trellis/gitattributes.txt +0 -9
|
@@ -19,18 +19,18 @@ max_journal_lines: 2000
|
|
|
19
19
|
#-------------------------------------------------------------------------------
|
|
20
20
|
|
|
21
21
|
# Auto-commit behavior for session journal + task archive operations.
|
|
22
|
-
# -
|
|
23
|
-
#
|
|
24
|
-
# -
|
|
25
|
-
#
|
|
22
|
+
# - false (default): scripts do not touch git. Files (journal-*.md, task archive
|
|
23
|
+
# moves) are still written to disk; you decide whether to git add / commit.
|
|
24
|
+
# - true: scripts auto-stage and auto-commit journal / task changes after
|
|
25
|
+
# add_session.py / task.py archive runs.
|
|
26
26
|
#
|
|
27
|
-
# Use `
|
|
28
|
-
#
|
|
29
|
-
#
|
|
27
|
+
# Use `true` if you want session records to land in git without extra steps.
|
|
28
|
+
# With `true` and parallel worktrees/branches, journal-*.md and index.md merges
|
|
29
|
+
# can conflict; resolve by keeping both sides' session blocks.
|
|
30
30
|
#
|
|
31
31
|
# Accepts: true / false / yes / no / 1 / 0 / on / off (case-insensitive).
|
|
32
32
|
#
|
|
33
|
-
|
|
33
|
+
session_auto_commit: false
|
|
34
34
|
|
|
35
35
|
#-------------------------------------------------------------------------------
|
|
36
36
|
# Task Lifecycle Hooks
|
|
@@ -76,6 +76,30 @@ max_journal_lines: 2000
|
|
|
76
76
|
# Default package used when --package is not specified.
|
|
77
77
|
# default_package: frontend
|
|
78
78
|
|
|
79
|
+
#-------------------------------------------------------------------------------
|
|
80
|
+
# Spec scaffolding
|
|
81
|
+
#-------------------------------------------------------------------------------
|
|
82
|
+
# `spec/frontend/visual-design.md` is the one spec file Trellis ships filled in
|
|
83
|
+
# rather than as a "document your conventions" stub, because visual craft rules
|
|
84
|
+
# are general knowledge no codebase can state. By default it lands only where a
|
|
85
|
+
# frontend layer was detected.
|
|
86
|
+
#
|
|
87
|
+
# - auto (default): written for a frontend or fullstack layer, skipped for a
|
|
88
|
+
# backend-only one.
|
|
89
|
+
# - always: also written into `spec/frontend/` for a backend-only layer, and
|
|
90
|
+
# nothing else from `spec/frontend/` is created. Choose this when backend work
|
|
91
|
+
# in this project regularly reaches a rendered surface.
|
|
92
|
+
#
|
|
93
|
+
# To turn it off, delete the file. `.trellis/spec/` is a protected path, so
|
|
94
|
+
# `trellis update` never writes it back.
|
|
95
|
+
#
|
|
96
|
+
# Read at `trellis init` time. A fresh project has no config.yaml yet, so
|
|
97
|
+
# `always` takes effect from the second `trellis init` onward — set it, then
|
|
98
|
+
# re-run `trellis init` to have the file appear.
|
|
99
|
+
#
|
|
100
|
+
# spec:
|
|
101
|
+
# visual_design: auto
|
|
102
|
+
|
|
79
103
|
#-------------------------------------------------------------------------------
|
|
80
104
|
# Default workflow
|
|
81
105
|
#-------------------------------------------------------------------------------
|
|
@@ -15,8 +15,7 @@
|
|
|
15
15
|
* ├── scripts-shell-archive/ # Archived shell scripts (for reference)
|
|
16
16
|
* ├── workflow.md # Workflow guide
|
|
17
17
|
* ├── config.yaml # Trellis configuration
|
|
18
|
-
*
|
|
19
|
-
* └── gitattributes.txt # project-root .gitattributes content
|
|
18
|
+
* └── gitignore.txt # .gitignore content
|
|
20
19
|
*/
|
|
21
20
|
export declare const scriptsInit: string;
|
|
22
21
|
export declare const commonInit: string;
|
|
@@ -50,7 +49,6 @@ export declare const addSessionScript: string;
|
|
|
50
49
|
export declare const workflowMdTemplate: string;
|
|
51
50
|
export declare const configYamlTemplate: string;
|
|
52
51
|
export declare const gitignoreTemplate: string;
|
|
53
|
-
export declare const gitattributesTemplate: string;
|
|
54
52
|
export declare const implementAgentTemplate: string;
|
|
55
53
|
export declare const checkAgentTemplate: string;
|
|
56
54
|
/**
|
|
@@ -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,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,YAAY,QAA2C,CAAC;AACrE,eAAO,MAAM,QAAQ,QAAuC,CAAC;AAC7D,eAAO,MAAM,SAAS,QAAwC,CAAC;AAC/D,eAAO,MAAM,SAAS,QAAwC,CAAC;AAC/D,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,WAAW,QAA0C,CAAC;AACnE,eAAO,MAAM,iBAAiB,QAAiD,CAAC;AAChF,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,oBAAoB,QAEhC,CAAC;AACF,eAAO,MAAM,qBAAqB,QAEjC,CAAC;AACF,eAAO,MAAM,mBAAmB,QAE/B,CAAC;AACF,eAAO,MAAM,uBAAuB,QAEnC,CAAC;AACF,eAAO,MAAM,mBAAmB,QAE/B,CAAC;AACF,eAAO,MAAM,eAAe,QAA+C,CAAC;AAC5E,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAC9E,eAAO,MAAM,gBAAgB,QAAgD,CAAC;AAG9E,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;AAGvE,eAAO,MAAM,kBAAkB,QAA8B,CAAC;AAC9D,eAAO,MAAM,kBAAkB,QAA8B,CAAC;AAC9D,eAAO,MAAM,iBAAiB,QAAgC,CAAC;AAM/D,eAAO,MAAM,sBAAsB,QAAsC,CAAC;AAC1E,eAAO,MAAM,kBAAkB,QAAkC,CAAC;AAElE;;GAEG;AACH,wBAAgB,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAuCnD;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAKlD"}
|
|
@@ -15,8 +15,7 @@
|
|
|
15
15
|
* ├── scripts-shell-archive/ # Archived shell scripts (for reference)
|
|
16
16
|
* ├── workflow.md # Workflow guide
|
|
17
17
|
* ├── config.yaml # Trellis configuration
|
|
18
|
-
*
|
|
19
|
-
* └── gitattributes.txt # project-root .gitattributes content
|
|
18
|
+
* └── gitignore.txt # .gitignore content
|
|
20
19
|
*/
|
|
21
20
|
import { readFileSync } from "node:fs";
|
|
22
21
|
import { dirname, join } from "node:path";
|
|
@@ -62,7 +61,6 @@ export const addSessionScript = readTemplate("scripts/add_session.py");
|
|
|
62
61
|
export const workflowMdTemplate = readTemplate("workflow.md");
|
|
63
62
|
export const configYamlTemplate = readTemplate("config.yaml");
|
|
64
63
|
export const gitignoreTemplate = readTemplate("gitignore.txt");
|
|
65
|
-
export const gitattributesTemplate = readTemplate("gitattributes.txt");
|
|
66
64
|
// Channel runtime agent definitions (loaded by
|
|
67
65
|
// `packages/cli/src/commands/channel/agent-loader.ts` from `.trellis/agents/`).
|
|
68
66
|
// These are platform-agnostic Trellis runtime files dispatched at `trellis init`
|
|
@@ -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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"}
|
|
@@ -202,9 +202,9 @@ def is_git_worktree(repo_root: Path) -> bool:
|
|
|
202
202
|
|
|
203
203
|
|
|
204
204
|
def warn_if_parallel_worktree(repo_root: Path) -> None:
|
|
205
|
-
"""Non-blocking note:
|
|
206
|
-
are expected and safe. Only fires when running in a
|
|
207
|
-
(not the main tree) with `session_auto_commit` enabled
|
|
205
|
+
"""Non-blocking note: workspace merge conflicts across parallel
|
|
206
|
+
worktrees/branches are expected and safe. Only fires when running in a
|
|
207
|
+
linked git worktree (not the main tree) with `session_auto_commit` enabled.
|
|
208
208
|
"""
|
|
209
209
|
if not get_session_auto_commit(repo_root):
|
|
210
210
|
return
|
|
@@ -213,10 +213,11 @@ def warn_if_parallel_worktree(repo_root: Path) -> None:
|
|
|
213
213
|
print(
|
|
214
214
|
colored(
|
|
215
215
|
"[NOTE] Running in a git worktree with session_auto_commit enabled: "
|
|
216
|
-
"journal-*.md
|
|
217
|
-
"
|
|
218
|
-
"
|
|
219
|
-
"
|
|
216
|
+
"journal-*.md and index.md conflicts across parallel "
|
|
217
|
+
"worktrees/branches are expected and safe to resolve by keeping "
|
|
218
|
+
"both sides' session blocks (task state lives in task.json, not in "
|
|
219
|
+
"the workspace files). See "
|
|
220
|
+
".trellis/spec/cli/backend/directory-structure.md "
|
|
220
221
|
'("Workspace Journal Merge Behavior").',
|
|
221
222
|
Colors.YELLOW,
|
|
222
223
|
),
|
|
@@ -167,7 +167,7 @@ def _next_content_line(lines: list[str], start: int) -> tuple[int, str]:
|
|
|
167
167
|
# Defaults
|
|
168
168
|
DEFAULT_SESSION_COMMIT_MESSAGE = "chore: record journal"
|
|
169
169
|
DEFAULT_MAX_JOURNAL_LINES = 2000
|
|
170
|
-
DEFAULT_SESSION_AUTO_COMMIT =
|
|
170
|
+
DEFAULT_SESSION_AUTO_COMMIT = False
|
|
171
171
|
DEFAULT_CODEX_DISPATCH_MODE = "auto"
|
|
172
172
|
|
|
173
173
|
CONFIG_FILE = "config.yaml"
|
|
@@ -220,14 +220,14 @@ def get_session_auto_commit(repo_root: Path | None = None) -> bool:
|
|
|
220
220
|
Governs both ``add_session.py:_auto_commit_workspace`` and
|
|
221
221
|
``task_store.py:_auto_commit_archive``.
|
|
222
222
|
|
|
223
|
-
Default: ``
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
223
|
+
Default: ``False`` — the journal / archive files are written to disk and
|
|
224
|
+
git is left untouched; the user manages ``git add`` / ``git commit``.
|
|
225
|
+
Set ``session_auto_commit: true`` in ``.trellis/config.yaml`` to let the
|
|
226
|
+
scripts auto-stage and auto-commit those changes.
|
|
227
227
|
|
|
228
228
|
Accepts native YAML booleans (``true`` / ``false``) and the string
|
|
229
229
|
aliases ``true / false / yes / no / 1 / 0 / on / off`` (case-insensitive).
|
|
230
|
-
Invalid values fall back to ``
|
|
230
|
+
Invalid values fall back to ``False`` with a stderr warning.
|
|
231
231
|
"""
|
|
232
232
|
config = _load_config(repo_root)
|
|
233
233
|
raw = config.get("session_auto_commit", DEFAULT_SESSION_AUTO_COMMIT)
|
|
@@ -239,7 +239,7 @@ def get_session_auto_commit(repo_root: Path | None = None) -> bool:
|
|
|
239
239
|
if s in ("false", "no", "0", "off"):
|
|
240
240
|
return False
|
|
241
241
|
print(
|
|
242
|
-
f"[WARN] invalid session_auto_commit value: {raw!r}; using
|
|
242
|
+
f"[WARN] invalid session_auto_commit value: {raw!r}; using false (default)",
|
|
243
243
|
file=sys.stderr,
|
|
244
244
|
)
|
|
245
245
|
return DEFAULT_SESSION_AUTO_COMMIT
|
|
@@ -253,6 +253,7 @@ Tools: `trellis-implement` / `trellis-research` name sub-agent roles dispatched
|
|
|
253
253
|
Flow: `trellis-implement` -> `trellis-check` -> commit (Phase 3.4) -> `/trellis:finish-work`. Spec update (3.3) is on demand — run it when the user asks, not as part of the default flow.
|
|
254
254
|
Red before green: work the `implement.md` slice checklist one slice at a time — test at a seam confirmed in `design.md`, run it, paste the redacted red output into that slice entry, then write the minimum code to pass. No horizontal slicing, no tautological assertions, no refactoring inside a red-green cycle. `kind=chore` and repos with no runnable harness must state that in the slice entry instead of skipping silently. Load the `trellis-tdd` skill for the full contract.
|
|
255
255
|
Main-session default: dispatch implement/check sub-agents. Sub-agent self-exemption: if already running as `trellis-implement`, do NOT spawn another `trellis-implement` or `trellis-check`; if already running as `trellis-check`, do NOT spawn another `trellis-check` or `trellis-implement`. Dispatch is main session only.
|
|
256
|
+
Green is a claim to prove: never report "tests pass" without this session's command output; a run that skipped or never entered the path is not a pass even when it prints OK; a verifier dying before its assertions is a setup failure, not a product one.
|
|
256
257
|
Dispatch prompt starts with `Active task: <task path from task.py current>`. Read context: jsonl entries -> `prd.md` -> `design.md` -> `implement.md`.
|
|
257
258
|
[/workflow-state:in_progress]
|
|
258
259
|
|
|
@@ -265,6 +266,7 @@ Dispatch prompt starts with `Active task: <task path from task.py current>`. Rea
|
|
|
265
266
|
Flow: `trellis-before-dev` -> edit -> `trellis-check` -> validation -> commit (Phase 3.4) -> `/trellis:finish-work`. Spec update (3.3) is on demand — run it when the user asks, not as part of the default flow.
|
|
266
267
|
Red before green: work the `implement.md` slice checklist one slice at a time — test at a seam confirmed in `design.md`, run it, paste the redacted red output into that slice entry, then write the minimum code to pass. No horizontal slicing, no tautological assertions, no refactoring inside a red-green cycle. `kind=chore` and repos with no runnable harness must state that in the slice entry instead of skipping silently. Load the `trellis-tdd` skill for the full contract.
|
|
267
268
|
Do not dispatch implement/check sub-agents in inline mode.
|
|
269
|
+
Green is a claim to prove: never report "tests pass" without this session's command output; a run that skipped or never entered the path is not a pass even when it prints OK; a verifier dying before its assertions is a setup failure, not a product one.
|
|
268
270
|
Read context: `prd.md` -> `design.md` -> `implement.md`, plus relevant spec/research loaded by skills.
|
|
269
271
|
[/workflow-state:in_progress-inline]
|
|
270
272
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blulotus/trellis",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.3",
|
|
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",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"inquirer": "^9.3.7",
|
|
35
35
|
"undici": "^6.21.0",
|
|
36
36
|
"zod": "^4.4.2",
|
|
37
|
-
"@blulotus/trellis-core": "0.7.
|
|
37
|
+
"@blulotus/trellis-core": "0.7.3"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@eslint/js": "^9.18.0",
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
# Trellis: append-only developer journals should merge cleanly across
|
|
2
|
-
# parallel sessions/worktrees — each session only appends a new block, so
|
|
3
|
-
# there is nothing to actually conflict on.
|
|
4
|
-
#
|
|
5
|
-
# Do NOT add a rule for workspace/*/index.md here — it is fully regenerated
|
|
6
|
-
# every session, so a real conflict there is expected and safe to resolve by
|
|
7
|
-
# picking either side (task state lives in task.json, not index.md). See
|
|
8
|
-
# .trellis/spec/cli/backend/directory-structure.md for details.
|
|
9
|
-
.trellis/workspace/*/journal-*.md merge=union
|