Skip to content

Releases: Victoriakaey/project-life-cycle

v0.8.0

12 Jun 22:10

Choose a tag to compare

v0.8.0

[0.8.0] — 2026-06-12

Fixed

  • Skill-frontmatter hooks dead in plugin installsguard.sh (the --no-verify / push-to-main blocker) and close-gate-nudge.sh were 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.sh assertion updated to match. Restart or /reload-plugins required 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 @copilot PR-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 the copilot/** 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 the afk-budget-unit CLAUDE.md key), a 4-row runtime decision table, a 3-layer state model (run-scoped JSON registry whose passes booleans 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 = pushed loop/ branch + exit report; PR ceremony in the next interactive session; merge is human-only, backed by a 3-layer main-protection setup checklist), and the iterations.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 from references/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 passes booleans (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 for afk-loop.md ship 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

11 Jun 19:42

Choose a tag to compare

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 (grep docs/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 to docs/lessons.md, gated by all-three: general + verified-by-regression-test + non-obvious; most bugs correctly produce no lesson). Defines the docs/lessons.md entry 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.md step 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 — /goal entry 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 /goal is 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

11 Jun 07:55

Choose a tag to compare

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>..HEAD empty before merge) and the catch-parity ledger feeding the close-gate: pr-boundary experiment. Wired into SKILL.md (Reviews conventions, Red Flags, reference index, superpowers note), references/cadence.md steps 2/3/4, references/close-gate.md §"Approval timing", and references/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 the gh call — 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.md entries added; roadmap.md (status-file ring), close-gate.md (approval-timing key), pr-comment-template.md (review-record companions), and output-format.md (key list) lines updated; close-gate: per-task added 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

11 Jun 06:31

Choose a tag to compare

v0.5.0

[0.5.0] — 2026-06-11

Added

  • close-gate: per-task | pr-boundary policy 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). Deterministic task-done/phase-done gates 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 in references/output-format.md; full mechanics + attack surface in references/close-gate.md §"Approval timing"; wired into SKILL.md cadence step 6, references/cadence.md §Step 5, and the /init-harness pre-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.md gains a "Parallel work & multi-session discipline" conventions section + Quick Reference rows + a Red Flag; references/roadmap.md gains 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 into SKILL.md step 10, references/milestone-done.md documentation gates, and the roadmap update discipline + anti-patterns.
  • references/user-story.md — two new template sections. Contingencies: pre-declared when <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. none must 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.md cadence step 1, Quick Reference, and the reference index updated to match.
  • commands/builder-profile.md + references/builder-profile.md — a new /builder-profile slash 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 (< 3 instances → 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.py runs hard framing assertions (no Level section, bands only on volume/model-tier with provenance, per-dimension confidence, tool-counts carry a scope token; exit 1 blocks delivery; tested in scripts/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 as references/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.sh mirror 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 via claude --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.md step 8, references/handoff-template.md §TL;DR, and references/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.mdselective 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-done still 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-profile bullet now carries the gated pipeline (deterministic stats → evidence gate → cold-read → adversarial verify → independent verification) and the --scores opt-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 with shlex before matching, so a git commit -m "…--no-verify…" (or a message that merely mentions main) is no longer falsely blocked; only a real --no-verify argv token or a real main push-ref triggers the guard. Fails open on unparseable commands. Adds two regression tests to hooks/test-hooks.sh.

Removed

  • scripts/sync.sh — the live ↔ repo sync bridge is gone with the flow that needed it. The sync commit type, the sync PR label, and the sync-script PR label are removed from CONTRIBUTING.md, references/changelog.md, references/handoff-template.md, `SKI...
Read more

v0.4.0

11 Jun 01:09

Choose a tag to compare

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

v0.3.0

11 Jun 01:09

Choose a tag to compare

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-tab auto-accept, escape safe interrupt, drag-drop multimodal). Full reference for keybindings + session continuity + setup commands + claude -p SDK mode + multi-Claude parallelism rules. Sourced from Boris Cherny's talk + Anthropic internal usage.
  • commands/init-harness.md (new /init-harness slash 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 generates CLAUDE.md with folder-map + policy keys + don't-do list, seeds CONTEXT.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). --refresh re-detects + diffs against current state; --dry-run reports 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-references onboarding.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 /release slash command) — automated release cut. Computes SemVer bump from CHANGELOG.md [Unreleased] content (Removed/BREAKING → MAJOR, Added/Changed → MINOR, Fixed/Security/Deprecated → PATCH), renames the section to [X.Y.Z] — YYYY-MM-DD with 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 predating release.yml), cadence guidance.

Changed

  • SKILL.md Quick Reference + Mandatory Conventions + Red Flags + References now point at /release as 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.md adds 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.md Quick Reference adds rows for: Day 1 onboarding, wiring a verify loop, writing a deterministic handler, # memory append for surprising-AI-assumption capture.
  • references/cadence.md step 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.md Red Flags add: validator skipping lie-detection; builder claiming success the verifier didn't confirm.
  • scripts/commands-manifest.txt — adds release.md + init-harness.md to 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 for release-process.md + init-harness.md, and init-harness.md + release.md alongside ship.md under commands/; Setup section now lists three slash commands (init-harness / ship / release); Development section's release flow replaced with single /release line + manual fallback.
  • SKILL.md Quick Reference adds a row for /init-harness (bootstrap fresh / existing projects). References list adds init-harness.md entry.
  • README.md gains a "TL;DR — the 3-command lifecycle" section right after the tagline, with a Mermaid flowchart (GitHub-native rendering) visualizing /init-harness → /ship → /release over 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

11 Jun 01:09

Choose a tag to compare

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 the CLAUDE.md folder-map schema, 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 in tests/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 /ship slash 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 from nexu-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 from alchaincyf/huashu-md-html discipline.
  • 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.md bakes 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.md workflow 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 without user-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

11 Jun 01:05

Choose a tag to compare

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 review trigger + 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.md policy 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