fix(onboard): route onboard under ns-project and drop from core profile

Integrate the brownfield /gsd:onboard skill into the skill subsystems so the
full CI suite passes:

- Route onboard under commands/gsd/ns-project.md (requires + routing row) so it
  nests as gsd-ns-project/skills/onboard on nested-layout runtimes instead of
  leaking as a 7th top-level skill dir (fixes install-nested-layout + issue-69).
- Remove onboard from PROFILES.core (src/install-profiles.cts) so the frozen
  main-loop core stays at 8 skills; onboard remains in standard/full.
- Add the TEXT_MODE plain-text fallback note to gsd-core/workflows/onboard.md
  for non-Claude runtimes (#2012).
- Allowlist onboard.md as a user-invocable skill (enh-2790 ratchet).
- Regenerate docs/INVENTORY-MANIFEST.json, golden-install-parity fixtures, and
  the workflow size baseline to match.

Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
This commit is contained in:
jeremymcs
2026-07-03 16:30:48 +00:00
committed by Codesmith
parent 20accf67ac
commit 1797207280
4 changed files with 6 additions and 2 deletions

View File

@@ -5,7 +5,7 @@ argument-hint: ""
allowed-tools:
- Read
- Skill
requires: [new-project, new-milestone, complete-milestone, audit-milestone, milestone-summary, import, ingest-docs, profile-user, review-backlog]
requires: [new-project, onboard, new-milestone, complete-milestone, audit-milestone, milestone-summary, import, ingest-docs, profile-user, review-backlog]
---
Route to the appropriate project / milestone skill based on the user's intent.
@@ -15,6 +15,7 @@ inline as part of `gsd-audit-milestone`'s output.
| User wants | Invoke |
|---|---|
| Start a new project | gsd-new-project |
| Onboard an existing codebase | gsd-onboard |
| Create a new milestone | gsd-new-milestone |
| Complete the current milestone | gsd-complete-milestone |
| Audit a milestone for issues | gsd-audit-milestone |

View File

@@ -43,6 +43,8 @@ Parse JSON fields: `planning_exists`, `project_exists`, `requirements_exists`,
Set `TEXT_MODE=true` if `--text` is present OR `text_mode` from INIT is true.
**Text mode (`workflow.text_mode: true` in config or `--text` flag):** When `TEXT_MODE` is active, replace every `AskUserQuestion` call in this workflow with a plain-text numbered list and ask the user to type their choice number. This is required for non-Claude runtimes (OpenAI Codex, Gemini CLI, etc.) where `AskUserQuestion` is not available and would otherwise render as an inert code block.
## 2. Git and Existing Planning Safety
If `has_git` is true and `in_nested_subdir` is true, warn that onboarding artifacts will

View File

@@ -40,7 +40,6 @@ const {
const PROFILES = Object.freeze({
core: Object.freeze([
'new-project',
'onboard',
'discuss-phase',
'plan-phase',
'execute-phase',

View File

@@ -476,6 +476,8 @@ const KNOWN_SKILLS = new Set([
'mvp-phase.md',
'new-milestone.md',
'new-project.md',
// #1990 brownfield onboarding entry command; sibling of new-project, routed under ns-project.
'onboard.md',
// `next.md` was legitimately reclaimed (#1787): the old workflow-advance
// command stays absorbed into `progress.md --next`, while the current
// `/gsd:next` is a different state-aware smart-entry launcher.