Automated summary
This skill applies user feedback to installed skills by classifying each item (skill edit, cross-project principle, command, setting, memory, or observation-only), with per-item approval and a verification re-run.
Strengths
- Explicitly separates skill fixes, cross-project principles, harness configuration, and observation-only notes.
- Requires approval per item before edits and presents before/after diffs.
- Accounts for multi-skill pipelines, especially cooperating feather-* skills.
- Includes principle extraction to a vault and a post-edit verification re-run.
Limitations
- Assumes a specific personal layout (~/.claude/skills and a Dropbox vault), so it is not portable as-is.
- The supplied SKILL.md ends mid-sentence, leaving the final routing logic incomplete.
- Verification is a manual re-run on a toy input rather than automated testing.
Use it when you have written feedback on an installed skill and want it triaged and corrected with explicit approval.
Avoid it for creating a new skill from scratch or for making broad configuration changes without item-by-item review.
Security analysis
CautionNo destructive, exfiltrating, or obfuscated actions: file operations are confined to the user's own skills directory and vault, shell use is limited to ls/grep/git enumeration, and every mutating step is gated behind an explicit human approval prompt (including a four-option menu and a no-silent-commit rule). The real concern is privilege rather than malice — the skill is designed to rewrite the agent's own instructions and harness settings, which is legitimate but powerful, so it warrants a caution rating rather than safe.
- •Self-modifying scope: the skill edits its own agent configuration surface — other skills under ~/.claude/skills/, settings.json hooks/permissions, and command files — meaning a single approved session can rewrite the instructions and harness config the agent later runs under. Per-item approval gates and explicit 'do not proceed without approval' language mitigate this, but it is a high-privilege capability.
- •Hardcoded user-specific write target inside a cloud-synced folder (`~/Dropbox/Siraj/Projects/siraj-claude-vault/`): principles and notes written there are propagated by Dropbox to third-party storage by default. Worth flagging for data-handling review, not malicious.
- •The <context> block contains embedded shell executions (`ls -1 ~/.claude/skills/ | grep ...`) that the harness runs automatically at load time; read-only enumeration, but execution-on-load should be noted.
- •`Bash(git:*)` is a broad grant that includes commit/push/push --force. The body only demonstrates `git status` and explicitly instructs 'Do NOT commit silently' with the commit decision deferred to the user, so the risk is contained but the permission is wider than the shown usage.
- •Blanket Bash(git:*) permission: the text only demonstrates `git status` and defers commits to the user, but the wildcard also permits destructive/publishing git operations (reset --hard, clean -fdx, push --force) if the agent extrapolates.
- •Writes outside the working project: ~/.claude/skills/, a personal Dropbox vault path, and potentially ~/.claude/settings.json or .claude/settings.json. Silent mutation of harness settings/hooks can broaden permissions for all future sessions with little user visibility.
- •A 'push-through mode' is defined: if the user says 'auto' or 'go ahead and make all edits without approval', per-item diff approval is disabled for the rest of the session, creating an ungated batch-write path (user-initiated, which is why this is caution rather than risky).
- •Reads and modifies installed third-party skill content without any validation of what is written; a malicious skill's text could be echoed into diffs/principle files, though no such instruction targeting the auditor was present in this content.
- •Hardcoded personal paths (~/Dropbox/Siraj/...) mean the workflow will attempt writes in unintended/failing locations for other users; not a secret leak, but a portability and blast-radius concern.
Examples
Here's feedback on feather-brainstorm: it suggests solutions before clarifying the problem. Classify each point, show me the routing table, and don't edit anything until I approve.Use heal-skill on feather-spec with the notes in ~/notes/spec-feedback.md; route cross-project lessons to the vault and show before/after diffs per item.I have feedback on two installed skills. Read both SKILL.md files, classify each point as skill-edit, principle, settings, memory, or observation-only, then wait for my approval before proposing edits.description: Heal feather-* skills (or any user-installed skill) by applying classified feedback with per-item approval, principle extraction, and a verification re-run. argument-hint: [optional: skill name to focus on, e.g. "feather-brainstorm"] allowed-tools: [Read, Edit, Write, Bash(ls:), Bash(grep:), Bash(git:*), TodoWrite]
<objective> Apply user-supplied feedback to one or more skills under `~/.claude/skills/`, plus the principle vault under `~/Dropbox/Siraj/Projects/siraj-claude-vault/`, and the user/project settings under `~/.claude/` or `.claude/`.Distinguish between skill bugs, cross-project principles, harness config, and observation-only items so each goes to the right home. Approval per item. Verification re-run when the work is done.
Adapted from glittercowboy/heal-skill.md (see end). Differences: multi-skill aware (feather pipeline = 4 cooperating skills); user-skills path (~/.claude/skills/); explicit route-classification step; principle extraction to Obsidian vault; verification re-run loop. </objective>
<context> Available feather skills: !`ls -1 ~/.claude/skills/ | grep -i feather || echo "no feather-* skills installed"` Other user skills: !`ls -1 ~/.claude/skills/ | grep -v -i feather | head -20` Vault location: ~/Dropbox/Siraj/Projects/siraj-claude-vault/cross-project/ </context><quick_start> <workflow>
- Collect feedback — ask the user for written feedback (paste or path)
- Read affected skills — load every SKILL.md the feedback mentions
- Classify each item — route to: skill-edit / principle / command / settings / memory / observation-only
- Present classification table — get approval before drafting diffs
- Resolve design questions — surface ambiguities that reshape multiple edits
- Per-item heal-skill diffs — before/after, reason, per-item or batched approval
- Apply edits — Edit tool, confirm each
- Extract principles — write any new cross-project principles to the vault
- Verification re-run — propose a 30-second re-run of the affected skill on a toy input to confirm behaviour changed
- Commit (optional) — if user wants </workflow>
</quick_start>
<process><step_1 name="collect_feedback"> If $ARGUMENTS names a specific skill, focus there. Otherwise ask which skill(s).
Ask the user:
"Paste the feedback (rough form is fine), or point me at a file. I'll classify each item before drafting any edits."
Wait for input. Do not proceed without feedback in hand. </step_1>
<step_2 name="read_affected_skills"> For every skill named (or implied) in the feedback, read the full SKILL.md:
ls -la ~/.claude/skills/<skill-name>/
For feather-* skills, the pipeline interconnects — feedback on one often touches another. If the feedback is about feather-brainstorm, also peek at feather-spec and feather-execute-task at the boundary they share.
Read references/, scripts/, and any companion files in the skill folder. </step_2>
<step_3 name="classify_each_item"> Walk through every distinct piece of feedback. For each, decide where it goes:
| Route | When to use |
|---|---|
| skill-edit | The skill instructs the agent to do (or not do) the wrong thing; fix is in SKILL.md or its companions |
| principle (vault) | Cross-project pattern worth saving to ~/Dropbox/Siraj/Projects/siraj-claude-vault/cross-project/ |
| command (commands/) | The fix is reusable command behaviour, belongs in ~/.claude/commands/<name>.md |
| settings | Hook, env var, or permission — belongs in ~/.claude/settings.json or .claude/settings.json (use the update-config skill) |
| memory | Recurring correction — belongs in project MEMORY.md (only after the same item recurs across sessions) |
| observation-only | Worth noting but no action needed |
For items that origin in skill text vs. items that origin in agent overreach: note the difference. Origin in skill → fix is to remove/edit the instruction. Origin in agent overreach → fix is to add an anti-pattern. </step_3>
<step_4 name="present_classification"> Present a classification table:
| # | Feedback (compressed) | Origin in skill | Where this goes | Fix sketch |
|---|---|---|---|---|
| 1 | <one-line summary> | <line N or "agent overreach"> | <route> | <one-line> |
Identify any items that are sub-issues of others; bundle them.
Identify items where origin is another skill in the pipeline (e.g. feedback on feather-brainstorm that originates in feather-spec's vocabulary). Note as cross-cutting.
Ask:
"Approve the classification, or any item miscategorized?"
Wait for approval. </step_4>
<step_5 name="resolve_design_questions"> Before drafting diffs, surface design questions that reshape multiple edits — for example:
- "How heavy should the new mode menu be (inline / inline + escape / structured menu)?"
- "Should we hide the internal taxonomy entirely, or rename for the user?"
- "Verbatim quotes inline only, or also in a bottom appendix?"
Resolving these first prevents re-editing the same lines twice.
If a question is reshape-level, present 2–4 options with concrete examples (the same content rendered each way). Ask the user to pick.
Apply Concierge Default: when offering choices, describe each option's fit, not just its name. </step_5>
<step_6 name="draft_diffs"> For each skill-edit item, present a heal-skill-style diff:
### Edit N — <Section name> (<line range>)
**Before:**
<exact text from current file>
**After:**
<new text>
**Reason:** <why this fixes the issue>
For multi-edit items in one skill, batch them under the same approval gate. Use the heal-skill four-option menu:
1. Apply all edits, commit later
2. Apply some — name them
3. Revise — tell me what to change
4. Cancel
Wait for response. Do not proceed without explicit approval.
If the user says "auto" or "go ahead and make all edits without approval," switch to push-through mode for the rest of the session. </step_6>
<step_7 name="apply_edits"> Use the Edit tool for each correction. After each edit, the tool returns confirmation.
For large edits (template rewrites), confirm by reading back the changed region with the Read tool.
For multi-skill edits, work skill-by-skill in dependency order (overview → upstream → downstream → tests).
Track progress with TodoWrite — one todo per item or per skill. Mark complete only after the Edit confirms. </step_7>
<step_8 name="extract_principles">
For every classified principle (vault) item, write or update the principle file:
~/Dropbox/Siraj/Projects/siraj-claude-vault/cross-project/philosophy-<name>.md
Frontmatter (matches existing vault style):
---
type: decision
project: cross-project
date: <YYYY-MM-DD>
status: active
impact: <ux | architecture | testing | ...>
tags:
- Type/Decision
- CrossProject/<area>
related:
- cross-project/philosophy-design.md
- cross-project/philosophy-concierge-default.md
- cross-project/philosophy-markdown-readable-default.md
---
Body sections (in order):
- The principle (one paragraph + 3–6 bullets)
- Where to apply
- Where NOT to apply
- Relationship to other principles
- Anti-patterns it prevents
- Source (which session, which feedback)
Cross-link in the related skill's anti-patterns table:
| ❌ Don't <X> | <Concierge Default | Markdown-Readable Default | other> says <Y> |
</step_8>
<step_9 name="verification_rerun"> After edits land, propose a small re-run to confirm behaviour changed:
"Edits are in. Want to re-run <skill-name> on a toy input (~30 seconds) to verify the fix actually changes behaviour? E.g. for feather-brainstorm: 'I want to build a small notes app' — see whether the new Phase 0 mode menu fires."
Re-run is verification, not bug-hunt. If the re-run surfaces new issues, those are Round 2 — capture them separately, don't retrofit Round 1.
If the user declines the re-run, mark the heal session complete and move on. </step_9>
<step_10 name="commit_optional">
Skill files live in ~/.claude/skills/, which may or may not be a git repo. If it is:
cd ~/.claude && git status
Offer the user:
- Commit all changes with a structured message
- Show the diff and let the user commit
- Skip — leave files modified
Default: option 2 (show diff). Do NOT commit silently.
For the vault (~/Dropbox/Siraj/Projects/siraj-claude-vault/), edit the markdown files directly (Write/Edit) if updates are needed beyond what was just written.
</step_10>
<route_classification_examples>
| Feedback symptom | Likely route | Why | |---|---|---| | "The skill says 'do X' but I want it to do Y" | skill-edit | Direct instruction change | | "The agent kept doing X that I never asked for" | skill-edit (anti-pattern) | Agent overreach; codify the don't | | "I want this kind of behaviour everywhere across all my skills" | principle (vault) + edits in each affected skill | Cross-cutting pattern | | "I want to /<command> for this" | command (commands/) | Reusable invocation | | "When X happens, automatically do Y" | settings (hook) | Harness automation | | "I keep having to remind the agent to <X>" (recurring) | memory | Recurring correction | | "Interesting observation about <X>" (no action) | observation-only | Capture, no fix | | "The output looked stiff / cryptic / formatted badly" | skill-edit (template) + likely principle | Often surfaces a Concierge or Markdown-Readable Default issue |
</route_classification_examples>
<success_criteria>
- Every feedback item explicitly classified
- Origin in skill vs origin in agent overreach distinguished
- Design questions resolved before drafting diffs (no double-editing)
- All skill-edits applied with per-item or per-batch approval
- Cross-project principles extracted to vault and cross-linked from skill anti-patterns
- Verification re-run offered (and run if accepted)
- Skill files modified consistently (no orphan references to old vocabulary)
- Commit decision deferred to user </success_criteria>
- Read back changed sections with the Read tool
- Confirm cross-skill consistency (e.g. if you renamed a section in feather-brainstorm, check feather-skills's quick reference doesn't still point at the old name)
- Confirm no skill mentions a path or vocabulary that another skill no longer uses
- Confirm the vault writes have correct frontmatter and cross-links to existing philosophy files
- Show the user a summary of what changed (file names + line counts is enough) </verification>
<comparison_to_glittercowboy_heal_skill> This command is adapted from the original glittercowboy/heal-skill.md. Key differences:
| Original | feather-heal-skill |
|---|---|
| Single skill assumption | Multi-skill aware (handles pipelines like feather-*) |
| Path: ./skills/ (project-local) | Path: ~/.claude/skills/ (user-level), with project-local fallback |
| One reflection step | Explicit route-classification step (skill / principle / command / settings / memory / observation) |
| One approval gate | Per-item or per-batch approval, plus design-question resolution upfront |
| Edit and commit | Edit, extract principles to vault, propose verification re-run, defer commit |
| No principle extraction | Cross-project principles → ~/Dropbox/Siraj/Projects/siraj-claude-vault/cross-project/ |
Both share the heal-skill core: detect skill, present before/after diffs, get approval, apply, verify. </comparison_to_glittercowboy_heal_skill>
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/heal-skills-with-classified-feedback-mryiqio5/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/heal-skills-with-classified-feedback-mryiqio5' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/heal-skills-with-classified-feedback-mryiqio5/download' --output '.skill-downloads/heal-skills-with-classified-feedback-mryiqio5/SKILL.md.part' && mv '.skill-downloads/heal-skills-with-classified-feedback-mryiqio5/SKILL.md.part' '.skill-downloads/heal-skills-with-classified-feedback-mryiqio5/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
This file does not provide a usable name/description header for this native procedure. It remains available to download and inspect; use the manual method below.
Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/heal-skills-with-classified-feedback-mryiqio5/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.