Follow-up to #1619. The mechanism and the fix are both confirmed there by direct probe; this issue
tracks the part of the blast radius that the first remediation pass deliberately left alone.
What was fixed
The #1619 remediation covered session-flow (7 skills) and source-control (5 skills) —
the highest-traffic skills, and the two plugins the original spec scoped. 12 of 43.
What is still broken
31 skills across 16 plugins still carry a multi-line precompute block containing a git command,
so they are still refused when invoked from a worktree-isolated agent:
| plugin |
skills |
planning |
devils-advocate, interview, plan, prd |
testing |
diagnose, plan, run-e2e, write |
docs-hygiene |
audit-derivability, audit-noise, compress, rename-references |
discovery |
blindspot, explore |
code-tidying |
audit-comment-residue, tidy |
toolchain |
check, lint |
review |
fanout, quality-gate |
prototype |
explore-directions, pressure-test |
claude-ops |
lanes, observability |
architecture |
improve |
bug-report |
write |
codebase-health |
audit |
debugging |
debug |
implementation |
implement |
repo-hygiene |
clean |
verification |
confirm |
(planning shows 4 here rather than 7 — its audit-answers, design, and design-handoff each
have a single precompute line and load today. See #1619's sharp-edge note.)
The fix, unchanged
Identical to the remediation already applied: delete the git lines from ## Pre-computed context,
re-acquire those values in the skill body as individual Bash calls (one command per call), leave
non-git precompute lines untouched, leave the shell: bash frontmatter key alone.
Scoping
Each plugin owns its own plugin.json version and CHANGELOG.md, so this is one PR per plugin —
16 PRs. They are mutually independent (disjoint directories, no per-plugin versions in
marketplace.json) and can run in parallel worktrees.
Doing all skills in a plugin within that plugin's PR is required: a partial pass leaves the plugin
half-broken and forces a second version bump later.
Verification
A green CI run does not prove this fix — CI never invokes a skill from an isolated agent. Each
PR needs one invocation from an Agent with isolation: "worktree":
Related
Follow-up to #1619. The mechanism and the fix are both confirmed there by direct probe; this issue
tracks the part of the blast radius that the first remediation pass deliberately left alone.
What was fixed
The #1619 remediation covered
session-flow(7 skills) andsource-control(5 skills) —the highest-traffic skills, and the two plugins the original spec scoped. 12 of 43.
What is still broken
31 skills across 16 plugins still carry a multi-line precompute block containing a git command,
so they are still refused when invoked from a worktree-isolated agent:
planningdevils-advocate,interview,plan,prdtestingdiagnose,plan,run-e2e,writedocs-hygieneaudit-derivability,audit-noise,compress,rename-referencesdiscoveryblindspot,explorecode-tidyingaudit-comment-residue,tidytoolchaincheck,lintreviewfanout,quality-gateprototypeexplore-directions,pressure-testclaude-opslanes,observabilityarchitectureimprovebug-reportwritecodebase-healthauditdebuggingdebugimplementationimplementrepo-hygienecleanverificationconfirm(
planningshows 4 here rather than 7 — itsaudit-answers,design, anddesign-handoffeachhave a single precompute line and load today. See #1619's sharp-edge note.)
The fix, unchanged
Identical to the remediation already applied: delete the git lines from
## Pre-computed context,re-acquire those values in the skill body as individual Bash calls (one command per call), leave
non-git precompute lines untouched, leave the
shell: bashfrontmatter key alone.Scoping
Each plugin owns its own
plugin.jsonversion andCHANGELOG.md, so this is one PR per plugin —16 PRs. They are mutually independent (disjoint directories, no per-plugin versions in
marketplace.json) and can run in parallel worktrees.Doing all skills in a plugin within that plugin's PR is required: a partial pass leaves the plugin
half-broken and forces a second version bump later.
Verification
A green CI run does not prove this fix — CI never invokes a skill from an isolated agent. Each
PR needs one invocation from an
Agentwithisolation: "worktree":knowledge:course-digest(4 complex precompute lines, no git) loads eitherway. If the control ever starts failing, the cause is something other than fix(skills): worktree-isolated agents cannot invoke a skill whose pre-compute block contains a $-expansion (21 skills; NOT git — see correction comment) #1619.
Related
49-skill sweep.