一键导入
ars-onboard
Three-phase ARS onboarding after `ars init` — walkthrough, customize, verify.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Three-phase ARS onboarding after `ars init` — walkthrough, customize, verify.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Run a single-episode coherence checklist after Studio review edits and before prepare/publish; diagnose or patch thesis drift, step seams, stale arguments, visual rhythm, and publish readiness.
Apply Studio intents back into the episode source and validate the result.
Generate 3 YouTube metadata candidates (title/description/tags) grounded in episode context, let the user pick one, then mark the artifact ready.
Usage guide for generating MiniMax TTS audio and subtitles for an episode.
Validate repo bootstrap readiness, ARS config, providers, and environment readiness with npx ars doctor.
Create a new episode scaffold for a series with npx ars episode create.
| name | ars:onboard |
| description | Three-phase ARS onboarding after `ars init` — walkthrough, customize, verify. |
| model | claude-sonnet-4-6 |
| effort | medium |
/ars:onboard is a guided setup flow for an already initialized ARS content repo.
Do not run onboarding as the repo setup command. Before this skill starts, the repo must already have:
.ars/config.jsonproject.activeSeriessrc/episodes/<activeSeries>/ep-demo.tsars init <series>If any of those are missing, stop and tell the user to run:
ars init <series-name>
Then tell them to launch ars again and run /ars:onboard.
Do not run ars init from inside this skill unless the user explicitly asks for recovery and confirms the target series name. ars init is the setup step before Claude Code; /ars:onboard is the guided walkthrough/customize/verify step after setup.
At each phase transition, advance the workstate stage:
npx ars workstate set --stage <stage-name>
Valid onboard stages are:
onboard-walkthroughonboard-customizeonboard-verifyDo not invent extra setup phases. Repo setup belongs to ars init <series> before this skill starts.
Treat /ars:onboard like a guided setup flow, not a raw agent log dump.
For every phase:
Keep the tone concrete and operational.
Prefer:
You are now in Phase 1 walkthrough: this is a demo-only pass to understand the workflow. It will not modify your series files.Next is customize: we will tune series-config.ts and SERIES_GUIDE.md for your channel.The goal of verify is to make sure this repo is actually ready for the first real episode.Avoid:
done / pass without telling the user what that meansDo this before any workstate write or phase action.
Read .ars/config.json and check project.customizedAt and project.onboardedAt.
customizedAt is stamped after customize, so a later verify failure does not lose the user's style/config notes.onboardedAt is stamped only after verify passes. It is the SSOT for "the full onboarding flow is complete".Re-run logic:
customizedAt is set but onboardedAt is not: customize already ran but verify did not finish. Write onboard-verify and resume at Phase 3.onboardedAt is set: onboarding already completed. Write onboard-customize, enter confirmation mode, then continue to verify.Skip this phase if re-run detection determined the series is already customized.
Stage name: onboard-walkthrough
onboard-walkthrough.ep-demo, reuse it.npx ars studio ep-demo --phase review
Keep the process handle / terminal session. Onboard must explicitly stop this Studio process when the flow ends or is aborted.
## Studio Intent Monitor. The Monitor starts in walkthrough and stays alive through customize and verify.next to continue to customize, or skip to skip the walkthroughStage name: onboard-customize
onboard-customize..ars/config.json and resolve project.activeSeries.series-config.ts for visible defaults such as channel name, tone, colors, layout bias, and VTuber/image settingsSERIES_GUIDE.md, which future /ars:plan, /ars:build, Studio review fixes, and /ars:reflect runs will readep-demo as the preview surface so they can see the style evolve in Studioars init and can be revisited laterWhen presenting the paths, explain the outcome of each one in one sentence.
Before the interview begins, align Studio with the current series:
?series=<activeSeries>&ep=ep-demo&phase=review.## Studio Intent Monitor before asking customize questions.Whenever Studio is opened or reused during onboarding, register an event-driven watch over .ars/studio-intents/.
Claude Code agents should use the Claude Code Monitor tool around:
npx ars studio intent watch
Other agents (Codex, OpenCode, shell-only runners, or any environment without Claude Code's Monitor tool) must still keep an active intent watcher. Start npx ars studio intent watch as a long-running background/terminal process and react to each stdout line, or poll npx ars studio intent list --pending --json every few seconds if long-running process handling is unavailable. Preserve the same stage guard, routing, and resolution rules below; lack of the Monitor tool is not a reason to ignore Studio comments or ask the user to mention them in chat.
Each stdout line is a notification. On every notification:
.ars/state/workstate.json. If the current stage is not onboard-walkthrough, onboard-customize, or onboard-verify, stop the Monitor cleanly.npx ars studio intent list --pending --json.source.ui === "onboard" or source.hash starting with onboard: as onboarding feedback, not ordinary episode review.onboard-walkthrough, do not patch files from Studio comments. Leave actionable comments pending and tell the user they will be handled in customize, unless the user explicitly asks to skip them.onboard-customize, default Studio comments to series-level customization. Comments about color, typography, visual density, layout feel, VTuber/avatar/logo/assets, tone, narration style, title style, card preference, recurring card behavior, pacing, or recurring defaults should patch series-config.ts, SERIES_GUIDE.md, shared assets, or series-scoped cards directly, then resolve the intent with evidence.SERIES_GUIDE.md card rules, and, when the built-in card cannot express the behavior, a series-scoped card override under src/episodes/<activeSeries>/cards/<type>/ using the same cardSpec.type./ars:apply-review <intent.id> when the user explicitly says the issue is local to this demo card/step (for example "只修這張 demo") or the comment is clearly a factual/content bug in the demo episode.onboard-verify, handle only blocker comments or final review fixes that prevent onboarding completion; otherwise resolve/defer with a clear summary.Monitor rules:
npx ars studio intent clear <id> for applied preview/customize changes. Resolved intents should carry resolution evidence.npx ars studio intent list --pending --json one more time and resolve every actionable intent so verify does not inherit stale preview comments.references/branding-guide.md..ars/config.json and series-config.ts instead of re-asking them.src/episodes/<activeSeries>/series-config.ts. See references/series-structure.md.SERIES_GUIDE.md using the basic sections of references/series-guide-template.md.SERIES_GUIDE.md.shell.layout can stay on built-in 'streaming' / 'shorts', or advanced users can swap in a series custom layout component.src/episodes/<series>/cards/ can add new card types or override built-in engine cards by reusing the same type.At the end, summarize:
series-config.tsSERIES_GUIDE.md now exists and will be read by later skillsThen run:
npx ars workstate stamp --field customized
series-config.tsSERIES_GUIDE.md if it existspublic/episodes/<series>/shared/Then run:
npx ars workstate stamp --field customized
Use this only after explicit confirmation. It can delete initialized template content.
src/episodes/<activeSeries>/ with a minimal series skeleton:
series-config.tsepisode.template.tsep-demo.tspublic/episodes/<activeSeries>/shared/.SERIES_GUIDE.md.ep-demo preview may no longer exist and point them to the next valid preview target.Then run:
npx ars workstate stamp --field customized
After quick customize finishes, offer the deeper pass with this prompt:
你的 SERIES_GUIDE 已生成(基本版)。
如果你願意再花 3-5 分鐘,我可以做一個「有靈魂版」補強。
接下來不會是長問卷。你可以直接用一段話描述:
- 你希望主持人講話像誰、不要像誰
- 有哪些常用語、禁用詞、結尾習慣
- 你偏好的卡片或視覺呈現
- 內容節奏要短平快,還是可以慢慢鋪陳
我會先整理,只有真的缺關鍵資訊才補問,最多 3 題。
要繼續嗎?(y / n / later)
Behavior by reply:
y / yes / 好 / 繼續: ask for one free-form deep-dive answer, summarize it, ask at most 3 targeted follow-ups only if needed, then append corresponding sections to SERIES_GUIDE.md.n / no / 跳過: leave SERIES_GUIDE.md at basic version. Tell the user they can run /ars:onboard again later, edit the guide manually, or directly tell the agent what to change in SERIES_GUIDE.md.later / 稍後: same as n, but explicitly mention this is recoverable.When running the deeper pass, prefer free-form answers over enumerated questions. Drop sections the user skipped; never write empty placeholder sections.
Use this mode only when re-run detection shows project.onboardedAt is already set.
Do not offer destructive paths here. The series already has customizations.
Instead:
SERIES_GUIDE.md lacks optional deep-dive sections, offer the optional deep-diveStage name: onboard-verify
Verify is a report card, not a gate. Onboard's job is "user has seen the demo, set their brand, and seen the environment health report" — not "the environment is fully wired for every downstream feature." Provider credentials (MiniMax, YouTube) are needed only at audio/publish time; we surface gaps now so the user knows, but we do not block onboarding completion on them.
onboard-verify.npx ars doctor
Classify the results into two buckets:
Structural fails (block onboard completion) — the repo itself is broken and downstream skills cannot run:
engine.* (engine root / registry / template / Composition missing)plugin.* (plugin manifest / hooks / skills missing)config.schema failureconfig.active-series fail (activeSeries set but series-config.ts missing)provider.speech-config fail (speech.provider missing or invalid in series-config.ts)Provider gaps (do NOT block onboard completion) — the env is healthy but a future feature is unwired:
provider.minimax fail/warn (MiniMax enabled but missing API key / Group ID / voice)provider.youtube-credentials fail (YouTube enabled but missing OAuth env)provider.audio-review fail (review timing capability mismatch)If any structural fail is present, do NOT stamp onboardedAt. Show the failing items with their fixHint and stop. The user must repair the repo (usually npx ars init <series> --force-engine or --force-config) before re-running /ars:onboard.
If only provider gaps are present (or everything passes), reframe the report. Do not paste raw doctor output. Group it into:
Series contextStudioAudio / TTSYouTube publishAnalyticsFor each non-pass item, say what is missing, why it matters, and the immediate next fix. Especially flag:
npx ars auth youtube before /ars:publish-youtubeMINIMAX_API_KEY / MINIMAX_GROUP_ID in .env before /ars:audio or full /ars:build with audioConditional gating for explicitly-requested providers. If the user actively opted in during npx ars init (i.e. publish.youtube.enabled === true in .ars/config.json, or speech.enabled === true in series-config.ts) AND that provider has a fail, ask before continuing:
你在 init 時開啟了 YouTube publishing / MiniMax audio,但目前還沒設好 credentials。
要先補設嗎?
1. 現在補設 — 我帶你跑 npx ars auth youtube / 設 .env,完成後再回來 verify
2. 先跳過 — 我會記下 onboard 已完成,你要用到時 doctor 會再提醒
npx ars doctor; once the explicit-opt-in provider passes, fall through to step 7.publish.youtube.enabled or speech.enabled back to false — leave the user's intent intact so doctor keeps reminding them later.If the user did NOT opt in (default none / disabled), skip this prompt entirely. Provider gaps in that case are expected and not actionable now.
Keep the Studio tab open during verify. If the user leaves preview comments while verify is running, handle them before closing onboard.
Stamp completion:
npx ars workstate clear --onboarded
This clears the workstate and stamps project.onboardedAt in .ars/config.json. Run this regardless of whether provider gaps remain — onboarding is "demo seen + brand set + report delivered", not "every credential wired."
Before the final handoff, run one last pending-intent drain. Then stop the background Studio intent monitor and stop the background npx ars studio ... process.
In the completion handoff:
MiniMax: add MINIMAX_API_KEY to .env before /ars:audio). Frame these as deferred, not failures.npx ars doctor is the way to re-check at any time.Suggest next steps:
/ars:plan <topic>/ars:build <epId>Remind the user that SERIES_GUIDE.md is not locked: at any time they can directly tell the agent to change tone, banned phrases, card preferences, pacing, or other series rules in SERIES_GUIDE.md.
ars init <series> before /ars:onboard.