atdd-plan
Produce an ATDD-first implementation plan in Claude Code's native plan mode, with named design patterns called out where they earn their keep. The skill enters…
Post-commit gate. Invoke after every commit (right after /flagrare:staleness-audit). Checks whether a release is due, and if so, proposes a semver bump and a value-focused CHANGELOG entry modeled on Valve's Dota 2 patch notes, describing what the user gains, never what was
$ npx -y skills add Flagrare/agent-skills --skill release-check --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/release-checkContext preview
The summary Claude sees to decide when to auto-load this skill.
Post-commit gate. Invoke after every commit (right after /flagrare:staleness-audit). Checks whether a release is due, and if so, proposes a semver bump and a value-focused CHANGELOG entry modeled on Valve's Dota 2 patch notes, describing what the user gains, never what was
name: release-check description: Post-commit gate. Invoke after every commit (right after /flagrare:staleness-audit). Checks whether a release is due, and if so, proposes a semver bump and a value-focused CHANGELOG entry modeled on Valve's Dota 2 patch notes, describing what the user gains, never what was refactored. Acts on approval.
> **No em-dashes.** Nothing this skill writes may contain an em-dash; use a comma, colon, or parentheses instead. Enforced by a repo hook that flags em-dashes in generated `.md`. See `/flagrare:write-docs`.
After every commit, immediately after `/flagrare:staleness-audit`. Cheap to run when there's nothing to do (early-exit ~1 second).
Also invoke on demand whenever the user asks "is a release due?", "let's ship this", "what would v0.2 look like?", or similar.
Before reading inputs, identify how this project tracks and ships releases:
| Signal | Mechanism | |---|---| | `.changeset/` directory present | **Changesets** (`pnpm/npm/yarn changeset`) | | `changelog.d/` directory present | **towncrier** | | `CHANGELOG.md` with structured entries | **Manual CHANGELOG** | | Conventional commits without a changelog file | **Commit-driven**: the git log is the changelog | | `RELEASES.md` or `HISTORY.md` | **Manual release notes** |
Note which mechanism applies, the rest of the procedure adapts accordingly.
Aggregate pending changes by severity:
For Changesets, read the frontmatter level field:
--- "<package-name>": minor ---
Compute the proposed version by applying the bump. Semver pre-1.0 rule: in `0.x.y`, breaking changes ride the `x` (minor) bump, they do not require a major bump.
| State | Decision | |---|---| | No pending changes | **Not due**: done, early exit | | Pending + pre-release / `private` + proposed version still in `0.0.x` range | **Not due yet**: pre-feature; surface the proposal as a heads-up | | Pending + pre-release / `private` + proposed version is `0.1.0+` | **Due if the headline feature is in**: present the proposal, ask the user | | Pending + public package + any `major` | **Due now** | | Pending + public package + ≥ 1 `minor` or ≥ 3 `patch` | **Due**: propose to ship | | Pending + public package + < 3 `patch` only | **Soft due**: propose but flag it could wait |
These are heuristics. A single security-fix patch ships immediately; ten cosmetic patches probably batch.
**This is the part that takes care.** Tooling-generated output inherits the raw change-entry text directly, it is often terse and leans technical. Rewrite it before commit.
The model is **Valve's Dota 2 patch notes** as actually published. The reader is the consumer of the package, not its author. They want: "what can I do now that I couldn't before, and how does my code need to change?"
**Section headers, Title Case.** Examples from Valve: "General Mechanics", "Hero Adjustments", "Bug Fixes". Adapt to your package:
Skip a section entirely if it has nothing in it.
**Per-entry shape, bold anchor + colon + delta.** Valve's canonical pattern:
- **Bloodstone**: spell lifesteal 30% → 20%. - **Anti-Mage**: major rework, new innate applies movement-speed slow.
For a library, the anchor is the symbol the user calls:
- **`Session.run()`**: now returns a frozen `Transcript` instead of a plain object. `turns` and `finalScene` are where they were. - **`RangeError`**: carries `.attempted` and `.available` for typed handling without parsing `.message`.
**Use `→` for numerical or behavioural deltas.** `"Cooldown 7s → 18s"`, `"Coverage threshold 80% → 75%"`.
**Tense, declarative, present, sentence fragments.** "Sessions now expose …" not "Added event emission …".
**What goes in:**
**What stays out:**
✅ Value-focused (what the user reads):
## 0.2.0: YYYY-MM-DD One-line summary of what this release unlocks. ### Public API - **`Client.query()`**: now accepts an optional `timeout` parameter; defaults to 30s (was infinite). Pass `timeout: 0` to
Thirty-three skills that wrap around your development cycle in Claude Code. They turn tickets into ATDD plans, smoke-test features against a running app or service, hunt down bugs with runtime evidence, guard commits against doc drift, run seven-axis code
Repo: Flagrare/agent-skills
Produce an ATDD-first implementation plan in Claude Code's native plan mode, with named design patterns called out where they earn their keep. The skill enters…
Generate a comprehensive, impact-framed brag-doc entry for a chosen time window (day, week, biweek, month, or custom). Pulls authored PRs, reviews given,…
Programmatic bug bashing, ingest a prescribed test plan (Notion, markdown, pasted spec), drive a real running system (browser via Chrome DevTools / Playwright…
Explore the codebase to map conventions, reusable utilities, analogous features, and data flows relevant to a planned change. Returns raw findings (file paths,…
Generate a daily code review report showing stale PRs, items needing your attention, and active work for your team. Use whenever the user asks for a PR report,…
Evidence-first debugging for bugs that are hard to reproduce, intermittent, performance-related, or where previous static-analysis fixes have failed. Declares…