Repository navigation
docs(source-control): tighten skill bodies to the skill criteria - #11820
Conversation
Both check-unchanged graders held a literal "---" inside their regex; the
eval loader ends frontmatter at the first ---, so both cases failed to
load. Write it as -{3}, which matches the same text.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Tighten the wording of the source-control skill bodies and their reference, context and template spokes, plus the plugin-level reference files, for the concise-skills rollout (#6559). Filler, same-file repeats and history asides are cut; every rule, gate, threshold, command, flag, heading, fenced block, HTML comment, pointer record and Next section is kept. Frontmatter, scripts, hooks, evals and the setup skill are untouched. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- commit-exec-bit-backstop exec-bit-check-ran: allow a quote between exec-bit-check.sh and --fix. - commit-hook-rejection-no-bypass no-hook-bypass: a git config --get read of core.hooksPath is allowed; any set, -c override or --no-verify is still caught. - commit-no-push-no-pr points-to-pull-request: grade the trace; a Skill call to pull-request or a final reply naming it passes, a mention only in the prompt does not. - pull-request-create-refs-remaining-fallback-line remaining-names-close-condition: "stays open until" inside the Remaining section also names the close condition. - pull-request-ready-merges-base-never-rebases: timeout_seconds 900, for the contract's CI wait loops against the offline forge. - worktree-cleanup-dry-run-mutates-nothing, worktree-status-batched-facts facts-helper-ran: allow a quote between worktree-facts.sh and list. - worktree-status-batched-facts: replace single-gh-pr-list with no-repo-wide-pr-list (every gh pr list must carry --head), since the contract reads PRs per branch; samples added, description and expected_outcome updated. - pull-request-ci-mode-escalates-instead-of-weakening-test: move the code under test to .github/workflows/scripts/pick-label.sh, the path the contract protects, so the case again tests escalating instead of editing a protected path; scaffold, prompt, graders and samples follow. - pull-request-ready-hands-pr-to-explain-change: the scaffold seeds a verify-gate pass record for the head, the prompt passes --skip code-review,security-review with a reason, and timeout_seconds is 900. The offline forge now records gh pr comment (for the skip comment), with a gh-forge.test.sh case. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e graders as -{3}
skill-unchanged and skill-fixed also quoted a frontmatter fence (`---`)
inside their regex, so both cases still failed to load.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…biguous The two-labeler meaning diff found no semantic loss but six spots where a shortened phrase allowed a second reading. Restore the original wording at each: "Notably:" (example list), the "When the diff breaks apart this way" condition in prep, the unconditional merge-forward cost note, "review lanes" in review-venue, "never by standing instructions" in babysit-loop, and "raises the bump only upward" in commit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rol-concise-skills # Conflicts: # plugins/source-control/skills/babysit-loop/SKILL.md # plugins/source-control/skills/babysit-loop/reference/cycle-shape.md
The 5-run re-test of commit-no-push-no-pr scored 0.9 before and 0.6 after; fired after runs pushed or skipped the pull-request pointer while every fired before run scored 1.0. The rewrite touched most of the commit body, so per the rewrite runbook the before text ships for that skill. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rol-concise-skills
…rol-concise-skills
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
claude-security-review reviewed Security review (incremental, 6d075d2 → b63bdd4)No security issues found. Scope: I read every hunk of the two files changed since the last review, in
Neither file matches a trusted-path glob, and neither is a plugin manifest. No standing instruction is deleted or softened. The change touches no token, secret, workflow, merge hold or trust control. Spend: none. This incremental change does not start any eval or lane runs. The PR context has no embedded directives aimed at this lane. critical-findings: 0 |
|
claude-review reviewed Incremental review (6d075d2 → b63bdd4): no findingsThis review covers only the change since this lane's last review: the Grader change. The regex now also accepts a single-quoted key:
Side note, not a finding. PR context. The PR body says this case never fires in either measured version, so no reported number depends on the grader change. That matches what this change does. Closing issue #6559 sets no acceptance criteria that this increment touches. The PR context contains no embedded instructions aimed at the lane. Spend. This change adds no spend beyond normal eval-sample validation. |
…rol-concise-skills # Conflicts: # plugins/source-control/reference/review-discipline.md # plugins/source-control/skills/pull-request/SKILL.md # plugins/source-control/skills/pull-request/reference/monitor.md
…gaps no-hook-bypass now catches quoted -c, git config set, hyphenated flags and GIT_CONFIG_KEY_n bypasses while still passing reads; no-repo-wide-pr-list stops its --head lookahead at command separators. Samples cover each form. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The case lost its only lookup check when single-gh-pr-list went; a run that skipped the PR cross-reference passed. per-branch-pr-lookup needs one `gh pr list --head`. The scaffold now gives the repo an offline forge (fixtures/gh-forge: origin plus a gh stand-in serving one PR), since with no remote the status contract may skip the lookup. 3/3 runs pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…stration The rewrite said checks_changed fires "never on an intermediate poll", but a new failing check fires it while siblings are still pending (babysit_delta.py new_failing_checks). Restore main's meaning. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Enumerating bypass forms kept missing some (GIT_CONFIG_PARAMETERS, git config --file x). Match core.hooksPath followed by a value (= or a non-separator token) instead: every write form carries a value and every read ends at the key. Samples add both missed forms. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Owner: lane 1 (melo-lap-001 WSL, session b5d5a63d), issue #6559. Round 3 pushed at 483a9f1; all 5 review threads answered and resolved. The arm request goes to the hub once ci-status is green and both review lanes are clean on this head. Hub: replies to your one-shot sockets fail (ENOENT), so this comment answers your 05:4xZ ownership question. |
Lane-Activity: pr-unblock/resolve-conflicts
Lane-Activity: pr-unblock/resolve-conflicts
|
The pr-verify verifier failed head What it wrote (51 lines)This pull request leaves the merge queue, and ci-status holds it out while it carries |
Lane-Activity: pr-unblock/address-feedback Lane-Thread: PRRT_kwDOTCGFQM6yYB17 Lane-Thread: PRRT_kwDOTCGFQM6yYB2B Lane-Thread: PRRT_kwDOTCGFQM6yYB2E Lane-Thread: PRRT_kwDOTCGFQM6yYB2F
|
pr-unblock / address-feedback finished round 1 of max 4 on fb4f9bb. |
|
The pr-unblock lane stopped
When a retry on this head can change the outcome, the lane runs one on its own, up to its per-head cap, and edits this comment if it stops again; a run that does not stop clears the status. When no retry can (a review thread the lane does not take or settle, or a failing check after the retries are spent), a person resolves the threads or gets the checks green, then dispatches the workflow below: that run finds the cause gone and clears the status. On a pull request the lanes App opened, the dispatchers start that run once per stop; on any other, a person does. A new commit to the branch starts clean. To run it again on this head now, dispatch the gh workflow run pr-unblock.yml -R melodic-software/claude-code-plugins -f pr-number=11820 -f activity=address-feedback |
The babysit-prs rewrite had no case in a VALID measured set: its one case hit an eval-sandbox denial in both versions. The skill criteria ship only measured parts, so babysit-prs SKILL.md, its references and the GitHub provider files only it reads return to the merge-base text. The changelog fragment now names babysit-prs beside commit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KeBVgcHpe4YpFuL5b24Ft2
…k-bypass The grader reads the compact JSON of the tool input, where a double quote follows a backslash, so a write such as git config core.hooksPath "/dev/null" or a double-quoted key matched nothing. Main's pattern caught both. Accept an escaped quote after the key and as the first value character, and pin both writes and a quoted read as samples. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…-bypass git config 'core.hooksPath' /dev/null matched nothing, because a single quote after the key is neither = nor whitespace. Allow an optional single quote after the key, and pin the write and a single-quoted read as samples. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Closes #6559
Summary
Problem: the source-control skill bodies and the plugin's shared reference files carried filler, repeated statements and history asides the skill criteria do not need. This PR tightens the wording of four skills and the shared
reference/files, changes no rule, description, frontmatter, code block or script, and fixes eval cases a smoke pass found broken. The commit and babysit-prs skills keep their previous text: commit because the measurement found a loss, babysit-prs because it had no case in a VALID measured set.reference/(exceptproviders/github/babysit-prs/)reference/providers/github/babysit-prs/Descriptions are byte-identical, so the skill listing and triggering are unchanged.
Fix
reference/files. Six phrasings two meaning-diff labelers marked ambiguous were restored to their original text, and the untrusted-content contract sentence is byte-identical at every site that carries it (docs/contracts/untrusted-content/README.md).SKILL.md, itsreference/files and the GitHub provider files only it reads (reference/providers/github/babysit-prs/) are at main's text. The skill criteria ship only measured parts (plugins/playbooks/skills/skill-authoring/reference/skill-criteria.md:222), and this skill had no VALID measured case.-{3}).Verification
--max-cost-usd 5per-pass ceiling, which is the eval-spend approval for these passes.reference/) has VALID measured cases. Descriptions did not change. Done-when item 2: babysit-prs is the one skill left unmeasured, because its only case hit an eval-sandbox denial in both versions; its previous text ships. babysit-loop's cases ran against the rewritten babysit-prs; the shipped combination returns babysit-prs to its before text.5175ffe7dd74ad71398a8ec85fd6a970a6fa7e85) before the first after run.evals/after the freeze (current tree5f8b7143d8a9a998a9282a9df9b543ef5ba3e572at fb4f9bb): the main merges added four pull-request ci-mode cases andgh-forgefixture changes. This branch changed theno-hook-bypassgrader and samples (40939d9, 483a9f1, fb4f9bb, 6d075d2, b63bdd4; a commit case that never fires in either version and is excluded below) and theworktree-status-batched-factsPR-lookup graders (40939d9, 8c0eea1). Which grader version scored that worktree case in the reported passes is not recorded here.run-validityjudged both full 44-case results INVALID: the skill did not fire in 10 (before) and 11 (after) with-arm runs of should-trigger cases, and some runs hit eval-sandbox permission denials. No number from the full files is reported as a result.plugins/playbooks/skills/skill-authoring/reference/rewrite-a-plugin.md:50).commit-hook-rejection-no-bypass,commit-never-stage-everything,pull-request-dirty-worktree-stashes-before-checkout).worktree-not-pr-lifecyclemissed firing in before only. Two have a sandbox denial in both versions with equal scores (babysit-prs-safe-tier-never-resolves-or-merges,worktree-create-routes-through-helper).commit-no-push-no-pr,commit-trailer-model-from-sessionandbabysit-loop-demotion-reported-not-written.babysit-loop-demotion-reported-not-written: 1.00 in both versions.commit-trailer-model-from-session: 0.87 before, 1.00 after.commit-no-push-no-pr: every before run where the skill fired scored 1.0 (7 of 7 across both passes). In the after re-test, two of three fired runs failedno-pushorpoints-to-pull-request. The re-test files are themselves INVALID, because unfired runs occur in both versions, so the decision rests on these per-run grader results. The rewrite touched most of the commit body, so the before text ships for that skill.pull-request/reference/ci-ci.mdand four new pull-request ci-mode cases. Those four cases ran on the measured head: VALID, 12 of 12 runs at 1.00./docs-hygiene:compress compare, 34 labelers over 17 file groups): 0 SEMANTIC LOSS. Its 17 BLOCK rows were all one EMBEDDED INSTRUCTION, flagged on a rubric line in the rewriter's own reasons file, not on the compared text. The 6 AMBIGUITY spots were restored./skill-quality:checkon all 8 skills PASS; the plugin's 56*.test.shfiles and its Python suite (3803 tests) pass;scripts/check-next-graph.py,scripts/check-changelog-fragments.sh --checkand the offline eval validator (plugins/evals/skills/validate/scripts/validate-cases.py, 0 FAIL) pass.Related
no-binding-writegrader inbabysit-loop-demotion-reported-not-writtenmatches the whole tool input, so a denied write whose content mentionssecurity-binding.jsonscores as a binding write. In the same case, the agent tried to Grep the plugin root and was denied. Both are filed as test(source-control): babysit-loop demotion case grader matches file content, and the run greps the plugin root #11819. Double- and single-quotedcore.hooksPathwrites the widenedno-hook-bypassgrader missed are fixed here (6d075d2, b63bdd4, with fail samples); that case never fires in either measured version, so no number depends on it.🤖 Generated with Claude Code