Skip to content

Phase 2: universal installer (Claude Code · Cursor · Kiro · VS Code) - #26

Merged
olehsvyrydov merged 7 commits into
mainfrom
feat/universal-installer
Jun 5, 2026
Merged

Phase 2: universal installer (Claude Code · Cursor · Kiro · VS Code)#26
olehsvyrydov merged 7 commits into
mainfrom
feat/universal-installer

Conversation

@olehsvyrydov

Copy link
Copy Markdown
Owner

What

Rewrites install.sh into a vendor-neutral, multi-editor installer — the core of the 'works everywhere, no lock-in' promise. Pick your editor(s); it emits the right config for each:

Editor Emitted
Claude Code .claude/skills + .claude/commands + CLAUDE.md
Cursor .cursor/rules/ai-dev-team.mdc + AGENTS.md
Kiro .kiro/steering/ai-dev-team.md + AGENTS.md
VS Code (Copilot) .github/copilot-instructions.md + AGENTS.md

Each config is a short pointer to the installed content (workflow-engine first, then the roster + disambiguation + personas).

Flags

--editors=claude,cursor,kiro,vscode|all · --scope=project|user · --preset=solo|small-team|regulated · --dry-run · --yes (CI) · --link (dev) · --uninstall · --help. The chosen preset is written into workflow.yaml.

Notes

  • The previous Claude-only advanced setup (venvs, RAG, Atlassian, hooks) is preserved as scripts/setup-claude-backends.sh and offered for Claude installs.
  • Idempotent; --dry-run prints every action and changes nothing; --uninstall reverses it.
  • README Quick Start rewritten for the universal flow; .gitignore guards self-install artifacts.

Verification

  • bash -n install.sh clean.
  • Tested: --help, --dry-run --editors=all, and a real --editors=all --preset=small-team --link install in a temp project — all four editor configs + AGENTS.md/CLAUDE.md + content + .mcp.json.example created correctly; --uninstall reverses it.

Rewrite install.sh as a vendor-neutral installer that wires up any of the four
editors and emits the right config for each (no lock-in):
- Claude Code: .claude/skills + .claude/commands + CLAUDE.md
- Cursor: .cursor/rules/ai-dev-team.mdc + AGENTS.md
- Kiro: .kiro/steering/ai-dev-team.md + AGENTS.md
- VS Code (Copilot): .github/copilot-instructions.md + AGENTS.md

Flags: --editors=, --scope=project|user, --preset=solo|small-team|regulated,
--dry-run, --yes, --link, --uninstall. Applies the chosen preset to workflow.yaml.
Preserves the previous Claude advanced-backend setup as
scripts/setup-claude-backends.sh. README Quick Start updated; .gitignore guards
self-install artifacts (.claude/, .cursor/, .kiro/, .mcp.json).
Copilot AI review requested due to automatic review settings June 5, 2026 18:21

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a vendor-neutral “universal installer” that can wire up AI Dev Team instructions for multiple editors (Claude Code, Cursor, Kiro, VS Code/Copilot), updates the README quick start accordingly, and adds ignore rules for generated install artifacts. It also adds a preserved Claude-only “advanced backends” setup script.

Changes:

  • Rewrites install.sh into a multi-editor installer supporting --editors, --scope, --preset, --dry-run, --link, and --uninstall.
  • Adds scripts/setup-claude-backends.sh to preserve the legacy Claude advanced setup path (venvs/RAG/MCP integrations).
  • Updates README.md and .gitignore for the universal installation flow and generated artifacts.

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated 8 comments.

File Description
install.sh New universal installer logic, editor config emitters, preset selection, and uninstall support.
scripts/setup-claude-backends.sh Preserved legacy Claude advanced setup/installer script, now located under scripts/.
README.md Quick Start rewritten to describe the universal installer and editor outputs.
.gitignore Ignores local install artifacts like .claude/, .cursor/, .kiro/, .mcp.json.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread scripts/setup-claude-backends.sh Outdated
Comment thread scripts/setup-claude-backends.sh Outdated
Comment thread scripts/setup-claude-backends.sh
Comment thread scripts/setup-claude-backends.sh
Comment thread scripts/setup-claude-backends.sh
Comment thread scripts/setup-claude-backends.sh
Comment thread install.sh Outdated
Comment thread install.sh
…er link/uninstall

- scripts/setup-claude-backends.sh: SCRIPT_DIR resolves to the repo root (the
  script lives in scripts/), fixing the claude/, multi-llm/, rag/ paths used by
  prerequisites / venvs / rag / multi-llm / hooks. Updated header usage examples.
