Skip to content

feat: update Bootstrap to include release automation and advanced GitHub Actions #157

@jeremyeder

Description

@jeremyeder

Description

Update the bootstrap command to include the complete release automation infrastructure and advanced GitHub Actions workflows that are currently implemented in the AgentReady repository and the ambient-code/platform repository.

Current State

Bootstrap currently generates:

  • Basic test workflows (language-specific)
  • Security scanning (CodeQL)
  • AgentReady assessment workflow
  • Pre-commit hooks
  • Issue/PR templates
  • Dependabot configuration

Missing Infrastructure

Release Automation (from AgentReady repo)

1. Semantic Release Workflow (.github/workflows/release.yml)

  • Automated version bumping based on conventional commits
  • CHANGELOG.md generation
  • PyPI publishing with OIDC (token-less)
  • Multi-platform Docker image builds (amd64/arm64)
  • GitHub Container Registry publishing
  • Documentation deployment to GitHub Pages
  • Post-release self-assessment
  • Release summary generation

Configuration Files:

  • .releaserc.json - Semantic release configuration
  • scripts/sync-claude-md.sh - Version synchronization
  • scripts/update-release-docs.sh - Documentation updates
  • Dockerfile - Container definition

2. Documentation Deployment (.github/workflows/update-docs.yml)

  • Manual trigger for docs updates
  • GitHub Pages deployment

3. Leaderboard Updates (.github/workflows/update-leaderboard.yml)

  • Automated leaderboard refresh
  • Community submission validation

Advanced CI/CD (from ambient-code/platform repo)

1. PR Review & Auto-Fix

  • Automated code review on PRs
  • Security vulnerability scanning
  • Auto-fix for critical issues
  • PR comment integration

2. Continuous Learning

  • LLM-powered skill extraction
  • Pattern learning from assessments
  • Automated documentation updates

3. Weekly Automation

  • Research report updates
  • Dependency updates
  • Security audits

4. Claude Code Integration

  • Automated Claude Code actions
  • Issue triage and labeling
  • PR description enhancement

Implementation Plan

Phase 1: Language Detection & Templating

Update Bootstrap to:

  1. Detect repository language (Python, JavaScript/TypeScript, Go, etc.)
  2. Detect package manager (pip/uv, npm/yarn, go mod)
  3. Detect build system (setuptools, webpack, make)
  4. Template workflows based on language

Phase 2: Release Automation Templates

Create language-specific templates for:

Python:

  • PyPI publishing with OIDC
  • Test PyPI validation
  • Multi-platform Docker builds
  • Version sync scripts (pyproject.toml, init.py, docs)

JavaScript/TypeScript:

  • npm publishing with provenance
  • Docker builds (Node.js)
  • Version sync (package.json, package-lock.json)

Go:

  • GitHub Releases with goreleaser
  • Docker builds (multi-stage)
  • Version tagging

Phase 3: Semantic Release Configuration

Generate .releaserc.json with:

  • Language-specific version files
  • Custom prepare commands
  • Asset management
  • Changelog generation
  • Git commit configuration

Phase 4: Container Infrastructure

Generate Dockerfile with:

  • Language-specific base images
  • Multi-stage builds
  • Security best practices
  • Platform-specific optimizations

Phase 5: Documentation Automation

Generate:

  • scripts/sync-docs.sh - Version synchronization
  • GitHub Pages deployment workflow
  • Documentation update automation

Phase 6: Advanced Workflows

Optional workflows (user can enable/disable):

  • Automated PR review
  • Continuous learning loop
  • Weekly maintenance tasks
  • Claude Code integration
  • Leaderboard management

Bootstrap Command Updates

# Current
agentready bootstrap .

# Enhanced (with options)
agentready bootstrap . \
  --release-automation \
  --docker \
  --docs-deployment \
  --advanced-ci

# Interactive mode
agentready bootstrap . --interactive
# Prompts:
#   Enable release automation? (Y/n)
#   Enable Docker publishing? (Y/n)
#   Enable documentation deployment? (Y/n)
#   Enable advanced CI workflows? (y/N)

