From 8b6b7cf90f84cd19a26bcfaf7fa0e82e38fc455e Mon Sep 17 00:00:00 2001 From: yaowenc2 Date: Wed, 15 Jul 2026 23:29:28 +0800 Subject: [PATCH] fix(project create): don't stream the per-project skill install's clack UI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit insta project create shells npx skills add for the stack skills (insta, neon-postgres, tigris, better-auth) with stdio='inherit' — dumping the same clone-spinner/banner noise we already removed from insta setup agent. Run it silent instead; the per-skill ✓/failed line is the clean output and still appears as each skill finishes (live progress). Also stops the child inheriting a piped stdin. Before: 'installing … via npx skills add …' + spinner spam per skill After: installing related agent skills (insta, neon-postgres, tigris, better-auth) … insta ✓ neon-postgres ✓ tigris ✓ better-auth ✓ 77/77 green. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01GMbAe5K1RfwaAcge5inX7P --- src/ensure-skills.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ensure-skills.ts b/src/ensure-skills.ts index 769334d..8e97bb2 100644 --- a/src/ensure-skills.ts +++ b/src/ensure-skills.ts @@ -56,9 +56,13 @@ export async function installSkills(deps: Deps): Promise { const run = deps.run ?? defaultRunner const print = deps.print ?? ((s: string) => process.stdout.write(s + '\n')) try { - print(' installing related agent skills (insta, neon-postgres, tigris, better-auth) via `npx skills add` …') + print(' installing related agent skills (insta, neon-postgres, tigris, better-auth) …') for (const s of SKILLS) { - const r = await run('npx', s.args, true) // streamed so the user sees download progress + // Don't stream: the `skills` tool's clack UI (clone spinner, banners) is noise. Run it + // silent (stdio 'ignore') and let the per-skill ✓/failed line below be the clean output — + // it appears as each skill finishes, so there's still live progress. (Also avoids the + // child inheriting a piped stdin.) + const r = await run('npx', s.args) print(r.ok ? ` ${s.label} ✓` : ` ${s.label} failed — add manually: npx ${s.args.join(' ')}`) } const added = ensureGitignore(deps.cwd, SKILL_DIRS)