select-project · git:20260622.e142476 · 2026-06-22 · sha256 6af4b0cc0a0194b5

select-project git:20260622.e142476A

Immutable. This exact content is served forever at /api/v1/blob/6af4b0cc0a0194b5.

---
name: select-project
description: This skill should be used when the user wants to switch between projects in a monorepo - lists projects from .groundwork.yml and sets the active project
argument-hint: "[project-name]"
---

# Select Project Skill

Quick project switching within a configured monorepo.

## Workflow

### Step 1: Load Config

Read `.groundwork.yml` from the repo root.

**If not found:** "No `.groundwork.yml` found. Run `/groundwork:setup-repo` to configure your repository first."

### Step 2: List Projects

Present available projects with their spec status:

```markdown
## Available Projects

| # | Project | Path | Specs |
|---|---------|------|-------|
| 1 | web-app | apps/web-app | PRD, Architecture, Tasks |
| 2 | mobile-app | apps/mobile-app | PRD |
| 3 | api-server | services/api | (none) |
```

For each project, check if `<path>/specs/` exists and what spec files are present.

Use `AskUserQuestion` to ask which project to work on.

### Step 3: Set Context

1. Set `GROUNDWORK_PROJECT=<selected-name>`
2. Set `GROUNDWORK_PROJECT_ROOT=<absolute-path>`
3. Persist selection via the persist script:
   ```bash
   node ${PLUGIN_ROOT}/lib/persist-project.js <selected-name>
   ```
   Where `${PLUGIN_ROOT}` is the groundwork plugin directory (use the plugin root path from the session context). The script resolves its own terminal-pane identity internally — no env vars required.

Confirm: "Switched to project **<name>**. Specs at `<path>/specs/`."

### Step 4: Show Status

After switching, show the project's spec status:
- PRD: exists / missing
- Architecture: exists / missing
- Tasks: exists / missing
- Design System: exists / missing

Suggest next action based on what's available.