feat: declare and classify skill-channel runtime prerequisites (5 plugins) - #329
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bffa2df156
ℹ️ 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".
…gins) Prerequisite-visibility wave, dim-9 skill/agent channel: docs-hygiene (markdownlint-cli2 is compress's ship gate — absence now stops at entry with remediation, README declares it), kindle-dedrm (gh declared; workflow download step falls back to the pinned tag instead of composing a malformed URL; Key_Finder URL gains the same empty-match guard), source-control (README declares jq + Bash + unzip with the existing stop-with-remediation behavior), work-items (README declares Bash + jq with Windows path; tracker-seam reference gains an entry-point presence check), review (README gains a Requirements section; ci-log-auditor checks gh presence/auth up front). Part of #317 (tranche B). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
bffa2df to
29d29b9
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 29d29b9426
ℹ️ 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".
Codex review P2 x3 on the tranche-B changes: the DeDRM no-gh fallback now requires the real pinned tag substituted from references/versions.md and refuses to run with the placeholder (no malformed URL possible); a missing Key_Finder URL now stops the block before the hash/extract steps instead of failing later with misleading errors; the work-items seam remediation no longer points at /work-items:setup (which does not create the seam) and states the consumer-provisioning path instead. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d12033ab5d
ℹ️ 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".
) Tranche C of the prerequisite-visibility wave: every dim-10 cross-platform FAIL from the conformance audit — undeclared shell/coreutils assumptions get a stated requirement with the Git Bash Windows path, and the two structural Windows hazards get real fixes. ## Per-plugin changes | Plugin | Version | Change | |---|---|---| | mcp-tools | 0.2.1 | README Requirements section added (Bash + coreutils, jq, Git Bash path). CHANGELOG created. | | ai-briefing | 0.5.1 | README states the POSIX-shell requirement of `setup --with-build-deps` (script's platform gate already accepts MINGW/MSYS/CYGWIN — the doc prong was the gap). | | education | 0.3.1 | README corrected from "none beyond Claude Code": declares `sha256sum`/`shasum`, `realpath`, `tr`, `sed` with the Git Bash path (bundles all of them). CHANGELOG created. | | prototype | 0.2.4 | README declares the detection-script Bash requirement and documents the no-Bash degrade honestly (pre-computed context echoes "none detected"; the skills read the host project directly — verified against `skills/logic/SKILL.md`, which never branches on the detection output). | | code-tidying | 0.4.3 | README declares Bash 4+ (`mapfile`, case-conversion expansions) with the Git Bash path; notes the scripts' existing CRLF/drive-letter handling. | | knowledge | 0.7.1 | README declares the Git Bash shell mechanics (`book-distill` hashes with `sha256sum` on every run) and the EPUB branch's `unzip` requirement (not bundled with Git Bash); PDF-only use needs neither. | | event-storming | 0.5.3 | Simulation teardown phrased shell-agnostically at both sites (`rm -rf` on POSIX/Git Bash, `Remove-Item -Recurse -Force` on PowerShell) instead of unconditional `rm -rf`. | | repo-hygiene | 0.2.1 | `clean`'s PreToolUse destructive-guard hook moves from a bare-`.sh` command to the interpreter-named exec form (`command: "bash"`, `args: […]`) — the doctrine-prescribed Windows-safe spawn shape, matching disk-hygiene's existing `command: "python"` precedent. | ## Verification - `scripts/validate-plugins.sh`, `node scripts/generate-catalog.mjs --check`, and `node scripts/validate-plugin-contracts.mjs` (1429 files) green. - `plugins/repo-hygiene/.../destructive-guard.test.sh`: 30/30 passing after the hook-form change. - The dim-9 work landed separately: hook channel in #328, skill channel in #329. With this tranche, every dim-9/dim-10 FAIL enumerated in #317 is addressed (actionlint's and work-items' dim-10 items were folded into those PRs). ## Related Closes #317 (together with #328 and #329, which carry tranches A and B). 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Codex review P2: with no prerelease entries the jq filter emitted the literal "null", which passed the empty-string guard and composed a release URL containing "null". The filter now appends `// empty` and the guard also rejects a literal "null". Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7a42f4120f
ℹ️ 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".
Codex review P2: the README promised stop-with-remediation on missing jq, but no loaded surface carried the check. tracker-seam.md (read at every skill invocation's start) now requires the jq presence check alongside the seam presence check, and setup's schedule path carries its own gate for the one jq use that bypasses the seam reference. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2f147c50dc
ℹ️ 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".
Codex review P2: the jq requirement lived only in the README, which is not loaded at invocation; the merge/readiness references pipe gh api output through jq directly. The skill's self-contained runtime line now names jq and requires the command -v check with stop-with-remediation before the first parsing phase. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 3m 16s —— View job PR Review —
|
|
Claude finished @kyle-sexton's task in 3m 9s —— View job PR Review —
|
|
Claude finished @kyle-sexton's task in 2m 53s —— View job PR Review —
|
|
Claude finished @kyle-sexton's task in 3m 26s —— View job PR Review —
|
|
Claude finished @kyle-sexton's task in 1m 59s —— View job PR Review —
|
Tranche B of the prerequisite-visibility wave: declare every skill/agent-channel runtime prerequisite at point of use and in the README, with absence classified per doctrine (PLUGIN-PHILOSOPHY § Prerequisites and failure behavior: required → stop with remediation; optional → visible warn + skip; not-applicable → quiet).
Per-plugin changes
compress'smarkdownlint-cli2reclassified required-for-correctness: it is the mandatory ship gate, so absence now stops at the entry point with an install remediation instead of being handled like a lint failure. README gains a Requirements section (ambient Bash/git/jq, compress-only markdownlint-cli2, optional caveman backend).gh(authenticated) declared in README; the setup workflow's DeDRM_tools download falls back to the pinned tag fromreferences/versions.mdwhenghis unavailable instead of composing a malformed URL; the Key_Finder URL resolution gains the same empty-match guard (the tutorial source currently 404s — exactly the rot this guard and thecheck-driftaction exist for). First CHANGELOG created.jq, Bash (Git Bash on native Windows), and the CI-log fetch path'sunziprequirement. The point-of-use gates already existed (fetch-failed-logsexit 5 "unzip required",fetch-annotations"jq required") — the audit FAIL was the undocumented README.jqwith the Windows path (jqis a separate install in Git Bash) and classifiesjqrequired-for-correctness. The tracker-seam reference gains an explicit entry-point presence check for the seam script with remediation pointers (CONTRACT.md,/work-items:setup).gh; Bash via Git Bash).ci-log-auditornow verifiesghpresence/auth as step 0 and stops with remediation instead of auditing from partial evidence.Verification
scripts/validate-plugins.sh,node scripts/generate-catalog.mjs --check, andnode scripts/validate-plugin-contracts.mjs(18 setup skills, 1428 files) all green.techy-notes.comtutorial) is a pre-existing pinned source whose rot the new guard now degrades cleanly.Related
Part of #317. No linked issue is closed by this PR (tranche C remains before #317 can close).
🤖 Generated with Claude Code