Skip to content

Latest commit

 

History

History
250 lines (202 loc) · 7.53 KB

File metadata and controls

250 lines (202 loc) · 7.53 KB

SPDX-License-Identifier: CC-BY-SA-4.0 SPDX-FileCopyrightText: 2025-2026 Jonathan D.A. Jewell (hyperpolymath) -->

echidnabot Release Checklist

Procedure for cutting a release of echidnabot, plus standing checklist of items that should already be in place before any release ships.

Current target: v0.2.0 (production hardening — observability, deployment automation; see ROADMAP.adoc "Remaining Work").

Last reviewed: 2026-06-01

Repository Setup

Done

  • README.adoc - SEO-optimized, project-focused
  • BRANDING.md - Visual identity and LLM art prompts
  • Justfile - RSR canonical task runner
  • Nickel configuration (config/echidnabot.ncl)
  • MCP configuration (.claude/settings/mcp.json)
  • STATE.a2ml - Project checkpoint
  • META.a2ml - Dublin Core metadata
  • ECOSYSTEM.a2ml - Dependency graph
  • GitHub topics file (.github/topics.txt)

To Apply Manually

  • Apply GitHub Topics - Go to repo Settings → About → Topics and add:
    theorem-prover, formal-verification, proof-assistant, ci-cd, rust, coq,
    lean4, agda, isabelle, z3, smt, formal-methods, type-theory, github-app,
    automation, mathematics, logic, webhooks, hacktoberfest
    
  • Update GitHub Description - Set to:

    Proof-aware CI bot that verifies mathematical theorems on every push. Coq, Lean, Agda, Isabelle, Z3 support. Rust + Tokio + GraphQL.

Wiki ✅

Done

  • wiki/Home.md
  • wiki/Getting-Started.md
  • wiki/Architecture.md
  • wiki/Supported-Provers.md
  • wiki/FAQ.md

To Add

  • wiki/Configuration-Reference.md - All config options
  • wiki/API-Reference.md - GraphQL schema documentation
  • wiki/Platform-Integration.md - GitHub/GitLab/Bitbucket setup
  • wiki/Troubleshooting.md - Common issues
  • wiki/Changelog.md - Version history
  • wiki/Roadmap.md - Future plans

