| name | trellis-plan-review |
| description | Independent review of Trellis task planning artifacts. Treats the selected task and its recursive current or archived children as one review scope, verifies repository claims and path:line citations against code, traces every acceptance-criterion clause to a requirement and design mechanism, rechecks arithmetic and units, writes one combined evidence-backed Markdown report under the reviewed project's .trellis/reviews directory, and returns one copyable handoff prompt. Compares the plan with the real diff after the task starts. Use when the user asks to 审阅 trellis 父子任务, 审阅规划, 审查 prd design implement, 检查验收标准有没有机制支撑, review a trellis plan or task tree, audit a plan another agent wrote, or verify plan claims before implementation. Not for a code-diff-only review, writing or repairing the plan, or running the task. |
| category | development-workflows |
| tags | ["trellis","plan-review","spec-audit","acceptance-criteria","traceability","handoff"] |
| version | 0.4.0 |
| argument-hint | ["trellis-task-dir"] |
| allowed-tools | Read, Write, Glob, Grep, Bash(python *), Bash(py -3 *), Bash(git diff *), Bash(git log *), Bash(git show *), Bash(git status *) |
Review the Trellis planning artifacts at $ARGUMENTS. Persist the report. Leave planning artifacts and product code unchanged.
Commands below write <skill-dir> as a placeholder. Substitute the literal skill directory
path announced when this skill loads. Use py -3 where python is not on PATH.
Hard gates
- Do not edit
prd.md, design.md, implement.md, *.jsonl, task.json, or product code.
- Do not fix a defect you find. Do not produce a revised plan.
- The only allowed durable write is one review report under the reviewed project's
.trellis/reviews/ directory, or a temporary --input file for the helper.
Write is not a grant to edit planning artifacts.
- One selected review scope produces exactly one combined report and one handoff Prompt. Never
create a report or Prompt per child. Do not delete, overwrite, or migrate historical child reports.
- Do not run
task.py start, task.py finish, or any Trellis command that writes state.
- Every finding carries evidence. Drop any candidate you cannot cite.
Output mode
Detect the language of the request and surrounding discussion. Write the report in that language.
Keep file paths, identifiers, commands, and code excerpts exact.
1. Locate the root task
The task directory may sit in another repository. Resolve it in this order:
- An explicit path in
$ARGUMENTS.
python ./.trellis/scripts/task.py current in the working repository.
find . -maxdepth 5 -type d -name "<slug>" when only a slug is known, then widen the search root.
Read the root task.json first. Details: references/trellis-artifact-map.md.
2. Resolve one review scope
The root task and the recursive closure of task.json.children form one scope. Resolve children
root-first, preserving each children list's order. Search exact basenames in live tasks and
archive/*/; subtasks is a legacy fallback only when the children key is absent. A leaf is a
one-member scope.
Fail closed before judgment or report writing on a missing or ambiguous child, malformed metadata,
cycle, duplicate edge/member, unsafe path, or incorrect child backlink. Hierarchy expresses
ownership, not execution order. For every resolved member, read and the existing planning
artifacts; each member's status decides whether Pass 7 applies.