.claude/skills/feedback-capture/SKILL.md
# Skill: Feedback Capture ## Purpose Pre-router interceptor that runs BEFORE the Question Router on every user message. Detects correction signals, methodology learnings, and positive feedback, captures them to `.knowledge/`, then passes through to normal routing. ## When to Use - On every incoming user message, before Question Router classification - Runs silently — the user should never notice this skill executing ## Instructions ### Step 0: Intercept (runs before Question Router) Wrap al
npx skillsauth add ai-analyst-lab/ai-analyst .claude/skills/feedback-captureInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Pre-router interceptor that runs BEFORE the Question Router on every user
message. Detects correction signals, methodology learnings, and positive
feedback, captures them to .knowledge/, then passes through to normal routing.
Wrap all detection and capture logic in try/except. If anything fails, log nothing and pass the message through to the Question Router unchanged. Never block the pipeline.
Scan the user's message for these signal patterns:
Correction signals (user says something was wrong):
Learning signals (user teaches a reusable methodology):
Positive signals (user confirms correctness):
No signal: No pattern matched. If multiple match, prioritize: Correction > Learning > Positive.
.knowledge/corrections/index.yaml to get last_correction_id.CORR-001 -> CORR-002).
If last_correction_id is null, start at CORR-001.join_error | filter_missing | metric_definition |
date_range | aggregation | schema | logic | other.knowledge/corrections/log.yaml.corrections list:
- id: "CORR-{N}"
date: "{TODAY}"
severity: "{estimated}"
category: "{classified}"
dataset: "{active dataset or null}"
tables: []
description: "{what the user said was wrong}"
fix: "{what the user said is correct}"
sql_before: null
sql_after: null
prevented_by: null
Fill tables, sql_before, sql_after, and prevented_by only if the
user's message contains enough detail. Leave null otherwise.log.yaml..knowledge/corrections/index.yaml: increment total_corrections,
increment the matching by_severity and by_category counts, set
last_correction_id and last_updated..knowledge/learnings/index.md.### {N}. {Category} heading.
Format: - {concise learning} (source: user feedback, {TODAY})index.md.Acknowledge briefly ("Thanks!" or similar one-liner) and continue processing the rest of the message normally. No file writes needed.
Pass through silently. Do NOT say "I didn't detect feedback." Proceed directly to the Question Router.
All detection and capture logic MUST be wrapped in try/except. If file reads or writes fail, skip capture entirely and proceed to routing. The analyst's primary job is answering questions, not bookkeeping.
testing
# Skill: {{BLANK_1_SKILL_NAME}} ## Purpose {{BLANK_2_WHEN_TO_FIRE}} ## When to Use Fires automatically when the user asks Claude to do something that matches the trigger condition above. ## Instructions 1. Detect the trigger condition 2. Execute your guardrail check 3. If the check matters, print a clear, visible warning with "{{BLANK_3_SIGNATURE_PHRASE}}" as the first line 4. Continue with the analysis, incorporating the warning into the output ## Anti-Patterns - Do not fire when the condit
development
# Skill: Visualization Patterns ## Purpose Ensure every chart Claude Code produces follows high-quality design standards with named themes, consistent styling, and clear data communication. ## When to Use Apply this skill whenever generating a chart, graph, or data visualization. Always apply the active theme unless the user specifies otherwise. Default theme: `minimal`. ## Instructions ### Pre-flight: Load Learnings Before executing, check `.knowledge/learnings/index.md` for relevant entrie
development
# Skill: Triangulation / Sanity Check ## Purpose Cross-reference analytical findings against multiple data sources, external benchmarks, and common sense to catch errors before they become bad decisions. ## When to Use Apply this skill after every analysis, before presenting findings to stakeholders, and whenever a result seems surprising. If a finding would change a decision, it MUST be triangulated first. ## Instructions ### Triangulation Framework Every finding gets checked through four
data-ai
# Skill: Tracking Gap Identification ## Purpose Assess whether the data needed for an analysis actually exists, identify what's missing, and produce prioritized instrumentation requests for engineering when gaps are found. ## When to Use Apply this skill after the Data Explorer agent inventories available data, when an analysis requires data that might not exist, or when initial query results suggest incomplete tracking. Run before committing to an analysis approach. ## Instructions ### Gap