agentic-review
Run end-to-end code review using the repository's agentic setup. This skill is the review orchestrator that executes after setup-agentic-repository: it discovers module boundaries from CONTEXT.md artifacts, applies coding standards from ENGINEERING.md, optionally enforces project policy from <docs-dir>/review/policies/, runs deterministic policy automation checks (v1 inheritance conventions), builds immutable canonical review artifacts under <docs-dir>/review/, routes work to specialists, records specialist attestations, and consolidates findings into one deduplicated severity-ordered report with an explicit completion state.
Read references/review-contract.md before dispatching specialists. It defines severity levels, required finding schema, specialist prompt skeleton, attestation schema, policy-compliance reporting, and deduplication/output rules.
Phase 1 — Verify prerequisites and discover <docs-dir>
This skill assumes setup-agentic-repository has already been run.
- Read root
AGENTS.md.
- Discover
<docs-dir> from the contract paths listed there (typically agents-docs/, but --docs-dir may have overridden this).
- Fallback if needed: find
AGENTS_CONTEXT.md (find . -maxdepth 4 -name AGENTS_CONTEXT.md) and set <docs-dir> to its parent directory.
- Confirm these files exist:
<docs-dir>/AGENTS_CONTEXT.md
<docs-dir>/AGENT_WORKFLOW.md
<docs-dir>/ENGINEERING.md
- at least one
CONTEXT.md in the repo
If any are missing, stop and tell the user to run setup-agentic-repository first. Do not scaffold missing setup files from this skill.
Policy bootstrap mode:
- Optional policy directory:
<docs-dir>/review/policies/
- If
POLICY_INDEX.md is present there, policy enforcement is mandatory for this run.
- If policy files are absent, proceed with baseline review and explicitly recommend running
review-policy-builder in the final report.
Phase 2 — Resolve review target (PR-first, local fallback)
Default model:
- Prefer PR-style review of branch changes into base branch.
- Fall back to local change review when PR comparison is unavailable or inappropriate.
Resolution order:
- Parse user overrides from the prompt (explicit base branch or explicit local-only request).
- If explicit local-only was requested, force
local mode.
- Detect current branch (
git rev-parse --abbrev-ref HEAD).
- Build ordered base candidates:
- user-provided base ref (if any)
- remote default branch (
git symbolic-ref --quiet --short refs/remotes/origin/HEAD)
origin/main
origin/master
main
master
- Select the first existing candidate (
git rev-parse --verify --quiet <ref>).
- If current branch is not base and a base ref exists, use PR-style scope:
- Otherwise use local scope:
- unstaged diff (
git diff)
- staged diff (
git diff --cached)
- untracked files (
git ls-files --others --exclude-standard)
Capture the resolved scope in the canonical plan before launching specialists:
- review mode (
pr or local)
- base/head refs (or
local)
- exact changed-file inventory
- any gaps (for example, no remote base available)
Phase 3 — Build module map and specialist roster
Derive module specialists from setup artifacts:
- If
<docs-dir>/CONTEXT-MAP.md exists:
- parse each context row
- extract context name and
CONTEXT.md path
- create one module specialist per context
- If no context map exists:
- use the single discovered
CONTEXT.md
- create one module specialist for that subtree
Add cross-cut specialists when relevant changes exist:
tests-regressions — test coverage gaps and behavioral regressions
migrations-data-safety — schema/migration/data-risk changes
security-authz — authn/authz/secrets/exposure risk
api-contract — externally visible contract compatibility
Routing rules:
- Route files to module specialists by subtree ownership from
CONTEXT.md paths.
- Route files to cross-cut specialists by pattern and semantics (migrations, auth, API surface, testing changes/gaps).
- Every changed file must be assigned to at least one specialist.
- Multi-match files must be assigned to all matching specialists (broader coverage is preferred to under-routing).
Policy routing additions (when policy exists):
- Read
<docs-dir>/review/policies/POLICY_INDEX.md to map module/context/subtree -> policy files.
- Load global policy (
global-policy.md) for all specialists.
- Load module policy (
module-<slug>.md) for specialists owning that module/subtree.
- If a changed file maps to multiple module policies, attach all relevant policies.
- Build an automated-rule roster from policy rules that include machine metadata (for example
automation.check_type).
- If
POLICY_INDEX.md includes a Review Audit Contract section, load it and apply its audit-governance fields.
- If no audit contract is present, apply built-in defaults:
audit_contract_version: 1
completion_mode: fail-closed
- required attestation fields from this skill contract
- required specialist categories: module specialists always, cross-cut specialists when routed by file semantics
- transparency mode:
summary + artifact links
- Record whether policy-driven audit governance or fallback defaults were used in the plan and final result.
Phase 4 — Create canonical review artifacts and run automated policy checks
Create artifacts under <docs-dir>/review/:
- Plan file (execution input source of truth):
review-plan-<YYYYMMDD>-<branch-or-local>.md
- Diff directory (execution input):
review-plan-<YYYYMMDD>-<branch-or-local>.diffs/
- one
.diff file per specialist/module assignment
- Specialist raw-output directory:
review-result-<YYYYMMDD>-<HHMMSS>-<scope>.specialists/
- one artifact per specialist slug (for example
backend-api.md, security-authz.md)
- Human-readable result file:
review-result-<YYYYMMDD>-<HHMMSS>-<scope>.md
- Machine-readable manifest file:
review-manifest-<YYYYMMDD>-<HHMMSS>-<scope>.json
Retention rule:
- Artifacts are immutable history. Never overwrite prior
review-result-* or review-manifest-* files.
The plan file is the canonical execution source of truth and must contain:
- target summary (mode, base/head refs, branch)
- changed file inventory
- specialist roster
- routing table (file -> specialist(s))
- policy routing table (specialist -> policy files)
- audit-governance mode (
policy-contract or fallback-defaults) and active settings
- automated policy-check roster (rule id, scope, check type, severity, apply scope)
- automated policy-check results (
pass|fail|unknown) with evidence paths
- artifact paths
- coverage checklist (all files assigned, all specialists dispatched)
The result file is the canonical human audit output and must contain:
- run metadata (mode, refs, branch, timestamp, run id)
- changed file inventory
- specialist routing matrix (module/diff/file ownership -> specialist)
- specialist attestation ledger (one row per specialist)
Findings (deduplicated, severity ordered)
Standards compliance (ENGINEERING.md)
Project policy compliance
Testing gaps / unverified areas
Coverage + completion status
Artifacts (plan, diffs, specialist raw outputs, manifest)
The manifest file is the machine-audit output and must include top-level fields:
run_id
target metadata (mode, base/head refs, branch, timestamp)
changed_files
specialist_roster
routing_map
attestations
compliance_results (standards + policy + deterministic checks)
completion_state
completion_blockers
Diff artifact rules:
- Keep full diffs in the
.diffs/ directory, not in the summary.
- Name files clearly by specialist slug (for example
backend-api.diff, security-authz.diff).
- Ensure each specialist receives only relevant diff slices plus shared global context as needed.
Automated policy checks (pre-specialist, deterministic):
- Parse active policy rules from global/module files.
- Select rules with
automation.check_type metadata. V1 required support:
- Validate automation metadata before evaluation:
- parser must handle nested/indented keys in YAML blocks (for example, if using regex extraction, support leading whitespace)
- required fields for
inheritance_suffix:
automation.selector.class_name_suffix
automation.expectation.base_class_suffix
- if required metadata is missing or malformed, do not fail the run:
- mark the rule
unknown
- include reason/evidence (
malformed automation metadata)
- continue processing remaining rules
- Build target file set:
- default from
automation.apply_scope = changed-files
- module scoping based on policy routing ownership
- Evaluate each targeted file for each applicable rule:
- find classes matching
automation.selector.class_name_suffix
- verify base class pattern against
automation.expectation (for v1, same-stem-suffix)
- Record compliance status per rule:
pass: no violations found in targeted files
fail: at least one violation with concrete file+line evidence
unknown: parse/analysis could not determine compliance for one or more targets
- Convert
fail results into standard findings with policy rule reference.
- Send
unknown results to Testing gaps / unverified areas with concrete validation steps.
Backward compatibility:
- If no rules include automation metadata, skip deterministic checks and proceed with baseline specialist review.
Phase 5 — Dispatch specialists in parallel
Dispatch specialists in parallel batches of up to 5.
For each specialist, provide:
- its scoped diff artifact
- relevant
CONTEXT.md
- shared
AGENTS.md and <docs-dir>/ENGINEERING.md (always)
- policy files (global + module-specific) when present
- automated policy-check summaries for overlapping files/rules when available
- review contract from
references/review-contract.md
- output path for raw specialist result artifact under
review-result-*.specialists/
Specialist requirements (strict):
- Return actionable findings only (exclude style-only commentary unless user requested style review).
- Use required schema for every finding:
severity
title
evidence (file + line)
impact
recommended_fix
confidence
- When a finding is a standards/policy violation, cite the violated rule id/section from
ENGINEERING.md or policy file.
- Call out verification gaps explicitly when confidence depends on missing tests or runtime validation.
If a specialist finds no actionable issues, it should explicitly return "no actionable findings" plus any testing/verification gaps.
Specialist attestation requirements (strict):
- For every dispatched specialist, the orchestrator must record an attestation object with:
specialist_slug
specialist_type (module or cross-cut)
assigned_scope (owned module/subtree and reviewed file count)
status (findings-submitted | no-actionable-findings | failed | skipped | missing)
signed_at
attestation_text
output_artifact_path
attestation_text fixed statement:
"I reviewed the assigned scope and reported all actionable findings I could verify from the provided artifacts."
- For missing specialist output, still emit an attestation row with status
missing and an explicit reason.
Phase 6 — Consolidate, deduplicate, and finalize completion state
Merge specialist outputs plus deterministic policy-check findings into one consolidated result:
- Group duplicate findings by root cause.
- Preserve the strongest instance:
- highest severity
- clearest evidence
- most actionable fix
- Keep cross-specialist corroboration notes when useful, but do not duplicate findings.
- Sort final findings by severity, then impact.
Fail-closed completion rules:
- Compute
completion_state from required specialist attestations:
complete: every required specialist has status findings-submitted or no-actionable-findings
incomplete: any required specialist has status failed, skipped, or missing
completion_mode is always fail-closed.
- Generate explicit
completion_blockers for all non-success required attestations.
Result/report sections (required):
Run metadata
Changed file inventory
Specialist routing matrix
Specialist attestation ledger
Findings (deduplicated, severity ordered)
Standards compliance (ENGINEERING.md)
Project policy compliance:
- when policy files exist: include each evaluated rule id with
pass|fail|unknown, supporting evidence, and exception usage
- when policy files are absent: include bootstrap recommendation
- always include whether audit governance came from policy contract or fallback defaults
Testing gaps / unverified areas
Coverage + completion status:
- route completeness
- attestation completeness
completion_state
completion_blockers when incomplete
Artifacts:
- plan path
- diff directory path
- specialist raw output directory path
- manifest path
If no actionable findings exist, say so explicitly and still provide attestation coverage, completion status, and verification gaps.
Phase 7 — Output quality checks
Before completing:
- Confirm every changed file appears in the routing table.
- Confirm every specialist output was collected or explicitly marked failed/skipped.
- Confirm every required specialist has an attestation row.
- Confirm policy files were loaded when
POLICY_INDEX.md is present.
- Confirm automatable policy rules were executed or explicitly marked
unknown with reason.
- Confirm malformed automation metadata is handled as
unknown (not a run-stopping parser error).
- Confirm artifact paths in result and manifest are real and consistent with the plan.
- Confirm severity vocabulary is only:
critical, high, medium, low.
- Confirm
completion_state is set and fail-closed rules were applied correctly.
Do not commit changes. The user reviews artifacts and findings before any commit.
1---2name: agentic-review3description: Orchestrate repository-aware code review after `setup-agentic-repository` by deriving module specialists from `AGENTS.md` + `CONTEXT.md`/`CONTEXT-MAP.md`, generating canonical review artifacts, running deterministic policy automation checks, delegating scoped review tasks to subagents, recording specialist attestations, and returning deduplicated severity-ordered findings with fail-closed completion status. Use when the user wants PR review, local-diff review, orchestrated multi-agent review, module-wise code review, policy-aware convention checks, auditability of reviewer coverage, or asks to invoke `agentic-review` with agentic repository setup.4---56# agentic-review78Run end-to-end code review using the repository's agentic setup. This skill is the review orchestrator that executes after `setup-agentic-repository`: it discovers module boundaries from `CONTEXT.md` artifacts, applies coding standards from `ENGINEERING.md`, optionally enforces project policy from `<docs-dir>/review/policies/`, runs deterministic policy automation checks (v1 inheritance conventions), builds immutable canonical review artifacts under `<docs-dir>/review/`, routes work to specialists, records specialist attestations, and consolidates findings into one deduplicated severity-ordered report with an explicit completion state.910Read [references/review-contract.md](references/review-contract.md) before dispatching specialists. It defines severity levels, required finding schema, specialist prompt skeleton, attestation schema, policy-compliance reporting, and deduplication/output rules.1112---1314## Phase 1 — Verify prerequisites and discover `<docs-dir>`1516This skill assumes `setup-agentic-repository` has already been run.17181. Read root `AGENTS.md`.192. Discover `<docs-dir>` from the contract paths listed there (typically `agents-docs/`, but `--docs-dir` may have overridden this).203. Fallback if needed: find `AGENTS_CONTEXT.md` (`find . -maxdepth 4 -name AGENTS_CONTEXT.md`) and set `<docs-dir>` to its parent directory.214. Confirm these files exist:22 - `<docs-dir>/AGENTS_CONTEXT.md`23 - `<docs-dir>/AGENT_WORKFLOW.md`24 - `<docs-dir>/ENGINEERING.md`25 - at least one `CONTEXT.md` in the repo2627If any are missing, stop and tell the user to run `setup-agentic-repository` first. Do not scaffold missing setup files from this skill.2829Policy bootstrap mode:30- Optional policy directory: `<docs-dir>/review/policies/`31- If `POLICY_INDEX.md` is present there, policy enforcement is mandatory for this run.32- If policy files are absent, proceed with baseline review and explicitly recommend running `review-policy-builder` in the final report.3334---3536## Phase 2 — Resolve review target (PR-first, local fallback)3738Default model:39- Prefer PR-style review of branch changes into base branch.40- Fall back to local change review when PR comparison is unavailable or inappropriate.4142Resolution order:431. Parse user overrides from the prompt (explicit base branch or explicit local-only request).442. If explicit local-only was requested, force `local` mode.453. Detect current branch (`git rev-parse --abbrev-ref HEAD`).464. Build ordered base candidates:47 - user-provided base ref (if any)48 - remote default branch (`git symbolic-ref --quiet --short refs/remotes/origin/HEAD`)49 - `origin/main`50 - `origin/master`51 - `main`52 - `master`535. Select the first existing candidate (`git rev-parse --verify --quiet <ref>`).546. If current branch is not base and a base ref exists, use PR-style scope:55 - compare `base...HEAD`567. Otherwise use local scope:57 - unstaged diff (`git diff`)58 - staged diff (`git diff --cached`)59 - untracked files (`git ls-files --others --exclude-standard`)6061Capture the resolved scope in the canonical plan before launching specialists:62- review mode (`pr` or `local`)63- base/head refs (or `local`)64- exact changed-file inventory65- any gaps (for example, no remote base available)6667---6869## Phase 3 — Build module map and specialist roster7071Derive module specialists from setup artifacts:72731. If `<docs-dir>/CONTEXT-MAP.md` exists:74 - parse each context row75 - extract context name and `CONTEXT.md` path76 - create one module specialist per context772. If no context map exists:78 - use the single discovered `CONTEXT.md`79 - create one module specialist for that subtree8081Add cross-cut specialists when relevant changes exist:82- `tests-regressions` — test coverage gaps and behavioral regressions83- `migrations-data-safety` — schema/migration/data-risk changes84- `security-authz` — authn/authz/secrets/exposure risk85- `api-contract` — externally visible contract compatibility8687Routing rules:88- Route files to module specialists by subtree ownership from `CONTEXT.md` paths.89- Route files to cross-cut specialists by pattern and semantics (migrations, auth, API surface, testing changes/gaps).90- Every changed file must be assigned to at least one specialist.91- Multi-match files must be assigned to all matching specialists (broader coverage is preferred to under-routing).9293Policy routing additions (when policy exists):94- Read `<docs-dir>/review/policies/POLICY_INDEX.md` to map module/context/subtree -> policy files.95- Load global policy (`global-policy.md`) for all specialists.96- Load module policy (`module-<slug>.md`) for specialists owning that module/subtree.97- If a changed file maps to multiple module policies, attach all relevant policies.98- Build an automated-rule roster from policy rules that include machine metadata (for example `automation.check_type`).99- If `POLICY_INDEX.md` includes a `Review Audit Contract` section, load it and apply its audit-governance fields.100- If no audit contract is present, apply built-in defaults:101 - `audit_contract_version: 1`102 - `completion_mode: fail-closed`103 - required attestation fields from this skill contract104 - required specialist categories: module specialists always, cross-cut specialists when routed by file semantics105 - transparency mode: `summary + artifact links`106- Record whether policy-driven audit governance or fallback defaults were used in the plan and final result.107108---109110## Phase 4 — Create canonical review artifacts and run automated policy checks111112Create artifacts under `<docs-dir>/review/`:113114- Plan file (execution input source of truth):115 - `review-plan-<YYYYMMDD>-<branch-or-local>.md`116- Diff directory (execution input):117 - `review-plan-<YYYYMMDD>-<branch-or-local>.diffs/`118 - one `.diff` file per specialist/module assignment119- Specialist raw-output directory:120 - `review-result-<YYYYMMDD>-<HHMMSS>-<scope>.specialists/`121 - one artifact per specialist slug (for example `backend-api.md`, `security-authz.md`)122- Human-readable result file:123 - `review-result-<YYYYMMDD>-<HHMMSS>-<scope>.md`124- Machine-readable manifest file:125 - `review-manifest-<YYYYMMDD>-<HHMMSS>-<scope>.json`126127Retention rule:128- Artifacts are immutable history. Never overwrite prior `review-result-*` or `review-manifest-*` files.129130The plan file is the canonical execution source of truth and must contain:131- target summary (mode, base/head refs, branch)132- changed file inventory133- specialist roster134- routing table (file -> specialist(s))135- policy routing table (specialist -> policy files)136- audit-governance mode (`policy-contract` or `fallback-defaults`) and active settings137- automated policy-check roster (rule id, scope, check type, severity, apply scope)138- automated policy-check results (`pass|fail|unknown`) with evidence paths139- artifact paths140- coverage checklist (all files assigned, all specialists dispatched)141142The result file is the canonical human audit output and must contain:143- run metadata (mode, refs, branch, timestamp, run id)144- changed file inventory145- specialist routing matrix (module/diff/file ownership -> specialist)146- specialist attestation ledger (one row per specialist)147- `Findings` (deduplicated, severity ordered)148- `Standards compliance (ENGINEERING.md)`149- `Project policy compliance`150- `Testing gaps / unverified areas`151- `Coverage + completion status`152- `Artifacts` (plan, diffs, specialist raw outputs, manifest)153154The manifest file is the machine-audit output and must include top-level fields:155- `run_id`156- `target` metadata (mode, base/head refs, branch, timestamp)157- `changed_files`158- `specialist_roster`159- `routing_map`160- `attestations`161- `compliance_results` (standards + policy + deterministic checks)162- `completion_state`163- `completion_blockers`164165Diff artifact rules:166- Keep full diffs in the `.diffs/` directory, not in the summary.167- Name files clearly by specialist slug (for example `backend-api.diff`, `security-authz.diff`).168- Ensure each specialist receives only relevant diff slices plus shared global context as needed.169170Automated policy checks (pre-specialist, deterministic):1711. Parse active policy rules from global/module files.1722. Select rules with `automation.check_type` metadata. V1 required support:173 - `inheritance_suffix`1743. Validate automation metadata before evaluation:175 - parser must handle nested/indented keys in YAML blocks (for example, if using regex extraction, support leading whitespace)176 - required fields for `inheritance_suffix`:177 - `automation.selector.class_name_suffix`178 - `automation.expectation.base_class_suffix`179 - if required metadata is missing or malformed, do not fail the run:180 - mark the rule `unknown`181 - include reason/evidence (`malformed automation metadata`)182 - continue processing remaining rules1834. Build target file set:184 - default from `automation.apply_scope = changed-files`185 - module scoping based on policy routing ownership1865. Evaluate each targeted file for each applicable rule:187 - find classes matching `automation.selector.class_name_suffix`188 - verify base class pattern against `automation.expectation` (for v1, `same-stem-suffix`)1896. Record compliance status per rule:190 - `pass`: no violations found in targeted files191 - `fail`: at least one violation with concrete file+line evidence192 - `unknown`: parse/analysis could not determine compliance for one or more targets1937. Convert `fail` results into standard findings with policy rule reference.1948. Send `unknown` results to `Testing gaps / unverified areas` with concrete validation steps.195196Backward compatibility:197- If no rules include automation metadata, skip deterministic checks and proceed with baseline specialist review.198199---200201## Phase 5 — Dispatch specialists in parallel202203Dispatch specialists in parallel batches of up to 5.204205For each specialist, provide:206- its scoped diff artifact207- relevant `CONTEXT.md`208- shared `AGENTS.md` and `<docs-dir>/ENGINEERING.md` (always)209- policy files (global + module-specific) when present210- automated policy-check summaries for overlapping files/rules when available211- review contract from `references/review-contract.md`212- output path for raw specialist result artifact under `review-result-*.specialists/`213214Specialist requirements (strict):215- Return actionable findings only (exclude style-only commentary unless user requested style review).216- Use required schema for every finding:217 - `severity`218 - `title`219 - `evidence` (file + line)220 - `impact`221 - `recommended_fix`222 - `confidence`223- When a finding is a standards/policy violation, cite the violated rule id/section from `ENGINEERING.md` or policy file.224- Call out verification gaps explicitly when confidence depends on missing tests or runtime validation.225226If a specialist finds no actionable issues, it should explicitly return "no actionable findings" plus any testing/verification gaps.227228Specialist attestation requirements (strict):229- For every dispatched specialist, the orchestrator must record an attestation object with:230 - `specialist_slug`231 - `specialist_type` (`module` or `cross-cut`)232 - `assigned_scope` (owned module/subtree and reviewed file count)233 - `status` (`findings-submitted` | `no-actionable-findings` | `failed` | `skipped` | `missing`)234 - `signed_at`235 - `attestation_text`236 - `output_artifact_path`237- `attestation_text` fixed statement:238 - `"I reviewed the assigned scope and reported all actionable findings I could verify from the provided artifacts."`239- For missing specialist output, still emit an attestation row with status `missing` and an explicit reason.240241---242243## Phase 6 — Consolidate, deduplicate, and finalize completion state244245Merge specialist outputs plus deterministic policy-check findings into one consolidated result:2462471. Group duplicate findings by root cause.2482. Preserve the strongest instance:249 - highest severity250 - clearest evidence251 - most actionable fix2523. Keep cross-specialist corroboration notes when useful, but do not duplicate findings.2534. Sort final findings by severity, then impact.254255Fail-closed completion rules:256- Compute `completion_state` from required specialist attestations:257 - `complete`: every required specialist has status `findings-submitted` or `no-actionable-findings`258 - `incomplete`: any required specialist has status `failed`, `skipped`, or `missing`259- `completion_mode` is always fail-closed.260- Generate explicit `completion_blockers` for all non-success required attestations.261262Result/report sections (required):263- `Run metadata`264- `Changed file inventory`265- `Specialist routing matrix`266- `Specialist attestation ledger`267- `Findings` (deduplicated, severity ordered)268- `Standards compliance (ENGINEERING.md)`269- `Project policy compliance`:270 - when policy files exist: include each evaluated rule id with `pass|fail|unknown`, supporting evidence, and exception usage271 - when policy files are absent: include bootstrap recommendation272 - always include whether audit governance came from policy contract or fallback defaults273- `Testing gaps / unverified areas`274- `Coverage + completion status`:275 - route completeness276 - attestation completeness277 - `completion_state`278 - `completion_blockers` when incomplete279- `Artifacts`:280 - plan path281 - diff directory path282 - specialist raw output directory path283 - manifest path284285If no actionable findings exist, say so explicitly and still provide attestation coverage, completion status, and verification gaps.286287---288289## Phase 7 — Output quality checks290291Before completing:292- Confirm every changed file appears in the routing table.293- Confirm every specialist output was collected or explicitly marked failed/skipped.294- Confirm every required specialist has an attestation row.295- Confirm policy files were loaded when `POLICY_INDEX.md` is present.296- Confirm automatable policy rules were executed or explicitly marked `unknown` with reason.297- Confirm malformed automation metadata is handled as `unknown` (not a run-stopping parser error).298- Confirm artifact paths in result and manifest are real and consistent with the plan.299- Confirm severity vocabulary is only: `critical`, `high`, `medium`, `low`.300- Confirm `completion_state` is set and fail-closed rules were applied correctly.301302Do not commit changes. The user reviews artifacts and findings before any commit.