v0.4.0
v0.4.0
[0.4.0] — 2026-06-08
Added
references/harness-primitives.md+ a self-enforcing skill-frontmatterhooks: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 theno-verifycommit/push bypass flag and direct pushes tomainwhile the skill is active;close-gate-nudge.sh(Stop/SubagentStop) injects a close-gate reminder, but only on afeat/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_backgroundparallel 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;/batchand skill-frontmatterinvocationModewere checked and not found, so they are omitted).hooks/test-hooks.shis 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 newcomprehension: off | lite | fullpolicy key (defaultoff) — 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 isverify-loop.mdturned 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-harnessnow installs theSessionStart:resumeRESUME-injection hook (project.claude/hooks/inject-resume.shfrom the shipped template + an additive.claude/settings.jsonmerge that never clobbers existing SessionStart hooks) wheneverdocs/RESUME.mdis used. Makes the "/clearbetween 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 toreferences/harness-primitives.mdat the three nodes where a native primitive changes what the model does: validator (step 2) + code-quality (step 3) can run as concurrentrun_in_backgroundreviewers; concurrent BE/FE builders can useisolation: "worktree"as the physical boundary; and the self-update flow now runshooks/test-hooks.shbefore sync when thehooks/dir is touched (a brokenhooks: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 listsreferences/harness-primitives.mdand the newhooks/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/shipwhen 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 (/shipis a convenience wrapper Claude can run inline;/init-harnessonce at bootstrap;/releaserecommended 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.md—comprehensionpolicy 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.mdstep 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