fix(context7): restore the lookup clause reserved by #4120 and add a model-invocable /context7:check - #5252
Conversation
…use in lookup The 0.5.9 removal contradicted #4120's acceptance criterion, which left the clause unedited pending a human decision. This returns the philosophy line to the state the issue reserved. The owner decision (keep the removal or keep the clause) is still open on #4120. Refs #4120 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EugXnFddtpHcY5gTuyEirB
…quisites.json at it prerequisites.json named `/context7:setup check`, which `disable-model-invocation: true` hides from Claude. `/context7:check` follows only the `check` section of setup and never installs. Refs #4240 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EugXnFddtpHcY5gTuyEirB
Refs #4120 Refs #4240 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EugXnFddtpHcY5gTuyEirB
|
PR body contract — issue linkage This PR body conforms to the issue-linkage contract. Nothing to do. |
…kup default as a sentence Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EugXnFddtpHcY5gTuyEirB
…gistry The new /context7:check skill makes context7 a seventh owner of the accepted `check` collision, which check-skill-leaf-names.sh --check fails until the owner set is updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EugXnFddtpHcY5gTuyEirB
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 finished @kyle-sexton's task in 3m 56s —— View job Claude finished the
|
|
Claude finished @kyle-sexton's task in 59s —— View job Security review —
|
…ind notice to manifest (#5284) Refs: #4240 ## Summary Audit findings against `plugins/biome-format` for #4240 (missing-tool prerequisites). The SessionStart probe ignored the `biome_format_enabled` kill switch, the hook's notice text was not bound to `prerequisites.json`, and the README, setup skill and check skill disagreed on notice wording and left out Node and the probe. Coverage of the other five binary-probing plugins and the two owner questions on #4240 stay open, so this PR only refs the issue. ## Fix - `hooks/hooks.json`: the SessionStart row launches with `--run-if-unset-or-true BIOME_FORMAT_ENABLED` (the form typos-format uses). `probe-prerequisite.sh` and `exec-bash.mjs` are untouched; the probe stays byte-identical across biome-format, go-format and markdown-format. - `hooks/biome-format.test.sh`: runs the row as the harness spawns it, from an empty cwd on a PATH without biome. Disabled prints nothing; unset and true print the notice. A missing node fails the suite. A new case binds the hook's missing-binary notice (tool name, check, install line) and the tool's local bin path to `prerequisites.json`. - README, `setup` and `check` skills, and their evals: the two latch classes are stated once, Node.js and the probe are documented, the setup check names the probe as a separate resolver, adds a Node row and reports `biome_format_lint_gitignored`, and the check skill runs every probe through Bash because setup's pre-computed rows are not rendered when it reads the file. - Release 0.7.6 with a CHANGELOG entry. - `plugins/planning/tests/interview-defenses.test.sh`: re-pins the interview `SKILL.md` frontmatter digest that #5042 (argument-hint only) left stale and that failed `test-linux` on main; planning 0.45.13. Same one-line change as #5239. - `CHANGELOG.md`, in-place corrections to released entries (each also named in the 0.7.6 entry): 0.7.2 said this plugin's hook rows were unchanged although 0.7.1, the same commit, changed them; 0.6.59 and 0.6.58 described `hook::shell_c_operand` and `hook::bash_parse_segments`, which no hook here calls. All three now read "shared launcher/library sync; no change to this plugin's behavior" with their issue links kept. 0.7.3 stays: `hook::begin` calls `hook::repo_relative_path_to`. No entry is renumbered or folded. - `docs/formatter-path-probes.md`: the dispatch-completeness block is a pointer at #3549, and the "do not raise `PostToolUse` timeouts" guidance is bound to the recheck (the Windows `claude --debug` result on #3549) instead of standing as fleet guidance. The four-part record stays in this file. Not done, owner-reserved: whether the probe may notify in repos with no Biome config (Q1) and whether to keep the per-plugin check skills (Q2). No option is implemented. ## Verification - `bash plugins/biome-format/hooks/biome-format.test.sh`: PASS=62 FAIL=0 - `bash scripts/check-prerequisite-probes.test.sh`: 18 cases, 0 failed - `bash scripts/check-changelog-parity.sh --check --check-order`: pass - `bash scripts/validate-plugins.sh`: all manifests and the catalog validated - `check-cross-plugin-source-drift.sh`, `check-hook-exec-form.sh`, `check-killswitch-hoist.sh`, `check-skill-leaf-names.sh`, `check-purged-em-dashes.sh`, `check-silent-skips.sh`: no findings for this plugin - Mutation checks (task runs): reverting the hooks.json flag fails the disabled case; changing the install string in the hook only fails the binding case. ## Related - Audit report `.work/audit/REPORT.md`: row 3b #4240 (partial delivery); plugin-biome-format findings carried by hook-launcher (probe ignores toggle, setup check lacks node and gitignore option). - Cross-group requests: markdown-format and go-format gate their SessionStart rows the same way; bash-format, ruff-format, typos-format, actionlint and powershell-format correct their 0.x.5 CHANGELOG claims; core-docs and conventions hold the check-skill split doc edits until Q2 is answered; scripts fixes hook-utils sync bumps; hook-launcher owns `exec-bash.mjs`. - Cross-group requests received and handled: hook-launcher F13, F37 and F38 (kill switch, Node and gitignore option in setup check, and the CHANGELOG rewording above; the `biome.json` opt-in gate on the probe is owner question Q1 on #4240 and is not implemented); markdown-format (its probe is in the Q1 packet on #4240, option C, and stays unchanged); context7 (noted on #4240 with draft PR #5252, plus the playwright gap); conventions (the two `docs/formatter-path-probes.md` edits above, with #3549 as the recheck carrier). The conventions request for the check-skill invocation-mode doc is held with Q2. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01EugXnFddtpHcY5gTuyEirB --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Clears the planning interview-defenses digest failure the last CI run hit on the pre-merge base. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EugXnFddtpHcY5gTuyEirB
|
Claude finished @kyle-sexton's task in 46s —— View job Claude finished the
|
…ntry The #2388 sanction needs the correcting release entry to name the edit as well as the PR body. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EugXnFddtpHcY5gTuyEirB
|
Claude finished @kyle-sexton's task in 1m 35s —— View job Security review —
|
|
Claude finished @kyle-sexton's task in 55s —— View job Security review —
|
|
Claude finished @kyle-sexton's task in 2m 57s —— View job
|
Keeps both the actionlint and context7 owners on the check leaf name. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EugXnFddtpHcY5gTuyEirB
|
Claude finished @kyle-sexton's task in 57s —— View job Security review —
|
|
Claude finished @kyle-sexton's task in 36s —— View job Claude finished the
|
…requisite-probe wording (#5377) Refs: #4240 ## Summary Follow-ups to the prerequisite-probe work in #4240. The owner decision (2026-09-29) Q1 A and Q2 A were followed as written: the SessionStart missing-tool notice fires wherever the plugin is enabled and its kill switch is not false, and the per-plugin `/<plugin>:check` skills stay, with the split recorded in the philosophy doc and the invocation-mode rubric. The issue stays open: #5286 still tracks the remaining binary-probing format plugins, so the original acceptance list is not fully met. ## Fix - markdown-format: hook and test comments no longer claim a config-less repo sees no install notice; only the per-edit rewrite, findings and jq notice are opt-in gated. - biome-format: README and setup skill say the probe fires without a `biome.json`. - go-format: the owner decision asks for aligned wording in all three format plugins, and go-format's README never mentioned its SessionStart probe. The README Requirements and setup check step 4 now say it reports a missing `goimports` wherever the plugin is enabled and `go_format_enabled` is not false, including a repository with no `.go` files. - playwright: new model-invocable `/playwright:check` skill (with evals), `prerequisites.json` points at it instead of the human-only `/playwright:setup check`, README updated. Playwright has no SessionStart probe, so the skill's trigger names a browser flow that reports the CLI missing or a prerequisites report, not a session notice. Its `allowed-tools` pre-approves the read-only probes that setup's browser and `.gitignore` steps need (`command -v`, `git check-ignore`). - `docs/plugin-philosophy.md` and `docs/conventions/invocation-mode/README.md` record the check/setup split and scope invocation class (ii) to setup. - `scripts/skill-leaf-name-registry.txt`: the `check` line lists `playwright` again, with the separator restored. Versions, each bumped once with a CHANGELOG entry: markdown-format 0.11.84, biome-format 0.7.10, go-format 0.4.12, playwright 0.8.0. origin/main released markdown-format 0.11.83, biome-format 0.7.9 and go-format 0.4.11 while this was in review (it is at playwright 0.7.3), so this branch was merged with origin/main and its entries moved above those. ## Verification Run on the head of this branch after merging origin/main: - `bash scripts/check-skill-leaf-names.sh --check` exits 0 ("All 17 cross-plugin skill leaf-name collisions are registered"); `bash scripts/check-skill-leaf-names.test.sh` PASS=16 FAIL=0. - `bash scripts/check-prerequisite-probes.test.sh`: 51 cases, 0 failed. - Hook suites of the three format plugins: `markdown-format.test.sh` PASS=182 FAIL=0, `biome-format.test.sh` PASS=62 FAIL=0, `go-format.test.sh` PASS=66 FAIL=0. - `bash scripts/check-changelog-parity.sh --check --check-order`, `--check-bump origin/main`, `bash scripts/validate-plugins.sh`, `bash scripts/check-purged-em-dashes.sh --check`, `bash scripts/check-docs-naming.sh --check` and `bash scripts/check-skill-count-claims.sh --check` pass; `jq empty` passes on the playwright evals. - `bash scripts/check-changed-skills.sh origin/main`: 3 skills checked, 0 failed. - `bash scripts/check-stale-base-overlap.sh --check origin/main`: HEAD is up to date with origin/main. - `markdownlint-cli2` on the edited changelogs, the go-format README and setup skill, `docs/plugin-philosophy.md` and the playwright README and check skill: 0 issues. - `bash scripts/affected-tests.sh --run --jobs 4` ran the 290 selected shell suites (17 more are Python, Node or PowerShell and are not run by that runner). 287 pass and 3 fail for host reasons unrelated to this diff: `scripts/check-html-assets.test.sh` and `scripts/check-script-contract.test.sh` need `htmlhint` (`run npm ci`, not installed in this worktree), and `scripts/hook-census.test.sh` needs `strace`. None of the three covers a file this PR touches. ## Related - #4240 (stays open), #5286 (remaining format plugins) - Earlier work: #5284, #5266, #5275, #5252, #5264 - Not covered here: disk-hygiene's Python-missing notice (`plugins/disk-hygiene/hooks/run-python-hook.sh`) still names `/disk-hygiene:setup check`, which the new philosophy rule says a hook should not do. It is the only such hook notice in the tree and is tracked in #5436. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Refs: #4120
Refs: #4240
Summary
Two changes to the
context7plugin from the audit of the unattended Cursor agent's PRs.even for libraries you "know."from thelookupphilosophy line and shipped it as 0.5.9. I28 batch: downgrade forced-compliance emphasis in 40 skill-body and agent sites #4120's acceptance criterion left that clause unedited pending a human decision. This branch returns the clause to the state the issue reserved. The owner decision (keep the removal or keep the clause) is still open on I28 batch: downgrade forced-compliance emphasis in 40 skill-body and agent sites #4120 and this PR does not settle it.prerequisites.jsonnamed/context7:setup check, butsetupsetsdisable-model-invocation: true, so Claude cannot run it./context7:checkis a model-invocable read-only check that follows only thechecksection ofsetup.Fix
plugins/context7/skills/lookup/SKILL.md: the Philosophy line has the pre-Cursor text back. Nothing else in the file changed, including the description's blanket trigger.plugins/context7/skills/check/SKILL.mdandevals/evals.json: new skill with the shape ofgo-format:check, plus three evals (hook notice runs the read-only check, install request is routed not performed, passing check has no successor).plugins/context7/prerequisites.json:checkis now/context7:check.plugins/context7/README.md,docs/skill-cheat-sheet.md(generated): list the new skill.plugins/context7/.claude-plugin/plugin.json0.5.11 to 0.6.0 (new skill), with a 0.6.0 CHANGELOG entry.core-docs(F18): the 0.5.10 CHANGELOG entry described the claude-ops prerequisites mechanism, not what context7 shipped. It now reads "Declares thectx7CLI inprerequisites.jsonso/claude-ops:prerequisitescan report it when missing."core-docs(F19): thelookup**Arguments.**line ends "Default action is lookup, e.g. /context7:lookup react "useEffect cleanup"." No behavior change; recorded in the 0.6.0 entry, no second version bump.Both use
Refs, notCloses: #4120 needs an owner decision, and #4240 covers other plugins that are still open.plugins/playwright/prerequisites.jsonstill names a human-only check; no fix group owns that plugin.Verification
scripts/check-changelog-parity.sh --check --check-order: pass.--check-bump origin/main: pass.scripts/validate-plugins.sh: pass (58 setup skills, catalog validated).scripts/check-prerequisite-probes.test.sh: 18 cases, 0 failed.scripts/check-changed-skills.sh origin/main: 2 skills checked, 0 failed (one pre-existing## Nextwarning onlookup).scripts/check-skill-leaf-names.sh,scripts/check-skill-count-claims.sh(24 claims, 0 mismatched),scripts/check-skill-portability.sh origin/main: pass.node scripts/generate-catalog.mjs --checkandnode scripts/generate-cheatsheet.mjs --check: in sync.markdownlint-cli2on the changed markdown: 0 issues.context7has no test scripts of its own.Related
.work/audit/REPORT.md, findings I28 batch: downgrade forced-compliance emphasis in 40 skill-body and agent sites #4120 (decision, medium; row 3b) and hooks: missing external tools are not surfaced to the user; add a model-invocable fleet-wide prerequisites check (no auto-install) #4240 (correctness, low).core-docs(setup: install subaction naming and refusal rationale vary across formatter/tool setups #3574,docs/plugin-philosophy.md:690-696install-cli wording; keep the heading "Setup is explicit and repeatable" stable),biome-format(note on hooks: missing external tools are not surfaced to the user; add a model-invocable fleet-wide prerequisites check (no auto-install) #4240 that context7 is covered),claude-ops(word the human-only-check note inprerequisites/SKILL.mdgenerally),firecrawl(I28 batch: downgrade forced-compliance emphasis in 40 skill-body and agent sites #4120 row atfirecrawl/SKILL.md:126),event-storming(I28 batch: downgrade forced-compliance emphasis in 40 skill-body and agent sites #4120 row atagentic-simulation.md:60, line 60 only).core-docssetup: install subaction naming and refusal rationale vary across formatter/tool setups #3574 finding aboutdocs/plugin-philosophy.md(that doc iscore-docs' file; it becomes evidence in the setup: install subaction naming and refusal rationale vary across formatter/tool setups #3574 decision packet, andapply install-clistays as is).claude-opsF13 (heads-up): this PR adds the model-invocable/context7:check, so aclaude-opsprerequisites/SKILL.mdsentence saying a setup-skill check is typed by the person is stale for the context7 row; to be told to theclaude-opsgroup in the second pass.plugins/context7/skills/lookup/context/update.md:52.🤖 Generated with Claude Code
https://claude.ai/code/session_01EugXnFddtpHcY5gTuyEirB