@pennixrv/trellis 0.6.38 → 0.6.39

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.
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": "0.6.39",
3
+ "description": "Adds direct completion guidance for explicitly classified analysis-only tasks.",
4
+ "breaking": false,
5
+ "recommendMigrate": false,
6
+ "changelog": "**Feature:**\n- Analysis-only research, audit, and design tasks can complete declared evidence work directly from planning and archive without entering implementation.",
7
+ "migrations": [],
8
+ "notes": "No project migration is required. Existing projects can run the normal trellis update flow."
9
+ }
@@ -24,6 +24,7 @@ Shows the Phase Index (Plan / Execute / Finish) with routing + skill mapping.
24
24
 
25
25
  `get_context.py` shows the active task's `status` field. Route by `status` + artifact presence. This command replaces the user needing to remember the Trellis flow; it does not itself approve implementation.
26
26
 
27
+ - `status=planning` + `task.json.meta.delivery_mode = "analysis_only"` → complete the PRD's bounded evidence work, verify its acceptance criteria and no-change boundary, then commit task artifacts and archive directly. Do not run `task.py start`; a protected-target change requires a separate change-bearing task.
27
28
  - `status=planning` + no `prd.md` → **1.1** (load `trellis-brainstorm`)
28
29
  - `status=planning` + `prd.md` only → decide whether the task is lightweight or complex. Lightweight can move to **1.4** review; complex returns to **1.1** to add `design.md` + `implement.md`.
29
30
  - `status=planning` + complex artifacts complete + sub-agent jsonl not curated (empty, or only a legacy `_example` placeholder row) → **1.3**
@@ -2,6 +2,8 @@
2
2
 
3
3
  Wrap up the current session: archive the active task (and any other completed-but-unarchived tasks the user wants to clean up) and record the session journal. Code commits are NOT done here — those happen in workflow Phase 3.4 before you invoke this command.
4
4
 
5
+ For an eligible `task.json.meta.delivery_mode = "analysis_only"` task, reach this command directly from planning only after its PRD-defined evidence, acceptance criteria, and no-change boundary have been verified and its task artifacts have been committed. Do not run `task.py start`; a protected-target change needs a separate change-bearing task.
6
+
5
7
  ## Step 1: Survey current state
6
8
 
