一键导入
gse-review
Review all artefacts in current sprint. Operates on branch diff. Includes devil's advocate (P16). Triggered by /gse:review.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Review all artefacts in current sprint. Operates on branch diff. Includes devil's advocate (P16). Triggered by /gse:review.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Deploy the current project to a Hetzner server via Coolify. Adapts to the user's situation: from zero infrastructure (solo) to a pre-configured shared server (training). Triggered by /gse:deploy.
Reload checkpoint, verify worktrees, brief user. Triggered by /gse:resume.
Deploy the current project to a Hetzner server via Coolify. Adapts to the user's situation: from zero infrastructure (solo) to a pre-configured shared server (training). Triggered by /gse:deploy.
Reload checkpoint, verify worktrees, brief user. Triggered by /gse:resume.
Route capitalized solutions to their targets. Triggered by /gse:integrate after compound.
Full GSE-One orchestrator methodology — load when you need the complete invariant text, failure modes, and edge cases beyond the condensed AGENTS.md summary.
| name | gse-review |
| description | Review all artefacts in current sprint. Operates on branch diff. Includes devil's advocate (P16). Triggered by /gse:review. |
Arguments: $ARGUMENTS
| Flag / Sub-command | Description |
|---|---|
| (no args) | Review all unreviewed tasks in the current sprint |
--task TASK-ID | Review a specific task |
--devil-only | Run only the devil's advocate pass (skip standard review) |
--standard-only | Run only the standard review (skip devil's advocate) |
--severity HIGH | Filter findings by minimum severity |
--help | Show this command's usage summary |
Before executing, read:
.gse/status.yaml — current sprint and lifecycle state.gse/config.yaml — project configuration (language, framework, review settings).gse/backlog.yaml — tasks with status: review (candidates for review — set by /gse:produce).gse/profile.yaml — user expertise level (affects finding presentation)Sprint Freeze Check (applied before test-evidence verification) — Read .gse/plan.yaml. If absent (Micro mode), skip this check. If plan.yaml.status == active, proceed to the test-evidence check below. If plan.yaml.status ∈ {completed, abandoned}, the current sprint is frozen: do NOT transition any TASK forward and do NOT add RVW findings to the frozen sprint's review.md. Present the Sprint Freeze Gate:
Question: The current sprint (S{NN}) plan status is
{completed|abandoned}— it is frozen. Review cannot add findings to a frozen sprint.Options:
- Start next sprint now (recommended, default) — I'll run the next-sprint opening sequence: in Lightweight mode
/gse:plan --strategic; in Full mode/gse:collect>/gse:assess>/gse:plan --strategic. Once Sprint S{NN+1} is active, I'll run the review there.- Cancel — Abort this
/gse:reviewinvocation. No changes will be made.- Discuss — Explore the trade-offs.
On option 1: invoke the mode-appropriate opening sequence inline; after promotion, re-read .gse/status.yaml → current_sprint and proceed to the test-evidence check below in the new sprint context. On option 2: stop execution. On option 3: explain the Sprint Freeze invariant, then re-present the Gate.
Test-evidence verification (applied after Sprint Freeze passes):
Before reviewing any TASK, verify test execution:
status: review (i.e., produced and awaiting review), read test_evidence in backlog.yaml.status: skipped — Hard guardrail: block review. Report: "Tests were not run for this task. Tests must pass before review." For beginners: "I need to verify that what I built works correctly before I check my own work. Let me run the tests first." Then execute tests for this TASK and return to review only after tests pass.status: fail — Soft guardrail: warn and continue. Report: "Tests are currently failing for this task. Review will proceed, but test failures will be included as findings." Add a RVW- finding with severity HIGH for the failing tests.status: pass — Proceed to Step 1.backlog.yaml and select tasks with status: review (i.e., TASKs that /gse:produce has marked ready for review and that have not yet been reviewed). The review status is set by PRODUCE; REVIEW consumes it and promotes it to either reviewed (clean) or fixing (findings) at Step 6.git.branch fieldgit diff gse/sprint-{NN}/integration...gse/sprint-{NN}/{type}/{name}
REVIEW is a parallel isolated activity — each review perspective runs as a separate sub-agent with its own isolated context. This provides both a fresh context for each reviewer and faster execution.
Before delegation, the orchestrator:
.gse/checkpoints/pre-review-{timestamp}.yaml)Agent tool calls in a single message (parallel execution)Each sub-agent receives:
plugin/agents/)profile.yaml (for P9 adaptation)After all sub-agents return, the orchestrator merges all findings into a single review.md, deduplicates, and proceeds to Step 3 (Devil's Advocate).
reqs.md → create finding severity MEDIUM: "Quality assurance checklist was not run during requirements phase — NFR completeness unverified"Findings tagged [IMPL]. This is the always-on third tier of the Test Review Layering (spec §6.5). The two upstream tiers (STRATEGY, TST-SPEC) run during /gse:tests under their own triggers.
Focus of this pass — alimentation (are the written tests meaningful?):
assert True or assert result == result)Regression scan (unchanged, part of this step): Execute the full test suite (not just tests for the current TASK). Compare pass/fail counts with the last sprint's test report in docs/sprints/sprint-{NN-1}/test-reports/. If tests that passed in the previous sprint now fail → create a finding with severity HIGH and tag [REGRESSION]. For beginners: "I found that something that worked before stopped working after this change."
After all parallel sub-agents return:
docs/sprints/sprint-{NN}/review.mdAfter the standard review completes, spawn the devil-advocate sub-agent in its own fresh context ("$([ -s .gse/registry ] && cat .gse/registry || cat ~/.gse-one)/agents/devil-advocate.md" via the runtime's subprocess/spawn facility, with a context brief per the orchestrator's Sub-agent delegation protocol — NOT inline role adoption: the pass must not inherit the main conversation's accumulated rationalizations, or it will re-validate them). This is a meta-review that challenges the AI's own work.
Fallback and trace: if the runtime cannot spawn a sub-agent, run the pass inline AND emit an Inform note ("[Inform] Devil's advocate pass running inline — sub-agent spawn unavailable on this runtime.", same pattern as the P4 runtime-forced fallback). In both cases, record the execution mode in the AI Integrity Findings section of review.md: DA execution: isolated or DA execution: inline-degraded. Opportunistic enhancement: if the spawn facility exposes model selection, prefer a different model than the one that produced the artefacts (best-effort — weights-level blind spots are context-independent).
pip show {lib} / npm list {lib} / equivalentAll devil's advocate findings are tagged with [AI-INTEGRITY].
Track these 2 signals at the root level of status.yaml (per spec §12.4 — Status State File, flat fields, not nested):
consecutive_acceptances — count of review rounds where the user accepted all findings without discussion (primary trigger)pushback_dismissed — number of times the user dismissed a pushback checkpoint with "Everything looks good" (governs per-sprint suppression)Both counters are written via counters.py (incr/reset — registry incantation; writer contract in spec §P16 — the orchestrator owns the writes, never hand-edits the YAML).
When consecutive_acceptances reaches threshold (beginner=3, intermediate=5, expert=8): trigger a pushback checkpoint — present the 3 most impactful recent decisions and ask: "I want to make sure we're aligned. Do these choices still look right?"
Suppression rule: If the user responds "Everything looks good" (or equivalent affirmation) to two consecutive pushback checkpoints (pushback_dismissed >= 2), suppress further pushback for the rest of the sprint. This prevents the agent from harassing a user who has genuinely reviewed and approved. Beginner exception (profile.yaml → dimensions.it_expertise: beginner): suppress for the next 3 Gates only, and have the coach emit one Inform note when suppression activates (per spec §P16 — User Pushback Encouragement).
After collecting devil's advocate findings, cross-reference with the original confidence level of each claim:
For each finding, create a structured entry:
RVW-{NNN} [{SEVERITY}] — {title}
severity: HIGH | MEDIUM | LOW
perspective: {agent-role}
location:
branch: gse/sprint-{NN}/{type}/{name}
file: {path}
line: {range}
finding: "{description}"
suggestion: "{proposed fix}"
tags: [AI-INTEGRITY] # if from devil's advocate
task: TASK-{ID}
status: open # open | fixed — flipped to `fixed` by /gse:fix Step 5; counted by status.yaml review_findings_open
fixed_by_commit: "" # optional — set by /gse:fix when resolved
Persist findings to docs/sprints/sprint-{NN}/review.md (authoritative format in plugin/templates/sprint/review.md).
(Merged into Step 6 — health dimensions are written once, by the mandatory 8-dimension update in Step 6 — Present Summary. This heading is retained to keep step numbering stable for cross-references; do not perform a separate write here.)
Report:
Update TASK statuses in backlog.yaml based on review results:
status: fixing (requires /gse:fix before delivery)status: reviewed and completed_at: {timestamp} (the TASK reached a terminal pre-merge state — per the backlog.yaml schema, completed_at is set when status → done or reviewed). LOW findings are tracked but non-blocking; the user can still address them via /gse:fix --severity LOW, which would transition reviewed → fixing → doneRationale: this threshold aligns with the canonical rule in spec §14 and design §10.1 (FIX is inserted into workflow.pending if HIGH or MEDIUM findings exist). MEDIUM findings weight significantly in the review_findings health formula (×0.8); letting them pass without triage would silently accumulate tech debt. The user retains full agency via /gse:fix --severity HIGH to narrow the fix scope. The distinction between reviewed (clean first pass) and done (fixed after findings) preserves the signal for coach Axis 5 (quality_trends): a high ratio of reviewed vs done indicates high PRODUCE quality.
If findings with severity HIGH or MEDIUM exist:
/gse:fix before deliveryState transition note (v0.53.0):
status.yamlcursor fields (last_activity,last_activity_timestamp) are maintained centrally by the orchestrator after the activity closes — seeplugin/agents/gse-orchestrator.md— section "Sprint Plan Maintenance", andgse-one-implementation-design.md§10.1 — Sprint Plan Lifecycle. Activity-local state (TASK statuses, health scores) remains authored here.
Update health scores in status.yaml (MANDATORY after every review). Compute the 8 health dimensions (requirements_coverage, test_pass_rate, design_debt, review_findings, complexity_budget, traceability, git_hygiene, ai_integrity) exactly as specified in /gse:health Step 2 — Calculate Dimensions — the canonical formula source in the distributed plugin (mirrors spec §7.1 — Dimension computation). Write them under the canonical nested path status.yaml → health.dimensions.<dimension>, then update health.score (mean of enabled dimensions) and health.last_computed (ISO 8601). These values are read by the dashboard to populate the health radar chart. Without them, the radar shows empty.
Update status.yaml.review_findings_open — set this counter to the total count of HIGH + MEDIUM findings currently unresolved across all sprint review.md files (i.e., findings without status: fixed). This counter is consumed by the git-push hook (spec §P13 — System hooks; design §7 — Hooks Design) which warns the user before pushing a branch with open findings. The counter is decremented by /gse:fix Step 6 when findings are resolved. If all findings are resolved (clean review or post-FIX), set to 0.
Regenerate dashboard — Run python3 "$([ -s .gse/registry ] && cat .gse/registry || cat ~/.gse-one)/tools/dashboard.py" to update docs/dashboard.html with review findings, health scores, and quality metrics. After review is a key moment to check the dashboard — inform the user:
docs/dashboard.html." (adapt wording to the user's language)