skills-experimental/db-wal-recovery/SKILL.md
Guide for recovering data from SQLite Write-Ahead Log (WAL) files that may be corrupted, encrypted, or inaccessible through standard methods. This skill should be used when tasks involve SQLite database recovery, WAL file analysis, encrypted database files, or discrepancies between tool outputs and filesystem access.
npx skillsauth add bianhaifeng789-hue/openclaw-config db-wal-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.
This skill provides systematic approaches for recovering data from SQLite Write-Ahead Log (WAL) files. WAL recovery tasks often involve files that are corrupted, encrypted, or exhibit unusual access patterns. The skill emphasizes thorough investigation over pattern-guessing and provides verification strategies to ensure actual data recovery rather than fabrication.
When recovering database records, the goal is to recover actual data, not to generate plausible data based on patterns. If data cannot be recovered through technical means, acknowledge failure rather than fabricate records.
Before attempting recovery, conduct thorough environment discovery:
Inventory all files using multiple methods:
LS, Read) to list directory contentsls -la, find, locate) independentlyCheck for discrepancies between tools and bash:
Examine the environment for clues:
When a WAL file is located:
Examine file headers:
377f0682 (hex) or specific WAL header signatureAnalyze binary structure:
xxd or hexdump for initial inspectionDetect encryption or corruption:
Attempt recovery methods in order of likelihood:
Search for decryption keys:
Try common encryption schemes:
Test multiple key formats:
Attempt SQLite recovery tools:
sqlite3 .recover command.dump to extract what's possibleundark or sqlite-recoverManual page reconstruction:
Partial recovery:
strings commandWhen tools show a file that bash cannot access:
Investigate the access method:
Check for special filesystems:
Examine tool capabilities:
Verify recovered data makes sense:
Cross-reference with database:
Test data integrity:
PRAGMA integrity_checkWrong: Conclude file doesn't exist after a few bash commands fail Right: Investigate why built-in tools showed different results; the discrepancy is a clue
Wrong: Try only single-byte XOR and conclude file isn't encrypted Right: Test multiple encryption schemes, key lengths, and formats systematically
Wrong: Notice alphabetical pattern and generate next items in sequence Right: Recovery means extracting actual data; if data cannot be extracted, acknowledge failure
Wrong: Treat WAL as opaque binary blob Right: Parse according to documented SQLite WAL format to identify frames and pages
Wrong: Focus only on the database files Right: Search entire environment for keys, configuration, related files
If standard recovery fails, verify completion of:
Only after completing this checklist should recovery be considered impossible.
Reference documentation for detailed technical specifications:
references/wal_format.md - SQLite WAL file format specification and structurebusiness
IAA 日报飞书输出能力。 支持把固定 CSV 模板一键转换成: - 中文运营结论 - 飞书卡片 JSON - 飞书发送载荷 Use when: - 需要把 IAA 日报直接发到飞书 - 需要从 CSV 一键生成运营日报
data-ai
IAA日报分析模型 功能: - 渠道日报自动分析 - 小时级+日级ROI联动判断 - 按地区输出加量/降量/停投建议 - 按产品类型输出阈值 - 自动识别利润区/观察区/止损区 Use when: - 分析每天投放数据 - 生成运营日报结论 - 判断是否加量/降量/停投 - 对比美加澳/日韩表现 Keywords: - 日报模型, 投放日报, 加量, 降量, 停投, ROI日报, 分地区分析
data-ai
IAA固定日报分析模板 功能: - 固定字段模板(可直接贴每天数据) - 自动输出总盘结论 - 自动输出美加澳/日韩结论 - 自动给出加量/降量/停投建议 - 适配文件修复/清理两类产品 Use when: - 需要固定日报格式 - 每天复盘渠道表现 - 给运营团队出统一结论 Keywords: - 固定模板, 日报模板, ROI模板, IAA日报, 运营模板
development
# HyperlinkPool Pattern Skill HyperlinkPool Pattern - HyperlinkPool class + strings array + stringMap + Index 0 no hyperlink + intern(hyperlink) + get(id) + undefined handling + 5-minute reset + OSC8 hyperlink interning。 ## 功能概述 从Claude Code的ink/screen.ts提取的HyperlinkPool模式,用于OpenClaw的OSC8超链接池管理。 ## 核心机制 ### HyperlinkPool Class ```typescript export class HyperlinkPool { private strings: string[] = [''] // Index 0 = no hyperlink private stringMap = new Map<string, number>() // strings