What's new
- Skill-distillation gate — at task close-out, the implementer judges (from the finished task's brief/phases, spec, and diff) whether it established a reusable, generalisable procedure future tasks will repeat — e.g. "add an API endpoint end-to-end", "wire a new drag-drop group". Conservatively: most tasks yield nothing, and it proposes only a high-value candidate. If there is one, it names it, explains when it's used and what it covers, and asks whether to distil it. On your yes it writes a tool-agnostic
.harness/skills/<name>/SKILL.md(name + when-to-use trigger + numbered steps + links).- Skills are team-shared (committed), never overwritten by
harness upgrade, and read back by future sessions — the coordinator and implementer list.harness/skills/on startup and apply a matching skill. - New
harness skillslists the library. New[skills] distill = "auto" | "off"gate (defaultauto). - This captures reusable procedures, distinct from
MEMORY.md(facts/conventions) anddocs/ARCHITECTURE.md(the change-X→which-files map).
- Skills are team-shared (committed), never overwritten by
Compatibility
Backward-compatible. .harness/skills/ starts empty and the gate stays silent until a task genuinely warrants a skill. Existing projects: harness upgrade picks up the new gate/templates and creates the empty .harness/skills/ dir; your work is untouched.
Install
curl -fsSL https://raw.githubusercontent.com/Libr-AI/CommonHarness/v0.8.0/install.sh | bash