fix(claude-config): let unhobble classify and trim hybrid hook entries - #2067
Conversation
The phase-1 contract allowed only policy/behavioral/convention per hook entry and phase 2 removed a behavioral entry's wiring whole, so a hook carrying both a policy gate and behavioral prose could only be over-stripped or over-kept — contradicting the marketplace rubric's trim-not-delete rule for hybrids (PLUGIN-PHILOSOPHY "Classifying a hook"). Adds the hybrid class (rubric delegated to the philosophy doc), strips a hybrid's behavioral surface via its own kill switch or config where one exists (else unstripped-hybrid-hook with the observe-phase confound noted), and extends the manifest enum. claude-config 0.27.2 -> 0.27.3. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
|
Claude finished @kyle-sexton's task in 38s —— View job Security Review
No security issues found. This PR is a docs/prose-only change to the
There is no code execution path, no injection surface (command/SQL/path/template), no credential handling, and no GitHub Actions workflow in the diff. Nothing here falls under CI-static-tool coverage either (no unpinned actions, no permission changes, no trigger changes) since no workflow files are touched. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 90590760aa
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Claude finished @kyle-sexton's task in 2m 53s —— View job Review: PR #2067 —
|
|
Claude has reviewed this PR 3 times. The lane skips further automatic reviews after 5; deleting this comment resets the count. |
…gins Review findings: the hook rubric was delegated as the general classification method for every surface type — it now governs hook entries specifically, with non-hook surfaces classified by the class definitions and hybrid applying to any in-place-splittable unit; and a kept-whole mixed plugin's behavioral/hybrid hooks can now be individually stripped via the plugin's own per-hook kill switches where exposed, recorded as a partial strip with the prior value, else unstripped-hybrid-hook. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 59s —— View job Security Review: PR #2067
No security issues found. All three changed files are non-executable, docs-contract content:
There is no injection surface (command/SQL/path/template), no credential or token handling, and no trust-boundary change in this diff. Out of scope for this security lane (already covered by other review threads on this PR): whether the |
|
Both findings fixed in 99f9c89: the rubric delegation is now scoped to hook entries (non-hook surfaces classify by the class definitions, with hybrid applying to any in-place-splittable unit), and a kept-whole mixed plugin's behavioral/hybrid hooks can now be individually stripped via the plugin's own per-hook kill switches where exposed — recorded as a partial strip with the prior value for restore, else unstripped-hybrid-hook. |
|
Claude finished @kyle-sexton's task in 4m 22s —— View job Code Review: PR #2067 — hybrid hook classification
SummaryThis is a docs-contract-only change, and the second commit ( Two inline findings, both narrower recurrences of the same scope-mismatch class the prior review round raised — the fix commit closed it for the two cases the PR title/description name (hook rubric delegation, plugin-nested hooks) but the surrounding prose still has two loose ends:
Cross-file, not anchorable to a changed line: Security review is out of this lane's scope (already covered by the security-review comments above — no issues found there). |
Review findings: phase 2's tracked-files bullet had no hybrid mechanics (now: operationalizes like the mixed split, differing only in what the residue is); and a plain behavioral hook with no kill switch was recorded under the hybrid label — the two classes now carry distinct labels so a manifest reader and the readd phase know whether anything of the hook is legitimately loaded. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Both fixed in the follow-up commit: tracked files gained the hybrid branch (operationalizes like the mixed split; the classes differ in the residue, not the mechanics), and the no-switch fallback now records by class — unstripped-behavioral-hook vs unstripped-hybrid-hook — so the manifest distinguishes whether any of the hook is legitimately loaded. |
|
Claude finished @kyle-sexton's task in 47s —— View job Security Review: PR #2067 (HEAD
|
|
Claude finished @kyle-sexton's task in 2m 37s —— View job Code Review: PR #2067 — hybrid hook classification
SummaryReviewed the full cumulative diff ( The three scope-mismatch findings raised by Codex and the prior Claude review rounds on commit
Version bump (0.27.2 → 0.27.3) and the One inline finding posted (naming/vocabulary consistency, non-blocking). Cross-file finding — not anchorable to a changed line:
No other correctness, error-handling, or maintainability issues found in the reviewed diff. Security posture is out of this lane's scope (already covered by the security-review comments above — no issues found there). |
Phase 1 lists plugins among hybrid-classifiable units but the plugin bullet only spoke of "mixed" — it now names the class (hybrid), notes "mixed" as the older strip-plan term for the same class, and keeps the unstripped-mixed-plugin manifest label for continuity. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Fixed — the plugin bullet now names the class (hybrid), notes "mixed" as the older strip-plan term for the same class, and keeps the unstripped-mixed-plugin manifest label for continuity. |
|
Claude encountered an error after 1s —— View job I'll analyze this and get back to you. |
|
Warning Automated review did not complete — this is an infrastructure failure, not a review verdict. Treat any Claude comment on this PR (including a placeholder like "I'll analyze this and get back to you") as incomplete, not "no findings."
Re-run the job to retry the review. A new push does not re-trigger this lane. |
No linked issue
Summary
Aligns the unhobble skill's classification contract with the hybrid hook rubric merged in #2033 — the follow-up promised on that PR's codex thread. Previously a hook entry carrying both a policy gate and behavioral prose could only be over-stripped (wiring removed whole) or over-kept, contradicting the rubric's trim-not-delete rule.
Fix
hybridclass per hook entry, delegating the rubric itself (mechanism vs class, trim-not-delete, ground-truth-oracle carve-out) to PLUGIN-PHILOSOPHY "Classifying a hook" rather than restating it.unstripped-hybrid-hookwith the observe-phase confound noted. Wiring is never removed whole.hybrid.Verification
Docs-contract change only (no scripts); catalog/cheat-sheet regeneration produced no diff; changelog-parity satisfied by the stacked 0.27.3 entry.
Related
Refs #2033 (the rubric this aligns to; its codex P2 thread is the finding), #2021 (the audit whose hybrid rows motivated the rule).
🤖 Generated with Claude Code