- install.sh: --link now COPIES workflow/ (symlinks the rest) so --preset applies
  per-project without mutating the source repo; --uninstall no longer prompts for
  editors (it removes all known configs regardless).

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated 8 comments.

Comment thread install.sh Outdated
Comment thread install.sh Outdated
Comment thread install.sh
Comment thread install.sh Outdated
Comment thread install.sh Outdated
Comment thread scripts/setup-claude-backends.sh
Comment thread scripts/setup-claude-backends.sh
Comment thread install.sh
- run() executes args directly ("$@"), no eval — safe with quotes/spaces in paths.
- Validate --editors; fail fast on unknown names.
- Confirm before overwriting existing content unless --yes (guards ~/.claude).
- Preset edit replaces only the value, preserving the inline comment in workflow.yaml.
- Emit AGENTS.md whenever Cursor/Kiro/VS Code is selected, even in user scope.
- Uninstall removes project-level editor configs regardless of scope, and removes
  AGENTS.md/CLAUDE.md only if they carry our header.
- scripts/setup-claude-backends.sh: silent API-key prompts (read -rsp).

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated 4 comments.

Comment thread install.sh Outdated
Comment thread install.sh
Comment thread scripts/setup-claude-backends.sh
Comment thread scripts/setup-claude-backends.sh Outdated
- show_help prints only the leading comment block (no code lines leaked).
- write_instructions won't clobber a pre-existing AGENTS.md/CLAUDE.md that isn't
  AI Dev Team-managed (prompts unless --yes; skips on no).
- scripts/setup-claude-backends.sh: 'setup_venvs || true' so a venv skip doesn't
  abort under set -e; fix docs URL to olehsvyrydov/AI-development-team.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated 5 comments.

Comment thread scripts/setup-claude-backends.sh Outdated
Comment thread install.sh Outdated
Comment thread install.sh Outdated
Comment thread install.sh Outdated
Comment thread install.sh Outdated
…rride

The active preset resolves from .aidevteam/workflow.yaml (project) or
~/.aidevteam/workflow.yaml (user) before the shipped default, so the installer now
writes the chosen preset there (a copy of workflow.yaml) instead of editing the
default — which also lets --link symlink all content. Instruction text + the final
hint point to the override; --uninstall removes it (and the .aidevteam dir if empty).
Also: emit_mcp drops the unused 'ref' + fixes its comment; backends find uses
NUL-delimited -print0 / read -d '' for paths with spaces.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated 5 comments.

Comment thread install.sh
Comment thread install.sh
Comment thread README.md Outdated
Comment thread scripts/setup-claude-backends.sh Outdated
Comment thread scripts/setup-claude-backends.sh Outdated
…failure handling

- install.sh: fail fast with a clear message if the framework content
  (SOURCE_DIR/claude/{skills,commands,templates,workflow}) is missing.
- emit_vscode uses write_instructions so it won't clobber a pre-existing
  .github/copilot-instructions.md that isn't AI Dev Team-managed.
- README: add --yes to the non-interactive example so it truly doesn't prompt.
- scripts/setup-claude-backends.sh: pip install '|| return 1' so a venv failure
  returns to the caller (which tolerates it) instead of aborting under set -e.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated 4 comments.

Comment thread install.sh Outdated
Comment thread install.sh Outdated
Comment thread scripts/setup-claude-backends.sh Outdated
Comment thread scripts/setup-claude-backends.sh
…+ backends polish

