Releases: Victoriakaey/project-life-cycle
v0.8.0
v0.8.0
[0.8.0] — 2026-06-12
Fixed
- Skill-frontmatter hooks dead in plugin installs —
guard.sh(the--no-verify/ push-to-main blocker) andclose-gate-nudge.shwere registered with relative./hooks/paths, which resolve against the user's project directory, not the plugin — every invocation failed (No such file or directory; guard.sh failed silently). Paths now use${CLAUDE_PLUGIN_ROOT}/skills/project-lifecycle/hooks/…;test-hooks.shassertion updated to match. Restart or/reload-pluginsrequired after upgrading for the fixed hooks to load.
Added
-
Main-protection layer 4: reviewer credentials are read-only (
references/afk-loop.md) — AI reviewers must be unable to push. Documents the GitHub Copilot trap (a@copilotPR-comment mention triggers the push-capable cloud agent, not plain review), the surviving review channels (Reviewers UI /gh pr edit --add-reviewer @copilot), the account-level agent toggle, and thecopilot/**ruleset hardening. -
references/afk-loop.md— unattended (AFK) run protocol. A 4-field loop contract (Goal / Stop / Budget / Report; budget never blank — rounds + hours mandatory, subscription users get a dual-window usage-% circuit breaker with fail-safe, API users a $ cap via theafk-budget-unitCLAUDE.md key), a 4-row runtime decision table, a 3-layer state model (run-scoped JSON registry whosepassesbooleans only the deterministic verify step may write), a 7-end-state exit report with derived death codes + SessionStart scavenger + COMPLETE re-verification, an egress policy table (loop terminus = pushedloop/branch + exit report; PR ceremony in the next interactive session; merge is human-only, backed by a 3-layer main-protection setup checklist), and theiterations.log→ PR "AFK Run Narrative" audit layer. Graduated rollout: first 2-3 runs semi-supervised and local-only. -
Intent-gate 6th classify axis: AFK-eligibility (
references/intent-gate.md). Four-condition conjunction (oracle ≥ golden tier, no irreversible-class actions, definable scope fence, no design judgment); all hold → the gate OFFERS a loop contract, never auto-starts. Reuses the HITL/AFK label vocabulary fromreferences/issue-breakdown.md(request-level here, slice-level there). -
Three AFK Red Flags in SKILL.md: run without a filled contract; loop agent flipping registry
passesbooleans (laundered self-report, METR reward-hack path); unattended loop opening PRs / merging / tagging / publishing. Two Quick Reference routing rows (AFK-eligible request / AFK run ended) and the reference-index entry forafk-loop.mdship in the same edit.
Changed
references/release-process.md— note: projects adopting the strict main ruleset (PR-required, empty bypass list) route the release commit through a PR as well; the tag lands on the merge commit.references/issue-breakdown.md— AFK label semantics aligned with the egress policy: AFK = implementable and brought to PR-ready without human interaction; the merge itself always stays human.
Full history: see CHANGELOG.md
What's Changed
✨ New Features & References
- feat: AFK loop support — unattended-run protocol, eligibility gate, human-only merge by @Victoriakaey in #8
🐛 Bug Fixes
- fix: plugin hook paths (CLAUDE_PLUGIN_ROOT) + reviewer-read-only protection layer by @Victoriakaey in #9
Full Changelog: v0.7.0...v0.8.0
v0.7.0
v0.7.0
[0.7.0] — 2026-06-11
Changed
references/diagnose-loop.md— extended from 6 to 8 phases (0–7) to close the cross-session memory loop: Phase 0 consult (grepdocs/lessons.md+ the iteration journal for the symptom before building a feedback loop; a matched lesson pre-ranks a Phase 3 hypothesis but never replaces reproduction — same symptom ≠ same cause) and Phase 7 distill (verified root cause → general rule appended todocs/lessons.md, gated by all-three: general + verified-by-regression-test + non-obvious; most bugs correctly produce no lesson). Defines thedocs/lessons.mdentry format (rule / Applies when / Root cause / Verified by / date) and the scope boundary vs CLAUDE.md (agent behavior) / CONTEXT.md (terms) / backlog (deferred decisions). Six new anti-patterns.SKILL.mdstep 5, Quick Reference row, and reference index updated. 🟡 informed by Anthropic's loop-design write-up (fail → investigate → verify → distill → consult progression; vendor post, small-n).references/harness-primitives.md§8 —/goalentry gains loop-design rules: rubric must be checkable (point the goal at close-gate exit 0, never prose), grading stays in an independent context (verifier subagent / deterministic gate, never the looping model's self-critique), and/goalis the self-correction layer ABOVE the un-bypassable close-gate + pre-push-hook floor, never a replacement for it.
Full history: see CHANGELOG.md
What's Changed
✨ New Features & References
- feat(diagnose-loop): add Phase 0 consult + Phase 7 distill memory steps by @Victoriakaey in #7
Full Changelog: v0.6.0...v0.7.0
v0.6.0
v0.6.0
[0.6.0] — 2026-06-11
Added
references/review-record.md— makes AI review trustworthy and auditable. (1) Reviewer dispatch constraints grounded in the published self-review-bias evidence (three mechanisms: in-context ownership / style familiarity / family-taste correlation — a fresh-context same-family reviewer removes the largest term and leaves a residual the rest of the rules compress): fresh context always, read-only tools, explicit tier ≥ implementer's, refute-first output with the verdict field LAST,file:line+ quoted-snippet evidence gate per finding, controller-computed verdicts (never a reviewer-stated "approved"), unanchored pass before any pre-seeded suspicions, lenses-not-clones for multi-reviewer passes. (2) The bidirectional review record on every PR where reviewer subagents ran: comment A = each round's report verbatim (writer must not condense it — a live "verbatim" comment silently dropped ~60% of the reviewer's reasoning) with SHA-range scope header + "not reviewed" list + dispatch-prompt provenance; comment B = builder per-finding response (agree/disagree + why, severity re-graded by actual impact, what changed with SHA, deliberate non-changes, net judgment). (3) Finding→fix rules: mechanically-verifiable → fix vs judgment-call → human ("Reviewer asks"); one review-fix = one commit; reviewer-suggested fix code is untrusted input (a pasted snippet caused real silent data loss on the first live track; adopt the finding, re-derive the fix, add a test); review-fixes are unreviewed code → mandatory final-pass round. (4) Coverage-window check (git log <last-review-SHA>..HEADempty before merge) and the catch-parity ledger feeding theclose-gate: pr-boundaryexperiment. Wired intoSKILL.md(Reviews conventions, Red Flags, reference index, superpowers note),references/cadence.mdsteps 2/3/4,references/close-gate.md§"Approval timing", andreferences/pr-comment-template.md(two new companion-comment drafts in the draft-first tree). The draft-first section additionally requires PR-thread content (bodies, comments, review records) to pass the project's language + leak gates BEFORE theghcall — posted content is published and invisible to git-side hooks. Source: dogfood pr-boundary track 1 (two review rounds, each caught one real issue; six field findings) + cited bias research.
Changed
README.md+README.zh-CN.md— reference trees and the policy-key example block caught up with shipped features:review-record.md+parallel-work.mdentries added;roadmap.md(status-file ring),close-gate.md(approval-timing key),pr-comment-template.md(review-record companions), andoutput-format.md(key list) lines updated;close-gate: per-taskadded to the CLAUDE.md policy-key example.
Full history: see CHANGELOG.md
What's Changed
✨ New Features & References
- feat(references): add review-record.md — trustworthy, auditable AI review by @Victoriakaey in #6
Full Changelog: v0.5.0...v0.6.0
v0.5.0
v0.5.0
[0.5.0] — 2026-06-11
Added
close-gate: per-task | pr-boundarypolicy key — controls where the human-blocking close approval sits.per-task(default, current behavior): Task Close Report blocks on the user's "ok" at every task close.pr-boundary: an independent read-only reviewer subagent does the per-task read, Task Close Reports are still written every task (audit trail, non-blocking), and the human's blocking approval happens once per PR/merge — which MUST keep a human-written approval marker the AI cannot author (the self-certification hole stays closed). Deterministictask-done/phase-donegates unchanged in both modes; flipping the key is framed as a falsifiable experiment (catch parity + comprehension drift over 2-3 tracks, rollback = flip back). Registry inreferences/output-format.md; full mechanics + attack surface inreferences/close-gate.md§"Approval timing"; wired intoSKILL.mdcadence step 6,references/cadence.md§Step 5, and the/init-harnesspre-fill list.references/parallel-work.md— parallel-work discipline, previously implicit: WIP=1 (one active code track per project; the gate chain serializes on the human, so parallel code tracks multiply gate load + merge risk without adding speed), the sidecar exception (doc-only research/investigation may run parallel to the active code track: no gate chain, zero code changes, writes only research docs, never the status/roadmap file), and the single-writer rule (when multiple sessions share a worktree, exactly one holds the pen for the status/roadmap file; sidecar findings enter through the pen-holder; explicit pen handover).SKILL.mdgains a "Parallel work & multi-session discipline" conventions section + Quick Reference rows + a Red Flag;references/roadmap.mdgains the concurrent-writes anti-pattern.references/roadmap.md§"Close protocol — the status-file ring" — fixes the append-forever close protocol that grows the read-first status doc past what a single Read can load (observed: 634 lines / 76k+ tokens on a dogfood project). At every milestone/track close, in ONE edit: new closed paragraph enters the active section's ring (active + 2 most recent closed entries), the oldest closed paragraph moves verbatim to a dedicated archive file (newest-first; never into RESUME-as-verbose-history or another living doc with its own job), and a one-line pointer stays behind. O(1) per close, rides the existing close step. Live-validated rules: zero edits at move time (git history is the second copy), retroactive amendments happen in the archive only, sidecar/doc-only entries don't occupy ring slots, and the protocol is deliberately ungated (a fat status file is loud and self-healing; re-evaluate after 2-3 closes). Honest boundary documented: the ring does not fix other append-forever sections (icebox/decisions-log) — that's capture discipline. Wired intoSKILL.mdstep 10,references/milestone-done.mddocumentation gates, and the roadmap update discipline + anti-patterns.references/user-story.md— two new template sections. Contingencies: pre-declaredwhen <observable situation> → <single pre-decided action>responses for foreseeable mid-implementation situations, written at story time and injected verbatim into builder prompts at cadence step 1 — the builder follows the pre-decided action instead of guessing or burning a controller round-trip; only undeclared surprises escalate via BLOCKED/NEEDS_CONTEXT.nonemust be written explicitly (absence is a decision, not an omission). Invariants (machine-checkable, optional): phase-specific constraints pure code can verify — each entry must ship a runnable check command (a check that cannot fail is rejected); declared commands run once at declaration time and again at phase close with output in the test-evidence/PR comment. Automatic close-gate manifest wiring deliberately deferred until real invariants accumulate. New anti-patterns + downstream-table rows;SKILL.mdcadence step 1, Quick Reference, and the reference index updated to match.commands/builder-profile.md+references/builder-profile.md— a new/builder-profileslash command (opt-in, user-typed). Reads the user's own local Claude Code transcripts (~/.claude/projects/**/*.jsonl) and writes one markdown report to~/.claude/builder-profile.md: a point-in-time snapshot of how the user actually uses an AI coding agent. Purpose is self-understanding (the user sees their own patterns → can use the agent better) + shared passive context any agent (Claude Code, a companion agent, …) can read on demand. The report is the whole product — no separate memory seed, no skill step wired to consume it. 100% local — no network call, no upload. Gated honesty pipeline: PASS 1 deterministic Python →stats.json(no hallucinated numbers), PASS 1.5 evidence gate (< 3instances →insufficient signal), PASS 2 self-blinded spine-first cold read (no flattery; synthesis-before-enumeration with an over-fit reverse-check), PASS 3 adversarial verify + magnitude check (no plausible-but-wrong, no narrative contradicting its own numbers), PASS 4 independent verification so the generator doesn't grade itself —scripts/builder_profile_verify.pyruns hard framing assertions (noLevelsection, bands only on volume/model-tier with provenance, per-dimension confidence, tool-counts carry a scope token; exit 1 blocks delivery; tested inscripts/test_builder_profile_verify.py) plus a fresh-context cold critic fed only the rules + finished report. Framing is descriptive-by-default (1-10 scores behind--scores), operating-modes-not-one-archetype, two-kinds-of-confidence (interpretation ≠ measurement), usage-band-only (quality rating/ranking explicitly out-of-scope — needs an external population the tool won't collect), co-discovery-not-growth-edge, you-vs-you-not-leaderboard — the same discovery-over-judgment discipline asreferences/comprehension-co-discovery.md. After verification the command walks the user through the report in plain language in-conversation (spine-first, honest about what couldn't be measured, co-discovery as real questions) rather than just handing back a file path. Claude Code only for v1 (Codex / Cursor not read). JSONL parser schema + framing-safety rules + report shape in the reference.
Changed
- Contribution flow: the repo is now the single source of truth — the edit-live-first +
scripts/sync.shmirror flow is retired (the live copy at~/.claude/skills/project-lifecycle/is no longer part of the flow; the versioned plugin cache is the consumption path). Unreleased changes are dogfooded viaclaude --plugin-dir <repo-path>(working tree shadows the installed version per session; confirm via/plugins; SKILL/reference text live immediately,hooks/+commands/need/reload-plugins). Rewritten:CONTRIBUTING.md§"Before you open a PR",references/self-update-flow.md(full rewrite),SKILL.md§Self-update,README.md+README.zh-CN.md§Development. Mid-phase safety rule sharpened: merging to main is always safe (sessions keep their released version); only RELEASES wait for phase boundaries. - PR-body TL;DR shape is now four-part: Problem / What we did / Why we did it (new — the plain-words motivation/trade-off, distinct from §2's technical justification) / Result + honest boundary. Updated in
SKILL.mdstep 8,references/handoff-template.md§TL;DR, andreferences/milestone-done.md;CONTRIBUTING.md's PR-body template now includes the TL;DR section it had drifted away from (the skill mandated it; the repo template never did). references/cadence.md§Step 4 +references/close-gate.md+SKILL.md— selective re-verification after fixup, task level only: re-run only the verifier scopes the fixup diff touched (affected AC IDs / folder-map side); acceptance verifier re-runs affected ACs only, validator re-checks its own findings + the fixup diff only, unaffected-scope suites may be skipped at task level with task-done test-evidence scoped accordingly. Two hard boundaries:phase-donestill demands complete full-suite evidence (the full run is the safety net — phase-level gating is unchanged), and a falsification rule (if the phase gate catches a regression that a skipped task-level re-run would have caught, log it and stop using selectivity for the rest of the phase). Takes effect at the next phase boundary on mid-phase projects — a running phase's exit criteria never change.README.md+README.zh-CN.md— added a one-line positioning statement at the top: Project Life Cycle helps teams turn ad-hoc AI coding sessions into repeatable, verifiable, traceable software development processes.README.md+README.zh-CN.md— synced docs with what Claude Code actually shows after plugin install: the TL;DR/builder-profilebullet now carries the gated pipeline (deterministic stats → evidence gate → cold-read → adversarial verify → independent verification) and the--scoresopt-in from the command's real description, and the install section now lists the namespaced command forms (/project-lifecycle:init-harness, …) users see in the command list, noting the bare forms used throughout the README resolve as long as no other installed command claims the same name.
Fixed
hooks/guard.sh— tokenizes the command withshlexbefore matching, so agit commit -m "…--no-verify…"(or a message that merely mentionsmain) is no longer falsely blocked; only a real--no-verifyargv token or a realmainpush-ref triggers the guard. Fails open on unparseable commands. Adds two regression tests tohooks/test-hooks.sh.
Removed
scripts/sync.sh— the live ↔ repo sync bridge is gone with the flow that needed it. Thesynccommit type, thesyncPR label, and thesync-scriptPR label are removed fromCONTRIBUTING.md,references/changelog.md,references/handoff-template.md, `SKI...
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
v0.3.0
v0.3.0
[0.3.0] — 2026-05-28
The "harness era" release. Adds the third orchestrator command (/init-harness) so any project can be bootstrapped in one go; frames the whole skill as an agent harness (Tejas Kumar vocabulary) and bakes lie-detection into the validator; lands 4 new references absorbed from Boris Cherny's Claude Code best practices + Tejas's harness talk (onboarding / verify-loop / ergonomics / deterministic-handlers). README gains a Mermaid lifecycle diagram so first-time readers see the 3-command shape in 10 seconds.
Added
references/onboarding.md— Day 1 protocol for any new contributor (human or AI agent): Q&A-only first day, anchor checklist (CLAUDE.md / CONTEXT.md / RESUME.md / iteration-journal /docs/superpowers//.claude/commands/), why edit-first fails, Day 2+ gradient to/ship. Includes the project-level shared.claude/commands/schema (team-shared slash commands checked into source control, scope hierarchy user-personal vs project-shared vs org-shared). Adapted from Anthropic internal onboarding practice (Boris Cherny).references/verify-loop.md— verify-loop as a named, first-class pattern. Three canonical loops (test / visual / runtime) with where each lives in this skill's cadence. Wiring template for any subagent dispatch. Anti-patterns (no-verify dispatch = self-grading = lies). Adapted from Boris Cherny's "Practical Tips for Claude Code".references/ergonomics.md— Claude Code session ergonomics: 5 habits to internalize (#memory append,!bash mode,shift-tabauto-accept,escapesafe interrupt, drag-drop multimodal). Full reference for keybindings + session continuity + setup commands +claude -pSDK mode + multi-Claude parallelism rules. Sourced from Boris Cherny's talk + Anthropic internal usage.commands/init-harness.md(new/init-harnessslash command) — bootstrap a fresh or existing project to use this skill in one command. Detects stack (language / framework / DB / queue / auth / multi-tenant markers / timezone-sensitive code / layer split / CI), then generatesCLAUDE.mdwith folder-map + policy keys + don't-do list, seedsCONTEXT.md/RESUME.md/iteration-journal.md/CHANGELOG.md, scaffolds project-shared.claude/commands/(test-phase / start-stack / db-snapshot) and.claude/handlers/(pre-flight lint / secret leak / migration safety / tenant isolation / auth / test-failure attribution). Idempotent — merges into existing files; never overwrites without explicit confirm. 4 human checkpoints (confirm stack / approve folder-map / approve policy keys + handler set / approve commit).--refreshre-detects + diffs against current state;--dry-runreports without writing. Realizes Tejas Kumar's "2027 = year of dynamic on-the-fly harnesses" vision in this skill's context.references/init-harness.md— canonical spec consumed by/init-harness: detection signal table (every language / framework / DB / ORM / queue / auth marker and what it implies), merge strategy per generated artifact (CLAUDE.md by-section merge, CHANGELOG format conversion, handler-scaffold idempotency, etc.), handler scaffold templates per detected stack, generated.claude/commands/skeleton format, idempotency guarantees, anti-patterns. Cross-referencesonboarding.md+builder-split.md+deterministic-handlers.md+changelog.md+output-format.md+context-md.md.references/deterministic-handlers.md— harness-injected pre-step pattern (Tejas Kumar's "login handler" generalized). Pure code that runs every agent-loop iteration before the LLM acts; for failure modes with one right answer (auth, secrets, pre-flight lint, migration safety, tenant isolation, test-failure attribution). 6 canonical handler examples + discipline rules + wiring template into builder dispatch. Path-to-dynamic-handlers section sketches the 2027 step.commands/release.md(new/releaseslash command) — automated release cut. Computes SemVer bump fromCHANGELOG.md[Unreleased]content (Removed/BREAKING → MAJOR, Added/Changed → MINOR, Fixed/Security/Deprecated → PATCH), renames the section to[X.Y.Z] — YYYY-MM-DDwith the today date, inserts a fresh[Unreleased]block, updates compare links, bumps both.claude-plugin/manifests, validates, commits, tags, pushes, and watches the workflow + verifies the GitHub Release landed. One human checkpoint (confirm bump + version). Args:/release [auto|major|minor|patch].references/release-process.md— canonical release-process spec consumed by/release: artifact inventory, SemVer bump table, per-release file updates, commit + tag conventions, workflow behavior on tag push, verification checklist, failure-mode recovery (including retroactive-tag flow for commits predatingrelease.yml), cadence guidance.
Changed
SKILL.mdQuick Reference + Mandatory Conventions + Red Flags + References now point at/releaseas the single entry point for cutting a release. Editing CHANGELOG / manifests / tags by hand is flagged as an anti-pattern (defeats the consistency the validator depends on).SKILL.mdadds an "This skill IS an agent harness" preamble framing the skill in Tejas Kumar's vocabulary (tool registry / guardrails / context management / agent loop / verify step / deterministic handlers / lie detection) — gives users vocabulary for what the skill is doing.SKILL.mdQuick Reference adds rows for: Day 1 onboarding, wiring a verify loop, writing a deterministic handler,#memory append for surprising-AI-assumption capture.references/cadence.mdstep 2 (Validator) gains a mandatory "step 0: lie detection" pass — runs FIRST every validator invocation; cross-references Builder Summary claims against the diff + acceptance verifier report; false claims = CRITICAL. Catches the LLM-default-lying failure mode Tejas's harness demo surfaces.SKILL.mdRed Flags add: validator skipping lie-detection; builder claiming success the verifier didn't confirm.scripts/commands-manifest.txt— addsrelease.md+init-harness.mdto the synced command set.README.md— adds harness framing paragraph; surfaces/init-harness+/release+ Day 1 onboarding in "When to use" + "Using it"; file tree gains "onboarding + ergonomics" group at the top, "release" + "bootstrap" groups forrelease-process.md+init-harness.md, andinit-harness.md+release.mdalongsideship.mdundercommands/; Setup section now lists three slash commands (init-harness / ship / release); Development section's release flow replaced with single/releaseline + manual fallback.SKILL.mdQuick Reference adds a row for/init-harness(bootstrap fresh / existing projects). References list addsinit-harness.mdentry.README.mdgains a "TL;DR — the 3-command lifecycle" section right after the tagline, with a Mermaid flowchart (GitHub-native rendering) visualizing/init-harness → /ship → /releaseover the project timeline + the CHANGELOG[Unreleased]feedback into/release. Per-command checkpoint count + role surfaced inside each node. Below the diagram: bullet description per command, then a closing paragraph naming the inter-command discipline (CHANGELOG / labels / Conventional Commits / Validator + Acceptance Verifier + deterministic handlers). Sharpens the tagline from "brainstorm → ... → milestone-done" to "driven by 3 slash commands and a 10-step per-phase / 6-step per-task discipline." (Initial draft used ASCII art; replaced with Mermaid because GitHub renders it inline + it looks like a designed diagram, not a terminal screenshot.)
Full history: see CHANGELOG.md
Full Changelog: https://github.com/Victoriakaey/project-life-cycle/commits/v0.3.0
v0.2.0
v0.2.0
[0.2.0] — 2026-05-27
The "7-agent factory" + repo-discipline release. Splits the per-task cadence into 6 steps (acceptance verifier + read-only validator added), introduces folder-scoped backend / frontend builders for cross-layer phases, ships the /ship vertical-slice orchestrator command, hardens HTML companions with anti-AI-slop quality floor + style presets, and bakes the full CHANGELOG / PR-label / Conventional-Commits discipline into the skill so every project (including this repo) follows it.
Added
references/user-story.md— mandatory user-story + numbered acceptance criteria file for any user-observable phase. Signed off BEFORE spec is written; becomes the ground truth for the new acceptance verifier (cadence step 1.5) and the validator (cadence step 2). AC IDs are stable and appear in test names.references/builder-split.md— backend-builder + frontend-builder folder-scoped split for cross-layer phases. Defines theCLAUDE.mdfolder-mapschema, per-builder prompt templates, and the Builder Summary handoff contract (Cross-layer contract section that frontend consumes verbatim, never silently massaging bad shapes).- Cadence step 1.5 — acceptance verifier: independent subagent, read-only on
src/, writes exactly one acceptance test per AC and reports per-AC PASS/FAIL/UNTESTABLE. Acceptance tests live intests/acceptance/separately from builder unit/integration tests. - Cadence step 2 — Validator (replaces former "spec compliance review"): independent read-only subagent that compares the diff against
user-story.md+ spec + Builder Summaries + Acceptance Verifier Report. Never edits, never invents findings, never does code-quality (step 3 owns that). Lens: correctness-vs-promise + scope drift + folder boundary + security gaps vs spec. commands/ship.md(new/shipslash command) — vertical-slice orchestrator chaining researcher → story → spec → BE → FE → acceptance verifier → validator → fix loop → PR. 3 human checkpoints (story / spec / PR); everything else runs unattended. Designed for one user-observable feature inside an active phase.references/html-companion-template.md— new "Optional frontmatter" section (node/audience/design_system/generated/source) so multi-node projects can tag artifacts and match presets. Pattern adapted fromnexu-io/html-anything.references/html-companion-template.md— new "Style preset recommendations" section mapping each opt-in node to a preset (default-cool / kami-parchment / swiss-grid / xhs-pastel). Presets swap palette + font + radius only; section list and badge taxonomy stay the contract.references/html-companion-template.md— new "Quality floor (anti-AI-slop hard rules)" section with 4 enforced constraints: CJK-first font stack on CJK projects, 8 px baseline grid, WCAG AA contrast (≥4.5 body / ≥3.0 ≥18 px), must-use-real-data rule. Adapted fromalchaincyf/huashu-md-htmldiscipline.scripts/commands-manifest.txt+commands/directory in repo — curated allow-list governing which user-local slash commands ship with the plugin (NOT the whole~/.claude/commands/dir).scripts/sync.sh— extended to push/pull/check both skill (whole-dir rsync) and commands (per-file mirror via manifest); validator reconciles manifest ↔ disk (no orphans either way).scripts/validate.py— extended to check command frontmatter + manifest reconciliation.CHANGELOG.md(this file) +.github/release.yml(PR-label-driven auto release notes) +CONTRIBUTING.md(commit / changelog / PR-label discipline).references/changelog.mdbakes the same discipline into the skill itself.
Changed
- Per-task cadence bumped from 5 steps to 6: implementer(s) → acceptance verifier (NEW step 1.5) → validator (formerly "spec compliance review", now hardened) → code quality review → fixup → journal. Layer-pure mechanical tasks compress (skip step 1.5; merge step 2 + step 3) when small-diff + no-new-logic + no-security-surface.
- Cadence step 1 — implementer dispatch now splits into 1a backend-builder + 1b frontend-builder for any cross-layer phase, per
builder-split.md. Single-implementer pattern retained for layer-pure phases. SKILL.mdworkflow step 1 (brainstorm) — adds user-story sign-off as a hard checkpoint BEFORE spec is written for any user-observable phase.references/cadence.md— controller anti-patterns expanded with: cross-layer phase as single implementer (block), FE dispatched before BE summary exists (block), validator given Edit/Write (block), acceptance verifier writing against internals (block), acceptance verifier marking "covered" without a passing test (block).SKILL.md— Red Flags expanded with: user-observable phase started withoutuser-story.md, spec written before story signed off, cross-layer single implementer, FE silently massaging bad BE shape, builder edits outside folder scope, validator invents findings to look thorough, AC IDs renumbered mid-phase, all 4 html-companion quality-floor rules.README.md— restructured around the 5 questions a new user asks (what is this / when to use / what's inside / setup / use). Cut from 270 to 186 lines. References grouped by purpose (per-phase / per-task cadence / delivery+CI / output discipline / meta) instead of one flat list.
Deprecated
- "Spec compliance review" as a separate cadence step label — folded into the new Validator (cadence step 2) which is strictly broader (AC coverage + scope drift + security gaps vs spec + folder boundary, all read-only). Existing references to the old name in older phase docs remain valid but should not be created going forward.
Full history: see CHANGELOG.md
Full Changelog: https://github.com/Victoriakaey/project-life-cycle/commits/v0.2.0
v0.1.0
v0.1.0
0.1.0 — 2026-05-11
Initial published release. Skill formalizes the workflow piloted in M1.2 (see references/origin.md).
Added
SKILL.md— 10-step per-phase workflow (brainstorm → research gate → revision pass → plan → branch + execute → dual-track smoke → handoff → PR → CI gate + Copilot loop → milestone-done).references/cadence.md— 5-step per-task cadence (implementer → spec compliance review → code quality review → fixup → journal). Vertical-slice TDD discipline; controller anti-patterns.references/brainstorm-research-protocol.md— per-question 7-step loop (frame → parallel research agents → 1st rec → blind 2nd verifier → compare → evidence-tag → surface), Mode A interactive / Mode B batch, verbatim recording mandate.references/context-md.md— ubiquitous-language glossary (CONTEXT.md/CONTEXT-MAP.md) for DDD-style domain anchor. Adopted from Matt Pocock's grill-with-docs skill.references/adr.md— Architectural Decision Records w/ 3-criteria gate (hard-to-reverse AND surprising AND real-tradeoff).references/prd-template.md— optional product-facing PRD for user-facing phases with non-engineer stakeholders.references/issue-breakdown.md— optional Step 4b: split plan into vertical-slice tracer-bullet issues w/ HITL/AFK labels.references/diagnose-loop.md— 6-phase hard-bug discipline (feedback loop → reproduce → ranked falsifiable hypotheses → instrument → fix + regression → cleanup). Iron Law (no fix without root cause) + 3-Fix Rule.references/smoke-tracks.md— dual-track smoke contract (Track A manual checklist + Track B Playwright/equivalent).references/handoff-template.md— 8-section phase delivery doc + PR-body 3-section format.references/findings-tier.md— S1/S2/S3 triage.references/defer-vs-fix.md— triage rule for review findings.references/copilot-review-loop.md— per-PR@copilot reviewtrigger + per-finding inline-reply convention + fixup-commit pattern + Copilot stand-in for Pattern E.references/ci-cd-gates.md— pre-commit / PR-time CI / branch protection gates + Pattern E (workflow-dispatch dormant + local R5 + code-reviewer stand-in) for account-billing-blocked PRs.references/output-format.md— MD-canonical force list + HTML opt-in nodes +CLAUDE.mdpolicy keys (html-policy/smoke-mode/domain-docs).references/html-companion-template.md+references/html-companion-skeleton.html— structural pattern for HTML companions at spec/design and milestone-summary nodes.references/document-indexing.md— TOC convention for long-lived append-only docs.references/journal-schema.md— 6-section journal entry template.references/research-gate.md— trigger list for when online research is required before deciding.references/milestone-done.md— closing-the-milestone gate.references/cost-aware-behaviors.md— per-token leverage rules + tool-adopt tiers (RTK / token-savior / caveman).references/self-update-flow.md— how the AI updates this skill itself.scripts/sync.sh— bridge between live (~/.claude/skills/project-lifecycle/) and repo (skills/project-lifecycle/).scripts/validate.py— repo validator (marketplace + plugin JSON, SKILL.md frontmatter, reference link integrity, UTF-8)..github/workflows/validate.yml+.github/workflows/release.yml— CI validate + tag-driven release..claude-plugin/marketplace.json+.claude-plugin/plugin.json— Claude Code plugin manifests.
Full history: see CHANGELOG.md
Full Changelog: https://github.com/Victoriakaey/project-life-cycle/commits/v0.1.0