Skip to content

feat: add Claude Code one-command deploy blocks to README #144

@chiragpatil-lp

Description

@chiragpatil-lp

Proposal

Add two "Deploy with Claude Code" prompt blocks to README.md — one for dev-only mode and one for production mode. A user opens Claude Code in their project directory, pastes the block, and Claude handles the entire deployment end-to-end guided by CLAUDE.md / AGENTS.md context.

Status

Caution

These prompts are unverified drafts. They must be end-to-end tested before merging to main. Do not merge until at least one full deployment walkthrough confirms each prompt works correctly.

Proposed README section

Add a new section before the existing ## Getting Started section:


## Deploy with Claude Code

Note

Prerequisites: Claude Code installed, GCP project(s) created with billing enabled, GitHub repository created from this template, gcloud / gh / terraform / uv CLIs available.

Development mode (single GCP project, deploys to dev on every merge):

Open Claude Code in your project directory and paste:

Deploy agent-foundation in dev-only mode. Follow docs/getting-started.md exactly:

1. Check I am authenticated — run `gcloud auth application-default login` and `gh auth login` if needed.
2. Pre-bootstrap: copy terraform/bootstrap/pre/terraform.tfvars.example → terraform/bootstrap/pre/terraform.tfvars. Ask me for agent_name and GCP project ID, fill in the values, then run `terraform -chdir=terraform/bootstrap/pre init` and `apply`.
3. Bootstrap dev: copy terraform/bootstrap/dev/terraform.tfvars.example → terraform/bootstrap/dev/terraform.tfvars. Ask me for the required variables (project, region, google_cloud_location, agent_name, repository_owner, repository_name), populate terraform_state_bucket from the pre-bootstrap output, then run terraform init (with -backend-config bucket arg) and apply.
4. Deploy: create a feature branch (feat/initial-setup), commit any pending changes, push, and open a PR with `gh pr create`. Wait for the Terraform plan to appear in PR comments, show it to me, and ask me to confirm before merging.
5. After merge: monitor with `gh run list --workflow=ci-cd.yml` until the run completes. Show the job summary outputs.
6. Configure local environment: copy .env.example → .env, populate with the Cloud Run URL, BASTION_INSTANCE, BASTION_ZONE, SESSION_SERVICE_URI, MEMORY_SERVICE_URI, and ARTIFACT_SERVICE_URI from the job summary. Ask whether to start with `docker compose up --build --watch` or `uv run server`.

Production mode (three GCP projects, dev+stage on merge, prod on tag with approval gate):

Open Claude Code in your project directory and paste:

Deploy agent-foundation in production mode (dev → stage → prod). Follow docs/getting-started.md and docs/infrastructure.md:

1. Check I am authenticated — run `gcloud auth application-default login` and `gh auth login` if needed.
2. Pre-bootstrap: copy terraform/bootstrap/pre/terraform.tfvars.example → terraform/bootstrap/pre/terraform.tfvars. Ask me for agent_name and all three GCP project IDs (dev, stage, prod). Run `terraform -chdir=terraform/bootstrap/pre init` and `apply` to create state buckets for all environments.
3. Bootstrap dev, stage, and prod sequentially: for each environment copy terraform.tfvars.example → terraform.tfvars, ask for the required variables, populate terraform_state_bucket from pre-bootstrap output, then run terraform init (with -backend-config) and apply.
4. Enable production mode: set `production_mode: true` in `.github/workflows/ci-cd.yml` config job.
5. Remind me to configure protection rules manually: branch protection on main (PR + 1 approval, required status checks, no force push), environment protection on prod-apply (required reviewers). Show the exact GitHub Settings paths for each.
6. Deploy: create a feature branch (feat/initial-setup), commit changes, push, open a PR with `gh pr create`. Wait for the Terraform plan comment, show it to me, and ask me to confirm before merging.
7. After merge: monitor with `gh run list --workflow=ci-cd.yml` until dev and stage deployments complete. Show job summary for each.
8. Promote to prod: create and push a semver git tag (e.g. v0.1.0). Walk me through approving the prod-apply environment gate in GitHub Actions. Monitor until prod deployment completes.
9. Configure local environment: copy .env.example → .env and populate with values from the dev deployment job summary.

Checklist before merging

  • Verified dev-only mode prompt end-to-end on a fresh repo
  • Verified production mode prompt end-to-end on a fresh repo
  • Confirmed wording handles edge cases (already authenticated, existing tfvars, etc.)
  • README section placement reviewed
  • Linked from docs/getting-started.md prerequisites

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions