$npx -y skills add sordi-ai/skill-everything --skill error-logApply when learning from a mistake. Central memory of past errors and derived rules; consult before logging a new error to avoid duplicates.
| 1 | # Sub-Skill: Error Log |
| 2 | |
| 3 | **Purpose:** Central memory for all mistakes the agent has made or observed. Each entry prevents the same mistake from happening twice. Validated by [`tools/validate_rules.py`](../../tools/validate_rules.py) against [`schemas/error-entry.json`](../../schemas/error-entry.json) on every PR. |
| 4 | |
| 5 | --- |
| 6 | |
| 7 | ## Entries |
| 8 | |
| 9 | ```yaml |
| 10 | errors: |
| 11 | |
| 12 | - id: ERR-2026-001 |
| 13 | date: 2026-04-12 |
| 14 | category: development |
| 15 | severity: high |
| 16 | context: TypeScript project with strictNullChecks. Agent disabled it per-file to silence a demo error. |
| 17 | what_happened: Added triple-slash directive disabling strictNullChecks; CI caught it. |
| 18 | root_cause: Silenced compiler instead of fixing the null path. |
| 19 | impact: Null-safety gap shipped to CI; required revert. |
| 20 | resolution: Removed directive; fixed the null path properly. |
| 21 | new_rule: Never disable strictNullChecks or any strict TypeScript flag to silence a compiler error; fix the type instead. |
| 22 | target_file: skills/typescript/SKILL.md |
| 23 | |
| 24 | - id: ERR-2026-007 |
| 25 | date: 2026-04-28 |
| 26 | count: 2 |
| 27 | category: development |
| 28 | severity: high |
| 29 | context: TypeScript monorepo rename. Agent renamed in source and adjacent test only. |
| 30 | what_happened: Reported rename complete; cross-package refs still used old name. |
| 31 | root_cause: Local tsc scope hides cross-package references in a monorepo. |
| 32 | impact: 35 min lost first occurrence; 10 min second. |
| 33 | resolution: Added project-wide grep step to rename checklist. |
| 34 | new_rule: After any rename, run a project-wide grep for the old name before claiming the rename is complete. |
| 35 | target_file: skills/code-quality/SKILL.md |
| 36 | |
| 37 | - id: ERR-2026-012 |
| 38 | date: 2026-05-04 |
| 39 | category: deployment |
| 40 | severity: high |
| 41 | context: Billing service deploy with DB migration. Agent ran rollout before migration job. |
| 42 | what_happened: New image expected a column that didn't exist; readiness probes failed ~90 s. |
| 43 | root_cause: Assumed migrations run at pod startup; they're a separate Helm Job. |
| 44 | impact: 90 s probe failures; on-call paged. |
| 45 | resolution: Ran migration Job first, then re-rolled deployment. |
| 46 | new_rule: Before any deployment that includes a database migration, run the migration job to completion first. |
| 47 | target_file: skills/review-deployment/SKILL.md |
| 48 | |
| 49 | - id: ERR-2026-014 |
| 50 | date: 2026-05-13 |
| 51 | category: development |
| 52 | severity: medium |
| 53 | context: pytest fixtures returning mutable dict shared across tests. |
| 54 | what_happened: First test mutated fixture; second received already-mutated object. Flaky in CI. |
| 55 | root_cause: Fixture returned mutable object by reference; no fresh instance per test. |
| 56 | impact: 2 h debugging cross-test pollution. |
| 57 | resolution: Changed fixture to factory callable returning fresh dict per invocation. |
| 58 | new_rule: Never return mutable objects from pytest fixtures; use factory fixtures that create fresh instances per invocation. |
| 59 | target_file: skills/python/SKILL.md |
| 60 | |
| 61 | - id: ERR-2026-016 |
| 62 | date: 2026-05-13 |
| 63 | category: development |
| 64 | severity: medium |
| 65 | context: API client retry logic caught broad Exception, silently retrying a TypeError. |
| 66 | what_happened: None dereference retried 3x before failing; 4 h debugging. |
| 67 | root_cause: Overly broad except caught programming errors that should crash immediately. |
| 68 | impact: Real error buried in retry logs. |
| 69 | resolution: Narrowed catch to ConnectionError and Timeout only. |
| 70 | new_rule: Always catch specific exception types rather than broad base classes in retry or error recovery logic. |
| 71 | target_file: skills/code-quality/SKILL.md |
| 72 | |
| 73 | - id: ERR-2026-017 |
| 74 | date: 2026-05-13 |
| 75 | category: development |
| 76 | severity: medium |
| 77 | context: is_palindrome implemented before tests; empty-string edge case missed. |
| 78 | what_happened: Tests validated code-as-written; empty string returned True instead of False. |
| 79 | root_cause: No failing test first; no signal that empty-string was unhandled. |
| 80 | impact: Bug shipped. |
| 81 | resolution: Rewrote with TDD; empty-string test failed first, drove correct implementation. |
| 82 | new_rule: Always write a failing test before implementing new behavior to ensure tests validate intended behavior. |
| 83 | target_file: skills/tdd/SKILL.md |
| 84 | |
| 85 | - id: ERR-2026-018 |
| 86 | date: 2026-05-13 |
| 87 | category: development |
| 88 | severity: medium |
| 89 | context: Agent applied a fix to a reported bug without first reproducing it. |
| 90 | what_happened: Bug recurred within two days under a slightly different input path. |
| 91 | root_cause: No reproduction case; no way to confirm the fix addressed the actual failure mode. |
| 92 | impact: Duplicate bug report; additional debugging cycle wasted. |
| 93 | resolution: Wrote a minimal reproduction test, traced to |