Repository navigation
v3.1.0
What's new
Harness-portable skills — the using-systematic bootstrap and its dependent skills now describe capability resolution in neutral terms instead of assuming OpenCode-specific primitives, so the same skill bodies can run correctly on other harnesses (starting with Pi).
Features
feat(skills): harness-portable skills — capability profiles, neutral spine, identifier gate (#653) implements the B′-thin portability increment (plan 2026-07-16-001):
- Two capability profiles (OpenCode, Pi) live under
using-systematic/references/, covering the four capabilities that diverge across harnesses: subagent delegation, blocking user interaction, task tracking, and skill loading. Both are inlined into the controlled bootstraps viaBootstrapDeps.profileBlockinside the existing<SYSTEMATIC_WORKFLOWS>zone, snapshot-pinned and double-run idempotent. using-systematicwas migrated to neutral capability-resolution routing, dropping the two OpenCode-specific routing lines now that the bootstrap carries the harness binding.orchestrating-subagentswas structurally rewritten to neutral delegation language — alltask(andsubagent_typeoccurrences (12 and 8, respectively) were removed while preserving the substance of the skill.- The blocking-question idiom gained a Pi binding at 24 sites across 16 skills, and
ce-review's internally drifted site was normalized to match. - A new content-integrity check (#13) bans harness-specific identifiers in migrated-skill bodies (flagged via the
harness-portability: neutral-v1metadata marker). The check is fence-aware, exempts profile files inside fences, and exempts the sanctioned idiom parenthetical. - New Pi harness proof scenarios cover profile presence and cross-profile absence, migrated-skill activation payload scans, and sequential-delegation markers.
HARNESSES.mdis a new evidence-backed harness registry: every tool name maps to in-repo lines, cloned/installed source, or an authoritative URL, with unverified capabilities explicitly marked. The profiles andAGENTS.mdare cross-linked to it, and it now ships in the npm package alongside the profiles that reference it.- The skill registry was regenerated (73 components).
Follow-up commits in the same PR hardened the work against ce:review findings: isMigratedSkill now keys off the harness-portability marker only (closing a path where unrelated non-string metadata could disable check #13), the idiom exemption is identifier-aware so only blocking-question identifiers are exempt on sanctioned lines, a 9th banned pattern (backtick question) was added per the plan spec, and readHarnessProfile now emits a stderr diagnostic on read failure without ever throwing. A portable bootstrap-snapshot fix normalizes the resolved skills directory to a <SKILLS_DIR> placeholder so the pinned bootstrap bytes stay machine-independent, and a docs fix stops the unit suite from silently downgrading configuration.mdx's $schema example from v3 to v2 on every local run — the generator test now runs against a temp copy and asserts the repo file is untouched.