Skip to content

Release checklist

How-to Steps for one specific job. Assumes you already know the basics.

[!TIP] For startup instructions and prompts, use:

Using https://github.com/juanklagos/spec-driven-development-template, run a release-readiness review on my project.
My project is: [describe project].
Check this list, tell me what is missing, and propose exact next actions in simple language.

This is the list to run before publishing a version, every time. Run the commands from the repository’s main folder.

There were two other lists — 39 and 46 — written for specific releases that already shipped. They are kept as a historical record and are not followed.

No release without a green gate, the same way there is no code without a spec.

Terminal window
./scripts/check-sdd-gate.sh
  • The gate passes: 0 errors.
  • Every spec touched in this cycle is approved and its plan is consistent.
  • Decisions taken are recorded in bitacora/decisiones/.
Terminal window
npm run typecheck && npm run build && npm test
  • npm run typecheck passes.
  • npm run build passes.
  • npm test passes — unit tests plus the MCP integration test.

The three smoke tests start the server and talk to it; they do not read the code, they run it.

Terminal window
npm run mcp:smoke && npm run mcp:http:smoke && npm run mcp:pack:smoke
  • mcp:smoke passes — stdio transport.
  • mcp:http:smoke passes — Streamable HTTP.
  • mcp:pack:smoke passes — the important one before publishing: it packs the tarball exactly as it would go to npm and runs it. This is the test that caught an exact internal pin making npm download the already published sdd-core instead of the one inside the tarball.
Terminal window
npm run docs:types && npm run docs:links && npm run docs:contrast
  • docs:types leaves no uncommitted changes — each guide’s type header comes from site/src/guides.mjs, so the two cannot disagree.
  • docs:links passes on all three surfaces: docs/, the npm payload and the built site.
  • docs:contrast passes — no colour pair below WCAG AA.
  • No statement about the interface describes something that no longer exists.
  • English and Spanish say the same thing.

The four packages and server.json carry a single number, the repository release (guide 37).

  • packages/sdd-core, packages/sdd-mcp, packages/create-sdd-project and the root package match.
  • packages/sdd-mcp/server.json matches them.
  • The sdd-mcp pin on sdd-core did not fall behind.

You do not check this by eye: release-integrity.test.ts does, inside npm test. When it fails it names the exact file to fix.

  • CHANGELOG.md has this version’s entry, saying what changed and not just the numbers.
  • The git tag, the package versions and the changelog agree.
  • The copy/paste MCP configurations in the docs match this version.

These are from the repository’s initial publication, already done. They stay here because they serve anyone starting their own project from this template:

  • LICENSE, CONTRIBUTING.md and CODE_OF_CONDUCT.md present.
  • Issue and pull request templates in .github/.
  • Repository description and topics set on GitHub.
  • idea/, specs/ and bitacora/ with their templates, and at least one complete sample spec.