Skip to content

feat(enforcement-ladder): rewrite the ladder as 2.0.0 with four tiers, a runs-at column and the guardrail criterion - #8809

Merged
kyle-sexton merged 1 commit into
mainfrom
work-resolve-issue/issue-8731-39541041237-1
Oct 21, 2026
Merged

kyle-sexton merged 1 commit into
mainfrom
work-resolve-issue/issue-8731-39541041237-1

Conversation

@melodic-automation-lanes

Copy link
Copy Markdown
Contributor

Closes #8731

Summary

Opened by the work-resolve-issue lane. The run's own summary:

Rewrote the enforcement ladder as 2.0.0: four tier headings, a runs-at column on the static-analysis rungs, renamed and new rung ids, one Guardrail criterion section, and updated selection rules and versioning. Regenerated the four plugin copies and added one major changelog fragment each for review, session-flow, harness-config and architecture.

Not verified

  • CI check-plugins (sync-shared-copies --check-bump origin/main, check-changelog-fragments --check-required origin/main) left to the PR's CI
  • Fragments were written by hand, not with new-changelog-fragment, because HEAD is detached; names use a made-up suffix
  • Changes left uncommitted in the working tree as instructed; no commit made
  • Review ran as one fresh-context subagent that could only read files (no git diff); its one finding (criterion 6 vs runs-at column) was fixed

Fix

  • docs/conventions/enforcement-ladder/README.md: version 2.0.0, four tiers, runs-at column, shared-helper/harness-setting/action-guard/scaffold/automated-review/instruction/skill/human-review ids, Guardrail criterion naming ADRs 0003 and 0080 in backticks, forgotten-versus-ignored rule, selection rows
  • docs/conventions/enforcement-ladder/CHANGELOG.md: new [2.0.0] entry listing renamed, added, moved and removed rungs
  • plugins/review/context/enforcement-ladder.md: regenerated copy
  • plugins/session-flow/skills/retro/reference/enforcement-ladder.md: regenerated copy
  • plugins/harness-config/skills/audit-automation-gaps/context/enforcement-ladder.md: regenerated copy
  • plugins/architecture/skills/improve/research/enforcement-ladder.md: regenerated copy
  • .changes/{review,session-flow,harness-config,architecture}/feat-enforcement-ladder-2-0-0-*.md: four major fragments

Verification

The runner ran each check from the base copy against 82c1780:

  • scripts/check-changelog-fragments.sh --check: passed

The run reports:

Left out: the items under Not verified.

Related

#8731

Lane-Activity: work-resolve-issue/resolve-issue
@github-actions

Copy link
Copy Markdown
Contributor

claude-review reviewed 82c1780279b1e80693e14a93f9ecf68dc129e65e: 0 finding(s), 0 as inline comments.

Code review: PR #8809 (enforcement ladder 2.0.0)

Findings: 0. I posted no inline comments.

Checked against closing issue #8731

  • The README frontmatter is enforcement-ladder: 2.0.0.
  • The four tier headings are present, strongest first.
  • The "Runs at" column is on the static-analysis table.
  • All six required ids appear: shared-helper, harness-setting, action-guard, scaffold, automated-review and human-review. The diff has no canonical-helper or llm-only in the README.
  • shared-helper is described as counting only when a lint or check names it.
  • There is exactly one ## Guardrail criterion section with eight numbered conditions.
  • Criterion 3 names, in backticks, 0003-verification-guards-earn-default-on-by-measured-precision.md and 0080-set-check-precision-defaults-at-zero-false-positives-blocking-and-under-10-percent-advisory.md. Both ADR files exist under docs/adr/.
  • The forgotten-versus-ignored rule is included, and it is judged by native means only.
  • Selection rules and Versioning use the new ids.
  • The README's only link is the absolute pr-pipeline URL, with no relative links.
  • CHANGELOG.md has a ## [2.0.0] heading that lists renamed, added, moved, removed and unchanged ids.
  • There is one major fragment each for review, session-flow, harness-config and architecture.

