Skip to content
Development
Skill

/pastiche-write-knowledge

Use when adding or revising a scenario → atom mapping in KNOWLEDGE.md — including when triaging a `knowledge-gap` follow-up from the pastiche skill.

From plugin
pastiche
412 skills3 agents

Claude Code

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

SKILL.md

pastiche-write-knowledge.SKILL.md
name: pastiche-write-knowledge
description: Use when adding or revising a scenario → atom mapping in KNOWLEDGE.md — including when triaging a `knowledge-gap` follow-up from the pastiche skill.

Pastiche — write KNOWLEDGE

Inserts one scenario → atom(s) mapping into `pastiche/KNOWLEDGE.md` per invocation. See KNOWLEDGE.md's header for the scenario format (prose framing line(s), then one or more `→ <atom expression>` lines; atom names backticked, prop expressions bare).

Multi-`→` scenarios are allowed within a single invocation; multiple scenarios are not — re-invoke for each.

Workflow

1. **Get the scenario.** If a scenario is already on the table (free-form discussion, or a `knowledge-gap` follow-up carrying scenario text + optionally file/line/would-be atom), use it. Otherwise ask the user for one or two lines of scenario phrasing. Read `pastiche/FACT.md` in full.

2. **Identify the section.** List the candidate sections: `grep -n '^## ' pastiche/KNOWLEDGE.md | grep -v '## Brand Identity'`.

  • **Brand Identity is out of scope.** If the user names `## Brand Identity` (or the scenario is brand-prose rather than a scenario→atom mapping), stop and report:

> Brand Identity is prose, not a scenario mapping. Edit `pastiche/KNOWLEDGE.md`'s Brand Identity section directly, or run `/pastiche-setup --section brand-identity` to rewrite it.

  • If the user named a section, verify spelling against the list (case-insensitive / near-match; surface the closest match for confirmation if no exact hit). If no plausible match, stop and report the misspelling.
  • If the user did not name a section, propose the best-fit section from the list based on the scenario text and confirm with the user. The user may override.

3. **Show existing neighbors.** Read the chosen section by line range (from `## <Section>` to the next `## `) and display it to the user so they can self-detect duplication or refinement opportunities. If the section's only content is `_(empty — run /pastiche-setup --section <name>)_`, show that line and note there are no neighbors yet.

4. **Draft and confirm.** Compose the scenario as it will appear in the file: one or more prose framing lines, followed by one or more `→` lines. Atom names backticked — **FACT entries verbatim**; never derived utility forms or untracked utility classes (those belong as WISDOM `[GENERAL]` rules). Prop expressions bare.

If the available context is missing either the framing or the atom expression(s), ask only for the missing piece. Surface candidate atoms from FACT when helpful.

**Verify each backticked identifier against FACT before showing the draft.** For each identifier `X`:

  • Component lookup: `grep -nE '^X:' pastiche/FACT.md` (inside the `## Components` YAML block; top-level keys only).
  • Token lookup: `grep -nFx 'X' pastiche/FACT.md` (flat lines under `## Tokens`).

If neither matches: retry case-insensitively and surface the closest match for confirmation. If still no match, stop and report:

> Identifier `<X>` is not in FACT.md. Either it's misspelled, FACT is stale (run `/pastiche-sync`), or the atom doesn't exist — in which case rephrase the scenario around an atom that does, or treat it as a knowledge-gap to surface to the DS owner.

Show the exact lines as they will appear in the file and ask: `yes / edit`. Loop on edits until confirmed.

5. **Insert.** Find the chosen section's end (the line before the next `## ` heading, or end-of-file if it's the last section).

  • If that range's sole content is `_(empty — run /pastiche-setup --section <name>)_`, **replace** that marker line with the new scenario (preserve a single blank line above and below as the surrounding sections have).
  • Otherwise **append** the new scenario at the end of the section (insert before the next `## ` heading; preserve a single blank line of separation from the prior scenario).

6. **Lint.** Shell: `pastiche-lint` (on PATH via plugin `bin/` — do not search), cwd = repo root. Forward stdout; on non-zero exit, also forward stderr. Don't revert; don't abort. Then close with:

  • exit 0: *"Inserted at KNOWLEDGE.md:`<line>`. Lint passed. Re-invoke for additional scenarios."*
  • exit non-zero: *"Inserted at KNOWLEDGE.md:`<line>`. Lint output above — review and remediate. Re-invoke for additional scenarios."*
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-write-knowledge.

Which coding agents can use pastiche-write-knowledge?
pastiche-write-knowledge 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.