From fabrik
Reviews conversations for underperforming fabrik skills and submits PRs or issues to the fabrik repo. Invoke via /improve-skill or for skill fixes/feedback.
npx claudepluginhub maragudk/fabrik --plugin fabrikThis skill uses the workspace's default tool permissions.
A skill for incrementally improving other fabrik skills based on what just happened in the current conversation. The premise: every real session is a free user study. If a skill underperformed -- gave incomplete advice, missed something the user had to ask for manually, didn't trigger when it should have -- that's signal worth turning into a concrete improvement to the skill.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Processes PDFs: extracts text/tables/images, merges/splits/rotates pages, adds watermarks, creates/fills forms, encrypts/decrypts, OCRs scans. Activates on PDF mentions or output requests.
Share bugs, ideas, or general feedback.
A skill for incrementally improving other fabrik skills based on what just happened in the current conversation. The premise: every real session is a free user study. If a skill underperformed -- gave incomplete advice, missed something the user had to ask for manually, didn't trigger when it should have -- that's signal worth turning into a concrete improvement to the skill.
This skill harvests that signal and ships it back to maragudk/fabrik as a PR (when the fix is clear) or an issue (when the observation is real but the fix isn't).
Primarily user-invoked. The user runs /improve-skill or says things like "make the X skill better", "the brainstorm skill should ask fewer questions", "this skill missed something". They may also bring their own idea about what to fix; that idea joins the findings list rather than replacing it.
Proactively suggest at end-of-session moments only when there's concrete signal. Examples of concrete signal:
No signal, no suggestion. Be quiet by default. The bar is the same as the decisions skill: only speak up when there's something specific to point at.
skill-creator, not this.garden.This skill only edits skills/*/SKILL.md and the subfiles those skills reference.
Read back over the current conversation. The candidate set is any fabrik skill the conversation gives signal about, whether it was invoked or not. A skill ends up on the list one of two ways:
For each candidate skill, look for these signal types:
Why all of these matter: skills get better over time only if friction translates into edits. The model is the witness to its own confusion and the user's corrections; this skill is the mechanism for turning that into a diff.
Summarise each finding as a one-line entry:
[skill-name]: [what was observed in the conversation] -> [proposed change type: trigger / content / structure / redesign]
Show the full list to the user, ask which to act on, and accept any extras the user wants to add. If the user invoked with a specific idea, fold it into the same list as another finding -- don't drop the conversation-derived ones in favour of the user's idea.
If after the pass there are no findings, say so plainly and stop. Don't manufacture work.
Classify each finding the user wants to act on as one of:
A single invocation may produce one PR (covering several concrete fixes across one or more skills) plus one or more issues (for the genuinely unresolved ones). That's fine.
The skill almost always runs outside the fabrik repo. To edit skills/*/SKILL.md, you need a working copy. Lookup order:
~/Developer/fabrik -- if it exists, prefer it.
git -C ~/Developer/fabrik worktree add ../fabrik-improve-skill-<slug> -b improve-skill/<slug>
maragudk/fabrik to a temp directory, branch, edit there, push, open the PR. Report the path back to the user so follow-ups are easy.The branch name is improve-skill/<slug> where <slug> is a short kebab-case description of the change (e.g. improve-skill/brainstorm-one-question). By default, one PR per improve-skill invocation, even when several skills are touched -- keeps review batched. But if the user wants to act on findings one at a time (e.g. "let's take those one at a time"), a PR per finding is fine; follow the user's preference.
Before editing, Read AGENTS.md at the repo root and follow whatever conventions it specifies (README updates, version bumping, etc.). CLAUDE.md is a symlink to AGENTS.md. The harness loaded the user's current project's AGENTS.md/CLAUDE.md at session start, not fabrik's, so cd-ing into the worktree doesn't auto-load fabrik's rules -- read it explicitly.
Commit, push, and open the PR or issue using your normal git/PR conventions (the system prompt already covers the mechanics). What's specific to this skill is the body shape: instead of the default Summary + Test plan, use the templates below because the framing is "findings from a conversation", not "feature work".
PR body:
## What was observed
<short summary of the friction or gap, drawn from the current conversation>
## What changed
<per-skill bullet of the actual edits, e.g. "brainstorm: added explicit one-question-per-message rule to opening line">
## Why
<the reasoning, so a future reader can judge whether the change still makes sense>
Issue body:
## What was observed
<short summary of the friction, drawn from the current conversation>
## Why this is worth discussing
<why it's not a straightforward fix -- structural, ambiguous, or contested>
## Partial ideas
<anything the user or assistant floated, even if half-baked>
One issue per fuzzy / redesign finding. Title clearly: improve-skill: <skill-name> <one-line summary>.
Report URLs back when done. Follow-up review feedback, version bumps, and merging are the user's call.