[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f3n5tltgctdr36":3,"$f19e0hyn6r2g1v":67},{"sha":4,"committedAt":5,"fetchedAt":6,"source":7,"skill":8},"7aa5ba4c205f98409794c00174e56a91961ab4f2","2026-09-04T13:06:11.000Z","2026-09-04T14:49:55.983Z","github",{"slug":9,"name":10,"description":11,"tags":12,"author":17,"authorUrl":18,"badges":19,"fileCount":23,"totalBytes":24,"tree":25,"errors":66},"docs-discipline","Docs Discipline","The three-tier docs model (handovers, living wiki, frozen specs) with a handover skill and a mechanical wiki-parity test.",[13,14,15,16],"docs","handovers","wiki","process","Patrity","https:\u002F\u002Fgithub.com\u002FPatrity",[20,21,22],"skills","rules","claude-md",7,17612,[26,35,60,63],{"name":21,"path":21,"type":27,"children":28},"dir",[29],{"name":30,"path":31,"type":32,"size":33,"kind":34},"docs.md","rules\u002Fdocs.md","file",1941,"text",{"name":20,"path":20,"type":27,"children":36},[37,45],{"name":38,"path":39,"type":27,"children":40},"handover","skills\u002Fhandover",[41],{"name":42,"path":43,"type":32,"size":44,"kind":34},"SKILL.md","skills\u002Fhandover\u002FSKILL.md",3462,{"name":46,"path":47,"type":27,"children":48},"wiki-parity","skills\u002Fwiki-parity",[49,53,56],{"name":50,"path":51,"type":32,"size":52,"kind":34},"_systems.example.json","skills\u002Fwiki-parity\u002F_systems.example.json",783,{"name":42,"path":54,"type":32,"size":55,"kind":34},"skills\u002Fwiki-parity\u002FSKILL.md",3909,{"name":57,"path":58,"type":32,"size":59,"kind":34},"wiki-parity.test.ts","skills\u002Fwiki-parity\u002Fwiki-parity.test.ts",3050,{"name":61,"path":61,"type":32,"size":62,"kind":34},"CLAUDE.md",892,{"name":64,"path":64,"type":32,"size":65,"kind":34},"README.md",3575,[],{"path":64,"language":68,"size":65,"kind":34,"content":69,"frontmatterRaw":70,"body":71,"data":719},"markdown","---\nname: Docs Discipline\ndescription: The three-tier docs model (handovers, living wiki, frozen specs) with a handover skill and a mechanical wiki-parity test.\ntags: [docs, handovers, wiki, process]\nauthor: Patrity\nauthorUrl: https:\u002F\u002Fgithub.com\u002FPatrity\n---\n\n# Docs Discipline\n\nThree tiers, one job each, and a test that stops the living tier from rotting.\n\n| Tier | Path | Answers | Lifetime |\n| --- | --- | --- | --- |\n| Handover | `docs\u002Fhandovers\u002F` | What shipped, what was deferred, the next seam | Written before hand-off, updated through acceptance |\n| Wiki | `docs\u002Fwiki\u002F` | How each system works **today** | Living — updated in the change that ships the behaviour |\n| Spec \u002F plan | `docs\u002Fsuperpowers\u002F{specs,plans}\u002F` | What we intended, in what order | Frozen at brainstorm time |\n\n## What's inside\n\n| Path | Purpose |\n| --- | --- |\n| `skills\u002Fhandover\u002F` | When to write a handover, the frontmatter, the four sections, and updating it through acceptance. |\n| `skills\u002Fwiki-parity\u002F` | The `_systems.json` registry, the status ladder, and a vitest that fails when the wiki and the directory disagree. |\n| `skills\u002Fwiki-parity\u002Fwiki-parity.test.ts` | The test itself — copy it into your project's test directory. |\n| `skills\u002Fwiki-parity\u002F_systems.example.json` | A starting registry to copy to `docs\u002Fwiki\u002F_systems.json`. |\n| `rules\u002Fdocs.md` | Fires on anything under `docs\u002F` — the tier model and the parity rule, pointing at both skills. |\n| `CLAUDE.md` | A pointer block to paste into your project's `CLAUDE.md`. |\n\n## Why a test and not a reminder\n\nThe recurring failure is not that people dislike docs — it is that no single code change obviously\n\"belongs\" to the page that describes it. So the page keeps saying a deployed system is unbuilt, and\na later session reads it and plans work that already exists. `docs\u002Fwiki\u002F_systems.json` names every\nsystem and its page; the test asserts every registered page exists and every page is registered.\nAdding a page without registering it fails the suite, which puts the decision in the commit that\ncreated the drift rather than in a docs pass that never happens.\n\nThe test does not try to infer whether a system is \"really\" shipped — that would be a test nobody\ntrusts. It enforces the mechanical half and leaves the status to the change that ships the system.\n\n## Install\n\n```bash\nunzip docs-discipline.zip\nmkdir -p .claude\u002Fskills .claude\u002Frules docs\u002Fwiki test\u002Fdocs\ncp -R docs-discipline\u002Fskills\u002F. .claude\u002Fskills\u002F\ncp -R docs-discipline\u002Frules\u002F. .claude\u002Frules\u002F\ncat docs-discipline\u002FCLAUDE.md >> CLAUDE.md\n\n# wire the parity test into your own suite\ncp .claude\u002Fskills\u002Fwiki-parity\u002F_systems.example.json docs\u002Fwiki\u002F_systems.json\ncp .claude\u002Fskills\u002Fwiki-parity\u002Fwiki-parity.test.ts test\u002Fdocs\u002Fwiki-parity.test.ts\n```\n\nThen edit `docs\u002Fwiki\u002F_systems.json` so it lists your systems, and check the test's location\nmatches your runner's `include` glob. The first run usually fails with a list of unregistered\npages — that list is the backlog.\n\n## Requirements\n\n- A vitest-compatible runner for `wiki-parity.test.ts` (the file imports `vitest`, `node:fs` and\n  `node:path` only; port its five assertions to any other runner in a few minutes).\n- Nothing at all for the handover skill.\n\n## Companion bundles\n\n- **[`iterative-spec-design`](\u002Fskill\u002Fiterative-spec-design)** — how the frozen tier gets written in\n  the first place, section by section.\n- **[`quality-hooks`](\u002Fskill\u002Fquality-hooks)** — the `PreCompact` hook that asks whether the session\n  learned something worth writing down, while the context that learned it still exists.\n","name: Docs Discipline\ndescription: The three-tier docs model (handovers, living wiki, frozen specs) with a handover skill and a mechanical wiki-parity test.\ntags: [docs, handovers, wiki, process]\nauthor: Patrity\nauthorUrl: https:\u002F\u002Fgithub.com\u002FPatrity",{"type":72,"children":73},"root",[74,80,86,212,219,368,374,386,391,397,587,607,613,659,665,713],{"type":75,"tag":76,"props":77,"children":78},"element","h1",{"id":9},[79],{"type":34,"value":10},{"type":75,"tag":81,"props":82,"children":83},"p",{},[84],{"type":34,"value":85},"Three tiers, one job each, and a test that stops the living tier from rotting.",{"type":75,"tag":87,"props":88,"children":89},"table",{},[90,119],{"type":75,"tag":91,"props":92,"children":93},"thead",{},[94],{"type":75,"tag":95,"props":96,"children":97},"tr",{},[98,104,109,114],{"type":75,"tag":99,"props":100,"children":101},"th",{},[102],{"type":34,"value":103},"Tier",{"type":75,"tag":99,"props":105,"children":106},{},[107],{"type":34,"value":108},"Path",{"type":75,"tag":99,"props":110,"children":111},{},[112],{"type":34,"value":113},"Answers",{"type":75,"tag":99,"props":115,"children":116},{},[117],{"type":34,"value":118},"Lifetime",{"type":75,"tag":120,"props":121,"children":122},"tbody",{},[123,152,185],{"type":75,"tag":95,"props":124,"children":125},{},[126,132,142,147],{"type":75,"tag":127,"props":128,"children":129},"td",{},[130],{"type":34,"value":131},"Handover",{"type":75,"tag":127,"props":133,"children":134},{},[135],{"type":75,"tag":136,"props":137,"children":139},"code",{"className":138},[],[140],{"type":34,"value":141},"docs\u002Fhandovers\u002F",{"type":75,"tag":127,"props":143,"children":144},{},[145],{"type":34,"value":146},"What shipped, what was deferred, the next seam",{"type":75,"tag":127,"props":148,"children":149},{},[150],{"type":34,"value":151},"Written before hand-off, updated through acceptance",{"type":75,"tag":95,"props":153,"children":154},{},[155,160,169,180],{"type":75,"tag":127,"props":156,"children":157},{},[158],{"type":34,"value":159},"Wiki",{"type":75,"tag":127,"props":161,"children":162},{},[163],{"type":75,"tag":136,"props":164,"children":166},{"className":165},[],[167],{"type":34,"value":168},"docs\u002Fwiki\u002F",{"type":75,"tag":127,"props":170,"children":171},{},[172,174],{"type":34,"value":173},"How each system works ",{"type":75,"tag":175,"props":176,"children":177},"strong",{},[178],{"type":34,"value":179},"today",{"type":75,"tag":127,"props":181,"children":182},{},[183],{"type":34,"value":184},"Living — updated in the change that ships the behaviour",{"type":75,"tag":95,"props":186,"children":187},{},[188,193,202,207],{"type":75,"tag":127,"props":189,"children":190},{},[191],{"type":34,"value":192},"Spec \u002F plan",{"type":75,"tag":127,"props":194,"children":195},{},[196],{"type":75,"tag":136,"props":197,"children":199},{"className":198},[],[200],{"type":34,"value":201},"docs\u002Fsuperpowers\u002F{specs,plans}\u002F",{"type":75,"tag":127,"props":203,"children":204},{},[205],{"type":34,"value":206},"What we intended, in what order",{"type":75,"tag":127,"props":208,"children":209},{},[210],{"type":34,"value":211},"Frozen at brainstorm time",{"type":75,"tag":213,"props":214,"children":216},"h2",{"id":215},"whats-inside",[217],{"type":34,"value":218},"What's inside",{"type":75,"tag":87,"props":220,"children":221},{},[222,237],{"type":75,"tag":91,"props":223,"children":224},{},[225],{"type":75,"tag":95,"props":226,"children":227},{},[228,232],{"type":75,"tag":99,"props":229,"children":230},{},[231],{"type":34,"value":108},{"type":75,"tag":99,"props":233,"children":234},{},[235],{"type":34,"value":236},"Purpose",{"type":75,"tag":120,"props":238,"children":239},{},[240,257,282,298,322,346],{"type":75,"tag":95,"props":241,"children":242},{},[243,252],{"type":75,"tag":127,"props":244,"children":245},{},[246],{"type":75,"tag":136,"props":247,"children":249},{"className":248},[],[250],{"type":34,"value":251},"skills\u002Fhandover\u002F",{"type":75,"tag":127,"props":253,"children":254},{},[255],{"type":34,"value":256},"When to write a handover, the frontmatter, the four sections, and updating it through acceptance.",{"type":75,"tag":95,"props":258,"children":259},{},[260,269],{"type":75,"tag":127,"props":261,"children":262},{},[263],{"type":75,"tag":136,"props":264,"children":266},{"className":265},[],[267],{"type":34,"value":268},"skills\u002Fwiki-parity\u002F",{"type":75,"tag":127,"props":270,"children":271},{},[272,274,280],{"type":34,"value":273},"The ",{"type":75,"tag":136,"props":275,"children":277},{"className":276},[],[278],{"type":34,"value":279},"_systems.json",{"type":34,"value":281}," registry, the status ladder, and a vitest that fails when the wiki and the directory disagree.",{"type":75,"tag":95,"props":283,"children":284},{},[285,293],{"type":75,"tag":127,"props":286,"children":287},{},[288],{"type":75,"tag":136,"props":289,"children":291},{"className":290},[],[292],{"type":34,"value":58},{"type":75,"tag":127,"props":294,"children":295},{},[296],{"type":34,"value":297},"The test itself — copy it into your project's test directory.",{"type":75,"tag":95,"props":299,"children":300},{},[301,309],{"type":75,"tag":127,"props":302,"children":303},{},[304],{"type":75,"tag":136,"props":305,"children":307},{"className":306},[],[308],{"type":34,"value":51},{"type":75,"tag":127,"props":310,"children":311},{},[312,314,320],{"type":34,"value":313},"A starting registry to copy to ",{"type":75,"tag":136,"props":315,"children":317},{"className":316},[],[318],{"type":34,"value":319},"docs\u002Fwiki\u002F_systems.json",{"type":34,"value":321},".",{"type":75,"tag":95,"props":323,"children":324},{},[325,333],{"type":75,"tag":127,"props":326,"children":327},{},[328],{"type":75,"tag":136,"props":329,"children":331},{"className":330},[],[332],{"type":34,"value":31},{"type":75,"tag":127,"props":334,"children":335},{},[336,338,344],{"type":34,"value":337},"Fires on anything under ",{"type":75,"tag":136,"props":339,"children":341},{"className":340},[],[342],{"type":34,"value":343},"docs\u002F",{"type":34,"value":345}," — the tier model and the parity rule, pointing at both skills.",{"type":75,"tag":95,"props":347,"children":348},{},[349,357],{"type":75,"tag":127,"props":350,"children":351},{},[352],{"type":75,"tag":136,"props":353,"children":355},{"className":354},[],[356],{"type":34,"value":61},{"type":75,"tag":127,"props":358,"children":359},{},[360,362,367],{"type":34,"value":361},"A pointer block to paste into your project's ",{"type":75,"tag":136,"props":363,"children":365},{"className":364},[],[366],{"type":34,"value":61},{"type":34,"value":321},{"type":75,"tag":213,"props":369,"children":371},{"id":370},"why-a-test-and-not-a-reminder",[372],{"type":34,"value":373},"Why a test and not a reminder",{"type":75,"tag":81,"props":375,"children":376},{},[377,379,384],{"type":34,"value":378},"The recurring failure is not that people dislike docs — it is that no single code change obviously\n\"belongs\" to the page that describes it. So the page keeps saying a deployed system is unbuilt, and\na later session reads it and plans work that already exists. ",{"type":75,"tag":136,"props":380,"children":382},{"className":381},[],[383],{"type":34,"value":319},{"type":34,"value":385}," names every\nsystem and its page; the test asserts every registered page exists and every page is registered.\nAdding a page without registering it fails the suite, which puts the decision in the commit that\ncreated the drift rather than in a docs pass that never happens.",{"type":75,"tag":81,"props":387,"children":388},{},[389],{"type":34,"value":390},"The test does not try to infer whether a system is \"really\" shipped — that would be a test nobody\ntrusts. It enforces the mechanical half and leaves the status to the change that ships the system.",{"type":75,"tag":213,"props":392,"children":394},{"id":393},"install",[395],{"type":34,"value":396},"Install",{"type":75,"tag":398,"props":399,"children":404},"pre",{"className":400,"code":401,"language":402,"meta":403,"style":403},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark","unzip docs-discipline.zip\nmkdir -p .claude\u002Fskills .claude\u002Frules docs\u002Fwiki test\u002Fdocs\ncp -R docs-discipline\u002Fskills\u002F. .claude\u002Fskills\u002F\ncp -R docs-discipline\u002Frules\u002F. .claude\u002Frules\u002F\ncat docs-discipline\u002FCLAUDE.md >> CLAUDE.md\n\n# wire the parity test into your own suite\ncp .claude\u002Fskills\u002Fwiki-parity\u002F_systems.example.json docs\u002Fwiki\u002F_systems.json\ncp .claude\u002Fskills\u002Fwiki-parity\u002Fwiki-parity.test.ts test\u002Fdocs\u002Fwiki-parity.test.ts\n","bash","",[405],{"type":75,"tag":136,"props":406,"children":407},{"__ignoreMap":403},[408,426,461,485,507,532,542,551,569],{"type":75,"tag":409,"props":410,"children":413},"span",{"class":411,"line":412},"line",1,[414,420],{"type":75,"tag":409,"props":415,"children":417},{"style":416},"--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0",[418],{"type":34,"value":419},"unzip",{"type":75,"tag":409,"props":421,"children":423},{"style":422},"--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF",[424],{"type":34,"value":425}," docs-discipline.zip\n",{"type":75,"tag":409,"props":427,"children":429},{"class":411,"line":428},2,[430,435,441,446,451,456],{"type":75,"tag":409,"props":431,"children":432},{"style":416},[433],{"type":34,"value":434},"mkdir",{"type":75,"tag":409,"props":436,"children":438},{"style":437},"--shiki-light:#91B859;--shiki-default:#005CC5;--shiki-dark:#79B8FF",[439],{"type":34,"value":440}," -p",{"type":75,"tag":409,"props":442,"children":443},{"style":422},[444],{"type":34,"value":445}," .claude\u002Fskills",{"type":75,"tag":409,"props":447,"children":448},{"style":422},[449],{"type":34,"value":450}," .claude\u002Frules",{"type":75,"tag":409,"props":452,"children":453},{"style":422},[454],{"type":34,"value":455}," docs\u002Fwiki",{"type":75,"tag":409,"props":457,"children":458},{"style":422},[459],{"type":34,"value":460}," test\u002Fdocs\n",{"type":75,"tag":409,"props":462,"children":464},{"class":411,"line":463},3,[465,470,475,480],{"type":75,"tag":409,"props":466,"children":467},{"style":416},[468],{"type":34,"value":469},"cp",{"type":75,"tag":409,"props":471,"children":472},{"style":437},[473],{"type":34,"value":474}," -R",{"type":75,"tag":409,"props":476,"children":477},{"style":422},[478],{"type":34,"value":479}," docs-discipline\u002Fskills\u002F.",{"type":75,"tag":409,"props":481,"children":482},{"style":422},[483],{"type":34,"value":484}," .claude\u002Fskills\u002F\n",{"type":75,"tag":409,"props":486,"children":488},{"class":411,"line":487},4,[489,493,497,502],{"type":75,"tag":409,"props":490,"children":491},{"style":416},[492],{"type":34,"value":469},{"type":75,"tag":409,"props":494,"children":495},{"style":437},[496],{"type":34,"value":474},{"type":75,"tag":409,"props":498,"children":499},{"style":422},[500],{"type":34,"value":501}," docs-discipline\u002Frules\u002F.",{"type":75,"tag":409,"props":503,"children":504},{"style":422},[505],{"type":34,"value":506}," .claude\u002Frules\u002F\n",{"type":75,"tag":409,"props":508,"children":510},{"class":411,"line":509},5,[511,516,521,527],{"type":75,"tag":409,"props":512,"children":513},{"style":416},[514],{"type":34,"value":515},"cat",{"type":75,"tag":409,"props":517,"children":518},{"style":422},[519],{"type":34,"value":520}," docs-discipline\u002FCLAUDE.md",{"type":75,"tag":409,"props":522,"children":524},{"style":523},"--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583",[525],{"type":34,"value":526}," >>",{"type":75,"tag":409,"props":528,"children":529},{"style":422},[530],{"type":34,"value":531}," CLAUDE.md\n",{"type":75,"tag":409,"props":533,"children":535},{"class":411,"line":534},6,[536],{"type":75,"tag":409,"props":537,"children":539},{"emptyLinePlaceholder":538},true,[540],{"type":34,"value":541},"\n",{"type":75,"tag":409,"props":543,"children":544},{"class":411,"line":23},[545],{"type":75,"tag":409,"props":546,"children":548},{"style":547},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit",[549],{"type":34,"value":550},"# wire the parity test into your own suite\n",{"type":75,"tag":409,"props":552,"children":554},{"class":411,"line":553},8,[555,559,564],{"type":75,"tag":409,"props":556,"children":557},{"style":416},[558],{"type":34,"value":469},{"type":75,"tag":409,"props":560,"children":561},{"style":422},[562],{"type":34,"value":563}," .claude\u002Fskills\u002Fwiki-parity\u002F_systems.example.json",{"type":75,"tag":409,"props":565,"children":566},{"style":422},[567],{"type":34,"value":568}," docs\u002Fwiki\u002F_systems.json\n",{"type":75,"tag":409,"props":570,"children":572},{"class":411,"line":571},9,[573,577,582],{"type":75,"tag":409,"props":574,"children":575},{"style":416},[576],{"type":34,"value":469},{"type":75,"tag":409,"props":578,"children":579},{"style":422},[580],{"type":34,"value":581}," .claude\u002Fskills\u002Fwiki-parity\u002Fwiki-parity.test.ts",{"type":75,"tag":409,"props":583,"children":584},{"style":422},[585],{"type":34,"value":586}," test\u002Fdocs\u002Fwiki-parity.test.ts\n",{"type":75,"tag":81,"props":588,"children":589},{},[590,592,597,599,605],{"type":34,"value":591},"Then edit ",{"type":75,"tag":136,"props":593,"children":595},{"className":594},[],[596],{"type":34,"value":319},{"type":34,"value":598}," so it lists your systems, and check the test's location\nmatches your runner's ",{"type":75,"tag":136,"props":600,"children":602},{"className":601},[],[603],{"type":34,"value":604},"include",{"type":34,"value":606}," glob. The first run usually fails with a list of unregistered\npages — that list is the backlog.",{"type":75,"tag":213,"props":608,"children":610},{"id":609},"requirements",[611],{"type":34,"value":612},"Requirements",{"type":75,"tag":614,"props":615,"children":616},"ul",{},[617,654],{"type":75,"tag":618,"props":619,"children":620},"li",{},[621,623,628,630,636,638,644,646,652],{"type":34,"value":622},"A vitest-compatible runner for ",{"type":75,"tag":136,"props":624,"children":626},{"className":625},[],[627],{"type":34,"value":57},{"type":34,"value":629}," (the file imports ",{"type":75,"tag":136,"props":631,"children":633},{"className":632},[],[634],{"type":34,"value":635},"vitest",{"type":34,"value":637},", ",{"type":75,"tag":136,"props":639,"children":641},{"className":640},[],[642],{"type":34,"value":643},"node:fs",{"type":34,"value":645}," and\n",{"type":75,"tag":136,"props":647,"children":649},{"className":648},[],[650],{"type":34,"value":651},"node:path",{"type":34,"value":653}," only; port its five assertions to any other runner in a few minutes).",{"type":75,"tag":618,"props":655,"children":656},{},[657],{"type":34,"value":658},"Nothing at all for the handover skill.",{"type":75,"tag":213,"props":660,"children":662},{"id":661},"companion-bundles",[663],{"type":34,"value":664},"Companion bundles",{"type":75,"tag":614,"props":666,"children":667},{},[668,687],{"type":75,"tag":618,"props":669,"children":670},{},[671,685],{"type":75,"tag":175,"props":672,"children":673},{},[674],{"type":75,"tag":675,"props":676,"children":678},"a",{"href":677},"\u002Fskill\u002Fiterative-spec-design",[679],{"type":75,"tag":136,"props":680,"children":682},{"className":681},[],[683],{"type":34,"value":684},"iterative-spec-design",{"type":34,"value":686}," — how the frozen tier gets written in\nthe first place, section by section.",{"type":75,"tag":618,"props":688,"children":689},{},[690,703,705,711],{"type":75,"tag":175,"props":691,"children":692},{},[693],{"type":75,"tag":675,"props":694,"children":696},{"href":695},"\u002Fskill\u002Fquality-hooks",[697],{"type":75,"tag":136,"props":698,"children":700},{"className":699},[],[701],{"type":34,"value":702},"quality-hooks",{"type":34,"value":704}," — the ",{"type":75,"tag":136,"props":706,"children":708},{"className":707},[],[709],{"type":34,"value":710},"PreCompact",{"type":34,"value":712}," hook that asks whether the session\nlearned something worth writing down, while the context that learned it still exists.",{"type":75,"tag":714,"props":715,"children":716},"style",{},[717],{"type":34,"value":718},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"name":10,"description":11,"tags":720,"author":17,"authorUrl":18},[13,14,15,16]]