The Lane B initial PR shipped a SKILL.md describing a 9-step boot but no executable scripts. Every other user-invocable skill ships scripts/ + rules/ + test-cases.json. This PR closes the gap.
| Required | expect | cover | implement | commit | dev (before) | dev (after) |
|---|---|---|---|---|---|---|
| SKILL.md | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| references/ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| scripts/ | ✓ | — | ✓ | ✓ | ✗ | ✓ (3) |
| rules/ | ✓ | — | ✓ | ✓ | ✗ | ✓ (6) |
| test-cases.json | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ (10 cases) |
$ bash src/skills/dev/scripts/status.sh ork:dev — no state file. Run /ork:dev to boot. (exit 1 — expected, no state) $ bash src/skills/dev/scripts/status.sh --quiet (exit 1, no output — used by boot.sh idempotency)
docs/getting-started/installation.mdx:36 - Skills: 106 loaded (26 commands, 80 reference) + Skills: 107 loaded (27 commands, 80 reference) docs/skills/overview.mdx:156 - Of OrchestKit's 107 skills, **26 are user-invocable** + Of OrchestKit's 107 skills, **27 are user-invocable** docs/reference/index.mdx:13 - Card description: "Reusable knowledge modules — 26 commands + 80..." + Card description: "Reusable knowledge modules — 27 commands + 80..."
A skill without scripts is a contract without an implementation — every invocation requires the model to re-read the SKILL.md and translate prose into shell. Other users-invocable skills ship the shell, then describe it. Now /ork:dev matches.
Rules give the AI guardrails it can cite ("per idempotent-boot.md, re-running while live is a no-op") instead of relying on prose embedded in SKILL.md. Test cases give golden behaviors that can be eval'd by /ork:bare-eval.