- install.sh: --uninstall confirms before removing anything (unless --yes/--dry-run),
  and removes .github/copilot-instructions.md only if it carries our header (so it
  won't delete an unrelated Copilot file the install previously skipped).
- scripts/setup-claude-backends.sh: guard the Qdrant health check on curl being
  present (don't hang/confuse when curl is missing); fix the startup banner to
  'AI Dev Team — Backend Setup'.
@olehsvyrydov
olehsvyrydov requested a review from Copilot June 5, 2026 20:00
@olehsvyrydov
olehsvyrydov merged commit c07945c into main Jun 5, 2026
1 check passed
@olehsvyrydov
olehsvyrydov deleted the feat/universal-installer branch June 5, 2026 20:02

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated 3 comments.

Comment thread install.sh
Comment on lines +106 to +112
info "Installing framework content → $dest"
run mkdir -p "$dest"
for d in skills commands templates workflow; do
run rm -rf "$dest/$d"
if [ "$LINK" = 1 ]; then run ln -s "$SOURCE_DIR/claude/$d" "$dest/$d"
else run cp -R "$SOURCE_DIR/claude/$d" "$dest/$d"; fi
done
Comment thread install.sh
Comment on lines +228 to +229
local dest d f; dest="$(content_dir)"
for d in skills commands templates workflow; do run rm -rf "$dest/$d"; done
Comment thread install.sh
# the workflow override (+ its dir if now empty)
run rm -f "$(override_path)"
[ "$DRY_RUN" = 1 ] || rmdir "$(dirname "$(override_path)")" 2>/dev/null || true
[ "$SCOPE" = user ] && run rm -f "$HOME/.claude/CLAUDE.md"
olehsvyrydov added a commit that referenced this pull request Jun 6, 2026
…26)

* Phase 2: universal installer (Claude Code, Cursor, Kiro, VS Code)

Rewrite install.sh as a vendor-neutral installer that wires up any of the four
editors and emits the right config for each (no lock-in):
- Claude Code: .claude/skills + .claude/commands + CLAUDE.md
- Cursor: .cursor/rules/ai-dev-team.mdc + AGENTS.md
- Kiro: .kiro/steering/ai-dev-team.md + AGENTS.md
- VS Code (Copilot): .github/copilot-instructions.md + AGENTS.md

Flags: --editors=, --scope=project|user, --preset=solo|small-team|regulated,
--dry-run, --yes, --link, --uninstall. Applies the chosen preset to workflow.yaml.
Preserves the previous Claude advanced-backend setup as
scripts/setup-claude-backends.sh. README Quick Start updated; .gitignore guards
self-install artifacts (.claude/, .cursor/, .kiro/, .mcp.json).

* Address Copilot review on PR #26: fix backends-script paths + installer link/uninstall

- scripts/setup-claude-backends.sh: SCRIPT_DIR resolves to the repo root (the
  script lives in scripts/), fixing the claude/, multi-llm/, rag/ paths used by
  prerequisites / venvs / rag / multi-llm / hooks. Updated header usage examples.
- install.sh: --link now COPIES workflow/ (symlinks the rest) so --preset applies
  per-project without mutating the source repo; --uninstall no longer prompts for
  editors (it removes all known configs regardless).

* Address Copilot re-review on PR #26: installer robustness

- run() executes args directly ("$@"), no eval — safe with quotes/spaces in paths.
- Validate --editors; fail fast on unknown names.
- Confirm before overwriting existing content unless --yes (guards ~/.claude).
- Preset edit replaces only the value, preserving the inline comment in workflow.yaml.
- Emit AGENTS.md whenever Cursor/Kiro/VS Code is selected, even in user scope.
- Uninstall removes project-level editor configs regardless of scope, and removes
  AGENTS.md/CLAUDE.md only if they carry our header.
- scripts/setup-claude-backends.sh: silent API-key prompts (read -rsp).

* Address Copilot re-review on PR #26: help/overwrite/venv/url

- show_help prints only the leading comment block (no code lines leaked).
- write_instructions won't clobber a pre-existing AGENTS.md/CLAUDE.md that isn't
  AI Dev Team-managed (prompts unless --yes; skips on no).
- scripts/setup-claude-backends.sh: 'setup_venvs || true' so a venv skip doesn't
  abort under set -e; fix docs URL to olehsvyrydov/AI-development-team.

* Address Copilot re-review on PR #26: write preset to the workflow override

The active preset resolves from .aidevteam/workflow.yaml (project) or
~/.aidevteam/workflow.yaml (user) before the shipped default, so the installer now
writes the chosen preset there (a copy of workflow.yaml) instead of editing the
default — which also lets --link symlink all content. Instruction text + the final
hint point to the override; --uninstall removes it (and the .aidevteam dir if empty).
Also: emit_mcp drops the unused 'ref' + fixes its comment; backends find uses
NUL-delimited -print0 / read -d '' for paths with spaces.

* Address Copilot re-review on PR #26: prereq check, vscode guard, pip failure handling

- install.sh: fail fast with a clear message if the framework content
  (SOURCE_DIR/claude/{skills,commands,templates,workflow}) is missing.
- emit_vscode uses write_instructions so it won't clobber a pre-existing
  .github/copilot-instructions.md that isn't AI Dev Team-managed.
- README: add --yes to the non-interactive example so it truly doesn't prompt.
- scripts/setup-claude-backends.sh: pip install '|| return 1' so a venv failure
  returns to the caller (which tolerates it) instead of aborting under set -e.

* Address Copilot re-review on PR #26: uninstall confirmation + guards + backends polish

- install.sh: --uninstall confirms before removing anything (unless --yes/--dry-run),
  and removes .github/copilot-instructions.md only if it carries our header (so it
  won't delete an unrelated Copilot file the install previously skipped).
- scripts/setup-claude-backends.sh: guard the Qdrant health check on curl being
  present (don't hang/confuse when curl is missing); fix the startup banner to
  'AI Dev Team — Backend Setup'.
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