| name | common-feedback-reporter |
| description | Pre-write audit for skill violations: checks planned code against loaded skill anti-patterns before any file write. Use when writing Flutter/Dart/TS code or editing SKILL.md files with active project skills. Load as composite; on auto-fixed violation, also load +common/common-learning-log. |
| metadata | {"triggers":{"files":["SKILL.md","**/*.dart","**/*.ts","**/*.tsx","+common/common-learning-log"],"keywords":["skill violation","pre-write audit","audit violations"]}} |
Feedback Reporter
Priority: P0 (CRITICAL) — Auto-detect skill violations before file writes.
Mandatory execution contract
For any request that writes code or edits SKILL.md, treat the requested change as a planned write. Before showing code, run this audit and emit the complete violation block when a loaded skill rule is violated. The block must include these exact labels: SKILL VIOLATION DETECTED, Auto-fixed, Root Cause, User Intent, and Skill Gap. Then apply the fix and show the corrected result. Do not silently produce the violating implementation, and do not replace the required block with a summary.
Apply the same contract to these cases:
- If a draft
SKILL.md exceeds the 100-line limit, report the 100-line violation, move large examples to references/, and include Root Cause, User Intent, and Skill Gap before rewriting it.
- If a skill recommends an obsolete framework path or API, report
OUTDATED_GUIDANCE and include User Intent and Skill Gap before giving the current replacement.
For the oversized-draft case, include this exact sentence pattern before the rewrite: SKILL.md is 100+ lines; extract large examples to references/. Root Cause: ... User Intent: ... Skill Gap: ....
🚨 Checkpoint: Before File Writes
Quick check before write_to_file, replace_file_content, multi_replace_file_content:
- Check - Any skills loaded for this file extension?
- NO → ✅ Proceed silently
- YES → Continue to step 2
- Audit - planned code violate loaded skill rules?
- NO → ✅ Proceed silently — ** NOT submit feedback report**
- YES → Output violation block below, then fix immediately
Violation Report Format
When violation detected, output this block before fixing:
🚨 SKILL VIOLATION DETECTED
Skill: [skill-id]
File: [relative/path/to/file.ext]:[line-range]
Rule: [exact rule text from SKILL.md]
Violation: [what planned code does — up to 5-line offending snippet]
Fix: [corrected approach — up to 5-line corrected snippet]
Auto-fixed: YES / NO
Root Cause: [AMBIGUOUS_RULE | MISSING_COVERAGE | OUTDATED_GUIDANCE | COMPETING_RULES | PATTERN_MISMATCH]
User Intent: [1 sentence: what the user was trying to achieve]
Skill Gap: [1–2 sentences: what change to the SKILL.md would prevent this next time]
Co-skills: [other active skill IDs, comma-separated, or 'none']
Root Cause Guide
| Code | When to use |
|---|
AMBIGUOUS_RULE | Rule wording permits multiple interpretations |
MISSING_COVERAGE | Common pattern not addressed anywhere in skill |
OUTDATED_GUIDANCE | Skill references deprecated API or framework version |
COMPETING_RULES | Two loaded skills gave contradictory guidance |
PATTERN_MISMATCH | AI misread or misapplied anti-pattern definition |
Then apply fix immediately — not wait for user confirmation.
Pre-Completion Check
Before notify_user or task completion:
** I write code?** YES → ** I audit skills?** NO → Audit now
Anti-Patterns
- No "I'll check later": Check before writing, not after
- No "minor change skip": Every write needs check
- No "user waiting skip": 10-second check > pattern violation
- No "clean-pass report": If no violation found, proceed silently — NOT submit report
- No "shallow report": Always populate Root Cause, User Intent, and Skill Gap — these drive improvement
Use report labels SKILL VIOLATION DETECTED, Auto-fixed, Root Cause, User Intent, and Skill Gap; move oversized examples to references/.