PR #TBD — v0.10.1 Release Command Integration

The Broader Goal at the End of the Previous PR

Before this work, the focus was on establishing clean project packaging (pipx support), the state database migration pipeline (synlynk migrate), and the guided FTUE setup wizard (synlynk init --wizard). However, cutting named releases still required tedious manual ceremonies: manually bumping the VERSION variables, manually collating git commits to draft the CHANGELOG.md, and copy-pasting the blog post structure to draft build stubs.

Strategic Shifts in This PR (if any)

There were no shifts in overall product strategy, but there was a shift in automation priorities. To allow synlynk and its autonomous agents to cut new releases reliably, we introduced a standardized synlynk release command that handles the mechanical steps of version control, changelog generation, and blog stubbing, leaving only the manual verification steps as checkbox checklist items.

What This PR Shipped

This PR implements the synlynk release command directly in the CLI engine synlynk/__init__.py and adds comprehensive verification coverage:

  1. CLI and argparse integration:
    • synlynk release [--dry-run] [--version <version>] [--minor]
    • Handles auto-incrementing patch version (0.10.0 -> 0.10.1) or minor version (0.10.0 -> 0.11.0) when --minor is passed.
  2. Automated Commit Collation:
    • Executes git log analysis from the latest tagged version to HEAD, falling back to the last 20 commits if no tags exist.
    • Categorizes commit entries into Added (feat:), Fixed (fix:), and Changed (chore:, refactor:, etc.) buckets.
  3. Prepend to CHANGELOG.md:
    • Formats and inserts the Keep a Changelog compliant entry directly before the first versioned release heading in CHANGELOG.md.
  4. Blog Post Stub Generation:
    • Parses the template in docs/blog/README.md and generates a customized blog stub at docs/blog/NN-prTBD-v<version>.md prefilled with series metadata, current date, and sequence number.
  5. Interactive Release Checklist:
    • Prints a formatted terminal checklist detailing steps executed and outstanding manual actions (git tag, gh release, roadmap update).
  6. Robust Testing:
    • Added tests/test_release.py covering dry-runs, version bumps, changelog generation, blog stub generation, and checklist printing.
    • Added capability verification test test_add_synlynk_release_command_to_synlynk__ inside tests/test_capability_scoring.py.

Brainstorm Visuals Used

No new brainstorm visuals were created for this P0 release step, as it implements the standard release policy outlined in CLAUDE.md.

What This Achieved on the Path to Autonomy

By automating the release pipeline, agents can now programmatically transition a project from active development (build phase) to a clean release state (ship phase). Autonomous orchestrators can now trigger synlynk release to automatically update files and produce deployment artifacts without human intervention.

Strategic Note: The Goal at the End of This PR

With the release command fully integrated and tested, the next goal is completing the job completion summary (v0.10.0-jobsummary) and infrastructure health dashboard (v0.10.0-status) to round out the daily-driver user experience.