divide-task
Divide a specced pastiche task into sub-task GitHub issues with autonomy and dependency labels, mirror them into `_dev/TODO.md`, and update the parent issue.…
Use when bootstrapping pastiche in a frontend repo for the first time — scaffolds `pastiche/{config.yaml, FACT.md, KNOWLEDGE.md, WISDOM.md}` and extracts FACT. Single-use; refuses to overwrite. Curation happens later via `/pastiche-setup`.
$ npx -y skills add retz8/pastiche --skill pastiche-init --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/pastiche-initContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when bootstrapping pastiche in a frontend repo for the first time — scaffolds `pastiche/{config.yaml, FACT.md, KNOWLEDGE.md, WISDOM.md}` and extracts FACT. Single-use; refuses to overwrite. Curation happens later via `/pastiche-setup`.
name: pastiche-init
description: Use when bootstrapping pastiche in a frontend repo for the first time — scaffolds `pastiche/{config.yaml, FACT.md, KNOWLEDGE.md, WISDOM.md}` and extracts FACT. Single-use; refuses to overwrite. Curation happens later via `/pastiche-setup`.Bootstrap pastiche in the user's repo. Refuses to touch an existing `pastiche/` — the verb is `init`, not `update`.
Stay terse. Do detection silently — do not narrate what you're reading, why a file matched, or how pastiche works internally. The only things the user sees are: the one-line preflight path, the proposed config block, the confirm question, any direct question for ambiguous fields, and the close message. No reasoning, no per-field commentary, no explanation of FACT/KNOWLEDGE/WISDOM. The config block plus the printed status messages below are the entire surface.
1. Resolve repo root: `git rev-parse --show-toplevel`; on failure, fall back silently to cwd. Print: *"Writing to `<repo-root>/pastiche/`."* 2. If `<repo-root>/pastiche/` contains any file, stop: > `pastiche/` already exists. Run `/pastiche-sync` to refresh FACT, `/pastiche-setup` to continue curation, or delete `pastiche/` first to reinitialize.
Read `<repo-root>/package.json` and probe canonical locations. Classify against these priors; combine as needed.
**`packages`:** each entry needs a `name` plus exactly one of `types`/`source_dir`.
**`tokens`:** check the obvious spots only — a global stylesheet referenced by the app entry, or a conventional path (`src/styles/`, `app/globals.css`, `src/index.css`). A quick match is enough:
Do not exhaustively crawl the repo for token files. If the first obvious candidates don't make it clear, leave `tokens` empty in the draft and ask the user to name the file in the confirm step — don't keep hunting.
**`typecheck_command`:** check `package.json` `scripts` for `typecheck` / `type-check` / `tsc`. Detect package manager from lockfile (`pnpm-lock.yaml` → `pnpm`, `yarn.lock` → `yarn`, `bun.lock` → `bun`, else `npm run`). Compose accordingly.
**`build_command`:** check `package.json` `scripts` for `build`. Detect package manager from lockfile (same as above). Compose accordingly (e.g., `npm run build`).
Trust your judgment on non-standard workspace names or weird `exports` fields. But don't over-invest in any single field: if something is ambiguous — especially token paths — stop guessing and ask the user to identify it directly in the confirm step. A direct question beats an obsessive search for a recommendation.
Present the full proposed config in one block — `platform: claude-code` (hardcoded), then drafted `packages` (each with its `name` and `types`/`source_dir`), `tokens`, `typecheck_command`, `build_command`. Ask:
> Looks right? Edit anything?
If the user requests edits, apply them to the current draft and re-display the updated config. Do not re-run detection. Loop until the user accepts.
If detection produced nothing usable, skip the draft and prompt: > I couldn't classify your setup. Paste your config or describe your stack.
Then draft from the response and confirm as above.
Once accepted, write:
1. `<repo-root>/pastiche/config.yaml` — read the template from this skill's sibling `templates/config.yaml` directory, mutate `platform`, `packages`, `tokens`, `typecheck_command`, `build_command`. Leave `design_md_reference: null` and `setup_progress` untouched (13 stubs). 2. `<repo-root>/pastiche/KNOWLEDGE.md` — copy `templates/KNOWLEDGE.md` (sibling to this skill's directory) verbatim. 3. `<repo-root>/pastiche/WISDOM.md` — copy `templates/WISDOM.md` (sibling to this skill's directory) verbatim.
If the user left `typecheck_command` blank, write `null` and print: > `typecheck_command` left null — implementers will skip the typecheck step.
If the user left `build_command` blank, write `null` and print: > `build_command` left null — the orchestrator will skip the final build check.
Do not scan for `DESIGN.md`. Do not pre-fill `design_md_reference`. `/pastiche-setup` owns that surface.
Shell: `extract-fact` (cwd = `<repo-root>`). It is on PATH via the plugin's `bin/` — do not search for it. Block on completion.
> Extractor failed: <stderr>. Fix config or rebuild your DS, then run `/pastiche-sync` to retry FACT extraction. KNOWLEDGE/WISDOM templates and config are already in place.
Do not delete `pastiche/`. The partial state is the recovery point for `/pastiche-sync`.
> Extractor ran but found no atoms. Check your `packages[].types` / `source_dir` paths. You can re-run extraction with `/pastiche-sync`.
Print exactly:
> Pastiche initialized at `<repo-root>/pastiche/`. > > FACT.md extracted (`<N>` components, `<M>` tokens). KNOWLEDGE.md and WISDOM.md are stubs. > > Next: run `/pastiche-setup` to curate KNOWLEDGE and seed `[GENERAL]` WISDOM rules — section-by-section, resumable across sessions.
Do not invoke another skill. Do not run lint.
Pastiche is a Claude Code plugin for Frontend UI implementation. Given a frontend task, it produces code that follows your established design system and component library — not by inventing, but by faithfully executing within the vocabulary your team already
Repo: retz8/pastiche
Divide a specced pastiche task into sub-task GitHub issues with autonomy and dependency labels, mirror them into `_dev/TODO.md`, and update the parent issue.…
Convert a completed grill-me session into a spec file. Captures only the task and the decisions locked during grilling — no implementation details, no invented…
Pick up or resume a task from `_dev/TODO.md` — marks `[WIP]`, creates or switches to the task's feature branch, rebases with main. Use when the user invokes…
Rebase the current pastiche feature branch onto main to absorb hotfixes. Use when the user invokes `/rebase-feat-with-main`, when resuming a task, or after a…
Ship a pastiche release — version bump, plugin build, CHANGELOG entry, release commit, tag, GitHub Release, milestone close. Use when the user invokes…
Use to re-validate `pastiche/{config.yaml, FACT.md, KNOWLEDGE.md, WISDOM.md}` after hand-editing any of them outside the mutator skills. Thin manual wrapper…