一键导入
incident-distiller
Convert raw incidents into canonical events, experience units, and failure genomes with family-level classification
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Convert raw incidents into canonical events, experience units, and failure genomes with family-level classification
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Extracting key findings from AI/ML research papers.
Auditing frontend components for WCAG AA compliance.
Guide users through resolving 4xx and 5xx API errors.
Diagnosing failed GitHub Action or GitLab CI runs.
Framework to analyze and summarize competitor features and market positioning.
Walk new users through the initial setup and configuration.
| name | incident-distiller |
| description | Convert raw incidents into canonical events, experience units, and failure genomes with family-level classification |
Converts incidents into structured learning units. V4: includes Failure Genome distillation with family classification and utility scoring.
After any bug fix, deployment failure, or near-miss — when you need to create structured memory from the event.
Three files (+ index update):
.evolution/incidents/INC-YYYYMMDD-NNN.json.evolution/experience_units/EU-YYYYMMDD-NNN.json.evolution/failure_genomes/FG-NNNNNN.jsonFAMILY_INDEX.jsonValidate against schemas/incident-event.schema.json:
{
"incident_id": "INC-YYYYMMDD-NNN",
"created_at": "ISO8601",
"title": "Short title (5+ chars)",
"type": "Regression | Gap | Process | Near-miss | Documentation Drift",
"severity": 7,
"category": "Preventive | Reactive | Structural | Paradigm Shift",
"what_happened": "What broke and what the user/system experienced",
"why_it_happened": "Root cause — WHY, not just WHAT",
"fix_applied": "Exact change made to fix it",
"pattern_extracted": "PAT-NNN: One sentence learning",
"anti_pattern": "AP-NNN: What to never do again",
"related_incidents": [],
"verified": true,
"evidence": "How verification was done"
}
Validate against schemas/experience-unit.schema.json:
{
"eu_id": "EU-YYYYMMDD-NNN",
"source_incident": "INC-YYYYMMDD-NNN",
"pattern": "Reusable pattern name",
"anti_pattern": "Anti-pattern name",
"repair_operator": "Smallest reusable fix action",
"applicability": ["tag1", "tag2", "tag3"],
"impact": 7,
"xp_awarded": 13
}
Validate against schemas/failure-genome.schema.json.
Describe the environment, NOT the specific bug:
"context_fingerprint": {
"stack_tags": ["python", "node", "supabase", "cloud-run", "gemini"],
"surface_tags": ["deploy", "ui", "cli", "data-contract", "docs", "auth"],
"environment_tags": ["windows-powershell", "linux", "gcp", "local"],
"repo_maturity": "greenfield | legacy | hybrid | unknown"
}
Only include tags that are relevant. Don't tag everything.
Check existing families first: Read .evolution/failure_genomes/FAMILY_INDEX.json.
Matching rules — a genome belongs to an existing family if it overlaps on:
Known families (seed from NVE journal):
| Family | Invariant | Typical Repair |
|---|---|---|
credential-drift-after-refactor | deploy_requires_all_env_vars_verified | strip-and-verify-env-vars |
verification-skipped-before-done | done_means_verified_on_production | add-production-verification-step |
silent-fallback-introduced | no_silent_fallbacks | remove-fallback-fix-extraction |
data-quality-gate-bypass | presence_does_not_equal_quality | add-resolvability-check |
write-read-contract-mismatch | write_format_must_match_read_format | add-dual-path-lookup |
llm-output-structural-bias | never_trust_single_llm_number | compute-structural-composite |
command-shell-mismatch | check_os_before_shell_commands | replace-with-ps-safe-command |
Creating a new family: Use pattern {noun}-{noun}-{action}:
stale-docs-after-changeephemeral-state-assumptionimport-omission-in-partial-fixThe rule that should NEVER have been broken. Format: snake_case.
Good invariants:
done_means_verifiedno_silent_fallbackswrite_format_must_match_read_formatexternal_state_must_be_persistentdocs_follow_architectureBad invariants (too vague):
code_should_workbe_carefultest_everythingThe smallest reusable action. Format: verb-noun-phrase.
Good operators:
strip-and-verify-all-env-vars-before-deployadd-resolvability-check-to-fidelity-gatecompute-structural-composite-from-sub-metricsBad operators (too broad):
fix-the-bugbe-more-careful"verifier_evidence": [
{
"kind": "test | command_output | screenshot | healthcheck | diff | replay_report | other",
"ref": "path or command that produced proof",
"summary": "one sentence describing what was verified"
}
]
At least ONE evidence item is required for promoted genomes.
Format: applies_to=<scope> and risk=<level>:
"transferability_tags": [
"applies_to=cloud-run",
"applies_to=env-var-management",
"risk=high"
]
"utility": {
"score": severity / 10,
"reuse_count": 0,
"prevention_count": 0,
"negative_transfer_count": 0,
"last_used_at": null
}
Utility score starts at severity / 10 and decays if not used:
Initially:
"replay": {
"status": "not_run",
"family_sample_size": 0,
"holdout_sample_size": 0
}
After replay:
"replay": {
"status": "passed | failed | partial",
"family_sample_size": 5,
"holdout_sample_size": 2,
"pass_rate": 0.8,
"notes": "4/5 family members would have been prevented"
}
After creating a genome, update .evolution/failure_genomes/FAMILY_INDEX.json:
genomes arraymember_countavg_utility| Impact | XP |
|---|---|
| 1-2 | +3 |
| 3-4 | +5 |
| 5-6 | +8 |
| 7-8 | +13 |
| 9-10 | +21 |
INC-YYYYMMDD-NNN (e.g., INC-20260318-001)EU-YYYYMMDD-NNNFG-NNNNNN (6-digit sequential, zero-padded)