failure-archaeology

Indexes past incidents and deliberate oddities in the Marine Video Portal repository.

Updated Jul 3, 2026
One-click install
npx skills add https://github.com/MarineTeam/fable-video --skill failure-archaeology-marineteam
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: failure-archaeology
Source: https://github.com/MarineTeam/fable-video/tree/main/.claude/skills/failure-archaeology
Command: npx skills add https://github.com/MarineTeam/fable-video --skill failure-archaeology-marineteam

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Prevents re-litigating closed incidents and re-breaking intentional design decisions in the Marine Video Portal repo by providing a git-verified index of every past failure, its root cause, and a mandatory DO-NOT list. ## Core Features & Use Cases - Incident Log: Nine documented incidents (FA-1 through FA-9) with symptom, root cause, git-verified evidence, resolution, and DO-NOT constraints, covering ESLint pinning, Redis env var resolution, silent catch blocks, and homepage performance. - Deliberate Oddities Registry: Catalogs things that look like bugs but are intentional, such as the missing lockfile, the disabled react-hooks/set-state-in-effect rule, and SHA-256 signing mandated by the bunny.net API. - Open Items Tracking: Honest list of unresolved issues like open CodeQL alerts and orphaned pvp:* Redis keys, with explicit instructions not to fix them unprompted. - Use Case: Before modifying lib/redis.js, lib/bunny.js signing code, or ESLint config, consult this log to check whether the change was already tried, reverted, or deliberately shaped by a past incident. ## Quick Start Ask the agent to check the failure-archaeology log before changing the Redis client or re-enabling a disabled lint rule.

Frequently Asked Questions about failure-archaeology

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I check whether a bug was already fixed before changing code?

Scan the quick index table of incident IDs to find the entry matching the file or symptom you are touching, then read its root cause, evidence commit, and DO-NOT list before making any change.

Why is the react-hooks/set-state-in-effect ESLint rule disabled?

The rule false-flags the app's intended effect-driven data fetching pattern because its static analysis cannot see past await boundaries. It was disabled in eslint.config.mjs with a documented rationale, and re-enabling it requires rewriting every useEffect loader first.

Why is there no package-lock.json committed in this repository?

The missing lockfile is a deliberate latest-versions policy: Vercel and CI install fresh dependencies on every deploy so packages always resolve to the newest version matching package.json caret ranges. A stray out-of-sync lockfile is considered a common deploy failure.

When should I not use the failure-archaeology skill?

Do not use it for diagnosing a new undiagnosed runtime failure, triaging open CodeQL alerts, bumping dependencies, or checking standing architecture rules. Those route to the debugging-playbook, security-response, dependency-currency, and architecture-contract skills respectively.

Can I clean up the orphaned pvp:* Redis keys left by the prefix rename?

Not unprompted. The old keys are likely still in Redis and recoverable; deletion or migration requires an owner decision first, following the candidate read-only recovery runbook documented in the open items section.