@pennixrv/trellis 0.7.0-beta.43 → 0.7.0-beta.45
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/migrations/manifests/0.7.0-beta.44.json +9 -0
- package/dist/migrations/manifests/0.7.0-beta.45.json +9 -0
- package/dist/templates/common/bundled-skills/trellis-channel/references/multi-target-dispatch.md +6 -2
- package/dist/templates/common/bundled-skills/trellis-channel/references/workflows.md +14 -2
- package/dist/templates/common/bundled-skills/trellis-meta/references/customize-local/change-skills-or-commands.md +13 -11
- package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/workflow.md +6 -4
- package/dist/templates/common/bundled-skills/trellis-session-insight/SKILL.md +23 -0
- package/dist/templates/common/commands/finish-work.md +17 -2
- package/dist/templates/common/skills/check.md +22 -5
- package/dist/templates/markdown/spec/guides/index.md.txt +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.7.0-beta.44",
|
|
3
|
+
"description": "Bounded Codex memory queries and workflow asset boundaries",
|
|
4
|
+
"breaking": false,
|
|
5
|
+
"recommendMigrate": false,
|
|
6
|
+
"changelog": "Read Codex JSONL memory queries in bounded passes, preserve compaction and repeated-turn semantics, enforce context character budgets, and clarify managed asset, dispatch, archive acceptance, and bulk research boundaries.",
|
|
7
|
+
"migrations": [],
|
|
8
|
+
"notes": "No migrations. Existing session data, task state, and user-owned workflow files are preserved."
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.7.0-beta.45",
|
|
3
|
+
"description": "Bounded Codex memory queries and workflow asset boundaries",
|
|
4
|
+
"breaking": false,
|
|
5
|
+
"recommendMigrate": false,
|
|
6
|
+
"changelog": "Read Codex JSONL memory queries in bounded passes, preserve compaction and repeated-turn semantics, enforce context character budgets, and clarify managed asset, dispatch, archive acceptance, and bulk research boundaries.",
|
|
7
|
+
"migrations": [],
|
|
8
|
+
"notes": "No migrations. Existing session data, task state, and user-owned workflow files are preserved."
|
|
9
|
+
}
|
package/dist/templates/common/bundled-skills/trellis-channel/references/multi-target-dispatch.md
CHANGED
|
@@ -2,8 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Use after the user has authorized independent evidence and the task owns a
|
|
4
4
|
reviewed unit mapping. Read `subnode-work.md` for artifact and acceptance rules.
|
|
5
|
-
Codex inline
|
|
6
|
-
|
|
5
|
+
Codex inline workflows skip native implement/check dispatch and keep ordinary
|
|
6
|
+
implementation/checking in the main session; inline mode does not disable
|
|
7
|
+
explicit Channel evidence. Channel implement/check workers belong to a
|
|
8
|
+
separately selected Channel-driven workflow, not `codex-subnode-channel`.
|
|
9
|
+
Codex Channel workers disable their own native multi-agent features to prevent
|
|
10
|
+
recursive dispatch. Missing independent reports cannot be replaced by
|
|
7
11
|
main-session pass claims.
|
|
8
12
|
|
|
9
13
|
## Prepare And Dispatch In One Host Call
|
|
@@ -3,6 +3,13 @@
|
|
|
3
3
|
Use these patterns by intent. Prefer durable channels for multi-round work and
|
|
4
4
|
`channel run` for one-shot questions.
|
|
5
5
|
|
|
6
|
+
The selected project workflow owns the dispatch and evidence contract. Under
|
|
7
|
+
`codex-subnode-channel`, the main session implements/checks inline and explicitly
|
|
8
|
+
approved independent evidence uses the subnode brief/report/acceptance path in
|
|
9
|
+
`subnode-work.md`. The generic agent examples below do not override that path.
|
|
10
|
+
Codex Channel workers disable their own native multi-agent features to prevent
|
|
11
|
+
recursion; main-session inline mode does not disable explicit Channel evidence.
|
|
12
|
+
|
|
6
13
|
## Pattern A: Multi-round Brainstorm
|
|
7
14
|
|
|
8
15
|
Use when the user says "和 codex/claude 讨论一下", "brainstorm", or "拉一个 agent
|
|
@@ -49,7 +56,10 @@ needed.
|
|
|
49
56
|
|
|
50
57
|
## Pattern B: Implement / Check Agent
|
|
51
58
|
|
|
52
|
-
Use when the
|
|
59
|
+
Use only when the selected workflow permits Channel implement/check dispatch
|
|
60
|
+
and the task authorizes it, such as a Channel-driven workflow. Under
|
|
61
|
+
`codex-subnode-channel`, use an approved independent-evidence subnode instead;
|
|
62
|
+
ordinary implementation/checking stays in the main session.
|
|
53
63
|
|
|
54
64
|
```bash
|
|
55
65
|
TASK=.trellis/tasks/05-12-foo
|
|
@@ -74,7 +84,9 @@ already run.
|
|
|
74
84
|
|
|
75
85
|
## Pattern C: Parallel Reviewers
|
|
76
86
|
|
|
77
|
-
Use one channel and distinct worker names
|
|
87
|
+
Use one channel and distinct worker names only under the same permitted
|
|
88
|
+
dispatch contract as Pattern B. These generic check workers are not the default
|
|
89
|
+
review path for `codex-subnode-channel`.
|
|
78
90
|
|
|
79
91
|
```bash
|
|
80
92
|
trellis channel create cr-feature --ephemeral
|
|
@@ -4,10 +4,11 @@ When the user wants to change AI entry points, auto-trigger rules, or explicit c
|
|
|
4
4
|
|
|
5
5
|
Before editing, classify the skill you are about to touch:
|
|
6
6
|
|
|
7
|
-
- **Bundled
|
|
8
|
-
- **
|
|
7
|
+
- **Bundled multi-file skill** — `trellis-meta`, `trellis-spec-bootstrap`, `trellis-session-insight`, `trellis-channel`, `trellis-research-record`. Source lives under `packages/cli/src/templates/common/bundled-skills/<name>/`; `getBundledSkillTemplates()` distributes it to each platform skill root on init/update.
|
|
8
|
+
- **Other Trellis-managed entry** — single-file skills such as `trellis-check` and `trellis-before-dev`, command-backed skills such as `trellis-finish-work`, and platform-specific entries. Their sources live under `common/skills/`, `common/commands/` or the relevant platform template directory. Configurators generate them and update tracks their template hashes too.
|
|
9
|
+
- **Project-local entry** — content created by the project outside the managed template set, owned by the user and not refreshed by `trellis update`. Its directory or absence from a short bundled-name list does not establish ownership.
|
|
9
10
|
|
|
10
|
-
The remainder
|
|
11
|
+
The remainder uses "skill" for the local file. Confirm its actual source and generated-file ownership before choosing the edit path.
|
|
11
12
|
|
|
12
13
|
## Read These Files First
|
|
13
14
|
|
|
@@ -15,7 +16,7 @@ The remainder of this file uses "skill" for the local file; the override and con
|
|
|
15
16
|
2. Target platform skill/command/prompt/workflow directory
|
|
16
17
|
3. Related agent or hook files
|
|
17
18
|
4. Whether project rules already exist in `.trellis/spec/`
|
|
18
|
-
5. `.trellis/.template-hashes.json`
|
|
19
|
+
5. `.trellis/.template-hashes.json` and the relevant template/configurator — a hash entry confirms management; a missing entry alone does not prove project ownership.
|
|
19
20
|
|
|
20
21
|
## Which Entry Type To Choose
|
|
21
22
|
|
|
@@ -25,7 +26,7 @@ The remainder of this file uses "skill" for the local file; the override and con
|
|
|
25
26
|
| User wants to trigger manually with a command | Add or modify a command/prompt/workflow. |
|
|
26
27
|
| Team project conventions | Prefer `.trellis/spec/` or a project-local skill — never a bundled skill directory. |
|
|
27
28
|
| Tweak a bundled skill (`trellis-meta` et al.) for the user's own project | Create a project-local sibling skill (different name) that overrides intent, or edit `.trellis/spec/`. Edits inside the bundled skill directory survive only until the next `trellis update` and will need a "keep" choice each time. |
|
|
28
|
-
| Contribute the change back upstream | Edit
|
|
29
|
+
| Contribute the change back upstream | Edit its actual bundled, common skill/command or platform template source in the Trellis CLI repo, not the deployed copy. |
|
|
29
30
|
| Change Trellis flow semantics | Synchronize `.trellis/workflow.md`. |
|
|
30
31
|
|
|
31
32
|
## Modify A Skill
|
|
@@ -50,12 +51,12 @@ Do not write vague descriptions such as "helpful project skill"; they can trigge
|
|
|
50
51
|
|
|
51
52
|
### Bundled vs. Project-Local
|
|
52
53
|
|
|
53
|
-
The same directory shape
|
|
54
|
+
The same directory shape can contain different ownership models:
|
|
54
55
|
|
|
55
|
-
| Aspect |
|
|
56
|
+
| Aspect | Trellis-managed entry | Project-local |
|
|
56
57
|
| --- | --- | --- |
|
|
57
|
-
| Source of truth |
|
|
58
|
-
|
|
|
58
|
+
| Source of truth | Actual bundled, common skill/command or platform template in the Trellis CLI repo | Inside the user project itself |
|
|
59
|
+
| Generation | Bundled files use `getBundledSkillTemplates()`; other entries use the platform configurator on init/update | Created by the user (or another skill) |
|
|
59
60
|
| Hash tracking | Every file recorded in `.trellis/.template-hashes.json`; conflict prompt on update | Not tracked |
|
|
60
61
|
| Editing locally | Allowed but will be marked "modified by user" on next update | Free editing |
|
|
61
62
|
| The right way to customize | Add a *new* project-local skill with a *different* name that supplements (or supersedes) the bundled one | Edit the file directly |
|
|
@@ -92,7 +93,7 @@ If a command only repeats workflow rules, prefer making it reference/read `.trel
|
|
|
92
93
|
| ZCode | `.zcode/skills/`, `.zcode/commands/` |
|
|
93
94
|
| Kilo / Antigravity / Devin | workflows + skills |
|
|
94
95
|
|
|
95
|
-
|
|
96
|
+
The bundled multi-file skills are distributed to each supported platform skill root on init/update; other managed entries follow that platform's configurator. Read the actual template set rather than inferring it from a fixed count.
|
|
96
97
|
|
|
97
98
|
## Add A Project-Local Skill
|
|
98
99
|
|
|
@@ -111,8 +112,9 @@ Pick a name that does **not** collide with the bundled set:
|
|
|
111
112
|
- `trellis-spec-bootstrap`
|
|
112
113
|
- `trellis-session-insight`
|
|
113
114
|
- `trellis-channel`
|
|
115
|
+
- `trellis-research-record`
|
|
114
116
|
|
|
115
|
-
A
|
|
117
|
+
Also avoid names of generated single-file or platform entries. A collision becomes managed template content or an update conflict; it is not a durable override. A common convention is to prefix the project name: `acme-trellis-deploy`, `acme-trellis-onboarding`.
|
|
116
118
|
|
|
117
119
|
## Notes
|
|
118
120
|
|
package/dist/templates/common/bundled-skills/trellis-meta/references/local-architecture/workflow.md
CHANGED
|
@@ -22,10 +22,12 @@ Each phase contains numbered steps, such as `1.3 Configure context`. These numbe
|
|
|
22
22
|
|
|
23
23
|
## Skill Routing
|
|
24
24
|
|
|
25
|
-
`workflow.md`
|
|
25
|
+
Read the selected `workflow.md` and current task phase to determine routing;
|
|
26
|
+
platform capability alone does not select the implementation/check path:
|
|
26
27
|
|
|
27
|
-
-
|
|
28
|
-
-
|
|
28
|
+
- A workflow that selects native sub-agent dispatch uses its platform-supported `trellis-implement` / `trellis-check` path.
|
|
29
|
+
- An inline workflow has the main session read `trellis-before-dev`, implement and check directly. Explicit Channel independent evidence remains subject to that workflow's authorization and acceptance contract.
|
|
30
|
+
- A Channel-driven workflow is a separate selected variant; generic Channel examples do not override an inline workflow.
|
|
29
31
|
|
|
30
32
|
When changing local AI behavior, update the routing descriptions in `workflow.md` first, then check whether the corresponding platform skill, command, or agent files need to stay in sync.
|
|
31
33
|
|
|
@@ -59,7 +61,7 @@ Common changes:
|
|
|
59
61
|
| Add a phase | Update the Phase Index, phase body, routing, and state blocks. |
|
|
60
62
|
| Change task creation policy | Update the `no_task` state block and Phase 1 description. |
|
|
61
63
|
| Change the default implementation/check path | Update Phase 2 and skill routing. |
|
|
62
|
-
| Change the wrap-up flow | Update Phase 3 and `finish-work`
|
|
64
|
+
| Change the wrap-up flow | Update Phase 3 and `finish-work` descriptions together. Follow the selected workflow's commit/push authorization; finish-work checks acceptance and classifies task-related versus unrelated dirty paths before archive and journal recording. |
|
|
63
65
|
| Change platform differences | Update routing descriptions grouped by platform. |
|
|
64
66
|
|
|
65
67
|
After editing, make the AI reread `.trellis/workflow.md`; do not assume the flow from the old conversation is still valid.
|
|
@@ -63,6 +63,29 @@ intent, including any minimal source-note status/version/target-link update.
|
|
|
63
63
|
Existing authorized task/spec duties do not acquire an extra confirmation gate.
|
|
64
64
|
Verify each target independently; do not introduce automatic synchronization.
|
|
65
65
|
|
|
66
|
+
## Bulk history and resource boundaries
|
|
67
|
+
|
|
68
|
+
For bulk or remote history research, first define the project path, platform,
|
|
69
|
+
date range, question and required session types. Start with metadata and a small
|
|
70
|
+
sample to verify the stored structure; filter before extracting bodies. Confirm
|
|
71
|
+
main-session versus child-session scope from actual metadata, not file counts.
|
|
72
|
+
|
|
73
|
+
Choose the processing location and authorized destination before reading a
|
|
74
|
+
large corpus. Process one bounded unit at a time, retain only needed results,
|
|
75
|
+
and transfer only the requested material. Test the intended bulk path on small
|
|
76
|
+
or synthetic data and observe memory/output before scaling. On resource
|
|
77
|
+
pressure, stop the affected work, preserve its checkpoint and reduce the unit;
|
|
78
|
+
do not continue a remote scan or increase concurrency blindly.
|
|
79
|
+
|
|
80
|
+
`--limit` limits displayed rows, not scan work or a process memory budget.
|
|
81
|
+
Codex small-output `search`/`context` avoid accumulating all dialogue bodies,
|
|
82
|
+
but per-record parsing, fingerprints/index metadata and output still cost
|
|
83
|
+
memory. Full `extract`/phase results and the other platform adapters may retain
|
|
84
|
+
complete dialogue arrays. Do not promise constant memory or infer an earlier
|
|
85
|
+
OOM's cause from these limits alone. Preserve the source logs; raw dialogue,
|
|
86
|
+
credentials and runtime data do not belong in Git. Historical findings still
|
|
87
|
+
require current-source verification and do not authorize automatic write-back.
|
|
88
|
+
|
|
66
89
|
## How to call it
|
|
67
90
|
|
|
68
91
|
Full CLI reference is in `references/cli-quick-reference.md`. The 80% case is one of:
|
|
@@ -16,7 +16,7 @@ This prints:
|
|
|
16
16
|
- **Git status** — quick visual on what's dirty.
|
|
17
17
|
- **Recent commits** — you'll need their hashes in Step 4 for `--commit`.
|
|
18
18
|
|
|
19
|
-
If `--mode record` surfaces other completed tasks not tied to the current session, surface them to the user with a one-shot confirmation: "These N tasks look done — archive them too in this round? [y/N]". Default is no; the current
|
|
19
|
+
If `--mode record` surfaces other completed tasks not tied to the current session, surface them to the user with a one-shot confirmation: "These N tasks look done — archive them too in this round? [y/N]". Default is no; archive the current task only after the acceptance check below.
|
|
20
20
|
|
|
21
21
|
## Step 2: Sanity check — classify dirty paths
|
|
22
22
|
|
|
@@ -44,13 +44,28 @@ Then route:
|
|
|
44
44
|
> "FYI, dirty files outside this task's scope — leaving them for the other window: `<list>`."
|
|
45
45
|
- **Genuinely unsure** — ask the user once: "Are `<list>` this task's work I forgot to commit, or another window's? (commit / ignore)" — then route per their answer.
|
|
46
46
|
|
|
47
|
+
### Acceptance check before archive
|
|
48
|
+
|
|
49
|
+
Compare the task's PRD-defined endpoint and required acceptance criteria with
|
|
50
|
+
actual evidence in its records and verification results. Reuse valid results;
|
|
51
|
+
state which checks ran, did not run, were blocked, or had limited coverage.
|
|
52
|
+
Installation, publishing, project updates or live execution require their own
|
|
53
|
+
evidence when they are part of the authorized endpoint; static readiness or
|
|
54
|
+
isolated tests cannot stand in for them. Clean bootstrap/cleanup is conditional
|
|
55
|
+
on the task goal and authorization, not an automatic finishing step.
|
|
56
|
+
|
|
57
|
+
If a required criterion is unmet or lacks sufficient evidence, return to the
|
|
58
|
+
corresponding work and leave the task unarchived. Reporting a limitation does
|
|
59
|
+
not satisfy a required criterion. Keep this conclusion in the existing task
|
|
60
|
+
record; do not add a separate acceptance receipt.
|
|
61
|
+
|
|
47
62
|
## Step 3: Archive task(s)
|
|
48
63
|
|
|
49
64
|
```bash
|
|
50
65
|
{{PYTHON_CMD}} ./.trellis/scripts/task.py archive <task-name>
|
|
51
66
|
```
|
|
52
67
|
|
|
53
|
-
|
|
68
|
+
Archive the current active task and any extra tasks confirmed in Step 1 only when their required acceptance has been verified. Each archive produces a `chore(task): archive ...` commit via the script's auto-commit.
|
|
54
69
|
|
|
55
70
|
If there is no active task and the user did not confirm any cleanup archives, skip this step.
|
|
56
71
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Code Quality Check
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Verify the task's affected behavior against the current implementation, applicable specs, and acceptance criteria.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -11,6 +11,11 @@ git diff --name-only HEAD
|
|
|
11
11
|
git status
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
+
Use the diff as the entry point. Follow the affected behavior through existing
|
|
15
|
+
implementation, necessary callers, configuration, tests, documentation and
|
|
16
|
+
generated consumers. Expand when evidence of an existing problem could affect
|
|
17
|
+
the task result; do not default to a whole-module or whole-repository audit.
|
|
18
|
+
|
|
14
19
|
## Step 2: Read Task Artifacts and Applicable Specs
|
|
15
20
|
|
|
16
21
|
Read the current task artifacts in order:
|
|
@@ -35,6 +40,12 @@ Read the specific guideline files referenced — the index is a pointer, not the
|
|
|
35
40
|
|
|
36
41
|
Run the project's lint, type-check, and test commands. Fix any failures before proceeding.
|
|
37
42
|
|
|
43
|
+
Choose checks by changed behavior and risk. When the task includes installation,
|
|
44
|
+
release or a live workflow, verify its normal entry and required endpoint;
|
|
45
|
+
isolated tests do not prove those endpoints. A clean bootstrap or destructive
|
|
46
|
+
cleanup applies only when required by the task and authorized. Reuse valid
|
|
47
|
+
results and distinguish checks run, not run, blocked, or limited.
|
|
48
|
+
|
|
38
49
|
## Step 4: Review Against Checklist
|
|
39
50
|
|
|
40
51
|
### Code Quality
|
|
@@ -47,9 +58,9 @@ Run the project's lint, type-check, and test commands. Fix any failures before p
|
|
|
47
58
|
|
|
48
59
|
### Test Coverage
|
|
49
60
|
|
|
50
|
-
- [ ]
|
|
51
|
-
- [ ] Bug fix
|
|
52
|
-
- [ ]
|
|
61
|
+
- [ ] Non-trivial behavior and material risks covered by meaningful checks?
|
|
62
|
+
- [ ] Bug fix has a regression that reaches the failing path?
|
|
63
|
+
- [ ] Existing tests updated when their behavior changed, without duplicating trivial implementation?
|
|
53
64
|
|
|
54
65
|
### Spec Sync
|
|
55
66
|
|
|
@@ -62,7 +73,7 @@ Run the project's lint, type-check, and test commands. Fix any failures before p
|
|
|
62
73
|
- [ ] Any tidying of code the task did not require?
|
|
63
74
|
- [ ] Any abstraction, config or extension point added for a case that does not exist yet?
|
|
64
75
|
- [ ] Any speculative fallback for a state that cannot occur?
|
|
65
|
-
- [ ]
|
|
76
|
+
- [ ] Each changed file serves the task or a necessary consumer, even if the AC do not name it individually?
|
|
66
77
|
- [ ] Any workaround added at the caller instead of a fix where the behavior actually lives?
|
|
67
78
|
|
|
68
79
|
## Step 5: Cross-Layer Dimensions (if applicable)
|
|
@@ -100,6 +111,12 @@ Skip this step if your change is confined to a single layer.
|
|
|
100
111
|
|
|
101
112
|
Report every violation you find. Then:
|
|
102
113
|
|
|
114
|
+
Verify important findings against current requirements, actual sources, callers
|
|
115
|
+
and relevant counterevidence before prioritizing. Separate observed facts from
|
|
116
|
+
inferences; a rule's presence, a zero call count or an intentional behavior is
|
|
117
|
+
not by itself proof of a defect. Record task-relevant findings and their effect
|
|
118
|
+
on acceptance; new consequential scope choices follow the task's decision gate.
|
|
119
|
+
|
|
103
120
|
- Mechanical and local (lint nit, missing type, wrong import, dead branch, failing assertion) → fix in place, then re-run project checks.
|
|
104
121
|
- Design or judgment (naming a shared concept, moving a module boundary, changing a public interface, reassigning where behavior lives) → record the evidence and your recommendation, and stop. Do not rewrite it silently.
|
|
105
122
|
|
|
@@ -63,7 +63,7 @@ These guides help you **ask the right questions before coding**.
|
|
|
63
63
|
2. **Ignoring design comments**: Flagging intentional behavior documented in code comments as bugs
|
|
64
64
|
3. **Variable misreading**: Not tracing a variable to its actual definition (e.g., Map keyed by path vs name)
|
|
65
65
|
|
|
66
|
-
**Verification rule**: Every CRITICAL/WARNING finding must be verified against the actual code before prioritizing.
|
|
66
|
+
**Verification rule**: Every CRITICAL/WARNING finding must be verified against the actual code before prioritizing.
|
|
67
67
|
|
|
68
68
|
---
|
|
69
69
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pennixrv/trellis",
|
|
3
|
-
"version": "0.7.0-beta.
|
|
3
|
+
"version": "0.7.0-beta.45",
|
|
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
|
-
"@pennixrv/trellis-core": "0.7.0-beta.
|
|
37
|
+
"@pennixrv/trellis-core": "0.7.0-beta.45"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@eslint/js": "^9.18.0",
|