🔌 Install-Path Portability — fix + permanent gate
cheap-static-first: the workflow found 3 by judgment; a 0-token grep finds + gates the whole class · 2026-06-05
20
False-positives guarded
40
golden-dataset (follow-up)
The skill-fitness workflow flagged a hardcoded /Users/… path in verify (install-breaking).
This is the systemic version: a static install-path check (C3, in conformance-check.mjs) finds the
whole class at 0 tokens and gates it forever — exactly the session principle: cheap-static-first, expensive-workflow for judgment only.
Fixed (14 — install-breaking skill-load paths)
| Pattern | Fix | Skills |
| Read("/Users/yonatangross/…/skills/X/…") | → ${CLAUDE_PLUGIN_ROOT}/skills/X/… | demo-producer, audit-full, implement×2, expect, cover×3 |
| plugins/ork/skills/<self>/scripts/… | → ${CLAUDE_SKILL_DIR}/scripts/… | memory, brainstorm, explore, assess, review-pr, fix-issue |
| assess "7-dimension" (hyphen) | → "6-dimension" | assess (my earlier-miss residual) |
The C3 check — and its own false-positive self-fix
conformance-check.mjs · C3-install-path (advisory WARN, 0 tokens):
flag /Users/<name>/ (case-SENSITIVE — /Users/ is home, /users/ is a REST resource)
flag plugins/ork/skills/<name>/ (not the *-glob)
guards: ${CLAUDE_*} already-portable · placeholder names (foo/dev/john/me/you) · counting glob
dogfooded the checker on itself — 60 raw flags → 40 real:
11 REST /users/123/orders (api-design, emulate-seed) → killed by case-sensitivity
9 placeholder /Users/foo, schema data, docs-about-paths → killed by placeholder guard
14 real install-breaking skill paths → FIXED
40 golden-dataset OrchestKit/backend ops paths → deferred (different repo/concern)
Deferred: golden-dataset's 40 are operational backup-restore commands referencing a different repo
(OrchestKit/backend) — non-portable but a separate ops concern, not skill-load instructions.
C3 (advisory) keeps surfacing them as tracked debt until cleaned.
Why this beats chasing the workflow score: the skill-fitness workflow found install-paths 3-at-a-time at
~50k tokens each. C3 finds all 60 instantly, fixes 14, and blocks the 61st forever — turning a found-by-expensive-judgment
class into a cheap deterministic gate. The flywheel discipline, applied.