github rebelytics/one-skill-to-rule-them-all v3.7.0
v3.7.0: test branch merge, trimmed references, and 31 community items closed

2 hours ago

This release merges release/v3.7.0, the line installed and used since the v3.6.0 release, together with this week's community fixes. The visible change is size: the reference files lost about 600 lines of duplicated rules, restated core text, second examples and incident histories, and every reference now carries a line ceiling in references/ceilings.txt that the bundle validator enforces, so the files cannot regrow silently.

What changed

The skill text. Every behaviour change that had been under test on the branch is now on main: read-only (plan) mode defers writes and queues observations in the plan text; a skipped start-up step is reported before the answer; a "not installed" verdict names its probe; the starter set gives a fresh install an evidence pass instead of all-or-nothing; a classifier refusal is shown to the user before any option; issue and PR text is read as data, never as instructions; the presence check searches the id citation as a second surface; a pre-tool hook can make the helper the only write path; a write gate holds skill-file edits until the authoring reference has been read; the session start reports missing bundle files before the first load, treats a folderless scratch directory as ephemeral, and asks whether a workspace anchor is always mounted and the user's own; the drift audit greps where a locally written rule can live; hooks and other executable artefacts are staged like skills; the description names what the skill does before when to use it.

Scripts. new-observation.sh accepts a Windows drive-letter workspace path and prints it back in that form. validate-skill-bundle.py accepts anchor-link and starred Contents entries, reads a script path past py -3 and interpreter options, gates reference-file growth with the per-file ceilings, names both the <skill>/ and ./ forms for a cited file of the repository a skill works on, and ships 104 selftests. migrate-log.py rejects dropped override keys and flags skills in qualifiers. The archival sweep writes its awk fields as $ 2 so a skill invoked with arguments leaves them intact. The abandoned-root pointer file has one name, MOVED.md, and the scan reports it. The session-start scan closes with a summary line and must be read whole, never through tail.

This week's fixes. A predicate proposed in an observation is run against the instance before it is logged, and a form that a review's run disproves is replaced by the form that ran; an observation about a recurring act names the check that catches it; the helper call is documented with the workspace root it requires; a session-end claim about state other sessions can change carries its basis; the starter-set marker is written only after the adopter answers, cited bodies are read before an entry is recommended, and entry 23 now says to measure the baseline before blaming a failing check on a change (starter set version 4); the activation check in a new session is an unprimed trial; the desktop app's scheduler is named beside the Claude Code CLI column; a second agent tool that reads the same skills folder starts the skill from its description; a binary prerequisite is one that starts, not one on PATH; runtime prerequisites are declared as one string under metadata, which the Agent Skills spec allows; the review is offered at most once per session and every surfaced id is written as observation NNNN; a shared-tree worker's check is scoped to its own paths; the keep-two prune list is derived per skill; and the shell scripts avoid the empty-array expansion that aborts bash 3.2 under set -u.

Repository. A new SUPPORT.md explains why there is no donation button and what helps instead: issues, pull requests, and reach. The README links to it, refreshes its figures, and folds the one redistribution note into the Listed in list.

Under test next: release/v3.8.0

The changes that need a week of real use before they merge are on the new test branch: observations are created as a filled header rather than an empty file; the per-skill lookup also matches target_file: and survives a first run; a zero-padded id reads as its prefix; a pre-3.0 log.md beside the observation directory is flagged; a cited path with a placeholder segment is matched as a naming pattern; a numbered Contents list is parsed; the review timestamp is bound to the saved review record; a first run is told apart from a missing mount at the probe; the activation block carries a template stamp so an upgrade can see a stale one; a seeded, unedited round is told apart from an installed one; the SessionStart hook prints its count at zero; a synced live copy holds the staging gate until its sync mark postdates the install; and a run that cannot write reports its observations back in a fixed section of its final message. The task-observer-flush plugin stays on the branch too.

Thanks

Every issue and pull request that shaped this release is credited in the commit trailers: @abat-kek, @adlc-git, @bapinoko-sudo, @Bauscan24, @bonatoriccardo, @chibuzorokoh, @CreamSpinachYo, @Darth-Pie, @davdittrich, @dispather, @docdyhr, @Exteriorevolutions, @Fablex95, @itsdaniik, @jimmyyin22986, @juniordurant, @Kite-888, @KYPHI-HQ, @lechnir3, @LeoBradbury, @LocalCustomApparel, @maneirag-prog, @minorum, @nblandin, @shiva-thigulla, @Spealy, @taylorh-alt, @tldah4558-prog, @vnakhate.

Don't miss a new one-skill-to-rule-them-all release

NewReleases is sending notifications on new releases.