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.
How this skill is triggered — by the user, by Claude, or both
Slash command
/fabrik:improve-skillThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
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.
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.
npx claudepluginhub maragudk/fabrik --plugin fabrikImproves Claude Code skills post-use: diagnoses issues from execution (outdated/missing/unclear/wrong), previews diffs, edits SKILL.md after confirmation, logs changes.
Analyzes skill executions from conversation friction, file diffs, user feedback, diagnostics, and lessons to propose concrete improvements to SKILL.md files for efficiency.
Improves existing Claude Code skills by modeling user intent, auditing effectiveness against a rubric, and proposing ranked enhancements like new features, UX gains, and efficiency fixes.