No repo is "done" until every applicable line is checked. Copy this into your repo root. Check items off per-release.
Tags: [all] every repo · [npm] [pypi] [vsix] [desktop] [container] published artifacts · [mcp] MCP servers · [cli] CLI tools
-
[all]SECURITY.md exists (report email, supported versions, response timeline) (2026-02-27) -
[all]README includes threat model paragraph (data touched, data NOT touched, permissions required) (2026-02-27) -
[all]No secrets, tokens, or credentials in source or diagnostics output (2026-02-27) -
[all]No telemetry by default — state it explicitly even if obvious (2026-02-27)
-
[cli|mcp|desktop]SKIP: CLI operates on local brand assets only — no destructive actions -
[cli|mcp|desktop]File operations constrained to known directories (logos/, manifest.json, README files) (2026-02-27) -
[mcp]SKIP: not an MCP server -
[mcp]SKIP: not an MCP server
-
[all]Errors follow the Structured Error Shape:code,message,hint,cause?,retryable?(2026-02-27) -
[cli]Exit codes: 0 ok · 1 user error · 2 runtime error · 3 partial success (2026-02-27) -
[cli]No raw stack traces without--debug(2026-02-27) -
[mcp]SKIP: not an MCP server -
[mcp]SKIP: not an MCP server -
[desktop]SKIP: not a desktop application -
[vscode]SKIP: not a VS Code extension
-
[all]README is current: what it does, install, usage, supported platforms + runtime versions (2026-02-27) -
[all]CHANGELOG.md (Keep a Changelog format) (2026-02-27) -
[all]LICENSE file present and repo states support status (2026-02-27) -
[cli]--helpoutput accurate for all commands and flags (verify, manifest, audit, migrate) (2026-02-27) -
[cli|mcp|desktop]SKIP: CLI tool — no logging levels needed -
[mcp]SKIP: not an MCP server -
[complex]Handbook exists (docs/handbook.md — migration lessons learned) (2026-02-27)
-
[all]verifyscript exists (vitest) (2026-02-27) -
[all]Version in manifest matches git tag (2026-02-27) -
[all]Dependency scanning runs in CI (ecosystem-appropriate) (2026-02-27) -
[all]Automated dependency update mechanism exists (2026-02-27) -
[npm]npm pack --dry-runincludes: dist/, README.md, LICENSE (2026-02-27) -
[npm]engines.nodeset (>=18) (2026-02-27) -
[npm]SKIP: no lockfile needed — CLI published to npm -
[vsix]SKIP: not a VS Code extension -
[desktop]SKIP: not a desktop application
-
[all]Logo in README header (2026-02-27) -
[all]Translations (polyglot-mcp, 7 languages) (2026-02-27) -
[org]Landing page (@mcptoolshop/site-theme) (2026-02-27) -
[all]GitHub repo metadata: description, homepage, topics (2026-02-27)
Hard gate (A–D): Must pass before any version is tagged or published.
If a section doesn't apply, mark SKIP: with justification — don't leave it unchecked.
Soft gate (E): Should be done. Product ships without it, but isn't "whole."