To Do Manually

  • Enable Wiki in GitHub repo settings
  • Push wiki/ to the wiki repo:
    git clone https://github.com/hyperpolymath/echidnabot.wiki.git
    cp wiki/*.md echidnabot.wiki/
    cd echidnabot.wiki && git add . && git commit -m "Initial wiki" && git push

CI/CD ✅

Done

  • .github/workflows/quality.yml - Rust build/test/lint
  • .github/workflows/docs.yml - casket-ssg documentation
  • .github/workflows/echidnabot.yml - Self-referential proof checking
  • .github/workflows/codeql.yml - Security scanning
  • .github/workflows/scorecard.yml - OSSF Scorecard

To Add/Verify

  • Ensure all workflows pass on main branch
  • Add release workflow for crates.io publishing
  • Add container publishing to ghcr.io

Documentation

Done

  • README.adoc + README.md (Markdown summary linking into .adoc)
  • EXPLAINME.adoc — receipts behind README claims
  • ROADMAP.adoc — phases + completion
  • CONTRIBUTING.md
  • SECURITY.md
  • CODE_OF_CONDUCT.md
  • MAINTAINERS.adoc
  • CHANGELOG.md (auto-generated from conventional commits)
  • CITATION.cff + codemeta.json
  • ABI-FFI-README.md — Zig FFI + Idris2 ABI boundary
  • 0-AI-MANIFEST.a2ml + .claude/CLAUDE.md — AI assistant pointers
  • RSR_OUTLINE.adoc + RSR_COMPLIANCE.adoc
  • docs/content/{index,getting-started,configuration,api}.md (casket-ssg)

To Add

  • docs/DEPLOYMENT.md — Production deployment guide (k8s, helm, docker-compose)
  • Man pages (docs/man/echidnabot.1) via Mustfile recipe

Branding Assets 📝

To Create (using LLM prompts in BRANDING.md)

  • Avatar (512x512) - Geometric echidna logo
  • Banner (1280x640) - GitHub social preview
  • Favicon (32x32, 16x16) - For docs site

To Apply

  • Upload avatar to GitHub org/repo
  • Set social preview image in repo settings
  • Add favicon to docs site

Code Quality 🔄

To Complete

  • Run cargo fmt on all files
  • Run cargo clippy and fix all warnings
  • Achieve 50%+ test coverage
  • Add integration tests
  • Run cargo audit and fix vulnerabilities
  • Run cargo deny check for license compliance

Core Functionality

Phase 1 (MVP) — landed in v0.1.0

  • GitHub webhook handler with signature verification (HMAC-SHA256)
  • GitLab + Bitbucket webhook handlers
  • Proof file detection (by extension across 7 file types)
  • ECHIDNA Core dispatcher client (REST + GraphQL)
  • GitHub Check Run reporter
  • SQLite + PostgreSQL persistence
  • CLI: serve, register, check, status, init-db

Phase 2 (Multi-Prover) — landed in v0.1.0

  • Auto-detect prover from file extension
  • 12-prover surface (Coq, Lean 4, Agda, Isabelle, Z3, CVC5, Metamath, HOL Light, Mizar, PVS, ACL2, HOL4)
  • ProverKind slug newtype — open-ended for 113 upstream provers
  • Parallel proof checking (semaphore-bounded)
  • Aggregated results

Phase 3 (Hardening) — see ROADMAP.adoc

  • Container isolation (podman + bwrap, fail-safe)
  • Retry + circuit breaker (5-failures-then-open, 5-min reset)
  • Trust bridge (confidence levels, solver integrity, axiom tracking)
  • Per-IP webhook rate limiting
  • Prometheus /metrics endpoint
  • Double-loop feedback (tactic-outcome recording + corpus delta)
  • OpenTelemetry distributed tracing
  • Structured JSON logging end-to-end
  • Graceful shutdown (finish in-progress jobs before exit)

Security ✅

Done

  • SECURITY.md policy
  • .well-known/security.txt
  • HMAC-SHA256 webhook verification (code exists)
  • No hardcoded secrets
  • SHA-pinned GitHub Actions

To Verify

  • Run TruffleHog scan: no secrets in history
  • Run CodeQL: no critical findings
  • OSSF Scorecard: 7+ score

Packaging 🔄

Done

  • Cargo.toml metadata complete
  • guix.scm package definition
  • Containerfile for Docker/Podman
  • Justfile for task automation

To Add

  • cargo-deb configuration
  • cargo-rpm configuration
  • Homebrew formula (optional)

(Nix flake intentionally NOT planned: nix is deprecated estate-wide as of 2026-06-01.)

Release Process

Pre-Release

  1. All tests passing
  2. Changelog updated
  3. Version bumped in Cargo.toml
  4. STATE.a2ml updated
  5. Documentation reviewed

Release

  1. Create git tag: git tag -s v0.1.0 -m "Release 0.1.0"
  2. Push tag: git push origin v0.1.0
  3. GitHub release created with notes
  4. Publish to crates.io: cargo publish
  5. Container pushed to ghcr.io
  6. Announce on relevant channels

Post-Release

  1. Verify crates.io page
  2. Verify container works
  3. Update roadmap
  4. Start next milestone

External Integration

GitHub

  • Enable GitHub Discussions
  • Set up issue templates (if not present)
  • Configure branch protection rules
  • Enable Dependabot

Marketing

  • Post to Hacker News (when ready)
  • Post to r/rust, r/programming
  • Post to Coq, Lean, Agda communities
  • Add to Awesome lists (awesome-rust, etc.)

Metrics

Success Criteria for v1.0

  • 100+ GitHub stars
  • 5+ external contributors
  • 3+ production users
  • 80%+ test coverage
  • OSSF Scorecard 8+

Priority Order

  1. Immediate (before merge)

    • Apply GitHub topics manually
    • Update GitHub description
    • Enable wiki and push content
  2. This Week

    • Create branding assets
    • Add missing wiki pages
    • Complete Phase 1 functionality
  3. This Month

    • Achieve MVP release (v0.2)
    • 50% test coverage
  4. Next Quarter

    • v1.0 production release
    • Multi-platform support
    • ML tactic suggestions