Skip to content

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 11 Jun 01:09
· 39 commits to main since this release

v0.4.0

[0.4.0] — 2026-06-08

Added

  • references/harness-primitives.md + a self-enforcing skill-frontmatter hooks: block (hooks/guard.sh, hooks/close-gate-nudge.sh, hooks/test-hooks.sh, hooks/inject-resume.sh.template) — the skill now ships native-platform enforcement, not just prose the model must remember. guard.sh (PreToolUse:Bash) blocks the no-verify commit/push bypass flag and direct pushes to main while the skill is active; close-gate-nudge.sh (Stop/SubagentStop) injects a close-gate reminder, but only on a feat/phase-* branch with uncommitted work or stale test-evidence, throttled to once per 10 min. The new reference maps each verified native Claude Code primitive (frontmatter hooks / SessionStart:resume / dynamic Workflows / run_in_background parallel reviewers / worktree isolation / AskUserQuestion / plan mode / /goal /context /branch) to the skill node it strengthens, with verification provenance (checked 2026-06-08 against the official changelog + hooks docs; /batch and skill-frontmatter invocationMode were checked and not found, so they are omitted). hooks/test-hooks.sh is the deterministic pre-sync gate. Hook firing + relative-path portability were empirically confirmed in a live session before shipping.
  • references/comprehension-co-discovery.md + a new comprehension: off | lite | full policy key (default off) — anti-cognitive-offloading co-discovery round for /ship. MVP = one why-question on the validated diff once per phase (discovery framing, non-blocking, no cumulative scoreboard, <30s); PREDICT round + milestone gap-map roll-up are later stages. Documents the mechanism (generation effect + retrieval practice), the two load-bearing constraints (discovery-not-judgment + no scoreboard), why naive gamification backfires, the by-hand validation caveat, and a future external-companion-engine upgrade. It is verify-loop.md turned on the human.
  • README.zh-CN.md — Simplified-Chinese translation of the README, mirroring the structure of the English version (TL;DR Mermaid lifecycle diagram with localized labels, What it is / When to use / What's inside / Setup / Using it / Project layering / Development / Companion tools / Contributing / License). Technical terms (CLAUDE.md, /ship, /release, slash command, folder-map, deterministic handlers, etc.) kept verbatim per the rule that technical identifiers stay greppable across languages.

Changed

  • references/init-harness.md + commands/init-harness.md/init-harness now installs the SessionStart:resume RESUME-injection hook (project .claude/hooks/inject-resume.sh from the shipped template + an additive .claude/settings.json merge that never clobbers existing SessionStart hooks) whenever docs/RESUME.md is used. Makes the "/clear between phases + RESUME is the contract" discipline deterministic instead of relying on the model to remember to read RESUME on resume.
  • references/cadence.md + references/builder-split.md + references/self-update-flow.md + SKILL.md — node pointers to references/harness-primitives.md at the three nodes where a native primitive changes what the model does: validator (step 2) + code-quality (step 3) can run as concurrent run_in_background reviewers; concurrent BE/FE builders can use isolation: "worktree" as the physical boundary; and the self-update flow now runs hooks/test-hooks.sh before sync when the hooks/ dir is touched (a broken hooks: block can stop the skill loading).
  • commands/release.md — genericized an owner-specific example path to "gitignored paths" so the published command carries no personal-project references.
  • README.md + README.zh-CN.md — "What's inside" tree now lists references/harness-primitives.md and the new hooks/ dir (guard / close-gate-nudge / inject-resume template / test-hooks), so the self-enforcing layer is visible from the README.
  • README.md — adds language switcher line at the top (**English** · [简体中文](README.zh-CN.md)) so readers can swap between language versions in one click.
  • SKILL.md — adds a "Command Surface" section explaining the difference between auto-triggering skills and user-typed slash commands, with an explicit anti-confusion rule: when Claude mentions a slash command it MUST state whether the user needs to act and what happens if they do nothing. Default is to offer inline cadence execution and name the command as the alternative — Claude should not wait for the user to type /ship when it could run the cadence directly. Two new Red Flags enforce this.
  • README.md + README.zh-CN.md — add a "Do I type the commands, or does Claude?" subsection clarifying that the workflow runs without the user typing anything (/ship is a convenience wrapper Claude can run inline; /init-harness once at bootstrap; /release recommended user-typed because it's irreversible).
  • references/cadence.md — new phase-level "Comprehension Co-Discovery" section (after Cadence Compression) defining the opt-in COMPREHEND round; references/output-format.mdcomprehension policy key added to the taxonomy + defaults + values; SKILL.md — policy-key summary, Per-Task Cadence pointer, and reference index updated for the new key + doc.
  • references/handoff-template.md + SKILL.md step 8 + references/milestone-done.md — every PR body must now open with a mandatory plain-language TL;DR at the very top, above the existing What/Why/Requirements sections. Fixed three-bullet shape (Problem / What we did / Result + honest boundary), 3-5 sentences, zero jargon (any technical term avoided or glossed in parentheses). Written for the skimmer who wants "what did this PR actually do" without reading the diff; the technical sections stay unchanged below it for reviewers. A note in the template marks TL;DR as non-negotiable AND distinct from §1 (different audience + register — don't collapse the two).


Full history: see CHANGELOG.md

Full Changelog: https://github.com/Victoriakaey/project-life-cycle/commits/v0.4.0