Acceptance Criteria

Must Have

  • Semantic release workflow template (language-specific)
  • .releaserc.json generation
  • Version sync scripts
  • PyPI/npm/GitHub release publishing
  • Docker image builds (if Dockerfile exists)
  • Documentation deployment workflow
  • Post-release automation (self-assessment, summaries)

Should Have

  • Interactive mode with prompts
  • CLI flags for selective generation
  • Multi-platform Docker support
  • OIDC configuration for PyPI/npm
  • GitHub Pages setup detection

Nice to Have

  • Automated PR review workflow
  • Continuous learning integration
  • Claude Code action templates
  • Leaderboard setup (if using AgentReady)

Files to Generate/Update

Always Generated

.github/workflows/release.yml
.releaserc.json
scripts/sync-version.sh  # Language-specific

Conditionally Generated

Dockerfile  # If --docker flag
.github/workflows/update-docs.yml  # If docs/ exists
.github/workflows/pr-review.yml  # If --advanced-ci
.github/workflows/continuous-learning.yml  # If --advanced-ci
scripts/update-docs.sh  # If docs/ exists

Technical Considerations

Language Detection

Use existing LanguageDetector service:

from agentready.services.language_detector import LanguageDetector
detector = LanguageDetector(repo_path)
language = detector.detect_language()

Template Variables

  • {{ language }} - Primary language (python, javascript, go)
  • {{ package_manager }} - pip, npm, yarn, go
  • {{ version_file }} - pyproject.toml, package.json, version.go
  • {{ test_command }} - pytest, npm test, go test
  • {{ build_command }} - python -m build, npm run build, go build
  • {{ registry }} - pypi.org, npmjs.com, ghcr.io

Backwards Compatibility

  • Don't break existing Bootstrap functionality
  • Make advanced features opt-in
  • Provide migration path for existing repos

Examples

Python Project After Bootstrap

agentready bootstrap . --release-automation --docker

Generated files:

.github/workflows/release.yml  # PyPI + Docker + Docs
.releaserc.json  # Python-specific config
scripts/sync-version.sh  # Updates pyproject.toml, __init__.py, docs
Dockerfile  # Multi-stage Python build

Result:

  • feat: commits trigger minor releases
  • fix: commits trigger patch releases
  • Automatic PyPI publishing (Test + Production)
  • Docker images on ghcr.io (latest + vX.Y.Z tags)
  • Self-assessment runs after each release
  • Documentation auto-deploys to GitHub Pages

JavaScript Project After Bootstrap

agentready bootstrap . --release-automation

Generated files:

.github/workflows/release.yml  # npm publishing
.releaserc.json  # JavaScript-specific config
scripts/sync-version.sh  # Updates package.json, package-lock.json

Result:

  • Semantic versioning based on commits
  • npm publishing with provenance attestations
  • GitHub releases with changelog
  • Version sync across package files

References

AgentReady Implementation:

  • Release workflow: .github/workflows/release.yml
  • Semantic config: .releaserc.json
  • Sync scripts: scripts/sync-claude-md.sh, scripts/update-release-docs.sh
  • Dockerfile: Dockerfile

Platform Repository (https://github.com/ambient-code/platform):

  • PR review workflow
  • Continuous learning
  • Advanced CI/CD patterns
  • Claude Code integration

Documentation:

Priority

P1 (High) - This is core functionality that makes repositories truly agent-ready by automating the release process.

Labels

enhancement, bootstrap, release-automation, ci/cd

Estimated Complexity

Large - Requires:

  • Multi-language template system
  • Integration with existing Bootstrap command
  • Testing across Python, JS, and Go projects
  • Documentation and examples
  • Backwards compatibility testing

Estimated effort: 2-3 weeks for complete implementation


Related Issues: #156 (Codecov integration - lower priority than this)

Blockers: None - can start immediately

Dependencies:

  • Existing Bootstrap command
  • LanguageDetector service
  • Template engine (Jinja2)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions