Context
The current `/onboard` skill mixes two concerns:
- Framework bootstrap — setting up the apexstack fork for the first time (company, team, tech stack defaults, project registry)
- Per-project discovery — configuring a specific managed project's hooks and overrides
These should be separate flows with different triggers:
- Framework bootstrap → `/setup` (new skill, first-run, once per fork)
- Per-project discovery → embedded in `/idea` and `/handover` (when a project enters the portfolio, not as a standalone skill)
Design: `/setup`
The UX follows a "describe, propose, confirm" pattern (3 exchanges instead of 7 sequential questions):
-
"Describe your company/team and tech stack" — one open-ended question. User says "We're a 3-person startup building TypeScript APIs on AWS with React frontends" or "Solo developer, Python ML pipelines on GCP, no frontend."
-
Map to defaults and propose a complete config:
```
Based on your stack, I'd configure:
- Company:
- Default CI checks: npm run lint && npm run typecheck && npm run test && npm run build
- Default reviewers: Rex + you (CEO)
- Default architecture paths: [framework defaults]
- Default UI paths: [framework defaults since you said React]
- Default commit types: [framework defaults]
```
-
"Use these defaults, or customize?" — one yes/no. Most users say yes and they're done in 3 messages.
-
If customize → drill into only the specific field they want to change.
Writes to:
- `onboarding.yaml` (company config, committed)
- Optionally seeds `apexstack.projects.yaml` with the first project if the user names one
- Does NOT write `.claude/project-config.json` — that's per-project, handled by `/idea` and `/handover`
`onboarding-check.sh` changes: check whether `onboarding.yaml` has been filled in (not empty / not the example template), instead of checking for `.claude/session/onboarded`. The framework-level "has this fork been set up?" signal should be a committed file, not a gitignored session marker.
Design: fold `/onboard` into `/idea` and `/handover`
When a new project enters the portfolio:
-
Via `/idea` — when an idea is approved and becomes a real project, the skill already creates a project entry. Add the per-project discovery ("describe this project's stack") as part of the idea-to-project transition. Writes `project-config.json` in the project's workspace or `projects//` docs.
-
Via `/handover` — when an external repo is onboarded into apexstack management, the skill already does an assessment. Add the per-project config step ("here are the defaults I'd apply based on what I see in the repo — accept or customize?") as the final step of handover. Can auto-detect the stack by reading `package.json`, `requirements.txt`, `go.mod`, `Cargo.toml`, `*.tf`, Dockerfiles, etc.
The standalone `/onboard` skill is deprecated. Its functionality is split between `/setup` (framework-level) and `/idea` + `/handover` (project-level). The skill file can be kept as a redirect ("run /setup for framework config, or /handover for project config") during the transition, then removed.
Acceptance Criteria
/setup skill
onboarding-check.sh update
/idea and /handover integration
/onboard deprecation
Site + docs
Links
Context
The current `/onboard` skill mixes two concerns:
These should be separate flows with different triggers:
Design: `/setup`
The UX follows a "describe, propose, confirm" pattern (3 exchanges instead of 7 sequential questions):
"Describe your company/team and tech stack" — one open-ended question. User says "We're a 3-person startup building TypeScript APIs on AWS with React frontends" or "Solo developer, Python ML pipelines on GCP, no frontend."
Map to defaults and propose a complete config:
```
Based on your stack, I'd configure:
```
"Use these defaults, or customize?" — one yes/no. Most users say yes and they're done in 3 messages.
If customize → drill into only the specific field they want to change.
Writes to:
`onboarding-check.sh` changes: check whether `onboarding.yaml` has been filled in (not empty / not the example template), instead of checking for `.claude/session/onboarded`. The framework-level "has this fork been set up?" signal should be a committed file, not a gitignored session marker.
Design: fold `/onboard` into `/idea` and `/handover`
When a new project enters the portfolio:
Via `/idea` — when an idea is approved and becomes a real project, the skill already creates a project entry. Add the per-project discovery ("describe this project's stack") as part of the idea-to-project transition. Writes `project-config.json` in the project's workspace or `projects//` docs.
Via `/handover` — when an external repo is onboarded into apexstack management, the skill already does an assessment. Add the per-project config step ("here are the defaults I'd apply based on what I see in the repo — accept or customize?") as the final step of handover. Can auto-detect the stack by reading `package.json`, `requirements.txt`, `go.mod`, `Cargo.toml`, `*.tf`, Dockerfiles, etc.
The standalone `/onboard` skill is deprecated. Its functionality is split between `/setup` (framework-level) and `/idea` + `/handover` (project-level). The skill file can be kept as a redirect ("run /setup for framework config, or /handover for project config") during the transition, then removed.
Acceptance Criteria
/setup skill
onboarding-check.sh update
/idea and /handover integration
/onboard deprecation
Site + docs
Links