public/codex/skills/quality/fs-mcp-failure-recovery/SKILL.md
Use when the user invokes $fs-mcp-failure-recovery with a YYYY-MM-DD date to analyze that date %USERPROFILE%/.mcp/fs-mcp-failures log, identify unresolved failure groups, modify the real affected projects, verify fixes, and move verified items into a separate fs-mcp success JSONL list.
npx skillsauth add jungho-git/jllm fs-mcp-failure-recoveryInstall 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.
Use this skill for the full dated recovery loop: date parameter in, failure queue out, real project fixes, verification, and separate success records. Do not use it for read-only summaries unless the user explicitly asks for audit only.
Expected user shape:
$fs-mcp-failure-recovery 2026-05-15
Rules:
YYYY-MM-DD token as the target date.%USERPROFILE%/.mcp/fs-mcp-failures-YYYY-MM-DD.jsonl.%USERPROFILE%/.mcp/fs-mcp-successes-YYYY-MM-DD.jsonl.%USERPROFILE%/.mcp/fs-mcp-failure-state.json only as pending-state evidence.Asia/Seoul and say that assumption.Start each run with:
bun %CODEX_HOME%/skills/quality/fs-mcp-failure-recovery/scripts/analyze-date.ts --date 2026-05-15
The analyzer returns unresolved groups after subtracting existing success records. Work from those groups, not from the raw failure log alone.
The hook source is %CODEX_HOME%/hooks.json and
%CODEX_HOME%/hooks/fs-mcp-failure-logger/fs-mcp-failure-logger-hook.ts.
PostToolUse runs the logger for every tool call.PostToolUse records fs_mcp_tool_failure, fs_mcp_tool_degradation, and fs_mcp_basic_tool_fallback.Stop runs the logger with stop and records negative_fs_mcp_response when the final answer admits fs-mcp was
bypassed, substituted, unavailable, or insufficient.Do not patch the failure log to hide failures. Patch the source project or hook code that caused the failure.
analyze-date.ts --date <YYYY-MM-DD>.event, tool_name, reason, cwd, sample keys, and transcript paths.cwd plus the transcript path when present.cwd is the fs-mcp project, fix fs-mcp source and generated runtime only
when that artifact is the active maintained runtime.record-success.ts --date <YYYY-MM-DD> --input <success-input.json>.analyze-date.ts --date <YYYY-MM-DD> and confirm the key moved out of unresolved items.The task is not complete while unresolved items remain for the date unless the final report explicitly marks them unfixed with a blocker and no success record.
Handle event types by cause:
fs_mcp_tool_failure: the tool returned an error, failed count, or failure status. Reproduce the tool call and fix
the source error.fs_mcp_tool_degradation: a tracked fs-mcp read/search/list call succeeded but returned preview, truncation,
omitted, indexed, contextIndex, previewOnly, or similar markers. Fix compaction/output contracts or adjust the
logger only when it is a false positive.fs_mcp_basic_tool_fallback: a basic shell/command fallback followed a pending fs-mcp issue. Fix the fs-mcp path
first; fallback usage itself is not success.negative_fs_mcp_response: the final assistant response says fs-mcp was bypassed or insufficient. Inspect the
transcript, then fix the tooling/workflow cause that forced the negative response.Success input shape:
{
"key": "failure-key-from-analyze-date",
"failure_event": "fs_mcp_tool_degradation",
"failure_timestamp": "2026-05-15T06:25:47.185Z",
"session_id": "019e...",
"cwd": "C:/path/to/project",
"tool_name": "mcp__fs_mcp__read_files",
"reason": "fs-mcp output degraded or unsuitable",
"transcript_path": "%CODEX_HOME%/sessions/...",
"fix_summary": "Patched the project source and regenerated active runtime output.",
"changed_files": [
"src/features/context/context-output-compactor.ts"
],
"checks": [
"bun tests/contracts/tool-result-response.contract.test.js",
"reran original mcp__fs_mcp__read_files path without preview markers"
],
"notes": "MCP process restarted before final check."
}
Record verified success:
bun %CODEX_HOME%/skills/quality/fs-mcp-failure-recovery/scripts/record-success.ts --date 2026-05-15 --input C:/path/to/success-input.json
record-success.ts appends fs_mcp_failure_resolved to fs-mcp-successes-YYYY-MM-DD.jsonl, fills the dated
failure_log path when omitted, and removes the same key from pending state if present. Use --dry-run before
writing when the payload is uncertain.
Stop as complete only when:
analyze-date.ts --date <YYYY-MM-DD> no longer lists verified keys as unresolved.Stop as incomplete when:
cwd or transcript evidence.Final output must separate:
date: target date and resolved log paths.analyzed: failure counts, groups, and keys inspected.edited: actual project files changed.validated: commands and original paths rerun.success-recorded: success JSONL path and keys written.remaining: unresolved keys, blockers, or restart requirements.Never list an item as success without a source fix plus validation evidence. Never delete failure evidence.
testing
Required phase order for non-trivial tasks: Plan, Explore, Implement, Verify, Finalize. Use for multi-step work, scoped exploration, re-planning, validation, and final synthesis.
development
Final response format: Korean-first, concise Process / Checks / Issues / Updates, optional Usage, with only actual changes, actual validation, real blockers, changed files, and measured token data when available.
development
Smallest complete change rule: preserve local code shape, extend existing patterns, avoid speculative extraction or cleanup, and include required coupled updates for correctness.
development
Code comment policy: numbered one-line `―` dividers for touched declarations and logical sections, paired outer blocks only for long regions, concise purpose comments, and no comment churn.