This release merges the release/v3.8.0 test line after its test period, plus the safe parts of three review rounds that followed it. Most of it comes from community reports: eleven issues close with this release, each credited in the commit history.
Installing and upgrading is harder to get wrong. A first run with no observation log is reported as a first run, not a missing mount; a pre-3.0 log.md sitting beside the new observation directory is flagged as a split store instead of being silently ignored; the activation block carries a version stamp, so an upgrade can tell a stale block from a current one; and a run that cannot write (a scripted or scheduled run with no file access) reports its observations back in its final message instead of losing them.
The observation helper and the scan. Each observation is created as a filled header, never an empty file, so a parallel scan never reports a half-written entry as lost; a zero-padded id reads as its filename prefix; observations are looked up by target file as well as by skill, so an instructions file or an agent definition gets its open entries too; the session-start scan survives a first run; and a numbered Contents list in a reference is read as index entries.
The review. The review timestamp is bound to the saved review record, so a run that produced no record is never marked complete; the staging gate holds until a synced live copy postdates the install; a seeded, unedited round is told apart from an installed one; the review's approval policy presents substantive decisions unlabelled and in neutral order; and the authoring reference states the ceiling policy — declare the ceiling at the count after every pass, prefer a reasoned raise over rewrites, list every compression that paid for an addition — together with the canonical LICENSE form (the licence's legal code proper) and the "Feedback on this skill" section.
Smaller things. A cited path with a placeholder segment is matched as a naming pattern; the split-by-episode threshold for a reference file drops from twelve to eight declared load triggers; a contradiction between two rules is a logging signal; and the rationale across the core and the references is compressed to stay under the ceilings, with no rule removed.
Repository. The licence file is now the CC BY 4.0 legal code under the name LICENSE, so GitHub detects it; the README figures are refreshed (84 skills, over 100 contributors, over 270 issues and pull requests closed, over 13,000 installs on the skills registry). The section on how task-observer differs from project memory now covers Claude's built-in features in general, with a paragraph on Claude Code's /insights command, and the recommendations and adaptations lists gained new entries.
Upgrading: replace the bundle, then re-diff your activation block against the template in references/environments.md — its first line now carries the template's version stamp. Nothing else moves.
Thanks to everyone who reported, measured and tested: @shiva-thigulla, @docdyhr, @taylorh-alt, @leomartinalarcon, @minorum, @maneirag-prog, @henda233, @cr0ss, @Ni-Bu, @LocalCustomApparel, @Fablex95.
The next test line, release/v3.9.0, carries the changes that still need a test week: consent at the point of use with the use_evidence field, the evidence-ordered review queue, bin-check for bridged sessions, the split of observation-log.md into three files, the checklist form of the Session Start Protocol, and the flush plugin.