Skip to content
Development
Skill

/pastiche

Use when implementing a frontend task — produces code that faithfully follows the project's design system and component library.

From plugin
pastiche
412 skills3 agents

Claude Code

$ npx -y skills add retz8/pastiche --skill pastiche --agent claude-code

SKILL.md

pastiche.SKILL.md
name: pastiche
description: Use when implementing a frontend task — produces code that faithfully follows the project's design system and component library.

Pastiche

Orchestrates `pastiche-implementer-round1`, `pastiche-reviewer`, and `pastiche-implementer-round2` in a bounded loop, then emits a single task report.

Preflight

Run `ls pastiche/FACT.md pastiche/KNOWLEDGE.md pastiche/WISDOM.md`. If any are missing, stop and report:

> This project does not appear to have pastiche set up — expected `pastiche/{FACT,KNOWLEDGE,WISDOM}.md`. Run `/pastiche-init` to scaffold them.

Workflow

1. Dispatch `pastiche-implementer-round1` with `{task}` → capture `{r1_report}`. 2. Dispatch `pastiche-reviewer` with `{task, r1_report}` → capture `{doubts}`. The reply is either one or more lines of `<path>#<line> | <comment>`, or the literal `(no doubts)`. If any line fails to match the record shape and the output isn't `(no doubts)`, stop and report: > Reviewer returned malformed output; expected `<path>#<line> | <comment>` records or the literal `(no doubts)`. 3. If `{doubts}` is `(no doubts)`, go to 6 (no `{r2_report}`). 4. Dispatch `pastiche-implementer-round2` with `{task, r1_report, doubts}` → capture `{r2_report}`. 5. **Failsafe.** For each record in `{r2_report}`'s `unresolved:` block (skip if `unresolved: -`): Read the file, then Edit to insert a comment in the file's native comment syntax above the targeted `<line>` (matching surrounding indentation). Comment text: `pastiche-unresolved-doubt: <comment from the unresolved: record>`. 6. **Build check.** Read `build_command` from `pastiche/config.yaml`. If null or absent, skip. Otherwise run it. For each error, patch using the build output as source of truth. Bounded to **3 patch attempts per error**. If an error persists after 3 attempts, leave it and note it in Follow-ups. 7. **Runtime review.** Scan the changed files for common sources of runtime and console errors. Patch any issues found. Bounded to **one pass**. 8. Emit the final response.

Final response

## Summary
- **Files changed:** <paths> (omit if none)
- **Implementation:** <2–3 sentences describing the end result>

## Follow-ups
- <location> — <one-line description>
- ... (omit section if no follow-ups)

`Files changed` is the union of `files:` entries from `{r1_report}` and `{r2_report}`; omit the line if both are `-`.

Follow-up sources (each follow-up bullet must be self-describing; readers shouldn't need to know about rounds, dispositions, or the loop):

  • Each scenario in `{r1_report}`'s `gaps:` line → `KNOWLEDGE.md — <scenario>`.
  • Each `(knowledge-gap)`-tagged record in `{r2_report}`'s `defended:` block → `KNOWLEDGE.md — <reason>`.
  • Each `(wisdom-gap)`-tagged record in `{r2_report}`'s `defended:` block → `WISDOM.md — <reason>`.
  • Each record in `{r2_report}`'s `unresolved:` block → `<path>#<line> — <comment>`.
  • Each failsafe comment written in step 5 → `<path>:<line> — <comment>`.
Read more
@retz8
Ships withpastiche

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

412 skills3 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
4
Star history of retz8/pastiche on GitHub, a chart by star-history.com

Other skills on pastiche.

divide-task

divide-task

Divide a specced pastiche task into sub-task GitHub issues with autonomy and dependency labels, mirror them into `_dev/TODO.md`,…

@retz8@retz8Install Skill
grill-to-spec

grill-to-spec

Convert a completed grill-me session into a spec file. Captures only the task and the decisions locked during grilling — no…

@retz8@retz8Install Skill
pick-up-task

pick-up-task

Pick up or resume a task from `_dev/TODO.md` — marks `[WIP]`, creates or switches to the task's feature branch, rebases with…

@retz8@retz8Install Skill
rebase-feat-with-main

rebase-feat-with-main

Rebase the current pastiche feature branch onto main to absorb hotfixes. Use when the user invokes `/rebase-feat-with-main`, when…

@retz8@retz8Install Skill
release-pastiche

release-pastiche

Ship a pastiche release — version bump, plugin build, CHANGELOG entry, release commit, tag, GitHub Release, milestone close. Use…

@retz8@retz8Install Skill
pastiche-init

pastiche-init

Use when bootstrapping pastiche in a frontend repo for the first time — scaffolds `pastiche/{config.yaml, FACT.md, KNOWLEDGE.md,…

@retz8@retz8Install Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about pastiche.

Which coding agents can use pastiche?
pastiche installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.