Repository navigation
Comment fixes, eval-test environment split, phase 6 re-scope, action pin updates - #28
Conversation
…tion, IncompleteRead - The TIP callout no longer says "Nothing to do" when the unsigned-commit row shows; it names the signing step. Verdict and risk do not change, and the row stays informational. When the row does not fit, the TIP keeps "Nothing to do". - The unsigned-commit row uses "commit" for a one-commit PR. - The Dependency graph setting-problem match needs the state words in the same clause, with no negation, clause join or "enabled" between them. Display only. - collect.default_transport treats an error body that cannot be read (http.client.HTTPException, such as IncompleteRead) as empty. The status still fails the caller. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- eval.yml picks the environment from the ref with one fixed expression (main -> eval, any other ref -> eval-test) and sets EVAL_ENVIRONMENT from the same expression. - evals.py holds the federation IDs per environment. Only eval and eval-test are accepted; a missing or other value fails closed before any token is minted. The eval-test rule is not created yet, so it is unset and the runner fails closed with "eval-test federation rule not configured". - Workflow lint: eval.yml must use exactly that expression for the environment and EVAL_ENVIRONMENT; no other workflow may use eval or eval-test. New eval-boundary fixtures and edits for each case. - Spec P6-4 and build plan: the two environments, who approves and why, the live eval state, and the open owner steps. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lot bypass stays - Phase 4 exit evidence: 5 real PRs reviewed, 2 weekly metric reports, 7 days with no unexplained failure. - START_HERE is not a review target (it will be archived, issue #27): it moves from candidate to the excluded list in supported-repos.md. - The bypass switch (org admins only, rename to claude-review) is follow-up work, done only when someone asks the owner for a gate. The review stays an advisory signal for maintainers. - Security configurations: both live and read back; one planned change is skipped by owner decision. Details stay in the owner's records. - New phase 6 final acceptance test for this shape. Spec P6-5. - Build plan: P6-1 comment format shipped in 364058d; P6-3 fixes are a release item. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…fest host - step-security/harden-runner v2.22.2 -> v2.22.3 (46b06cea07f9e64621fdf066ba77ac6915163d43, released 2026-10-27) in every job. Audit mode stays: the safe-by-default fix for issue 708 is not released yet (.github issue 24 stays open). - astral-sh/setup-uv v10.3.2 -> v10.3.3 (68559e99cc807c1eb7e9238fd43a15bba460eec2, released 2026-10-28) in every job. It fetches the uv version manifest from releases.astral.sh first (GitHub raw is the fallback), so that host joins the allowlist of every job that runs setup-uv (not measured). The uv download stays on GitHub. - Tag refs checked with the GitHub API: both lightweight tags point at these commits. - Fixture edits, release-test allowlists, workflow comment, spec K-14, K-15 and the build plan updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ity checks - I1: Actions expressions compare strings without case, so a branch named MAIN picked eval. A select job with no permissions now picks the environment with an exact shell test; the evals job takes its one output for the environment and EVAL_ENVIRONMENT. The lint requires the job, its fixed script and the needs link; tests run the real script for MAIN, Main, tags, PR refs and others. - I2: the Dependency graph setting match needs one narrow affirmative phrase, so "is neither disabled nor turned off" is no longer evidence. - I3: the phase 6 security check reads the features and attachment sets, not only attachment and defaults. The skipped change stays skipped. - M1: the release eval on main needs no approval; the release steps now say so. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
🔴 Hold deployment: Claude of Duty identified 1 item requiring attentionMission: Review the code. Protect the branch. Deploy the future. Caution Out of range. This change is too large for the model review. File checks ran, but model checks did not. A maintainer can waive this.
Run 42143423528, attempt 2 for head Claude of Duty never approves a PR. A human reviewer gives the final approval. 🔑 Waiver: how a maintainer clears thisThis PR fails for waivable reasons only. A person with write or admin access, who is not the PR author, posts this exact line as a new comment and replaces A waiver covers the code at this exact head and merge base. Any new push needs a new waiver. 📋 Full review record: reasons, checks, signals, finding details, model summaries, token usageReviewed snapshot
Reasons the gate failed
Checks (code, no model)
Signals (context only, never block)
Dependency changes None. Finding details
Blocking is decided by code from category and severity, never by the model. A finding in a blocking category blocks only at high or critical severity. No findings from the passes that ran. The Review, Security, Supply chain pass did not run, so this is not a clean result. Model summaries
Token usage No token usage was recorded for any pass. |
Summary
collect.pycatcheshttp.client.IncompleteReadand still fails closed.select-environmentjob picksevalonly for exactlyrefs/heads/main; every other ref (includingMAIN, tags, PR refs) getseval-test. Federation values are per environment; theeval-testrule id is unset, so branch evals fail closed until the owner creates the rule. Boundary lint updated.releases.astral.shadded to the setup-uv job allowlists.Review
Adversarial review (Codex) found 3 Important + 1 Minor; all fixed in a8a8de4 and closed by a scoped re-review. Unit tests: 2928 -> 3016 passed. All commits signed.
After merge (owner)
eval-test(required reviewer, prevent self-review).eval-testsubject.eval-testrule id.🤖 Generated with Claude Code