Skip to content
Back to skills

Chrl Review

ASecurity

Independently review one in-progress card in a fresh Codex CLI session and write a fingerprint-bound GO or NO-GO verdict without modifying its tracked payload.

  • 6 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 2, 2026
toolsgoshellnode

Works with

  • cli

Security analysis

A100/100

Scanned September 20, 2026

npx -y skills add vlikhobabin/changerail --skill chrl-review --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Chrl Review?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Chrl Review
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vlikhobabin-chrl-review/badge)](https://www.skillsdirectory.com/skills/vlikhobabin-chrl-review)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: chrl-review
description: Independently review one in-progress card in a fresh Codex CLI session and write a fingerprint-bound GO or NO-GO verdict without modifying its tracked payload.
---

# Local ChangeRail Review

For an `openspec-v1` card, independently review the linked proposal, delta
specs, design and tasks named by the retained manifest/context in addition to
the board acceptance and evidence. Task checkboxes and completion events do
not substitute for code/evidence, and structural OpenSpec validation is not GO.

Assess Verify as combined coverage of conditions and risks: `method.target`
and every declared `additional_targets` selector are required. Every record
must be valid; a valid proof cannot compensate for a stale or invalid one.
Several test proofs may support one condition, and one genuine execution may
support several relevant conditions through distinct condition-bound records.
Do not demand a rerun or monolithic wrapper merely for a condition number;
existing common-boundary tests are useful when they check the required behavior.
Structural validity does not replace meaningful before/action/after observations
or credible N/A reasoning. For external assertions, trace the selected PASSED
node through `assertion_support.invocation` to the helper's reached assertions.
`source` anchors the entry test file; external fragment hashes authenticate
source bytes, but the validator proves neither callgraph nor assertion adequacy.
`assert helper(...) is None` alone does not establish state. Negative cases need
a specific rejection reason and evidence that no unauthorized writes occurred.
Require the payload to identify mocked pieces versus real policy/state checks:
a call-order-only stub does not establish a before/action/after invariant.
For a v2 observed-proof verdict every generated stage decision is mandatory:
inspect typed observations and assess relevance, before/action/after assertions,
risk reasoning and mocked seams yourself. Keep final-only rows `pending_final`;
a receipt exit code is not semantic acceptance.
Use only the context's checked condition inventory. Historical records are
read-only context and cannot grant execution or new proof authority.

You are the independent reviewer. You did not plan or implement this payload.
Repository startup already supplies the applicable `AGENTS.md`. Read
`$CHRL_REVIEW_CONTEXT` first. It names the card, fingerprint-bound manifest,
verdict schema, per-path scoped diffs, compact evidence index, prior-cycle
artifacts when they exist, and the investigative shell-command budget. Consult
the consumer-owned board instructions named by the project or review
context only for a board rule not covered here. A board README is optional;
do not assume `openspec/board/README.md` exists. Do not scan
the repository or list runtime directories to rediscover any of these paths.

The first two independent reviews are autonomous. Each later independent
review needs a new explicit operator +1 at exhaustion; the outer runner binds
that authorization and `lineage_review_number` in the review context. Local
`cycle-01` in a recovery run may be lineage review 3 or 4. Assess the current
payload normally: authorization supplies budget, never a favorable verdict or
weaker evidence requirements. Never invoke `review-allow`, clear worker context
to authorize yourself, or rewrite retained history/accounting.

## Review

1. Run `./bin/chrl verdict fingerprint <card>`, then read the context, card,
   manifest, and schema without concatenating the payload diffs into that same
   output. `payload_diffs` contains one prebuilt artifact and byte size per
   selected path. Read those artifacts separately; for a large entry, use
   bounded line ranges instead of printing it whole. Do not reconstruct a diff
   command or dump complete changed files already represented there.
2. When `previous_cycle` is null, no prior verdict lookup is needed. Otherwise
   read only the exact prior verdict and manifest paths named there, including
   when `cross_run=true`; `selected_paths` already contains only added, removed,
   or hash-changed paths. Concentrate on the prior findings and failing
   acceptance surface. Carry forward prior semantic conclusions only when all
   relevant inputs are unchanged and applicability to the changed path is clear.
   This does not make old receipts current; existing freshness rules and
   explicitly authorized dependency-based reuse still apply.
3. Map every verdict acceptance entry to observable code and focused evidence
   under the current run directory. For structured OpenSpec acceptance, each
   entry identifies one complete Requirement/Scenario pair: evaluate all of its
   `WHEN`/`THEN`/`AND` clauses together. Evaluate every scenario even after
   finding a blocker; do not stop the review early. Review test adequacy: a test
   is useful only if breaking the required behavior would make it fail.
4. You may rerun one cheap finding-specific check. Do not run the full pytest
   suite or repository verification floor; the fast static pre-review lane is
   already green and `./bin/chrl verify` owns the post-`GO` full floor.
   Start from the context's diff and evidence index. Read an individual evidence
   log only for a specific missing or failed assertion. Read adjacent callers or
   dependencies only for a specific acceptance or correctness question; use
   symbol searches and bounded excerpts instead of broad repository scans.
   Command and timing targets are observations. Complete the review within
   its accepted scope; record unresolved required evidence as concrete findings.
   Do not reset accounting or create another independent review implicitly.
5. Use `blocker` only for a real acceptance failure, correctness defect,
   mandatory missing evidence, unsafe behavior, or scope violation. Important
   non-blocking cleanup is `major` or `minor` and does not force `NO-GO`. Return
   the complete set of blocker, major, and minor findings together in the one
   verdict; finding a blocker does not end finding collection. Every finding
   must populate the schema's `preconditions`, `expected`, `observed`, and
   `repair_scope`. Make the precondition concrete enough to reproduce the gap,
   distinguish the actual observed state from the required state, and enumerate
   every assertion or code boundary needed for repair. Do not use a broad label
   such as “replacement evidence is incomplete” when the missing before-state,
   mutation, and after-state checks can be named precisely.
6. Create the verdict at the path printed by
   `./bin/chrl verdict template <card>`. Preserve its fingerprint exactly,
   include one acceptance entry per generated scenario or compact criterion,
   and then run
   `./bin/chrl verdict validate <card>`.

A focused re-review starts fresh, reads the prior verdict, concentrates on its
blockers and affected surface, and still confirms that all acceptance entries
remain supported. Apply AGENTS.md autonomy and communication rules within this
review role; successful review ends with the validated verdict.

Do not modify tracked files, stage, commit, push, move the card, or edit the
manifest. The review launcher rejects any tracked-payload fingerprint change.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.