Skip to content

Extend init command into an interactive QuickStart wizard#89

Draft
Copilot wants to merge 3 commits intomainfrom
copilot/extend-init-command-interactive
Draft

Extend init command into an interactive QuickStart wizard#89
Copilot wants to merge 3 commits intomainfrom
copilot/extend-init-command-interactive

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Feb 24, 2026

deploy4j init was a fire-and-forget command that created stub files with no project-specific configuration. This extends it into a guided interactive setup that collects server details, secret names, and AI agent preferences upfront.

Changes

Core (deploy4j-core)

  • InitConfig (new) — value object capturing hostname, extraSecretNames, and agentType (COPILOT | CLAUDE | NONE)
  • Initializer — new init(InitConfig) overload; old init(boolean) delegates to it with defaults
    • Substitutes hostname into deploy.yml template (- localhost- <hostname>)
    • Appends extra secret names to the generated secrets file
    • Creates/appends agent skills to .github/copilot-instructions.md or CLAUDE.md with a duplication guard (AGENT_SKILLS_MARKER)
  • Templates — added copilot-skills.md and claude-skills.md with deploy4j deployment reference content

CLI (deploy4j-cli)

  • InitCliCommand — replaces silent execution with a 3-step interactive flow:
    1. Server IP/hostname (defaults to localhost)
    2. Secret env var names (comma-separated, optional)
    3. AI agent skills — auto-detects Copilot (.github/copilot-instructions.md) or Claude (CLAUDE.md) and prompts to append skills
👋 Welcome to deploy4j init!
   Let's get your project set up for deployment.

? Server IP address or hostname [localhost]: 192.168.1.100

? Secret environment variable names (comma-separated, press Enter to skip): DB_PASSWORD,API_KEY

? Detected GitHub Copilot — add deploy4j skills? [Y/n]: Y

📁 Setting up files...

✅ Done! Next steps:
   1. Review and edit config/deploy.yml
   2. Fill in your secrets in .deploy4j/secrets
   3. Run 'deploy4j setup <version>' for first-time deployment

Tests & Docs

  • New InitializerTest cases cover: hostname substitution, extra secrets appended, Copilot/Claude file creation, no-duplication on repeated runs, null-hostname defaulting
  • docs/_commands/init.md updated with the interactive Q&A and a files-created table
  • README.md QuickStart updated to call deploy4j init immediately after install
Original prompt

I'd like the init command to be extended.

I want an interactive process to do the following.

1 init the deploy.yml
2 init the secrets file
3 init an ai agent skills file

For each, we should check if they already exist otherwise create if confirmed by the user.

Ask for QuickStart details

1 up address or hostname
2 any upfront secrets environment var names
3 depending on what agent ref we can find Claude/copilot confirm with user and put skill there

Use a friendly helpful tone for questions.

Update the unit command documentation with the expected questions. Potentially update any QuickStart quite to use the init command after install


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 2 commits February 24, 2026 13:19
…lls setup"

Co-authored-by: teggr <837787+teggr@users.noreply.github.com>
… Copilot detection, extract AGENT_SKILLS_MARKER constant

Co-authored-by: teggr <837787+teggr@users.noreply.github.com>
Copilot AI changed the title [WIP] Extend init command for interactive setup process Extend init command into an interactive QuickStart wizard Feb 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants