[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6NCC5MP3T2PD69BSTRJ5EEP":3,"skill-same:01M6NCC5MP3T2PD69BSTRJ5EEP":47},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":14,"categories":15,"keywords":16,"publishedAt":21,"linkOnly":22,"markdownContent":23,"markdownBody":23,"frontMatter":24,"refName":25,"commitSha":26,"skillDirectory":27,"forksCount":28,"repositoryHtmlUrl":29,"repositoryHomepageUrl":30,"ownerHtmlUrl":31,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":32,"install":33,"resources":46},"01M6NCC5MP3T2PD69BSTRJ5EEP","odylith-casebook-bug-preflight",null,"odylith\u002Fodylith","odylith","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F273743042?v=4","01M6NBM8TE74H3GP527QEJFCPB","01M6NBM8YT7A5XTNABG4R5KQQ0",36,"MIT","https:\u002F\u002Fgithub.com\u002Fodylith\u002Fodylith\u002Fblob\u002Fmain\u002Fodylith\u002Fskills\u002Fodylith-casebook-bug-preflight\u002FSKILL.md",[],[17,18,19,20],"preflight","bug","casebook","odylith casebook bug preflight","2026-11-10 10:12:30",false,"# odylith-casebook-bug-preflight\n\n## CLI-First Non-Negotiable\n- CLI-first is non-negotiable for both Codex and Claude Code. Remove all hand-authoring for places where Odylith CLI should be doing the heavy-lifting. When an Odylith CLI command exists for an operation, you must call the CLI command and you must not hand-edit governed files the CLI owns. Hand-authoring governed truth where a CLI exists is a hard policy violation, not a stylistic preference. The authoritative policy, CLI surface enumeration, allowed hand-edit surfaces, and failure-mode handling live in `odylith\u002Fagents-guidelines\u002FCLI_FIRST_POLICY.md`, anchored by Casebook learning `CB-104`. The rule travels through routed `spawn_agent` leaves on Codex and Task-tool subagents on Claude Code, so delegated work inherits the same contract.\n\nUse before any substantive fix, debug loop, or governed closeout slice that might need durable failure memory so the relevant bug history, workstream links, component links, and validation surfaces are grounded first.\n\n## Canonical Commands\n\n```bash\n.\u002F.odylith\u002Fbin\u002Fodylith context-engine --repo-root . governance-slice --working-tree\n.\u002F.odylith\u002Fbin\u002Fodylith context-engine --repo-root . impact \u003Cpaths...>\n.\u002F.odylith\u002Fbin\u002Fodylith sync --repo-root . --check-only --check-clean\n```\n\n## Rules\n\n- Check existing Casebook entries before opening new bug work.\n- Governance-learning: treat preflight as fail-closed for durable learning if a named failure\n  mode, escaped defect, failed mechanism, failed simulation, live repro, bad generated artifact,\n  semantic drift, quality-gate failure, latency breach, validator miss, or\n  repeated-debug loop is present, the slice must link to existing Casebook\n  truth or capture\u002Fupdate it before continuing.\n- Read prior failed mechanisms, failed fix attempts, rejected approaches,\n  guardrails, and validation history before editing. Do not repeat a fix path\n  that already failed; update the governed record with the new hypothesis and\n  mechanism-level learning instead.\n- Search the related workstream, components, diagrams, and validation obligations alongside the bug history so you can decide whether to update an existing bug, reopen it, or capture a genuinely new failure mode.\n- Carry related bug ids or explicit `no related bug found` evidence into the active plan or handoff.\n- If the slice already has a named failure mode or repeated-debug loop, escalate into `casebook-bug-capture` in the same turn instead of deferring durable bug memory.\n- Before invoking `casebook-bug-capture`, gather the minimum intake evidence the\n  backend now requires: `component`, `reproducibility`, `impact`,\n  `environment`, `detected by`, `failure signature`, `trigger path`,\n  `ownership`, `blast radius`, `SLO\u002FSLA impact`, `data risk`,\n  `security\u002Fcompliance`, and `invariant violated`.\n- Keep `reproducibility` to one compact token such as `High`, `Medium`, `Low`,\n  `Always`, `Intermittent`, or `Consistent`. Put repro commands and evidence in\n  `trigger path`, `failure signature`, `environment`, or `description`.\n- Run `odylith casebook validate --repo-root .` when checking source truth\n  without rendering; `odylith casebook refresh` is expected to stop before\n  generated writes when source validation fails.\n- If that evidence is still missing, keep the slice in investigation mode\n  instead of creating a new bug record with partial or placeholder truth.\n",{},"main","6d249fbca9cd8c41d45e6e2e90a72745cd954ce6","odylith\u002Fskills\u002Fodylith-casebook-bug-preflight",3,"https:\u002F\u002Fgithub.com\u002Fodylith\u002Fodylith","https:\u002F\u002Fodylith.ai","https:\u002F\u002Fgithub.com\u002Fodylith","2026-10-25 01:05:33",{"source":7,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add odylith\u002Fodylith --skill odylith-casebook-bug-preflight",{"tool":39,"command":40},"bunx","bunx skills add odylith\u002Fodylith --skill odylith-casebook-bug-preflight",{"tool":42,"command":43},"pnpm","pnpm dlx skills add odylith\u002Fodylith --skill odylith-casebook-bug-preflight","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fodylith\u002Fodylith\u002Fblob\u002Fmain\u002Fodylith\u002Fskills\u002Fodylith-casebook-bug-preflight\u002FSKILL.md",true,[],[48,60,72,89,105,122],{"skillNo":49,"name":50,"nameZh":6,"description":51,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":52,"categories":53,"keywords":54,"publishedAt":21},"01M6NDHJPSYZGHRX4S392CCQQE","odylith-version","Inspect the pinned, active, and locally available Odylith versions.","https:\u002F\u002Fgithub.com\u002Fodylith\u002Fodylith\u002Fblob\u002Fmain\u002Fsrc\u002Fodylith\u002Fbundle\u002Fassets\u002Fproject-root\u002F.claude\u002Fskills\u002Fodylith-version\u002FSKILL.md",[],[55,56,57,58,59],"odylith version","version","inspect","true","active",{"skillNo":61,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":21},"01M6NDHEGHCN2ARB3MJVKJC1PY","odylith-sync","Refresh governed Odylith surfaces for the current changed slice.","https:\u002F\u002Fgithub.com\u002Fodylith\u002Fodylith\u002Fblob\u002Fmain\u002Fsrc\u002Fodylith\u002Fbundle\u002Fassets\u002Fproject-root\u002F.claude\u002Fskills\u002Fodylith-sync\u002FSKILL.md",[],[67,68,69,70,71],"sync","odylith sync","surfaces","for","refresh",{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":21},"01M6NDHBJ21XYP1SHNV2ABS4FJ","odylith-subagent-router","Choose local execution versus bounded delegation for Odylith slices and shape routed payloads.","https:\u002F\u002Fgithub.com\u002Fodylith\u002Fodylith\u002Fblob\u002Fmain\u002Fsrc\u002Fodylith\u002Fbundle\u002Fassets\u002Fproject-root\u002F.claude\u002Fskills\u002Fodylith-subagent-router\u002FSKILL.md",[],[79,80,81,82,83,84,85,86,87,58,70,88],"subagent","router","odylith subagent router","payloads","delegation","execution","choose","shape","local","bounded",{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":21},"01M6NDH8FPCQB4TBXDZGKZEX43","odylith-subagent-orchestrator","Plan Odylith delegation ownership, bounded fanout, and merge-safe orchestration.","https:\u002F\u002Fgithub.com\u002Fodylith\u002Fodylith\u002Fblob\u002Fmain\u002Fsrc\u002Fodylith\u002Fbundle\u002Fassets\u002Fproject-root\u002F.claude\u002Fskills\u002Fodylith-subagent-orchestrator\u002FSKILL.md",[],[96,97,79,98,99,58,88,100,101,102,103,104,83],"subagent orchestrator","orchestrator","odylith subagent orchestrator","ownership","plan","fanout","safe","orchestration","merge",{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":21},"01M6NDGT24T77XP3714G3YWTQQ","odylith-start","Run the repo-local Odylith startup contract first, before context\u002Fsearch fan out.","https:\u002F\u002Fgithub.com\u002Fodylith\u002Fodylith\u002Fblob\u002Fmain\u002Fsrc\u002Fodylith\u002Fbundle\u002Fassets\u002Fproject-root\u002F.claude\u002Fskills\u002Fodylith-start\u002FSKILL.md",[],[112,113,114,115,116,117,118,119,87,120,121],"start","odylith start","search","run","startup","first","repo","context","contract","contract first",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":6,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":21},"01M6NDGNVNGNAFYF76GXJ4CAB4","odylith-show-me","Use when the operator asks what Odylith can do for a repo, requests an advisory repo demo, or asks for the clean scenario-aware show-me output.","https:\u002F\u002Fgithub.com\u002Fodylith\u002Fodylith\u002Fblob\u002Fmain\u002Fsrc\u002Fodylith\u002Fbundle\u002Fassets\u002Fproject-root\u002F.claude\u002Fskills\u002Fodylith-show-me\u002FSKILL.md",[],[129,130,131,132,133,118,134,135,136,137,138,139,140,141,70,142],"odylith show me","me","show me","show","demo","use","clean","do","advisory","scenario","output","requests","can","operator"]