skills/clack/SKILL.md
Comprehensive guidance for building and debugging JavaScript and TypeScript CLIs with @clack/core and @clack/prompts, backed by bundled upstream source and examples. Use when implementing clack prompt flows, deciding between core primitives and styled prompts, adapting clack examples, or validating clack API usage.
npx skillsauth add ahmadawais/skills clackInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to implement reliable interactive CLIs with @clack/core and @clack/prompts.
@clack/prompts or @clack/core.references/examples/.intro, outro, spinner, progress, tasks, log, taskLog, stream) when useful.references/docs/prompts-exports.ts and references/docs/core-exports.ts.Use @clack/prompts by default.
Use @clack/core when lower-level control is required.
TextPrompt, SelectPrompt, ConfirmPrompt, Prompt) or deep customization.Handle cancellation on every prompt result.
import * as p from '@clack/prompts';
const value = await p.text({ message: 'Your name?' });
if (p.isCancel(value)) {
p.cancel('Operation cancelled.');
process.exit(0);
}
Start and close sessions cleanly for user-facing CLIs.
p.intro('create-app');
// prompts
p.outro('Done');
Use these defaults unless the user asks otherwise.
text: provide validate for required or constrained input.confirm: use for binary decisions; avoid coercing free-form text.select: use for mutually exclusive choices.multiselect or groupMultiselect: use for multi-choice and hierarchical multi-choice flows.group: gather structured answers while preserving dependencies between steps.spinner and progress: wrap long-running tasks and update status clearly.tasks: execute sequential task blocks with spinner status.taskLog: stream subprocess output and finish with success/failure.stream: render async or tokenized output (for LLM-style streaming).references/examples/.references/docs/prompts-exports.tsreferences/docs/core-exports.tsreferences/source/prompts/references/source/core/Start with these files.
references/docs/prompts-readme.mdreferences/docs/core-readme.mdreferences/INDEX.mdLoad specific source files only as needed.
references/source/prompts/*.tsreferences/source/core/prompts/*.tsreferences/source/core/utils/*.tsUse this quick mapping to avoid re-inventing flows.
references/examples/basic/index.tsreferences/examples/basic/text-validation.tsreferences/examples/basic/autocomplete.tsreferences/examples/basic/autocomplete-multiselect.tsreferences/examples/basic/default-value.tsreferences/examples/basic/path.tsreferences/examples/basic/spinner.tsreferences/examples/basic/spinner-cancel.tsreferences/examples/basic/spinner-cancel-advanced.tsreferences/examples/basic/spinner-ci.tsreferences/examples/basic/spinner-timer.tsreferences/examples/basic/progress.tsreferences/examples/basic/task-log.tsreferences/examples/basic/stream.tsreferences/examples/changesets/index.tsBefore finalizing any clack implementation:
core vs prompts) matches customization needs.development
Write sarcastic, ultra-concise X/Twitter posts about AI coding, open-source, and dev life. Use when asked to write tweets or X posts.
development
Transform messy work updates into clean, standardized end-of-day Slack sync summaries. Use when asked to "format my updates", "create a sync", "write a standup", or "summarize my work" for Slack.
testing
PR workflow - validate, branch, commit, push, PR, checkout main, rebase, squash merge. Use when submitting changes.
development
Senior UI/UX Engineer. Architect digital interfaces overriding default LLM biases. Enforces metric-based rules, strict component architecture, CSS hardware acceleration, and balanced design engineering.