Files
gh-awudevelop-claude-plugin…/commands/init.md
2025-11-29 17:59:24 +08:00

4.7 KiB

You are managing a deployment configuration system. The user wants to initialize deployment settings for their project.

Task: Initialize Deployment Configuration

This command sets up deployment configuration for the project. This is a one-time setup.

Step 1: Check for Existing Configuration

Run the CLI to check if configuration already exists:

node deployment/cli/deploy-cli.js config 2>&1

If the output contains "Configuration not found", proceed to Step 2.

If configuration exists, show this error and STOP:

❌ Error: Deployment configuration already exists
📁 Location: .claude/deployment.config.json

💡 To view current config: Run node deployment/cli/deploy-cli.js config
💡 To modify: Edit .claude/deployment.config.json directly

Step 2: Gather Configuration Details

Ask the user the following questions using AskUserQuestion tool:

{
  "questions": [
    {
      "question": "What is your main development branch?",
      "header": "Main Branch",
      "multiSelect": false,
      "options": [
        {"label": "main", "description": "Default branch named 'main'"},
        {"label": "master", "description": "Legacy default branch 'master'"},
        {"label": "develop", "description": "Use 'develop' as main branch"}
      ]
    },
    {
      "question": "What command should run to build your project?",
      "header": "Build Command",
      "multiSelect": false,
      "options": [
        {"label": "npm run build", "description": "Node.js project with npm"},
        {"label": "yarn build", "description": "Node.js project with yarn"},
        {"label": "pnpm build", "description": "Node.js project with pnpm"},
        {"label": "make build", "description": "Project with Makefile"}
      ]
    }
  ]
}

Store the user's answers for Step 3.

Step 3: Create Configuration

Use the CLI to initialize the configuration with user's choices:

node deployment/cli/deploy-cli.js init --main-branch {user_main_branch} --build-command "{user_build_command}"

Expected output: JSON with success: true

If the command fails, show error and STOP:

❌ Error: Failed to initialize configuration
{error_message}

💡 Check that .claude/ directory is writable

Step 4: Verify Configuration Created

Read the created configuration to verify:

node deployment/cli/deploy-cli.js config

Parse the JSON output and extract the environments.

Step 5: Display Configuration Summary

Show the user what was configured:

✓ Deployment configuration initialized
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📁 Location: .claude/deployment.config.json

📋 Configuration:
   Main Branch: {main_branch}
   Build Command: {build_command}

🌍 Environments configured:
   • dev (deploy_dev) ← {main_branch}
   • uat (deploy_uat) ← deploy_dev
   • prod (deploy_prod) ← deploy_uat

🔒 Safety Features:
   ✓ Uncommitted files check
   ✓ Branch validation
   ✓ Clean build requirement

💡 Next Steps:
   1. Review config: Edit .claude/deployment.config.json if needed
   2. Create deployment branches (see below)
   3. Deploy to dev: /deploy dev

Step 6: Offer to Create Deployment Branches

Ask the user:

The following deployment branches need to exist in your repository:
  - deploy_dev
  - deploy_uat
  - deploy_prod

Would you like me to create these branches now?

Use AskUserQuestion:

{
  "questions": [{
    "question": "Create deployment branches?",
    "header": "Setup",
    "multiSelect": false,
    "options": [
      {"label": "Yes", "description": "Create all deployment branches from main"},
      {"label": "No", "description": "I'll create them manually later"}
    ]
  }]
}

If user selects "Yes":

git checkout {main_branch} && git pull origin {main_branch} && git checkout -b deploy_dev && git push -u origin deploy_dev && git checkout -b deploy_uat && git push -u origin deploy_uat && git checkout -b deploy_prod && git push -u origin deploy_prod && git checkout {main_branch}

Show success message:

✓ Deployment branches created successfully
  • deploy_dev
  • deploy_uat
  • deploy_prod

All branches have been pushed to origin.
You're ready to deploy!

If user selects "No":

💡 Remember to create these branches manually:
   git checkout {main_branch}
   git checkout -b deploy_dev && git push -u origin deploy_dev
   git checkout -b deploy_uat && git push -u origin deploy_uat
   git checkout -b deploy_prod && git push -u origin deploy_prod

IMPORTANT:

  • Use CLI for all config operations (plan mode support)
  • Validate user input before proceeding
  • Provide clear next steps
  • Make it interactive and user-friendly