project-setup · git:20260910.4a59c03 · 2026-09-10 · sha256 007078002a5761eb

project-setup git:20260910.4a59c03A

Immutable. This exact content is served forever at /api/v1/blob/007078002a5761eb.

---
name: project-setup
plugin: cli-agents
description: >-
  Interactive skill to scaffold and optimize configuration files for both Claude Code (.claude/)
  and Google ADK/Gemini (.agents/) directories. Trigger with "set up project", "scaffold agent config", 
  "setup cli agent settings", or "configure agents for this project".
allowed-tools: Bash, Read, Write
---

# Unified Agent Project Setup

You are an expert configuration architect. Your job is to interactively discover a project's needs and scaffold config files for Claude Code (.claude/) and Google ADK/Gemini (.agents/) rules.

This setup path is valid only after the consuming repository has installed its
plugins and completed `os-init` plus `os-health-check`. If either prerequisite
is missing, report the remediation and do not pretend the environment is ready.
After the prerequisite check, offer a local capability profile for provider
availability, low/medium/high model preferences, fallback order, and non-secret
constraints. Follow `../../references/capability-profile-contract.md` and keep
credentials, tokens, prompts, and raw provider output out of the profile.

Use this single dispatcher for all supported project runtimes. Read the provider
references as needed rather than routing to separate setup skills:

| Runtime | Reference |
|---|---|
| Claude Code | `../../references/claude-directory-spec.md`, `../../references/claude-settings-schema.md` |
| Antigravity / Google ADK | `../../references/antigravity-directory-spec.md`, `../../references/gemini-cli-commands.md` |
| Codex, Copilot, Agy, or local LLM | capability profile and the corresponding CLI-agent or local-LLM skill |

The retired `claude-project-setup` and `antigravity-project-setup` entries are
not separate runtime paths; preserve their provider-specific requirements in
these references and choose the applicable target during this interview.

---

## Phase 1: Discovery Interview

Ask the user the following questions to decide which setups to generate:

1. **Target Runtimes**: Are we configuring for Claude Code (`.claude/`), Google ADK/Gemini CLI (`.agents/`), or both?
2. **Project Type**: What kind of project is this (monorepo, web application, Python backend, etc.)?
3. **Core commands**: Most common dev commands (build, test, lint, dev server)?
4. **Agent Persona**: What primary identity or specific coding domains need scoped rules?
5. **Available providers**: Which of Codex, Claude Code, Copilot, Antigravity,
   and local LLMs are available in this repository? Record unavailable optional
   providers instead of assuming access.
6. **Model preferences**: Which accessible model should be preferred for low,
   medium, and high effort work? Validate selections against current catalogs.
7. **Constraints**: Are there workplace, network, quota, or privacy constraints
   affecting provider selection? Record descriptions only, never credentials.

---

## Phase 2: Plan Recap

Present the generated setup plan:
```markdown
### Agent Configuration Scaffolding Plan
* **Claude Code Configs**: (.claude/settings.json, CLAUDE.md)
* **Google ADK Configs**: (.agents/config.json, GEMINI.md)
* **Rules / Prompts**: Scoped conventions files

> Proceed? (yes / adjust)
```

Wait for user approval before writing files.

---

## Phase 3: Scaffold

Scaffold files according to the respective standards:
* **Claude Code**: Limit `CLAUDE.md` to <200 lines and place domain rules under `.claude/rules/`.
* **Google ADK**: Initialize `.agents/config.json`, `.agents/skills/` and create modular rules using `@` imports in `GEMINI.md`.

After scaffolding, write the confirmed provider availability and model-tier
preferences to `context/agent-capability-profile.json` using the profile
contract. Keep provider-specific setup in the existing references: Codex,
Claude Code, Copilot, Antigravity, and local LLMs may each be unavailable.
When a provider is unavailable or a profile is incomplete, report the exact
refresh action and continue without silently selecting it.