Not verified

  • I could not run scripts/sync-shared-copies.sh --check; the sandbox required approval. I did not independently confirm that the four plugin copies match the README.
  • The PR's "all 501 registered copies match", "28 fragments valid" and "check-affected" results are author-claimed and unverified by me. CI's check-plugins is the authority.

Observations that are not findings

  • The Versioning rule says every skill that writes a changed id is updated in the same change. This PR defers those writers to a follow-on slice, as feat(enforcement-ladder): rewrite the ladder as 2.0.0 with four tiers, a runs-at column and the guardrail criterion #8731 states. The deferral is explicit and approved in the issue, so I did not flag it.
  • The new audit-enforceability selection row refers to the guardrail criterion, while that skill still emits hook and llm-only until the writers slice lands. The issue states this as a known interim state.
  • The four fragments use a made-up hash suffix (a1b2c3d4 to a1b2c3d7). The PR says the fragment validator passes.

@github-actions

Copy link
Copy Markdown
Contributor

claude-security-review reviewed 82c1780279b1e80693e14a93f9ecf68dc129e65e: 0 finding(s), 0 as inline comments.

Security review: PR #8809 (head 82c1780)

No security findings.

Scope. The PR rewrites docs/conventions/enforcement-ladder/README.md as 2.0.0 and regenerates its five plugin copies. It also adds four .changes/* fragments. It contains no executable code, workflow, hook, permission setting or credential handling.

Instruction-surface lens. The ladder is a taxonomy for choosing which mechanism holds a rule. It is not a standing guardrail, so I read the diff against the instruction exception register. I did not run the full-tree check below.

  • The old rung ids canonical-helper, hook and llm-only are renamed or reorganised: shared-helper, action-guard, and automated-review/instruction/skill/human-review.
  • The old "Git hook or CI" rung becomes a note that a hook or CI job is a place a check runs, not a rung.
  • No removed text forbids or gates an action in a Gate 0 class (irreversible-action, secret-handling, data-integrity, external-publication, legal-compliance, agent-authority).
  • The new "Guardrail criterion" tightens when a finding earns a deterministic rung. It does not weaken any enforcement.
  • A hook on an action keeps its own rung as action-guard.
  • I found no deletion that leaves a protected-class action with no check.

Not checked. I did not search the rest of the tree for consumers that still write the old ids. A mismatch there would be a correctness or maintainability issue for the code-review lane, not a security one.

The protected-class register at docs/conventions/instruction-exception-register/README.md was present and consulted.

@melodic-automation-lanes

melodic-automation-lanes Bot commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor Author

Unattended merge: risk HIGH at head 82c1780279b1e80693e14a93f9ecf68dc129e65e. Only LOW merges without a human. A floor path or capability change holds it: a human merges it in person, never an agent or a lane.

HIGH high-path:docs/conventions/**: docs/conventions/enforcement-ladder/CHANGELOG.md, docs/conventions/enforcement-ladder/README.md
HIGH high-path:plugins/review/**: plugins/review/context/enforcement-ladder.md
MED evidence-unbound:claude-review: not bound: lane-source-changed
MED evidence-unbound:claude-security-review: not bound: lane-source-changed

This refusal has stood unchanged at this head, so a person is needed: the pr-merge lane added the human-gated label.

@melodic-automation-lanes melodic-automation-lanes Bot added the needs-human Human-in-the-loop required; autonomous sessions must not resolve items carrying this. label Oct 21, 2026
@kyle-sexton
kyle-sexton added this pull request to the merge queue Oct 21, 2026
Merged via the queue into main with commit 3e7fef0 Oct 21, 2026
45 checks passed
@kyle-sexton
kyle-sexton deleted the work-resolve-issue/issue-8731-39541041237-1 branch October 21, 2026 12:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-human Human-in-the-loop required; autonomous sessions must not resolve items carrying this.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(enforcement-ladder): rewrite the ladder as 2.0.0 with four tiers, a runs-at column and the guardrail criterion

1 participant