commit — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited commit (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Gather the following before composing the commit message:
git branch --show-currentgit status --short --branchgit diff $(git rev-parse --verify HEAD 2>/dev/null || echo --cached)git log --oneline -10Never commit on `main`. Before staging or committing:
git branch --show-current.main:fix/hr-histogram-list-shape, feat/event-tags).git switch -c <branch>.No exceptions: trivial fixes, doc tweaks, one-liners — all go through a non-main branch.
type(scope): description — Conventional Commits.feat, fix, docs, style, refactor, test, chore, ci, build, perf.tools, client, middleware, models, wellness, events, ci, release, or a specific tool module name.Closes #N) in the commit message — those live in the PR body so GitHub auto-closes correctly on merge.For feat, fix, or anything user-visible, check whether docs need updating in the same commit:
## [Unreleased]. CHANGELOG is manual in this repo; nothing generates it. Group bullets under ### Added / ### Changed / ### Fixed matching the existing style.README.md (header/intro line and any tool tables)CLAUDE.md (project overview line stating tool counts)docs/tools.md if the registered set changedREADME.md under 300 lines. If a new section would push past ~30 lines and isn't core onboarding, extract it to docs/ and link from the README.INTERVALS_ICU_DELETE_MODE), call it out in the PR body — this requires a major version bump per CLAUDE.md.Before any gh pr create, run the full release check:
make can-releaseThis runs ruff (lint + format check), pyright (type check), the pytest suite, and the coverage gate from .github/workflows/test.yml. CI runs the same thing on push — failing it locally means failing CI.
If it fails:
make format auto-fixes most issues.make test/verbose for full output; make test/<keyword> to narrow.make can-release, do not proceed to PR until it's green.Tool-behavior changes (anything in src/intervals_icu_mcp/tools/ that changes inputs, outputs, or side-effects): make can-release proves the unit tests pass against mocked HTTP — it does not prove the tool behaves correctly against the real Intervals.icu API. For non-trivial tool changes, flag this in the PR body and note whether manual verification (via Claude Desktop / MCP Inspector against make run) was performed. Don't claim end-to-end verification you didn't do.
When opening a PR (gh pr create or user asks for one), put a closing keyword in the PR body for every issue this PR resolves. The PR body is the only place GitHub auto-closes from on merge.
Closes #N / Fixes #N / Resolves #N (one per line, in the body)Implements, Addresses, Refs, Related to — use these for issues the PR touches but doesn't fully resolve (e.g. ratchet/running-log issues like #4 that should stay open across multiple PRs)Find the issue # in the user's prompt, branch name, or recent conversation. If unclear, ask — don't guess. After creating, verify with gh pr view <n> --json closingIssuesReferences; if empty, fix with gh pr edit <n> --body-file -.
PR title follows the same conventional-commit format as the commit message. Body uses the existing .github/PULL_REQUEST_TEMPLATE.md structure (Summary / Changes / Checklist / Test plan).
main, propose a branch and switch.git add (specific paths, not -A).git commit -m "type(scope): description" — single line.gh pr create with closing keywords in the body, then verify closingIssuesReferences.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.