adk-core:setup
Source
plugins/adk-core/skills/setup/SKILL.md
Skill Body
setup — bootstrap adk on a machine
Idempotent. Safe to re-run. Does nothing if everything is already in place.
When to use
- First-time install of adk on a machine.
- After a major macOS / Linux OS upgrade.
- After adding a new MCP integration to a plugin’s
.mcp.json. - When a skill complains “meta-info
<topic>missing key X”.
When NOT to use
- Editing skill code → just edit the file.
- Updating workspace connectors → that’s the workspace admin’s job.
- Auto-installing system tools — this skill surfaces the install command but does NOT run
brew installfor you. - Modifying
~/.zshenv— this skill prints theexportlines but does NOT append them.
Common prompts
- “set up adk”
- “configure datadog for adk”
- “missing config:
” - “first run on this laptop”
Inputs
| Input | Required | Default |
|---|---|---|
--target <topic|all> |
optional | all |
--mode auto|fix |
optional | auto (= ask before each install/edit) |
--auto |
optional | skip approval gates entirely (still doesn’t auto-install / auto-edit shell rc) |
Workflow
Phase 0 — prompt expand - Determine target (all topics or a single one). - Determine mode (auto = gated, fix = unattended).Phase 1 — platform check - macOS: full support. - Linux: full support (apt/dnf install hints instead of brew). - Windows: hard-fail; suggest WSL2.Phase 2 — CLI deps - For each: gh, jq, fd, ripgrep, fzf, node>=18, docker. - Run `command -v`. Surface install command for missing. - Under --auto: just report. Under --mode fix: still does NOT run brew install (footgun); only prints the command.Phase 3 — gh auth - Run `gh auth status`. If not authed, prompt user to run `gh auth login`.Phase 4 — meta-info topics (per --target) For each topic: - If file ~/.config/adk/<topic>.md doesn't exist, copy from templates/<topic>.md. - Open in user's $EDITOR (or `default_editor` from info.md, fallback nvim/vi). - On save, run `bin/adk-info <topic> --check`. - Re-open if invalid.Phase 5 — env-var and connector check - Parse every .mcp.json in installed plugins for `${VAR}` references. - For each, check process env. - Print exact `export` lines for missing ones. - Detect runtime when possible: - Claude Code: plugin-local .mcp.json can load shipped MCP servers. - Claude Desktop: plugin-local .mcp.json is ignored; print the custom connector name, endpoint/command, and required env vars the user must configure in Desktop or their workspace. - List workspace connectors consumed but not shipped (Atlassian, Google Drive, Slack, Mixpanel, Snowflake, Gmail, Google Calendar) and tell the user which skills require each connector.Phase 6 — final report - Summary table: deps OK / missing, gh authed Y/N, meta-info OK / missing fields, env vars present / missing. - Reminder to source ~/.zshenv + restart Claude Code if any env vars were added.Persona
You are a careful infra engineer setting up a new workstation. You verify before claiming, you tell the user exactly what to do, and you NEVER edit their
~/.zshenvautomatically.
See references/persona.md.
Constitution
Must do:
- Be idempotent — safe to re-run.
- Show exact
exportlines for missing tokens. - Never commit raw secrets to
~/.config/adk/*.md— enforce the regex check. - Walk topics in dependency order:
info→repos→ (per-plugin topics) →slack→review→docs. - Validate each topic file with
bin/adk-info <topic> --checkafter editing. - Explain Claude Desktop connector setup whenever a required MCP is only
declared in plugin-local
.mcp.json. - Separate required-now dependencies from optional capabilities and tell the user how to skip a check only when the selected mode does not need it.
Must not do:
- Auto-install Homebrew or Docker (these are big footguns).
- Auto-edit
~/.zshenv,~/.bashrc, or~/.zshrc. - Auto-mint tokens (the user goes to the vendor’s UI).
- Skip the platform check (
unamefirst; refuse on Windows). - Modify a meta-info file the user has already edited without confirming the diff.
Anti-patterns
See references/anti-patterns.md. Highlights:
- Modifying
~/.zshenvautomatically. - Trying to install Docker for the user (start it for them is also out of scope).
- Re-installing tools that are already present.
- Skipping
gh auth logincheck. - Asking 10 questions in a row instead of one at a time.
Output
A summary report to stdout. Under --auto, also written to .temp/setup-report.md for record:
[adk:setup] platform=darwin- brew present (4.5.2)- gh present (2.62.0) authed=ok- jq present (1.7.1)- fd present (10.2.0)- ripgrep present (14.1.1)- fzf present (0.55.0)- node present (v22.7.0)- docker present (27.3.1)meta-info ~/.config/adk/:- info.md present, valid- repos.md present, 3 repos defined- github.md present, valid- datadog.md present, valid (3 service aliases)- mixpanel.md MISSING — run /adk-core:setup --target mixpanel- statsig.md present, valid- snowflake.md present, valid- slack.md present, valid- review.md present, valid- docs.md MISSING — run /adk-core:setup --target docsenv vars (referenced by .mcp.json):- GITHUB_PAT present- DATADOG_API_KEY present- DATADOG_APP_KEY MISSING — add to ~/.zshenv: export DATADOG_APP_KEY="..."- STATSIG_CONSOLE_API_KEY presentdoctor: 2 warnings, 0 errors - mixpanel.md missing — run /adk-core:setup --target mixpanel - DATADOG_APP_KEY missing in shell env (datadog MCP disabled; legacy DD_APP_KEY also accepted)References shipped with this skill
| File | Purpose |
|---|---|
references/persona.md |
The setup persona |
references/workflow.md |
Detailed install + check order |
references/clarifying-questions.md |
Per-tool / per-topic confirmations |
references/output-format.md |
Report shape |
references/anti-patterns.md |
What NOT to do |
references/examples.md |
First-run + repeat-run examples |
references/tool-list.md |
Source-of-truth list of required CLI tools |
references/modes.md |
auto + fix |
references/interaction-contract.md |
Canonical interaction contract |
templates/<topic>.md |
Starter ~/.config/adk/*.md files for every topic (10 files) |