7
9
  ```bash
@@ -36,6 +36,7 @@ Index files list the specific guideline docs to read when you actually start cod
36
36
  ## Step 4: Decide next action
37
37
  From Step 1 you know the current task and status. Check the task directory:
38
38
 
39
+ - **Active task with `task.json.meta.delivery_mode = "analysis_only"`** → keep `planning`, complete the PRD's bounded evidence work, then verify the no-change boundary, commit task artifacts, and archive directly. Do not run `task.py start`; any protected-target change needs a separate change-bearing task.
39
40
  - **Active task status `planning` + no `prd.md`** → Phase 1.1. Load the `trellis-brainstorm` skill.
40
41
  - **Active task status `planning` + `prd.md` exists** → stay in Phase 1. Lightweight tasks can be PRD-only; complex tasks need `design.md` + `implement.md`. Load the relevant Phase 1 step detail before `task.py start`.
41
42
  - **Active task status `in_progress`** → Phase 2 step 2.1. Load the step detail:
@@ -8,6 +8,12 @@ For every non-trivial task, the user must respond at least once after the initia
8
8
 
9
9
  While any user-owned product, scope, UX, compatibility, risk, or acceptance decision remains unresolved, end the turn with exactly one highest-value question. Do not edit product code, dispatch implementation, or run `task.py start`.
10
10
 
11
+ ## Analysis-Only Exception
12
+
13
+ When `task.json.meta.delivery_mode = "analysis_only"` exactly and the PRD names a bounded evidence deliverable plus a no-change boundary for product source, runtime configuration, deployment, credentials, and external systems, task-creation consent authorizes that evidence work. Do not require a second planning approval or run `task.py start`: perform the declared research, audit, or design work while status remains `planning`, record the evidence, verify acceptance criteria and the boundary, commit task artifacts, and archive directly. If the evidence recommends a protected-target change, record it and create a separate change-bearing task before doing it.
14
+
15
+ All other tasks follow the planning and implementation approval gates below.
16
+
11
17
  ## Non-Negotiable Evidence Rule
12
18
 
13
19
  If a question can be answered by exploring the codebase, explore the codebase instead.
@@ -64,6 +64,7 @@ python3 ./.trellis/scripts/task.py validate <name>
64
64
  python3 ./.trellis/scripts/task.py set-branch <name> <branch>
65
65
  python3 ./.trellis/scripts/task.py set-base-branch <name> <branch> # PR target
66
66
  python3 ./.trellis/scripts/task.py set-scope <name> <scope>
67
+ python3 ./.trellis/scripts/task.py set-meta <name> delivery_mode analysis_only
67
68
 
68
69
  # Hierarchy (parent/child)
69
70
  python3 ./.trellis/scripts/task.py add-subtask <parent> <child>
@@ -158,6 +159,12 @@ Phase 3: Finish → verify, update spec, commit, and wrap up
158
159
  - Complex task: ask whether you may create a Trellis task and enter planning. If the user says no, do not do broad inline implementation; explain, clarify scope, or suggest a smaller split.
159
160
  - User approval to create a task is not approval to start implementation. Planning still happens first.
160
161
 
162
+ ### Analysis-only tasks
163
+
164
+ An analysis-only task is eligible only when `task.json.meta.delivery_mode = "analysis_only"` exactly and its `prd.md` names the evidence deliverable plus a no-change boundary for product source, runtime configuration, deployment, credentials, and external systems. Task creation consent authorizes that bounded evidence work, not protected-target changes.
165
+
166
+ Keep an eligible analysis-only task in `planning`: write its research, audit, or design evidence; verify its acceptance criteria and boundary; commit task artifacts; then archive directly. Do not run `task.py start`, configure implementation context, or wait for a second implementation approval. If the evidence recommends a protected-target change, record the recommendation and create a separate change-bearing task before doing it.
167
+
161
168
  ### Planning Artifacts
162
169
 
163
170
  - `prd.md` — requirements, constraints, and acceptance criteria. Do not put technical design or execution checklists here.
@@ -194,14 +201,15 @@ Preserve existing task fields and artifacts. If the correct status cannot be det
194
201
  - 1.0 Create task `[required · once]` (only after task-creation consent)
195
202
  - 1.1 Requirement exploration `[required · repeatable]` (`prd.md`; complex tasks also need `design.md` + `implement.md`)
196
203
  - 1.2 Research `[optional · repeatable]`
197
- - 1.3 Configure context `[required · once]` — Claude Code, Cursor, OpenCode, Codex, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Snow, Reasonix, Grok, Kimi Code (sub-agent-dispatch platforms only; inline platforms skip)
198
- - 1.4 Activate task `[required · once]` (review gate, then `task.py start`; status → in_progress)
204
+ - 1.3 Configure context `[required · once]` — Claude Code, Cursor, OpenCode, Codex, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Snow, Reasonix, Grok, Kimi Code (sub-agent-dispatch platforms only; inline and eligible analysis-only tasks skip)
205
+ - 1.4 Activate task `[required · once]` (change-bearing tasks only: review gate, then `task.py start`; status → in_progress)
199
206
  - 1.5 Completion criteria
200
207
 
201
208
  <!-- Per-turn breadcrumb: shown throughout Phase 1 (status='planning') -->
202
209
 
203
210
  [workflow-state:planning]
204
211
  Load `trellis-brainstorm`; stay in planning.
212
+ If `task.json.meta.delivery_mode = "analysis_only"` exactly, complete the declared evidence work now. Do not wait for a start review or run `task.py start`; when the PRD boundary and acceptance evidence pass, commit task artifacts and archive directly. A protected-target recommendation requires a separate change-bearing task.
205
213
  Lightweight: `prd.md` can be enough. Complex: finish `prd.md`, `design.md`, and `implement.md`; ask for review before `task.py start`.
206
214
  Multi-deliverable scope: consider a parent task plus independently verifiable child tasks; dependencies must be written in child artifacts, not implied by tree position.
207
215
  Sub-agent mode: curate `implement.jsonl` and `check.jsonl` as spec/research manifests before start.
@@ -215,6 +223,7 @@ Sub-agent mode: curate `implement.jsonl` and `check.jsonl` as spec/research mani
215
223
 
216
224
  [workflow-state:planning-inline]
217
225
  Load `trellis-brainstorm`; stay in planning.
226
+ If `task.json.meta.delivery_mode = "analysis_only"` exactly, complete the declared evidence work now. Do not wait for a start review or run `task.py start`; when the PRD boundary and acceptance evidence pass, commit task artifacts and archive directly. A protected-target recommendation requires a separate change-bearing task.
218
227
  Lightweight: `prd.md` can be enough. Complex: finish `prd.md`, `design.md`, and `implement.md`; ask for review before `task.py start`.
219
228
  Multi-deliverable scope: consider a parent task plus independently verifiable child tasks; dependencies must be written in child artifacts, not implied by tree position.
220
229
  Inline mode: skip jsonl curation; Phase 2 reads artifacts/specs via `trellis-before-dev`.
@@ -286,6 +295,7 @@ When a user request matches one of these intents inside an active task, route fi
286
295
  [Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Snow, Reasonix, Trae, Grok, Kimi Code]
287
296
 
288
297
  - Planning or unclear requirements -> `trellis-brainstorm`.
298
+ - Explicit eligible `analysis_only` -> complete evidence in planning, then commit artifacts and archive directly.
289
299
  - `in_progress` implementation/check -> dispatch `trellis-implement` / `trellis-check`.
290
300
  - Repeated debugging -> `trellis-break-loop`; spec updates -> `trellis-update-spec`.
291
301
 
@@ -294,6 +304,7 @@ When a user request matches one of these intents inside an active task, route fi
294
304
  [codex-inline, Kilo, Antigravity, Devin, DeepSeek Harness]
295
305
 
296
306
  - Planning or unclear requirements -> `trellis-brainstorm`.
307
+ - Explicit eligible `analysis_only` -> complete evidence in planning, then commit artifacts and archive directly.
297
308
  - Before editing -> `trellis-before-dev`; after editing -> `trellis-check`.
298
309
  - Repeated debugging -> `trellis-break-loop`; spec updates -> `trellis-update-spec`.
299
310
 
@@ -301,7 +312,8 @@ When a user request matches one of these intents inside an active task, route fi
301
312
 
302
313
  ### Guardrails
303
314
 
304
- - Task creation approval is not implementation approval; implementation waits for `task.py start` after artifact review.
315
+ - Only an eligible `task.json.meta.delivery_mode = "analysis_only"` task may complete while `planning`; it may write evidence artifacts, but any protected-target change requires a separate change-bearing task.
316
+ - Task creation approval is not implementation approval; change-bearing implementation waits for `task.py start` after artifact review.
305
317
  - PRD-only is valid for lightweight tasks; complex tasks need `design.md` + `implement.md`.
306
318
  - Planning must be persisted to task artifacts; checks must run before reporting completion.
307
319
 
@@ -336,12 +348,16 @@ After this command succeeds, the per-turn breadcrumb auto-switches to `[workflow
336
348
 
337
349
  Run only `create` here — do not also run `start`. `start` flips status to `in_progress`, which switches the breadcrumb to the implementation phase before planning artifacts are reviewed. Save `start` for step 1.4.
338
350
 
351
+ For an evidence-only task, set `task.json.meta.delivery_mode = "analysis_only"` at creation or with `task.py set-meta`. Its PRD must name the evidence deliverable and exclude protected-target changes before the task proceeds.
352
+
339
353
  Skip when `python3 ./.trellis/scripts/task.py current --source` already points to a task.
340
354
 
341
355
  #### 1.1 Requirement exploration `[required · repeatable]`
342
356
 
343
357
  Load the `trellis-brainstorm` skill and explore requirements interactively with the user per the skill's guidance.
344
358
 
359
+ For an eligible analysis-only task, converge the PRD boundary, then perform the declared research, audit, or design work in this phase. It does not need a start review or `task.py start`; after acceptance evidence is recorded, continue directly to Phase 3.3.
360
+
345
361
  The brainstorm skill will guide you to:
346
362
  - Ask one question at a time
347
363
  - Prefer researching over asking the user
@@ -391,6 +407,8 @@ Brainstorm and research can interleave freely — pause to research a technical
391
407
 
392
408
  #### 1.3 Configure context `[required · once]`
393
409
 
410
+ Eligible analysis-only tasks skip this step because they never enter Phase 2 or dispatch implementation/check agents.
411
+
394
412
  [Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Snow, Reasonix, Trae, Grok, Kimi Code]
395
413
 
396
414
  Curate `implement.jsonl` and `check.jsonl` so the Phase 2 sub-agents get the right spec/research context. These files were seeded on `task create` with a single self-describing `_example` line; your job here is to fill in real entries.
@@ -446,6 +464,8 @@ Skip this step. Context is loaded directly by the `trellis-before-dev` skill in
446
464
 
447
465
  #### 1.4 Activate task `[required · once]`
448
466
 
467
+ This step applies only to change-bearing tasks. An eligible analysis-only task stays in `planning` and, after its evidence work is complete, continues directly to Phase 3.3 without running `task.py start`.
468
+
449
469
  After artifact review, flip the task status to `in_progress`:
450
470
 
451
471
  ```bash
@@ -463,15 +483,16 @@ If `task.py start` errors with a session-identity message (no context key from h
463
483
  | Condition | Required |
464
484
  |------|:---:|
465
485
  | `prd.md` exists | ✅ |
466
- | User confirms task should enter implementation | ✅ |
467
- | `task.py start` has been run (status = in_progress) | ✅ |
486
+ | Change-bearing task: user confirms implementation | ✅ |
487
+ | Change-bearing task: `task.py start` has been run (status = in_progress) | ✅ |
488
+ | Analysis-only task: exact metadata, named evidence deliverable, recorded acceptance evidence, and protected targets unchanged | ✅ |
468
489
  | `research/` has artifacts (complex tasks) | recommended |
469
490
  | `design.md` exists (complex tasks) | ✅ |
470
491
  | `implement.md` exists (complex tasks) | ✅ |
471
492
 
472
493
  [Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Snow, Reasonix, Trae, Grok, Kimi Code]
473
494
 
474
- | `implement.jsonl` and `check.jsonl` each contain at least one real curated entry (seed row does not count) | ✅ |
495
+ | Change-bearing task: `implement.jsonl` and `check.jsonl` each contain at least one real curated entry (seed row does not count) | ✅ |
475
496
 
476
497
  [/Claude Code, Cursor, OpenCode, codex-sub-agent, Kiro, Gemini, Qoder, CodeBuddy, Copilot, Droid, Pi, Oh My Pi, ZCode, Snow, Reasonix, Trae, Grok, Kimi Code]
477
498
 
@@ -579,6 +600,8 @@ If issues are found → fix → re-check, until green.
579
600
 
580
601
  Goal: ensure code quality, capture lessons, record the work.
581
602
 
603
+ **Analysis-only completion route**: after the evidence work in Phase 1, verify the PRD acceptance criteria and no-change boundary, then continue with 3.3 and 3.4 for task artifacts only before `/trellis:finish-work`. Do not run Phase 2 or `task.py start`.
604
+
582
605
  #### 3.2 Debug retrospective `[on demand]`
583
606
 
584
607
  If this task involved repeated debugging (the same issue was fixed multiple times), load the `trellis-break-loop` skill to:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pennixrv/trellis",
3
- "version": "0.6.38",
3
+ "version": "0.6.39",
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.6.38"
37
+ "@pennixrv/trellis-core": "0.6.39"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@eslint/js": "^9.18.0",