Install
$ agentstack add skill-retz8-pastiche-pastiche-write-knowledge ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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 → lines; atom names backticked, prop expressions bare).
Multi-→ scenarios are allowed within a single invocation; multiple scenarios are not — re-invoke for each.
Workflow
- Get the scenario. If a scenario is already on the table (free-form discussion, or a
knowledge-gapfollow-up carrying scenario text + optionally file/line/would-be atom), use it. Otherwise ask the user for one or two lines of scenario phrasing. Readpastiche/FACT.mdin full.
- 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.
- Show existing neighbors. Read the chosen section by line range (from
##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 )_, show that line and note there are no neighbors yet.
- 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## ComponentsYAML 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 ` 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.
- 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 )_, 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).
- Lint. Shell:
pastiche-lint(on PATH via pluginbin/— 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:``. Lint passed. Re-invoke for additional scenarios."
- exit non-zero: "Inserted at KNOWLEDGE.md:``. Lint output above — review and remediate. Re-invoke for additional scenarios."
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: retz8
- Source: retz8/pastiche
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.