{
  "lock": {
    "schemaVersion": 1,
    "repository": "https://github.com/konglong87/feeling-to-jargon",
    "commit": "4c245f7a43d143dcfbd194b768ee1c4d8aa8ff8d",
    "committedAt": "2026-10-21T10:02:37+08:00",
    "importedAt": "2026-10-21T02:15:58.967Z",
    "license": "MIT",
    "files": {
      ".gitignore": "88c950402f9ef2e92eaecfea5a30c0b79bf22dc83c6c5cba7d9c50ce8e2a8388",
      "LICENSE": "866504ae4413379757247851144543c0549f0063012f727939d2e81cb3cd7d79",
      "README.md": "222c70fc2aad4259c9d7d1ff17ba9c5b26b4716723afa906d87ec35b4e63d17a",
      "index/domains/agri-food-cooking.json": "7b32b8cda634b64da798dd2dfa627cbad54993ff8078fbb93719b902e6a7c34b",
      "index/domains/ai-aigc-meta-skills.json": "2fd56cebbc026487f378e09cead6e8e8ce0b7156e811dd27ddc0628230211aaf",
      "index/domains/architecture-civil-space.json": "f3de4b727702e655f747a868cbe3f83fbf5a012fec6875822ac32e8554d4a1a1",
      "index/domains/arts-aesthetics-design.json": "5116ae1154a14f6f4f5b77833f180ed0260f1ff7facccb2fde511f6682bad016",
      "index/domains/astronomy-earth-environment.json": "b93d63ea3a6d1f4912a391ff7e64caa4198a58e03ab5f121d623465e5df6bc15",
      "index/domains/biology-medicine-health.json": "34ae31ae6ec006b1311b9b11dea226fc684bbfeda5edd2c385e70a37afa9acf9",
      "index/domains/communications-electronics-hardware.json": "721cdf8462783ff05b3f4d65a636cb1ef7eb1d1a412bca019b60d1ea1e563191",
      "index/domains/digital-product-uiux.json": "cb76ef39a32707327acb38dc33bc05e7bad5f696745d747c3f3384644b2b1b81",
      "index/domains/economics-management-finance.json": "d837810bd14027da3f99a494e191ee98ff957ef833557e51567a2747ac47d7af",
      "index/domains/education-sports.json": "ac0f7b7bf97fbc97924ade3a4d6ef92e8ba77639964939ab84e2d4ee651123d0",
      "index/domains/history-geography-travel.json": "32f79213df1170224c53a61d9c1624a34e5c5f0aa215a04b7292270f79e6bc8e",
      "index/domains/industrial-mechanical-manufacturing.json": "f384b1594c5bd69de9146acdf43d29a8aa5182ce6006c030f24d8b3ae4285d96",
      "index/domains/language-literature-writing.json": "b8cfee9d0f5caf4d79152da88c166aba9d985a8a5762c43bb58e751e3f530c2e",
      "index/domains/law-politics-military.json": "13f7f94bc2e80828b6c5ac24e12f2f5003438bc39483359c1b6dcfd368c7607e",
      "index/domains/math-chemistry-statistics.json": "33da1862e0804fb54c294e66b2e8fb4f28f19bf66bb5b308d5fd75d7bfff3040",
      "index/domains/news-media-advertising.json": "21a0e4a394ea2ac729ea903fdc5cf530a259dc3db7517f89b4f77756d5fabba5",
      "index/domains/philosophy-psychology-religion.json": "4ecd5ea73b6051446194220f0bc933d8f66f313cf379832dc241bcccd3b38d97",
      "index/domains/software-engineering-architecture.json": "0492fed0bb8705d1736f89aa34fa3feda70a37da6e052355ce513f97ae4c1b87",
      "index/domains/workplace-communication.json": "6dfd75433e93578f720aac7dc037808b33ed4790f3e7ed7afccffac9ec399517",
      "index/intents/agri-food-cooking/core.json": "93771e153353d230ae456f36606b429fb88b9807bf7f7470dca6179d41957781",
      "index/intents/ai-aigc-meta-skills/camera-language.json": "7f788c0fc13e8313eb398fc8674bc49afd1b00cd1447a99d0b9577fc9013ea3c",
      "index/intents/ai-aigc-meta-skills/character-ip.json": "778961544dbca40626182f64c99ee1ca9984d8884dc3e6eecbb79695b3e6aa18",
      "index/intents/ai-aigc-meta-skills/composition.json": "a6dbb35d68bbc43e3eeb8cf72ad39d24079046c484cf992fffa321f01c82cb5c",
      "index/intents/ai-aigc-meta-skills/image-prompt.json": "a333cac9e709849a617582fd33197cca4195105d8f10c761f2e91fceb15b7f3a",
      "index/intents/ai-aigc-meta-skills/material-style.json": "e69b7ea43326208c33bd001feff62ff31786a5fcf674b5b36f7eccc42f4f5e37",
      "index/intents/ai-aigc-meta-skills/motion-control.json": "84ead2d11d7533532f8a8be66432891dcf2c93da88262e3450cbc775664a4ac6",
      "index/intents/ai-aigc-meta-skills/negative-prompt.json": "b482f63871975bea6ff666fe70ad8d33e6fd92090772b63f327a1ba504178cdc",
      "index/intents/ai-aigc-meta-skills/tool-adapter.json": "2da7dc5e6eec9a380fba9dd5057176820abb3552b7bb58667e2b813e88af3ea0",
      "index/intents/ai-aigc-meta-skills/video-prompt.json": "b1dc29341e07c7f39b77045c008446e346deddc64e59c64e6fddf400945e8f6a",
      "index/intents/architecture-civil-space/core.json": "bf383b04647bb4377622360540c1fd0decc21e1e179fd05bddb5ee649cb58ae1",
      "index/intents/arts-aesthetics-design/core.json": "0a7dd464916afc84a46f197c367ecda0ceac24bd3c649be7eddce36cbe51f1ad",
      "index/intents/astronomy-earth-environment/core.json": "31c4fb475fc71c4e8e243030e80e618df162b46d0be76fdbbbd2b9ee0d3fa235",
      "index/intents/biology-medicine-health/core.json": "347417814df972ef4ee0299182b02fc41f8e93d3aec0cf9c336429679ff75a55",
      "index/intents/communications-electronics-hardware/core.json": "33483f75f6eea984c8bb6bd735aa659bfe8913b7bb7195944289810b7aadb39b",
      "index/intents/digital-product-uiux/3d-web-interface.json": "1a5fcab59579acffb384f995b33e9d6be023cb15bba6d9be47e95c513c0fb5e3",
      "index/intents/digital-product-uiux/accessibility.json": "7f914f7b3f4e1d7ea0e3e3cca1b7c20e2ca4fd8fd1bcec3cc83214a567032590",
      "index/intents/digital-product-uiux/animation-tool-adapter.json": "9443f9503dba2713659991a41e996d33d7628bb3650f6e779f8c7675a0dc1a74",
      "index/intents/digital-product-uiux/component-design.json": "7cabf509e190652331fb8a6f8c4cb93a8d8407a538cf45d68c01633ea2545891",
      "index/intents/digital-product-uiux/continuous-interaction.json": "3e05dd859b7f15360b850a7c4f31af37f94b08092072d23f6afa22f08c7a145e",
      "index/intents/digital-product-uiux/dashboard-design.json": "cfbd6845a2451af75ed87ee7aafa299ec1ef7e37187d79ae4b57e76c09aa0d62",
      "index/intents/digital-product-uiux/design-system.json": "a7e3e2a8a740ed4e5a4afe19d27a46b2f752c6894e616baa17e9018059c16be1",
      "index/intents/digital-product-uiux/design-tokens.json": "b68d4acdbda0fb6f4d413b006f191ff7c00bff1aa22a57446e88a020dfcd769a",
      "index/intents/digital-product-uiux/gesture-interaction.json": "b37e61fa72703eb200e3cadc6f3c2d0cd20e18b98baedc8e49629a0594d380c0",
      "index/intents/digital-product-uiux/information-architecture.json": "57a633b77819dcb57a39804b574367b34061a7689a9ce1378b001761d7774a02",
      "index/intents/digital-product-uiux/interaction-motion.json": "3a649b5b21251e1062fdbdf238a627d1f42bbf502445478cc5de5022edc48d68",
      "index/intents/digital-product-uiux/visual-effects.json": "d098d6ee98554080d0ba75242bc2a8a65cd17dd1d4ef2dd6bbaee8d076d428af",
      "index/intents/digital-product-uiux/visual-layout.json": "5bed08588341384bbba5a943413245a12eca635f09f86386ad757abd7c9aeab2",
      "index/intents/economics-management-finance/core.json": "c3fc7d51608d28c14380850d66f6724ab0ef8daf48cdcad6d7f279aa566f0861",
      "index/intents/education-sports/core.json": "58cf6e216074ef4e3c7abfd05e469cf964fc2ce78641ad17a1fad7f03146843a",
      "index/intents/history-geography-travel/core.json": "0c52869bcbb4db830b282c77fd21b70c220bb9f40bce4e0ab970ceb408be380b",
      "index/intents/industrial-mechanical-manufacturing/core.json": "79ac6df97f061f76a1336d3788727e06c908870ea0d208aa742f33707f08bb77",
      "index/intents/language-literature-writing/core.json": "3cb181c6b26abbf5805445728296f1a9b5c138a7ae0ce63c268384d4245084cc",
      "index/intents/law-politics-military/core.json": "adf352dcddf1fd394c4317c17d54b1c66972c7de6657c9ae3d658cc009ac58a4",
      "index/intents/math-chemistry-statistics/core.json": "fc1724e9f7d184fe649fdd793ca406a547f0d2aef4f2e44dfaa75c9bddc8d87a",
      "index/intents/news-media-advertising/core.json": "445f8e7de5ad3bafd37c72e5b3dce68ec52d1d78829ec7fcc67ad600466fa504",
      "index/intents/philosophy-psychology-religion/core.json": "214f826877020c8a8b0e7d0f4c51b19321b53149747105aea59ec705d6322cac",
      "index/intents/software-engineering-architecture/backend-architecture.json": "a902ba1fbcb2903a15be3e249d476bb957688a901a9396910e432902dfb165a7",
      "index/intents/software-engineering-architecture/desktop-web-mobile.json": "f472f840051fb74a1b59d073e82db565fe8e89ed552827e3474f25d9819a0bc8",
      "index/intents/software-engineering-architecture/frontend-platform.json": "6d47d73be7f1999aa6f462256b3f52e0e34cbda8ea8a8d6ad670d4a790036322",
      "index/intents/software-engineering-architecture/high-availability.json": "6344afb8c2df9bff4b439d3783db3acdcf78ef4f78970a4be65295e165031237",
      "index/intents/software-engineering-architecture/high-concurrency.json": "d93702fcefd4dd407a868e2b468310b2236a5969624c1821ef03d5467ccaecef",
      "index/intents/software-engineering-architecture/idempotency.json": "467d7a509c870c793df4b71bdbce6eece7cb8e35a3c735da1cfe257c4d7e35de",
      "index/intents/software-engineering-architecture/observability.json": "90dc21e06d2a15e7815867c1b01323770418bb4f23b6d99e11156bc431cd07c2",
      "index/intents/software-engineering-architecture/scalability.json": "bc77a5a2322101b6ef6dfe068e5179189e0f68eeca9d8c54c09ed0e5dd25fdc9",
      "index/intents/workplace-communication/execution-language.json": "986cb6a99baf6fb0fc96cbad9a62990102622c994fc519111e66ef999664bfa0",
      "index/intents/workplace-communication/goal-alignment.json": "da55bf7347aa2345e1cfe7816610d1388d9d4eefa86b962625aeb40c1f1c433a",
      "index/intents/workplace-communication/management-terms.json": "7aeef19d3f0b7751c39784b2c1e3b69e7dceb17c252c04982fe4f46428a33f11",
      "index/intents/workplace-communication/project-collaboration.json": "4fd960b6e91e49bcd84bcc8606c4c1e51fb45b6f0ff613d60462efe52fee0f3a",
      "index/intents/workplace-communication/vague-expression.json": "705f5dc6a8276408c247dc1ad12ff5d558ab9392a11e1d84619613f5f71bcbbc",
      "index/leaves.json": "58fa5c94a9d95064d3b753432c74e8c6ca6b3970c5d03e6251e47c7f8c848d16",
      "index/packages.json": "2ff8d2bf93bc2bcd1cff586146a84dffd4d90317231a979595c714deaf772c56",
      "index/root.json": "06d8c87a607b686677bcbe7cf96007fa0d899be15b28b59b1512738a36ba937f",
      "index/runtime.json": "49c59494f03913aab5c5509826a8f1e20f916c31717da7cfe5d6b90e121198b1",
      "scripts/bootstrap-progressive-content.py": "b9ad84ee7947ec928f5a2c3a6b01396e2a1f385d9948aff6da5141b5a475570d",
      "scripts/query-index.py": "39ce9b6276cc2a0a3e7d42acf69b3e080f34e6720f4272b58cd31a5a7f64fcc1",
      "scripts/test-dashboard-patterns.py": "85c47af99ca8139b4f67f66796eef2a169a00414642b5e90138412f06728dec8",
      "scripts/test-progressive-index.py": "011b1677c557bffc695361fdaa710c5fde753fbc48bc36f20c30683057215f66",
      "scripts/validate-index.py": "dddc58af5554ced0c2f1ad2d69da5c4393404556c3e21830e54148ea2db93565",
      "skills/feeling-to-jargon/SKILL.md": "8001ddc5c9eaf492549701b957cab5681141502d1cf0f9b4db37ea51760df66f",
      "templates/aigc/action-sheet.json": "416c3a68134a6230167ecb5d219a6f10101322bcb103154d0f2849357efbbd15",
      "templates/aigc/base-ip.json": "e8a4dbde5bea06c1779a8ad6f79ae82aede8d1a3958611326c79c87b844a366b",
      "templates/aigc/expression-sheet.json": "fce8d52132cb15e40ff1bbf928817fa3c24c02c459460af8844f1182e442ae9e",
      "templates/aigc/lineart-to-3d.json": "5c965b7fe1f436bc50116a6d32f643942c23ec50596aae85ce7607a457f94887",
      "templates/aigc/merchandise-set.json": "909e2aa6c07bef42141c747de4560ab44623aeca176b993c846b84b94432d172",
      "templates/aigc/outfit-sheet.json": "2bf3b329badecd3e16638ba4e073651058b733e4f493e3f9577c5b8001429d82",
      "templates/aigc/plush-texture.json": "73938af0391cf2baee5929389c29662f57cbecd9386c250a983f77a012a42668",
      "templates/aigc/turnaround-3view.json": "ac53560c2401f10fe76d07176d4e76838c1ebac742162693c43969e8ba2074fd",
      "templates/dashboard/dashboard-style-system.json": "ab4799375df0d194275abe5fca20aaf9b01ebcb326574f46cc439bdbea2f818d",
      "terms/agri-food-cooking.json": "1c3588cccb5da78f4ae47646497117e7d3c5d9173477ab2800e9e25780c98568",
      "terms/aigc.json": "dd815ac88bb160438ae6cc894ec971d0dcd0bc3f38ead4fcb39b33bc0400b285",
      "terms/animation-tool-adapter/gsap-core.json": "5f7a4f3ec6a40658cec659edfe0ef7e22066bdeb990f4a22c7556e3d87b5685c",
      "terms/animation-tool-adapter/gsap-frameworks.json": "ab363e8b6a7c15b7efb4f7f213ffb1f08a83e34b78d4e54d66325daa8ec93278",
      "terms/animation-tool-adapter/gsap-performance.json": "72316598e9d71e48ee4dca7107ce819ce159c1f4ad375357d8a9cf3ca44c2468",
      "terms/animation-tool-adapter/gsap-plugins.json": "3c92126717eed9fb0e3c26e44638d7f7cbeb3af8e5b5b666a1bf388a06677185",
      "terms/animation-tool-adapter/gsap-react-lifecycle.json": "35fd30eb72ec85e07b00f93f231f313dd53181f026e82ff50a56226829afc064",
      "terms/animation-tool-adapter/gsap-scrolltrigger.json": "a37f0c8fe8dba3b036f52431f8abc0ed0e6d2247cd85bc77f6abe9e91a3bbe81",
      "terms/animation-tool-adapter/gsap-timeline.json": "7251382012d9714cd5801034a334ad2dc3391cc4e7cf3d2cb7baf0621dec501e",
      "terms/architecture-civil-space.json": "0a852715205b17d75e31c55681adf449ec278ce02533915836f872d2003b5780",
      "terms/arts-aesthetics-design.json": "71c4513f5dc1092bc7f11e694ed9be726dacbf887ff81bd4fbf3c432a1f0fada",
      "terms/astronomy-earth-environment.json": "0e9cd90f13a9bd500e53886f16a060ad3e86e9de6adb7020a44ede26a8f833e4",
      "terms/backend.json": "f59daafeb2afe8b54a22711edd8fac36165ac7f5c10bb808d7a5cee6d48da642",
      "terms/biology-medicine-health.json": "44c1dc579bf3d9f014fa17ba05a3bafb6fb86664555de44b40885df5041f2b31",
      "terms/camera-language/camera-language.json": "ee09b46913823a09956096092d990bcf4b46477a233c096fdd9705330f209089",
      "terms/character-ip/character-ip.json": "d36a98ce592184d981ea1014301fa250077d798d8ecdd5f56e824aca5ef0245a",
      "terms/communications-electronics-hardware.json": "e43e0b0187cf7f6fe4ce4bcd1b3395eb88e52f2dc7684ea5aa6f9245e8ab32f3",
      "terms/component-design/damped-bottom-sheet.json": "af7fa5671714ab22f85cf05c8264abd37356bff1c21bced0ac1e4342a8127619",
      "terms/component-design/diffused-glow-border.json": "a61acfec7e92a3a5459843e56591bfe1debd37938bef2b906c7f367fe2e52cb1",
      "terms/component-design/elastic-press-feedback.json": "e2a4496e77ed83a234503a86302b17cf92cca3553210c7534ca9073828de9033",
      "terms/component-design/fluid-capsule-morph.json": "75617db45e3f9ad839bad7a5200027fea98ad922b117526f02d3d1654098a49b",
      "terms/component-design/magnetic-cursor-odometer.json": "4dc714e9d1d97758aed28e4e53d23c0ed7597046d26104ca843399d497323977",
      "terms/component-design/shared-element-expand.json": "fd4bfdcfb22fd6b2f5115bae95b3b1a1c1f5c777e317cea6e6ffdf15ade278bd",
      "terms/component-design/spring-stagger-flow.json": "c1f131c0f8bd5760b2ea66a9746e7a19b4032e58d543cb4b04dd250047d08413",
      "terms/component-design/tilt-light-panel.json": "a77f17c5eed2005d0df05afed459f7cf27f030eca53f338c9d5fceb97fd592b9",
      "terms/composition/composition-language.json": "14d294177a0ad7c60dbedbdc6def30efe0fa599e5b4694959ee5b7bc4341bf40",
      "terms/dashboard/grid-glass-dashboard.json": "e216ab243256a7261fa5ae56ee7f147c2c5155195968c6d84cb122f8b31bab94",
      "terms/dashboard/grouped-sidebar-dashboard.json": "eaf0802cf7a80fd6f38d76a239164bc55a9f16b2a11d4aad7ab5eb7cefce4d6d",
      "terms/dashboard/high-contrast.json": "51b026a407fcbe795edde8318d8556f08cbbee924ee66a46a4831c272d7ec26e",
      "terms/dashboard/image-led-content.json": "0e0697e63b7d07e99b25e3f20d3ceb06f4814384e7cbd3044799be300d89d250",
      "terms/dashboard/immersive-atmosphere.json": "c39dd533b31bef6344b4c41208097efb847c9ebae79935564ce4721f3e14b3b1",
      "terms/dashboard/layout-patterns.json": "6058d3f8dba8c412616237d404eda6d9b2ba05e95bfc62a405122bb237163f04",
      "terms/dashboard/minimal-data.json": "34f48437b4bfa4e196d5235a3cb378e9ac8a3a9a02b39271484295e5ff507340",
      "terms/dashboard/single-dark-accent-dashboard.json": "1955783c1665ca477b541cf0ab20918f9ea435baa9f46b80905fbe3388537547",
      "terms/dashboard/tonal-dark-dashboard.json": "0a830418dc9d5970bc84124f3ad0e4058dddf893ef1db212149e051fb046f0db",
      "terms/dashboard/warm-minimal.json": "a3ed35e9027197b22db8c5a0e185ce4bb526918be239e934fc12d158aaf4dee0",
      "terms/design-system/living-style-guide-preview.json": "d52c511df3f672c250855558a15f244c41c031e6c2baa1bc1ca95cf47c1ac5ba",
      "terms/design-tokens/token-system.json": "1f7f907f406924a8ffc8ec8519a0e436483992e431e1f7a9aa563df2c1af832d",
      "terms/economics-management-finance.json": "8c49ee00f44ceff66699ad6f69b9c04ee771272b2a88b3126954a5a978117f27",
      "terms/education-sports.json": "29f021930916b8251ba4c30e5bf352efcc94e084d7822b3184e9864479be2d49",
      "terms/history-geography-travel.json": "047f6db1762742a262411d58e155aa3742bcde4d16c3c5fae99bfa943c57af31",
      "terms/image-prompt/prompt-blocks.json": "a8a56219672e0dd9d9cea61c5d1e1a37f2cb92abcc2ebbed779e4cd68f46152c",
      "terms/industrial-mechanical-manufacturing.json": "8160eb690ee23b99b3e90843ecd41d26a00b602b39c45b4e2a59ef6db1655d58",
      "terms/information-architecture/information-hierarchy.json": "2c570a47cd2d39c3e82d35fcf26e1cc3d1cab02cb6c23af808dfab0340458210",
      "terms/interaction/accessibility.json": "987725b026cda2a4561f4757e9ce70ee9ea1bca871065e7644a62d3737c55a90",
      "terms/interaction/advanced/before-after-slider.json": "ab5e823e9c610fc3d792fe5bac9244197f5567466af351637a799dbd5b83e5d5",
      "terms/interaction/advanced/drag-to-absorb.json": "27e8a0724eafc88ba724183b14e8e4a17f5d4e9ca453f8010ae141ff8756d17d",
      "terms/interaction/advanced/edge-docked-fab.json": "f7b971d22fceeaa8c36cd602d6ce6dbefa699f8322786d8ce7673a018902c05b",
      "terms/interaction/advanced/inertial-wheel.json": "d75a5677731bbdc82b91bfd39327d0cf8e07d09cc8de7e95ba96ef00f0aff44b",
      "terms/interaction/advanced/long-press-preview.json": "b026aa6b809bdb39ac643d3c9af9c62af38af520a9d504debc0ab142d057de48",
      "terms/interaction/advanced/perspective-carousel.json": "d891c12eebafb9f37250a794f6030abc9ce79f43548eb452bfae4cb741223a4e",
      "terms/interaction/advanced/press-and-hold-confirm.json": "d9e4906458a2ded25f896a5fbf3ca3c46a6e47e5b27e9e38a0086bc41a6a11f7",
      "terms/interaction/advanced/radial-menu.json": "a4651a0ede49562ecdc853e3bb3df3ab32c2e70f990091b3baf531b6483a7ab5",
      "terms/interaction/advanced/rotary-knob.json": "1aa6768aa0648224b393b7dfea526d9562f2815fd2410a9ad9bdea2274fb2590",
      "terms/interaction/advanced/segmented-progress.json": "85ab994c7144c7c6c64b12b55ebc94e9db1bd3ce4f01faecfdb45c17fab3993a",
      "terms/interaction/advanced/slide-to-confirm.json": "8f9986e5e7f808e64bcab02ce3f6d0f74364b9c38018d38fdbdcb56a914445b1",
      "terms/interaction/bottom-sheet.json": "f82133d92958e0229d0ab51b28e314b31471bfd79d6313d42d76bea6af9a0024",
      "terms/interaction/burst-feedback.json": "bb5ca0f12ca28cbb6be1e333d94a2272314f773e202299b3dbc4f65420eca670",
      "terms/interaction/card-flip.json": "fc91c4bc9175e7909dd86acfde105d6983323e38815df777d52a1a854781b49f",
      "terms/interaction/continuous/button-stepper-morph.json": "548b04e50ecbb9c1441bb59d219419b4b6fb52fc21be478871faf482f7f6bbc6",
      "terms/interaction/continuous/checkbox-cascade.json": "000cbcd611a87b3299b683b24954b0496d2a87c618f50c2af0e54a622fb29460",
      "terms/interaction/continuous/fab-panel-morph.json": "17123c68684c269ed7d4d1ec77f5bace0a89d5648a5caa08144b82a57e293913",
      "terms/interaction/continuous/fullscreen-reveal-menu.json": "a168de9f2a10656c3950f1cafbc85c4350957bd85213d6b033ffd632c2eca7d6",
      "terms/interaction/continuous/icon-morph.json": "596fcf0f1b40c21d54266268c3d79bd25f0a80ccf96252519ad6cb3a798d4838",
      "terms/interaction/continuous/inline-detail-expand.json": "1e8b19e883723afe3e96fdb3d07c7faf9ec5f0842e368cddfe2894a856aae4ec",
      "terms/interaction/continuous/list-grid-flip.json": "7f903f919096265ae21fb2dd351b49f283ea5fb2957954053c4bc0e3a0d8ca2c",
      "terms/interaction/continuous/radial-reveal-transition.json": "1eadd6675e03037290d91bef1cb4839fb64b9b2754794f6af81e2756a251b6d5",
      "terms/interaction/continuous/scroll-header-collapse.json": "f0e28df16b51e1c99bbc8053101ec5524362e41bc56d1e9187ba6c401d201d57",
      "terms/interaction/continuous/search-expand.json": "920e2d7907ca671dd18e73f6a5af2e32fbd08be20dea31bd0f65b1021ecd3aa2",
      "terms/interaction/continuous/snap-card-timeline.json": "9f12271c5201f6f8a3d7677b6fefdd8410de56d70f7b99f757ac16b2696e1e7b",
      "terms/interaction/continuous/stack-card-expand.json": "48ae35f95538ff96b8508f17ce88a7c8f7c3e135fd9297991ed5c3909a4257e6",
      "terms/interaction/continuous/submit-state-machine.json": "39b7a7aaf5b0808cdd81ef4c94639adab8f6cb38dbc1e5c8651bad20d47db59c",
      "terms/interaction/continuous/tab-indicator-spring.json": "a81dc2214125afbd3223425a5ba92698794e519300c259c7de1d695de70dca07",
      "terms/interaction/count-animation.json": "e6460bcfe9bb2fcbd26c2a34380e9b367a9a0634078bf281ed387b2bbd940d90",
      "terms/interaction/draw-success.json": "fdfde9d4268cab6c875af5cbd0af0695283e0c18367ef00a4ef34a096eaf77be",
      "terms/interaction/flip-reentry.json": "3d1293ed1f259bbfc35952113d88631bc0fedd611d4c79859fe196439ea2e702",
      "terms/interaction/follow.json": "c0a16810bb4a12b89ec690022271e50401c8ecdc43acba1319061f199cdcdcff",
      "terms/interaction/interruption.json": "5d5ba17d9d599b45a5dd0178cac34a83e1c6e262b76a5d2db45ba648b3ce8311",
      "terms/interaction/liquid-slider.json": "3c13bd23f981ae97ec0ceb8d25d1d78828908ebd8c458f35c95517d14176f2d3",
      "terms/interaction/morph-icon.json": "e7c9374386766de3617a19d983efaaa57430156ddbd0f869145926b824a15f4d",
      "terms/interaction/reverse-animation.json": "75ff7ff8cce0fe25de11b6eb1fdf817c802cd5a7d796fec3f4827ac70b06ddcb",
      "terms/interaction/ripple-button.json": "f592bf2cc0590ae32a7d9f1d47fdea2375a51bd0aac4b725acfe6bd233710c17",
      "terms/interaction/skeleton-shimmer.json": "06fc81612610a8fbfc69839752b4af2d972c5ebd84a273aa4159c1db69135dda",
      "terms/interaction/snap.json": "60cd157f42ba6525667b52e3b95b78b69504b4c5edae23c3942a9b19adef3d4c",
      "terms/interaction/spring-press.json": "f702dd7ec592a6b6155cdbf4e0c8eb1c475b9db7925d973b4f071d6e9840dfe0",
      "terms/interaction/squash-toggle.json": "4433e5fdb0a29c690e6b650b1eb347ae9b9396efec3d3a23956283af4583b56b",
      "terms/interaction/stack-card.json": "5f5026af52a1a87cf4b494c534d647cc909535551ae7e62042ce7456f18486a6",
      "terms/interaction/threshold.json": "777597c9dd0b8a8bcb3dc1ac9348f5fd2003579f86bdc53d46454478a4b98ab0",
      "terms/interaction/undo-window.json": "a93149f4735c9960b0c112b8483d7ad9c33b97a7be0fbe6132281064f6af5c94",
      "terms/interaction/velocity-inheritance.json": "4ae3ff6106498b836bbfe968beaac53b8dc3ce721524fb09dff02c977e7ccbe9",
      "terms/language-literature-writing.json": "740f1d750c6a1bbccf61f3b17098ea745f443473025be46fb5bdd315664a8222",
      "terms/law-politics-military.json": "299ac418ca7d6c61b0558a8e20d0cbe33e927ba41284403cd309cf60c22525f0",
      "terms/material-style/material-library.json": "bb7d1e3f7429e69c2a325dda02ebedcccfa91c2a92c54aa5bacb03fcec46dcab",
      "terms/math-chemistry-statistics.json": "9fa0bd9ecc3fe7434d269edd190f00c3041c118af08d8c395265d683aedfac09",
      "terms/motion-control/motion-language.json": "40fe88dbd8e28ed56fa388fba221a9be7037169bab0916d97017a187d7aa06b0",
      "terms/negative-prompt/negative-constraints.json": "9060a32b14ac5f828f0c5fa1dfb50dda5acfb02cb685d83ca8ed4a47f260397f",
      "terms/news-media-advertising.json": "a27e7b1e9b1c71aebf1a6120fe5f2b2ef9386d3e15a7c9581bc24f4f0ef34934",
      "terms/philosophy-psychology-religion.json": "d6b3061b490b09f3bd66466236955f4202dd5e10d0a3f3209411687730a6bbf9",
      "terms/platform-research/gpui-desktop-web.json": "68c3a970cebae27d29fee019f6b2bcd81bc8fba17daa8baf60cbd478d6fc2f6c",
      "terms/platform-research/gpui-mobile.json": "e15e6204316225687b19de9fdec8dc16d55425d155e07e31831cc44adfee56de",
      "terms/platform-research/three-ui-catalog.json": "4f67424d7f8bf5f2b82c35154e18f43b0fa56cd402528ce6cedb105e3319aed6",
      "terms/software-engineering/availability-patterns.json": "ca93e0c6337dbe2db2e48938da0e4c99caad0f8b2dee1cd40ea0b18da08f1ebd",
      "terms/software-engineering/capacity-model.json": "733a71c7d7127944bc935150f60038432d5aaa5f04def185908ac22ceeecf3dd",
      "terms/software-engineering/cross-platform-rendering.json": "d0a0f8744821a3d23c9be9a46325a6ecd2b5c83627af2acb449dba059c982d3f",
      "terms/software-engineering/frontend-runtime.json": "985d124c99059db0cbcaf8dc658603b9419a503d164df329a0df249cc9faf811",
      "terms/software-engineering/idempotency-contract.json": "d731e41f6cbffc060079a8fbb24374ab22f9b15235a0c33b1dbcd029380c41fd",
      "terms/software-engineering/observability-contract.json": "f7637151bceb728654f1d78317466b15e0046052386bacdddf51f76b0a217209",
      "terms/software-engineering/scaling-strategies.json": "2c5534d2a39bff24b86564eb7c669d37376f11ffb74d75c1567a42c525496572",
      "terms/software-engineering/service-boundary.json": "b7fb8ad66d5d1352c673c34cd079cb837d81dacda606b5f22c2f51298c6812b4",
      "terms/tool-adapter/tool-parameters.json": "6fadcfe2d9a0600c38a860206f143b89116db4078c2caa29036b76357bd31a83",
      "terms/uiux.json": "f66fea8b2167b1f52252ebec06dcb926454b1d62080df7ce0e75645f7cd8132e",
      "terms/video-prompt/video-direction.json": "0982397ae545130f1eaeacfbb461b186ac38c1dab8b81e95ecfb8d8c1b4d6def",
      "terms/visual-effects/cover-color-ambient-glow.json": "d27f172f4a39067e817bc7705d635f7a12bb7fc0a6a9ab46bd0e1e435110c3aa",
      "terms/visual-effects/cylindrical-list.json": "f39ecf189c4bfd2be08580cbe0aacef5da48ba5c9e86ee409ae35948c6ea974a",
      "terms/visual-effects/depth-layer-scroll.json": "a45b26fbbc8df335a04d31380dd95df9c67292d14f66821dfc763826d2d03f52",
      "terms/visual-effects/liquid-adhesion-drag.json": "5226c9d59dc21237cc4cd86517d1295deaa357365d64b9ad8eda9f69d58d830c",
      "terms/visual-effects/liquid-glass-bar.json": "bc79092e7be984aa7e3078f85b75722da54039a449e51d6ae9a49f9aa42b55e4",
      "terms/visual-layout/composition-patterns.json": "8bb93fb7c0dce5f18fb7c659fb6e5b15047e76543a6a9d704e6ce04c1fadb7e9",
      "terms/workplace/action-item.json": "05465925fe0a7ab0945f4b4a5f34889e7eeb362c9ddf2dfef730a9edd0e96d83",
      "terms/workplace/dependency-alignment.json": "0641176f71fe8d399d11d054d373e7aedf06f4da519e74be253218e201423652",
      "terms/workplace/goal-metric.json": "c581026147c6375a2f79502e78be43af42fed372cd926e9b614fa5814fc7ba7f",
      "terms/workplace/jargon-translation.json": "b2a573e13fbd0e904f50c70b3939068455b2538be53b6a548fb16425c499cb79",
      "terms/workplace/management-mechanism.json": "05e57dc368b8e3809e0eadc45dc421a36c54f2b2656a21d63fc02769d01de154",
      "terms/workplace.json": "d811a1c9cea3fdb3560f2d9ca117d816770d8d26518ebd5a6f56c20218f89fc3"
    }
  },
  "files": {
    ".gitignore": ".DS_Store\n.env\n*.key\n*.pem\nsecrets/\n",
    "LICENSE": "MIT License\n\nCopyright (c) 2026 konglong\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n",
    "README.md": "<div align=\"center\">\n\n# Feeling to Jargon\n\n### 你说感觉，Feeling to Jargon 帮你补全专业术语。\n\n<p>\n  <img src=\"https://img.shields.io/badge/19%20domains-indexed-20a464\" alt=\"19 domains indexed\">\n  <img src=\"https://img.shields.io/badge/105%20leaf%20packages-progressive-6d5dfc\" alt=\"105 progressive leaf packages\">\n  <img src=\"https://img.shields.io/badge/npx-first-f59e0b\" alt=\"npx first\">\n  <img src=\"https://img.shields.io/badge/LLM-on--demand-111827\" alt=\"LLM on demand\">\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-111827\" alt=\"MIT License\"></a>\n</p>\n\n<p>\n  <a href=\"#快速开始\">快速开始</a> ·\n  <a href=\"#渐进式索引\">渐进式索引</a> ·\n  <a href=\"#按需查询\">按需查询</a> ·\n  <a href=\"#添加新领域\">添加新领域</a>\n</p>\n\n</div>\n\n## 它能做什么\n\n你知道自己想要什么，但不知道怎么说得专业？Feeling to Jargon 会识别需求所属领域，按需加载术语，把“有质感”“稳定”“高级”“专业一点”等模糊表达扩展成更具体、更可执行的提示词。\n\nFeeling to Jargon 不替你决定方向。它把专业选项翻译成容易理解的语言，再让你选择真正重要的取舍。\n\n| 你说 | Feeling to Jargon 帮你补全 |\n|---|---|\n| 做一个有质感的网站 | 信息密度、字体层级、对比度、留白节奏、组件一致性 |\n| 做一个稳定的大型后端 | 高可用、流量模型、水平扩展、幂等、熔断、可观测性 |\n| 做一个电影感的视频 | 景别、光线、构图、色调、运动、画幅比例、声音 |\n| 做一个高级感 Dashboard | 底色、强调色、布局层级、材质、内容主角 |\n\n## 快速开始\n\n推荐使用 `npx`，它适用于 Claude Code、Cursor、Codex、OpenCode 等 Agent 工具：\n\n```bash\nnpx skills add https://github.com/konglong87/feeling-to-jargon\n```\n\n指定平台或只安装本 Skill：\n\n```bash\nnpx skills add https://github.com/konglong87/feeling-to-jargon --skill feeling-to-jargon --agent claude-code\nnpx skills add https://github.com/konglong87/feeling-to-jargon --skill feeling-to-jargon --agent cursor\nnpx skills add https://github.com/konglong87/feeling-to-jargon --skill feeling-to-jargon --agent codex\nnpx skills add https://github.com/konglong87/feeling-to-jargon --skill feeling-to-jargon --agent opencode\n```\n\n查看可用 Skill、全局安装：\n\n```bash\nnpx skills add https://github.com/konglong87/feeling-to-jargon --list\nnpx skills add https://github.com/konglong87/feeling-to-jargon -g\n```\n\n安装后可以直接说：\n\n```text\n删除列表项，5 秒内撤销并支持键盘；撤销时要沿原路径回来。\n```\n\n## 渐进式索引\n\n> **索引越来越细，加载越来越少，术语越来越专，LLM 才能真正做到按需增强，而不是把整个知识库塞进上下文。**\n\nFeeling to Jargon 的运行路径固定为：\n\n```text\n根领域 → 专业子域 → 用户意图 → 叶子包 → 单条术语/技巧/模板\n```\n\n```mermaid\nflowchart LR\n    A[用户模糊需求] --> B[index/root.json]\n    B --> C[index/domains/domain.json]\n    C --> D[index/intents/domain/subdomain.json]\n    D --> E[index/runtime.json]\n    E --> F[最小叶子包]\n    F --> G[匹配的单条术语/模板]\n    G --> H[增强提示词]\n```\n\n根索引会声明加载上限：\n\n```json\n{\n  \"max_subdomains\": 3,\n  \"max_intents\": 3,\n  \"max_intents_scope\": \"per_subdomain\",\n  \"max_leaf_packages\": 8,\n  \"max_entries_per_leaf\": 30,\n  \"route_score_margin\": 2,\n  \"high_confidence_score\": 6,\n  \"high_confidence_margin\": 1,\n  \"min_route_score\": 2\n}\n```\n\n因此，一个“撤销条 + 键盘可用”的请求只会加载交互动效和可访问性相关叶子包，不会加载所有 UI、AIGC 或后端知识。\n\n当前已建立：\n\n- 19 个根领域入口\n- 105 个可独立加载的叶子包\n- 5 级加载协议\n- 7 种知识类型：术语、模式、技巧、规范、参数、模板、平台研究\n- 非空运行时索引和本地查询器\n\n## 按需查询\n\n在仓库根目录运行：\n\n```bash\npython3 scripts/query-index.py \"删除列表项，5 秒内撤销并支持键盘\"\npython3 scripts/query-index.py \"设计一个不模板化的 AI 数据后台\"\npython3 scripts/query-index.py \"把这个角色做成毛绒玩偶和周边\"\npython3 scripts/query-index.py \"GPUIX 能不能跑移动端？\"\n```\n\n查询结果会输出：\n\n- 命中的子域和叶子包\n- 实际加载的文件路径\n- 匹配的术语/技巧/模板条目\n- `provider-specific` 和 `do_not_generalize` 等边界标记\n- 本次是否触发网络搜索（默认不搜索）\n\n## 内容分层\n\n### UI/UX\n\n覆盖撤销条、FLIP 反向归位、跟随/阈值/吸附、速度继承、可中断动画、12 种基础动效、14 种连续交互和 10 种高级手势模式、Dashboard 视觉配方、5 种视觉效果、GSAP 适配边界、8 个可投喂给 AI 的组件描述，以及键盘、读屏和 `prefers-reduced-motion` 约束。\n\n连续交互包把搜索框、FAB 面板、提交状态、图标变形、标签指示条、步进器、列表展开、FLIP 布局切换、滚动收起和全屏揭示拆成独立叶子；本轮新增勾选联动、叠卡展开、吸附卡加画线和圆形扩散转场，并把惯性滚轮归入高级手势交互。已有组件索引继续扩展为撕线弹出面板、保存按钮进度环和卡片层叠轮播；只有没有合适既有边界的吸边悬浮球新建叶子。每个模式都用状态机、动画序列、空间锚点、可测参数、可访问性和验收标准描述，把“细腻”“顺滑”“有质感”等感觉翻译成可以实现和检查的术语。高级手势包还覆盖按住确认、旋钮、前后对比、弧形菜单、滑动确认、长按预览、拖拽吸入、分段进度和透视轮播。\n\n视觉效果包会把实现参数和性能边界一起加载：液态玻璃栏、封面取色氛围光、景深分层滚动、圆柱卷收列表、液滴粘连拖拽。每条记录同时提供性能预算、降级方案、移动端处理和减少动态策略，避免只复制视觉效果而忽略运行成本。\n\nGSAP 适配包只在用户指定 GSAP 或项目已经使用 GSAP 时加载，覆盖 Core、Timeline、ScrollTrigger、Plugins、React 生命周期、性能和框架生命周期。它保留 provider-specific 与版本核验边界，不把工具 API 当作通用浏览器事实。\n\n设计系统包提供 Light/Dark 活样式预览规范：色板、排印、按钮/输入框/卡片状态、token 到页面效果的映射和截图验收清单。外部预览站只作为待核验参考，不写入运行时事实。\n\n### AIGC\n\n保留基础 IP 和七个场景模板，并将角色一致性、图像提示词、视频镜头、材质、构图、运动、负面约束和工具适配拆成独立子域。一次请求只读取需要的模块。\n\n### 后端与软件工程\n\n将后端架构、高可用、高并发、扩展策略、可观测性、幂等、前端平台和跨平台渲染分开索引，避免把“稳定”“高并发”“高扩展”当成没有边界的口号。\n\n### 平台研究\n\nGPUIX 和 ThreeUI 内容被标记为 `platform-research`、`provider-specific`。未填写 `verified_at` 前只能当作待核验研究线索，不能泛化成所有 GPU UI 框架的事实。\n\n## 项目结构\n\n```text\nindex/\n├── root.json                 # 根领域与加载上限\n├── packages.json             # 兼容旧版领域术语包入口\n├── domains/                  # 第二级：专业子域\n├── intents/                  # 第三级：用户意图\n├── leaves.json               # 第四级：叶子包清单\n└── runtime.json              # 热路径运行时路由索引\n\nterms/\n├── interaction/              # 动效、撤销、跟手、阈值、吸附\n├── dashboard/                # Dashboard 视觉方向\n├── component-design/         # AI 可生成组件描述\n├── visual-effects/            # 玻璃、光晕、景深和液态交互\n├── animation-tool-adapter/   # GSAP 等动画工具适配\n├── design-system/            # Light/Dark 活样式预览规范\n├── character-ip/             # AIGC 角色一致性\n├── platform-research/        # 平台专属研究\n├── software-engineering/     # 软件架构叶子包\n└── workplace/                # 职场表达与协作\n\ntemplates/\n├── aigc/                     # 基础 IP 与七个场景模板\n├── dashboard/                # Dashboard 审美 Skill 模板\n\nskills/feeling-to-jargon/SKILL.md        # Agent 加载规则\nscripts/query-index.py        # 渐进式查询器\nscripts/validate-index.py     # 索引一致性校验\nscripts/bootstrap-progressive-content.py # 可重复生成内容与索引\n```\n\n## Dashboard：三层规范，不增加索引\n\n术语定义信息结构 → UI 定义视觉与栅格 → Agent 定义交互状态机。布局变体合并到现有 `layout-patterns` 叶子，共用 `templates/dashboard/dashboard-style-system.json`；不会为每种配色或业务场景创建新叶子。\n\n| 同类条目 | 关键约束 | 来源状态 |\n| --- | --- | --- |\n| 多彩错列布局 | 日期只联动柱形与标签；容量圆点独立 | 原文已提供 |\n| 工业分区布局 | 低库存 `st=2`；物料选中联动补货卡；计数由集合派生 | 原文已提供 |\n| 中轴观测布局 | 队列、读数、星图和曲线共享目标与时间 | 原文已提供 |\n| 玻璃点阵布局 | 月份与指标共享状态；点 8 月评分回到 8 月 | 原文已提供 |\n| 暖色三栏布局 | 已知视觉可复用；房间点击、模式/单位映射待确认 | 执行描述不完整 |\n\n具体查询先在叶子内部排序，再应用 `--max-entries` 限额；未指定变体时只返回概览。同分路由不再因为条目合并而降权。\n\n每条提供 `layout / termSkill / uiSkill / agentExec / state / tokens`，并区分原文信息与建议的状态建模。第六例未提供原文，不生成虚构模板或空叶子；前五例的参数只在各自示例内有效。\n\n```bash\npython3 scripts/query-index.py \"工业分区布局\" --max-entries 1\npython3 scripts/query-index.py \"玻璃点阵月份指标联动\"\n```\n\n## 添加新领域骨架 SOP\n\n1. 在 `index/root.json` 增加根领域和 `subdomain_index`。\n2. 新建 `index/domains/<domain_id>.json`，只放子域摘要和加载入口。\n3. 为每个子域新建 `index/intents/<domain_id>/<subdomain_id>.json`，只放意图和叶子引用。\n4. 在 `terms/<area>/` 增加独立叶子包；每个叶子只描述一个术语、模式、技巧或模板集合。\n5. 在 `index/leaves.json` 登记叶子元数据，在 `index/runtime.json` 增加关键词路由。\n6. 跑校验和端到端查询：\n\n```bash\npython3 scripts/validate-index.py\npython3 scripts/test-progressive-index.py # 包含 Dashboard 合并分类、限载和幂等回归\npython3 scripts/query-index.py \"一个真实用户请求\"\n```\n\n7. 只提交公开、可复用、无密钥、无本机路径和无用户隐私的内容。\n\n叶子 JSON 是可编辑的事实来源。运行 `scripts/bootstrap-progressive-content.py` 时，已有叶子会被读取并保留；只有缺失叶子会从内置骨架生成。确实需要用脚本内置内容覆盖已有叶子时，才显式使用：\n\n```bash\npython3 scripts/bootstrap-progressive-content.py --force\n```\n\n意图索引按 `index/intents/<domain_id>/<subdomain_id>.json` 命名，避免不同领域出现同名子域时互相覆盖。\n\n## 卸载\n\n```bash\nnpx skills list\nnpx skills remove feeling-to-jargon\nnpx skills remove feeling-to-jargon -g\nnpx skills remove feeling-to-jargon --agent cursor\n```\n\n若安装器参数发生变化，请以 `npx skills --help` 的当前提示为准。\n\n## License\n\n[MIT](LICENSE)\n",
    "index/domains/agri-food-cooking.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"domain_id\": \"agri-food-cooking\",\n  \"subdomains\": [\n    {\n      \"subdomain_id\": \"core\",\n      \"title\": \"核心入口\",\n      \"description\": \"该领域的渐进式术语入口，内容持续扩充\",\n      \"intent_index\": \"index/intents/agri-food-cooking/core.json\",\n      \"leaf_count\": 0,\n      \"status\": \"skeleton\"\n    }\n  ]\n}\n",
    "index/domains/ai-aigc-meta-skills.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"domain_id\": \"ai-aigc-meta-skills\",\n  \"subdomains\": [\n    {\n      \"subdomain_id\": \"image-prompt\",\n      \"title\": \"图像提示词\",\n      \"description\": \"主体、材质、光线和构图\",\n      \"intent_index\": \"index/intents/ai-aigc-meta-skills/image-prompt.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"video-prompt\",\n      \"title\": \"视频提示词\",\n      \"description\": \"镜头、运动、声音和节奏\",\n      \"intent_index\": \"index/intents/ai-aigc-meta-skills/video-prompt.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"character-ip\",\n      \"title\": \"角色 IP\",\n      \"description\": \"角色一致性、三视图和衍生物\",\n      \"intent_index\": \"index/intents/ai-aigc-meta-skills/character-ip.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"material-style\",\n      \"title\": \"材质与风格\",\n      \"description\": \"毛绒、PVC、纸张和渲染质感\",\n      \"intent_index\": \"index/intents/ai-aigc-meta-skills/material-style.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"camera-language\",\n      \"title\": \"镜头语言\",\n      \"description\": \"景别、焦段、机位和运镜\",\n      \"intent_index\": \"index/intents/ai-aigc-meta-skills/camera-language.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"composition\",\n      \"title\": \"构图\",\n      \"description\": \"主体位置、留白和视觉动线\",\n      \"intent_index\": \"index/intents/ai-aigc-meta-skills/composition.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"motion-control\",\n      \"title\": \"运动控制\",\n      \"description\": \"动作、跟随、速度和镜头运动\",\n      \"intent_index\": \"index/intents/ai-aigc-meta-skills/motion-control.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"negative-prompt\",\n      \"title\": \"负面约束\",\n      \"description\": \"变形、漂移、重复和违规输出\",\n      \"intent_index\": \"index/intents/ai-aigc-meta-skills/negative-prompt.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"tool-adapter\",\n      \"title\": \"工具适配\",\n      \"description\": \"通用、Midjourney 和 Stable Diffusion 参数\",\n      \"intent_index\": \"index/intents/ai-aigc-meta-skills/tool-adapter.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    }\n  ]\n}\n",
    "index/domains/architecture-civil-space.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"domain_id\": \"architecture-civil-space\",\n  \"subdomains\": [\n    {\n      \"subdomain_id\": \"core\",\n      \"title\": \"核心入口\",\n      \"description\": \"该领域的渐进式术语入口，内容持续扩充\",\n      \"intent_index\": \"index/intents/architecture-civil-space/core.json\",\n      \"leaf_count\": 0,\n      \"status\": \"skeleton\"\n    }\n  ]\n}\n",
    "index/domains/arts-aesthetics-design.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"domain_id\": \"arts-aesthetics-design\",\n  \"subdomains\": [\n    {\n      \"subdomain_id\": \"core\",\n      \"title\": \"核心入口\",\n      \"description\": \"该领域的渐进式术语入口，内容持续扩充\",\n      \"intent_index\": \"index/intents/arts-aesthetics-design/core.json\",\n      \"leaf_count\": 0,\n      \"status\": \"skeleton\"\n    }\n  ]\n}\n",
    "index/domains/astronomy-earth-environment.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"domain_id\": \"astronomy-earth-environment\",\n  \"subdomains\": [\n    {\n      \"subdomain_id\": \"core\",\n      \"title\": \"核心入口\",\n      \"description\": \"该领域的渐进式术语入口，内容持续扩充\",\n      \"intent_index\": \"index/intents/astronomy-earth-environment/core.json\",\n      \"leaf_count\": 0,\n      \"status\": \"skeleton\"\n    }\n  ]\n}\n",
    "index/domains/biology-medicine-health.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"domain_id\": \"biology-medicine-health\",\n  \"subdomains\": [\n    {\n      \"subdomain_id\": \"core\",\n      \"title\": \"核心入口\",\n      \"description\": \"该领域的渐进式术语入口，内容持续扩充\",\n      \"intent_index\": \"index/intents/biology-medicine-health/core.json\",\n      \"leaf_count\": 0,\n      \"status\": \"skeleton\"\n    }\n  ]\n}\n",
    "index/domains/communications-electronics-hardware.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"domain_id\": \"communications-electronics-hardware\",\n  \"subdomains\": [\n    {\n      \"subdomain_id\": \"core\",\n      \"title\": \"核心入口\",\n      \"description\": \"该领域的渐进式术语入口，内容持续扩充\",\n      \"intent_index\": \"index/intents/communications-electronics-hardware/core.json\",\n      \"leaf_count\": 0,\n      \"status\": \"skeleton\"\n    }\n  ]\n}\n",
    "index/domains/digital-product-uiux.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomains\": [\n    {\n      \"subdomain_id\": \"visual-layout\",\n      \"title\": \"视觉布局\",\n      \"description\": \"卡片、留白、非对称和出血布局\",\n      \"intent_index\": \"index/intents/digital-product-uiux/visual-layout.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"design-tokens\",\n      \"title\": \"设计令牌\",\n      \"description\": \"颜色、字体、圆角、阴影和间距\",\n      \"intent_index\": \"index/intents/digital-product-uiux/design-tokens.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"interaction-motion\",\n      \"title\": \"交互动效\",\n      \"description\": \"时间、速度、连续性和反馈\",\n      \"intent_index\": \"index/intents/digital-product-uiux/interaction-motion.json\",\n      \"leaf_count\": 14,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"continuous-interaction\",\n      \"title\": \"连续交互\",\n      \"description\": \"同一容器内的展开、形变、切换和回退\",\n      \"intent_index\": \"index/intents/digital-product-uiux/continuous-interaction.json\",\n      \"leaf_count\": 14,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"gesture-interaction\",\n      \"title\": \"手势交互\",\n      \"description\": \"跟随、阈值、吸附和手势采样\",\n      \"intent_index\": \"index/intents/digital-product-uiux/gesture-interaction.json\",\n      \"leaf_count\": 17,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"information-architecture\",\n      \"title\": \"信息架构\",\n      \"description\": \"导航、层级、密度和内容组织\",\n      \"intent_index\": \"index/intents/digital-product-uiux/information-architecture.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"accessibility\",\n      \"title\": \"可访问性\",\n      \"description\": \"键盘、读屏、减少动态和状态表达\",\n      \"intent_index\": \"index/intents/digital-product-uiux/accessibility.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"dashboard-design\",\n      \"title\": \"Dashboard 设计\",\n      \"description\": \"数据后台的视觉方向和布局\",\n      \"intent_index\": \"index/intents/digital-product-uiux/dashboard-design.json\",\n      \"leaf_count\": 10,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"component-design\",\n      \"title\": \"组件设计\",\n      \"description\": \"可复用组件和 AI 组件描述\",\n      \"intent_index\": \"index/intents/digital-product-uiux/component-design.json\",\n      \"leaf_count\": 8,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"visual-effects\",\n      \"title\": \"视觉效果\",\n      \"description\": \"玻璃、光晕、景深、卷收和液态粘连\",\n      \"intent_index\": \"index/intents/digital-product-uiux/visual-effects.json\",\n      \"leaf_count\": 5,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"design-system\",\n      \"title\": \"设计系统\",\n      \"description\": \"设计令牌、预览和视觉验收\",\n      \"intent_index\": \"index/intents/digital-product-uiux/design-system.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"animation-tool-adapter\",\n      \"title\": \"动画工具适配\",\n      \"description\": \"GSAP 等动画工具的实现边界\",\n      \"intent_index\": \"index/intents/digital-product-uiux/animation-tool-adapter.json\",\n      \"leaf_count\": 7,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"3d-web-interface\",\n      \"title\": \"3D Web 界面\",\n      \"description\": \"实时 3D 和 GPU 视觉界面\",\n      \"intent_index\": \"index/intents/digital-product-uiux/3d-web-interface.json\",\n      \"leaf_count\": 3,\n      \"status\": \"published\"\n    }\n  ]\n}\n",
    "index/domains/economics-management-finance.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"domain_id\": \"economics-management-finance\",\n  \"subdomains\": [\n    {\n      \"subdomain_id\": \"core\",\n      \"title\": \"核心入口\",\n      \"description\": \"该领域的渐进式术语入口，内容持续扩充\",\n      \"intent_index\": \"index/intents/economics-management-finance/core.json\",\n      \"leaf_count\": 0,\n      \"status\": \"skeleton\"\n    }\n  ]\n}\n",
    "index/domains/education-sports.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"domain_id\": \"education-sports\",\n  \"subdomains\": [\n    {\n      \"subdomain_id\": \"core\",\n      \"title\": \"核心入口\",\n      \"description\": \"该领域的渐进式术语入口，内容持续扩充\",\n      \"intent_index\": \"index/intents/education-sports/core.json\",\n      \"leaf_count\": 0,\n      \"status\": \"skeleton\"\n    }\n  ]\n}\n",
    "index/domains/history-geography-travel.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"domain_id\": \"history-geography-travel\",\n  \"subdomains\": [\n    {\n      \"subdomain_id\": \"core\",\n      \"title\": \"核心入口\",\n      \"description\": \"该领域的渐进式术语入口，内容持续扩充\",\n      \"intent_index\": \"index/intents/history-geography-travel/core.json\",\n      \"leaf_count\": 0,\n      \"status\": \"skeleton\"\n    }\n  ]\n}\n",
    "index/domains/industrial-mechanical-manufacturing.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"domain_id\": \"industrial-mechanical-manufacturing\",\n  \"subdomains\": [\n    {\n      \"subdomain_id\": \"core\",\n      \"title\": \"核心入口\",\n      \"description\": \"该领域的渐进式术语入口，内容持续扩充\",\n      \"intent_index\": \"index/intents/industrial-mechanical-manufacturing/core.json\",\n      \"leaf_count\": 0,\n      \"status\": \"skeleton\"\n    }\n  ]\n}\n",
    "index/domains/language-literature-writing.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"domain_id\": \"language-literature-writing\",\n  \"subdomains\": [\n    {\n      \"subdomain_id\": \"core\",\n      \"title\": \"核心入口\",\n      \"description\": \"该领域的渐进式术语入口，内容持续扩充\",\n      \"intent_index\": \"index/intents/language-literature-writing/core.json\",\n      \"leaf_count\": 0,\n      \"status\": \"skeleton\"\n    }\n  ]\n}\n",
    "index/domains/law-politics-military.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"domain_id\": \"law-politics-military\",\n  \"subdomains\": [\n    {\n      \"subdomain_id\": \"core\",\n      \"title\": \"核心入口\",\n      \"description\": \"该领域的渐进式术语入口，内容持续扩充\",\n      \"intent_index\": \"index/intents/law-politics-military/core.json\",\n      \"leaf_count\": 0,\n      \"status\": \"skeleton\"\n    }\n  ]\n}\n",
    "index/domains/math-chemistry-statistics.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"domain_id\": \"math-chemistry-statistics\",\n  \"subdomains\": [\n    {\n      \"subdomain_id\": \"core\",\n      \"title\": \"核心入口\",\n      \"description\": \"该领域的渐进式术语入口，内容持续扩充\",\n      \"intent_index\": \"index/intents/math-chemistry-statistics/core.json\",\n      \"leaf_count\": 0,\n      \"status\": \"skeleton\"\n    }\n  ]\n}\n",
    "index/domains/news-media-advertising.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"domain_id\": \"news-media-advertising\",\n  \"subdomains\": [\n    {\n      \"subdomain_id\": \"core\",\n      \"title\": \"核心入口\",\n      \"description\": \"该领域的渐进式术语入口，内容持续扩充\",\n      \"intent_index\": \"index/intents/news-media-advertising/core.json\",\n      \"leaf_count\": 0,\n      \"status\": \"skeleton\"\n    }\n  ]\n}\n",
    "index/domains/philosophy-psychology-religion.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"domain_id\": \"philosophy-psychology-religion\",\n  \"subdomains\": [\n    {\n      \"subdomain_id\": \"core\",\n      \"title\": \"核心入口\",\n      \"description\": \"该领域的渐进式术语入口，内容持续扩充\",\n      \"intent_index\": \"index/intents/philosophy-psychology-religion/core.json\",\n      \"leaf_count\": 0,\n      \"status\": \"skeleton\"\n    }\n  ]\n}\n",
    "index/domains/software-engineering-architecture.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"domain_id\": \"software-engineering-architecture\",\n  \"subdomains\": [\n    {\n      \"subdomain_id\": \"backend-architecture\",\n      \"title\": \"后端架构\",\n      \"description\": \"服务边界、状态和数据流\",\n      \"intent_index\": \"index/intents/software-engineering-architecture/backend-architecture.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"high-availability\",\n      \"title\": \"高可用\",\n      \"description\": \"冗余、故障域、RTO 和 RPO\",\n      \"intent_index\": \"index/intents/software-engineering-architecture/high-availability.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"high-concurrency\",\n      \"title\": \"高并发\",\n      \"description\": \"流量模型、延迟和资源隔离\",\n      \"intent_index\": \"index/intents/software-engineering-architecture/high-concurrency.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"scalability\",\n      \"title\": \"高扩展\",\n      \"description\": \"水平扩展、分片、缓存和异步化\",\n      \"intent_index\": \"index/intents/software-engineering-architecture/scalability.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"observability\",\n      \"title\": \"可观测性\",\n      \"description\": \"SLI、SLO、日志、指标和追踪\",\n      \"intent_index\": \"index/intents/software-engineering-architecture/observability.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"idempotency\",\n      \"title\": \"幂等\",\n      \"description\": \"操作身份、重试和重复请求\",\n      \"intent_index\": \"index/intents/software-engineering-architecture/idempotency.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"frontend-platform\",\n      \"title\": \"前端平台\",\n      \"description\": \"组件、构建、运行时和交付\",\n      \"intent_index\": \"index/intents/software-engineering-architecture/frontend-platform.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"desktop-web-mobile\",\n      \"title\": \"桌面 Web 移动端\",\n      \"description\": \"跨平台渲染与能力边界\",\n      \"intent_index\": \"index/intents/software-engineering-architecture/desktop-web-mobile.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    }\n  ]\n}\n",
    "index/domains/workplace-communication.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"domain_id\": \"workplace-communication\",\n  \"subdomains\": [\n    {\n      \"subdomain_id\": \"vague-expression\",\n      \"title\": \"模糊表达\",\n      \"description\": \"把职场黑话翻译成可执行需求\",\n      \"intent_index\": \"index/intents/workplace-communication/vague-expression.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"project-collaboration\",\n      \"title\": \"项目协作\",\n      \"description\": \"角色、依赖、风险和决策\",\n      \"intent_index\": \"index/intents/workplace-communication/project-collaboration.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"goal-alignment\",\n      \"title\": \"目标对齐\",\n      \"description\": \"目标、指标、范围和优先级\",\n      \"intent_index\": \"index/intents/workplace-communication/goal-alignment.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"execution-language\",\n      \"title\": \"执行语言\",\n      \"description\": \"下一步、负责人、截止时间和验收\",\n      \"intent_index\": \"index/intents/workplace-communication/execution-language.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    },\n    {\n      \"subdomain_id\": \"management-terms\",\n      \"title\": \"管理术语\",\n      \"description\": \"组织、机制、复盘和资源配置\",\n      \"intent_index\": \"index/intents/workplace-communication/management-terms.json\",\n      \"leaf_count\": 1,\n      \"status\": \"published\"\n    }\n  ]\n}\n",
    "index/intents/agri-food-cooking/core.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"core\",\n  \"domain_id\": \"agri-food-cooking\",\n  \"intents\": [\n    {\n      \"id\": \"explore\",\n      \"action\": \"探索\",\n      \"object\": \"核心入口\",\n      \"leaf_refs\": []\n    }\n  ]\n}\n",
    "index/intents/ai-aigc-meta-skills/camera-language.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"camera-language\",\n  \"domain_id\": \"ai-aigc-meta-skills\",\n  \"intents\": [\n    {\n      \"id\": \"write-image-prompt\",\n      \"action\": \"编写\",\n      \"object\": \"镜头语言\",\n      \"leaf_refs\": [\n        \"camera-language\"\n      ]\n    },\n    {\n      \"id\": \"write-video-prompt\",\n      \"action\": \"编写\",\n      \"object\": \"镜头语言\",\n      \"leaf_refs\": [\n        \"camera-language\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/ai-aigc-meta-skills/character-ip.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"character-ip\",\n  \"domain_id\": \"ai-aigc-meta-skills\",\n  \"intents\": [\n    {\n      \"id\": \"generate-character\",\n      \"action\": \"生成\",\n      \"object\": \"角色 IP\",\n      \"leaf_refs\": [\n        \"character-ip\"\n      ]\n    },\n    {\n      \"id\": \"extend-character\",\n      \"action\": \"延展\",\n      \"object\": \"角色周边\",\n      \"leaf_refs\": [\n        \"character-ip\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/ai-aigc-meta-skills/composition.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"composition\",\n  \"domain_id\": \"ai-aigc-meta-skills\",\n  \"intents\": [\n    {\n      \"id\": \"write-image-prompt\",\n      \"action\": \"编写\",\n      \"object\": \"构图语言\",\n      \"leaf_refs\": [\n        \"composition-language\"\n      ]\n    },\n    {\n      \"id\": \"audit-image-prompt\",\n      \"action\": \"检查\",\n      \"object\": \"构图语言\",\n      \"leaf_refs\": [\n        \"composition-language\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/ai-aigc-meta-skills/image-prompt.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"image-prompt\",\n  \"domain_id\": \"ai-aigc-meta-skills\",\n  \"intents\": [\n    {\n      \"id\": \"write-image-prompt\",\n      \"action\": \"编写\",\n      \"object\": \"图像提示词\",\n      \"leaf_refs\": [\n        \"prompt-blocks\"\n      ]\n    },\n    {\n      \"id\": \"audit-image-prompt\",\n      \"action\": \"检查\",\n      \"object\": \"图像提示词\",\n      \"leaf_refs\": [\n        \"prompt-blocks\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/ai-aigc-meta-skills/material-style.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"material-style\",\n  \"domain_id\": \"ai-aigc-meta-skills\",\n  \"intents\": [\n    {\n      \"id\": \"write-image-prompt\",\n      \"action\": \"编写\",\n      \"object\": \"材质提示词\",\n      \"leaf_refs\": [\n        \"material-library\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/ai-aigc-meta-skills/motion-control.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"motion-control\",\n  \"domain_id\": \"ai-aigc-meta-skills\",\n  \"intents\": [\n    {\n      \"id\": \"write-video-prompt\",\n      \"action\": \"编写\",\n      \"object\": \"运动控制\",\n      \"leaf_refs\": [\n        \"motion-language\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/ai-aigc-meta-skills/negative-prompt.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"negative-prompt\",\n  \"domain_id\": \"ai-aigc-meta-skills\",\n  \"intents\": [\n    {\n      \"id\": \"write-image-prompt\",\n      \"action\": \"编写\",\n      \"object\": \"负面约束\",\n      \"leaf_refs\": [\n        \"negative-constraints\"\n      ]\n    },\n    {\n      \"id\": \"audit-image-prompt\",\n      \"action\": \"检查\",\n      \"object\": \"负面约束\",\n      \"leaf_refs\": [\n        \"negative-constraints\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/ai-aigc-meta-skills/tool-adapter.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"tool-adapter\",\n  \"domain_id\": \"ai-aigc-meta-skills\",\n  \"intents\": [\n    {\n      \"id\": \"write-image-prompt\",\n      \"action\": \"编写\",\n      \"object\": \"工具适配\",\n      \"leaf_refs\": [\n        \"tool-parameters\"\n      ]\n    },\n    {\n      \"id\": \"write-video-prompt\",\n      \"action\": \"编写\",\n      \"object\": \"工具适配\",\n      \"leaf_refs\": [\n        \"tool-parameters\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/ai-aigc-meta-skills/video-prompt.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"video-prompt\",\n  \"domain_id\": \"ai-aigc-meta-skills\",\n  \"intents\": [\n    {\n      \"id\": \"write-video-prompt\",\n      \"action\": \"编写\",\n      \"object\": \"视频提示词\",\n      \"leaf_refs\": [\n        \"video-direction\"\n      ]\n    },\n    {\n      \"id\": \"audit-video-prompt\",\n      \"action\": \"检查\",\n      \"object\": \"视频提示词\",\n      \"leaf_refs\": [\n        \"video-direction\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/architecture-civil-space/core.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"core\",\n  \"domain_id\": \"architecture-civil-space\",\n  \"intents\": [\n    {\n      \"id\": \"explore\",\n      \"action\": \"探索\",\n      \"object\": \"核心入口\",\n      \"leaf_refs\": []\n    }\n  ]\n}\n",
    "index/intents/arts-aesthetics-design/core.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"core\",\n  \"domain_id\": \"arts-aesthetics-design\",\n  \"intents\": [\n    {\n      \"id\": \"explore\",\n      \"action\": \"探索\",\n      \"object\": \"核心入口\",\n      \"leaf_refs\": []\n    }\n  ]\n}\n",
    "index/intents/astronomy-earth-environment/core.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"core\",\n  \"domain_id\": \"astronomy-earth-environment\",\n  \"intents\": [\n    {\n      \"id\": \"explore\",\n      \"action\": \"探索\",\n      \"object\": \"核心入口\",\n      \"leaf_refs\": []\n    }\n  ]\n}\n",
    "index/intents/biology-medicine-health/core.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"core\",\n  \"domain_id\": \"biology-medicine-health\",\n  \"intents\": [\n    {\n      \"id\": \"explore\",\n      \"action\": \"探索\",\n      \"object\": \"核心入口\",\n      \"leaf_refs\": []\n    }\n  ]\n}\n",
    "index/intents/communications-electronics-hardware/core.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"core\",\n  \"domain_id\": \"communications-electronics-hardware\",\n  \"intents\": [\n    {\n      \"id\": \"explore\",\n      \"action\": \"探索\",\n      \"object\": \"核心入口\",\n      \"leaf_refs\": []\n    }\n  ]\n}\n",
    "index/intents/digital-product-uiux/3d-web-interface.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"3d-web-interface\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"intents\": [\n    {\n      \"id\": \"compare-platform\",\n      \"action\": \"比较\",\n      \"object\": \"平台能力\",\n      \"leaf_refs\": [\n        \"gpui-desktop-web\",\n        \"gpui-mobile\",\n        \"three-ui-catalog\"\n      ]\n    },\n    {\n      \"id\": \"choose-renderer\",\n      \"action\": \"选择\",\n      \"object\": \"渲染后端\",\n      \"leaf_refs\": [\n        \"gpui-desktop-web\",\n        \"gpui-mobile\",\n        \"three-ui-catalog\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/digital-product-uiux/accessibility.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"accessibility\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"intents\": [\n    {\n      \"id\": \"audit-accessibility\",\n      \"action\": \"审计\",\n      \"object\": \"可访问性\",\n      \"leaf_refs\": [\n        \"motion-accessibility\"\n      ]\n    },\n    {\n      \"id\": \"implement-accessibility\",\n      \"action\": \"实现\",\n      \"object\": \"无障碍能力\",\n      \"leaf_refs\": [\n        \"motion-accessibility\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/digital-product-uiux/animation-tool-adapter.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"animation-tool-adapter\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"intents\": [\n    {\n      \"id\": \"implement-gsap\",\n      \"action\": \"实现\",\n      \"object\": \"GSAP 动效\",\n      \"leaf_refs\": [\n        \"gsap-core\",\n        \"gsap-frameworks\",\n        \"gsap-performance\",\n        \"gsap-plugins\",\n        \"gsap-react-lifecycle\",\n        \"gsap-scrolltrigger\",\n        \"gsap-timeline\"\n      ]\n    },\n    {\n      \"id\": \"audit-gsap\",\n      \"action\": \"评审\",\n      \"object\": \"GSAP 集成\",\n      \"leaf_refs\": [\n        \"gsap-core\",\n        \"gsap-frameworks\",\n        \"gsap-performance\",\n        \"gsap-plugins\",\n        \"gsap-react-lifecycle\",\n        \"gsap-scrolltrigger\",\n        \"gsap-timeline\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/digital-product-uiux/component-design.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"component-design\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"intents\": [\n    {\n      \"id\": \"generate-component\",\n      \"action\": \"生成\",\n      \"object\": \"UI 组件\",\n      \"leaf_refs\": [\n        \"damped-bottom-sheet\",\n        \"diffused-glow-border\",\n        \"elastic-press-feedback\",\n        \"fluid-capsule-morph\",\n        \"magnetic-cursor-odometer\",\n        \"shared-element-expand\",\n        \"spring-stagger-flow\",\n        \"tilt-light-panel\"\n      ]\n    },\n    {\n      \"id\": \"spec-component\",\n      \"action\": \"规范\",\n      \"object\": \"组件需求\",\n      \"leaf_refs\": [\n        \"damped-bottom-sheet\",\n        \"diffused-glow-border\",\n        \"elastic-press-feedback\",\n        \"fluid-capsule-morph\",\n        \"magnetic-cursor-odometer\",\n        \"shared-element-expand\",\n        \"spring-stagger-flow\",\n        \"tilt-light-panel\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/digital-product-uiux/continuous-interaction.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"continuous-interaction\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"intents\": [\n    {\n      \"id\": \"design-continuous\",\n      \"action\": \"设计\",\n      \"object\": \"连续交互\",\n      \"leaf_refs\": [\n        \"button-stepper-morph\",\n        \"checkbox-cascade\",\n        \"fab-panel-morph\",\n        \"fullscreen-reveal-menu\",\n        \"icon-morph\",\n        \"inline-detail-expand\",\n        \"list-grid-flip\",\n        \"radial-reveal-transition\",\n        \"scroll-header-collapse\",\n        \"search-expand\",\n        \"snap-card-timeline\",\n        \"stack-card-expand\",\n        \"submit-state-machine\",\n        \"tab-indicator-spring\"\n      ]\n    },\n    {\n      \"id\": \"implement-continuous\",\n      \"action\": \"实现\",\n      \"object\": \"连续组件\",\n      \"leaf_refs\": [\n        \"button-stepper-morph\",\n        \"checkbox-cascade\",\n        \"fab-panel-morph\",\n        \"fullscreen-reveal-menu\",\n        \"icon-morph\",\n        \"inline-detail-expand\",\n        \"list-grid-flip\",\n        \"radial-reveal-transition\",\n        \"scroll-header-collapse\",\n        \"search-expand\",\n        \"snap-card-timeline\",\n        \"stack-card-expand\",\n        \"submit-state-machine\",\n        \"tab-indicator-spring\"\n      ]\n    },\n    {\n      \"id\": \"audit-continuous\",\n      \"action\": \"评审\",\n      \"object\": \"连续性\",\n      \"leaf_refs\": [\n        \"button-stepper-morph\",\n        \"checkbox-cascade\",\n        \"fab-panel-morph\",\n        \"fullscreen-reveal-menu\",\n        \"icon-morph\",\n        \"inline-detail-expand\",\n        \"list-grid-flip\",\n        \"radial-reveal-transition\",\n        \"scroll-header-collapse\",\n        \"search-expand\",\n        \"snap-card-timeline\",\n        \"stack-card-expand\",\n        \"submit-state-machine\",\n        \"tab-indicator-spring\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/digital-product-uiux/dashboard-design.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"dashboard-design\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"intents\": [\n    {\n      \"id\": \"design-dashboard\",\n      \"action\": \"设计\",\n      \"object\": \"数据后台\",\n      \"leaf_refs\": [\n        \"grid-glass-dashboard\",\n        \"grouped-sidebar-dashboard\",\n        \"high-contrast\",\n        \"image-led-content\",\n        \"immersive-atmosphere\",\n        \"layout-patterns\",\n        \"minimal-data\",\n        \"single-dark-accent-dashboard\",\n        \"tonal-dark-dashboard\",\n        \"warm-minimal\"\n      ]\n    },\n    {\n      \"id\": \"audit-dashboard\",\n      \"action\": \"评审\",\n      \"object\": \"后台审美\",\n      \"leaf_refs\": [\n        \"grid-glass-dashboard\",\n        \"grouped-sidebar-dashboard\",\n        \"high-contrast\",\n        \"image-led-content\",\n        \"immersive-atmosphere\",\n        \"layout-patterns\",\n        \"minimal-data\",\n        \"single-dark-accent-dashboard\",\n        \"tonal-dark-dashboard\",\n        \"warm-minimal\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/digital-product-uiux/design-system.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"design-system\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"intents\": [\n    {\n      \"id\": \"build-design-system\",\n      \"action\": \"建立\",\n      \"object\": \"设计系统\",\n      \"leaf_refs\": [\n        \"living-style-guide-preview\"\n      ]\n    },\n    {\n      \"id\": \"preview-design-system\",\n      \"action\": \"预览\",\n      \"object\": \"设计系统\",\n      \"leaf_refs\": [\n        \"living-style-guide-preview\"\n      ]\n    },\n    {\n      \"id\": \"audit-design-system\",\n      \"action\": \"验收\",\n      \"object\": \"视觉规范\",\n      \"leaf_refs\": [\n        \"living-style-guide-preview\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/digital-product-uiux/design-tokens.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"design-tokens\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"intents\": [\n    {\n      \"id\": \"define-tokens\",\n      \"action\": \"定义\",\n      \"object\": \"设计令牌\",\n      \"leaf_refs\": [\n        \"token-system\"\n      ]\n    },\n    {\n      \"id\": \"audit-tokens\",\n      \"action\": \"审计\",\n      \"object\": \"令牌一致性\",\n      \"leaf_refs\": [\n        \"token-system\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/digital-product-uiux/gesture-interaction.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"gesture-interaction\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"intents\": [\n    {\n      \"id\": \"design-gesture\",\n      \"action\": \"设计\",\n      \"object\": \"手势交互\",\n      \"leaf_refs\": [\n        \"before-after-slider\",\n        \"bottom-sheet\",\n        \"drag-to-absorb\",\n        \"edge-docked-fab\",\n        \"follow\",\n        \"inertial-wheel\",\n        \"interruption\",\n        \"long-press-preview\",\n        \"perspective-carousel\",\n        \"press-and-hold-confirm\",\n        \"radial-menu\",\n        \"rotary-knob\",\n        \"segmented-progress\",\n        \"slide-to-confirm\",\n        \"snap\",\n        \"threshold\",\n        \"velocity-inheritance\"\n      ]\n    },\n    {\n      \"id\": \"implement-gesture\",\n      \"action\": \"实现\",\n      \"object\": \"手势组件\",\n      \"leaf_refs\": [\n        \"before-after-slider\",\n        \"bottom-sheet\",\n        \"drag-to-absorb\",\n        \"edge-docked-fab\",\n        \"follow\",\n        \"inertial-wheel\",\n        \"interruption\",\n        \"long-press-preview\",\n        \"perspective-carousel\",\n        \"press-and-hold-confirm\",\n        \"radial-menu\",\n        \"rotary-knob\",\n        \"segmented-progress\",\n        \"slide-to-confirm\",\n        \"snap\",\n        \"threshold\",\n        \"velocity-inheritance\"\n      ]\n    },\n    {\n      \"id\": \"audit-gesture\",\n      \"action\": \"评审\",\n      \"object\": \"手感问题\",\n      \"leaf_refs\": [\n        \"before-after-slider\",\n        \"drag-to-absorb\",\n        \"edge-docked-fab\",\n        \"follow\",\n        \"inertial-wheel\",\n        \"interruption\",\n        \"long-press-preview\",\n        \"perspective-carousel\",\n        \"press-and-hold-confirm\",\n        \"radial-menu\",\n        \"rotary-knob\",\n        \"segmented-progress\",\n        \"slide-to-confirm\",\n        \"snap\",\n        \"threshold\",\n        \"velocity-inheritance\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/digital-product-uiux/information-architecture.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"information-architecture\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"intents\": [\n    {\n      \"id\": \"design-information\",\n      \"action\": \"设计\",\n      \"object\": \"信息架构\",\n      \"leaf_refs\": [\n        \"information-hierarchy\"\n      ]\n    },\n    {\n      \"id\": \"audit-information\",\n      \"action\": \"评审\",\n      \"object\": \"信息层级\",\n      \"leaf_refs\": [\n        \"information-hierarchy\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/digital-product-uiux/interaction-motion.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"interaction-motion\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"intents\": [\n    {\n      \"id\": \"design-interaction\",\n      \"action\": \"设计\",\n      \"object\": \"交互动效\",\n      \"leaf_refs\": [\n        \"burst-feedback\",\n        \"card-flip\",\n        \"count-animation\",\n        \"draw-success\",\n        \"liquid-slider\",\n        \"morph-icon\",\n        \"ripple-button\",\n        \"skeleton-shimmer\",\n        \"spring-press\",\n        \"squash-toggle\",\n        \"stack-card\",\n        \"undo-window\"\n      ]\n    },\n    {\n      \"id\": \"implement-animation\",\n      \"action\": \"实现\",\n      \"object\": \"动画反馈\",\n      \"leaf_refs\": [\n        \"burst-feedback\",\n        \"card-flip\",\n        \"count-animation\",\n        \"draw-success\",\n        \"flip-reentry\",\n        \"liquid-slider\",\n        \"morph-icon\",\n        \"reverse-animation\",\n        \"ripple-button\",\n        \"skeleton-shimmer\",\n        \"spring-press\",\n        \"squash-toggle\",\n        \"stack-card\"\n      ]\n    },\n    {\n      \"id\": \"audit-motion\",\n      \"action\": \"评审\",\n      \"object\": \"动效质量\",\n      \"leaf_refs\": [\n        \"reverse-animation\",\n        \"undo-window\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/digital-product-uiux/visual-effects.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"visual-effects\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"intents\": [\n    {\n      \"id\": \"design-visual-effect\",\n      \"action\": \"设计\",\n      \"object\": \"视觉效果\",\n      \"leaf_refs\": [\n        \"cover-color-ambient-glow\",\n        \"cylindrical-list\",\n        \"depth-layer-scroll\",\n        \"liquid-adhesion-drag\",\n        \"liquid-glass-bar\"\n      ]\n    },\n    {\n      \"id\": \"implement-visual-effect\",\n      \"action\": \"实现\",\n      \"object\": \"视觉效果\",\n      \"leaf_refs\": [\n        \"cover-color-ambient-glow\",\n        \"cylindrical-list\",\n        \"depth-layer-scroll\",\n        \"liquid-adhesion-drag\",\n        \"liquid-glass-bar\"\n      ]\n    },\n    {\n      \"id\": \"audit-performance\",\n      \"action\": \"评审\",\n      \"object\": \"视觉性能\",\n      \"leaf_refs\": [\n        \"cover-color-ambient-glow\",\n        \"cylindrical-list\",\n        \"depth-layer-scroll\",\n        \"liquid-adhesion-drag\",\n        \"liquid-glass-bar\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/digital-product-uiux/visual-layout.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"visual-layout\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"intents\": [\n    {\n      \"id\": \"design-layout\",\n      \"action\": \"设计\",\n      \"object\": \"页面布局\",\n      \"leaf_refs\": [\n        \"composition-patterns\"\n      ]\n    },\n    {\n      \"id\": \"audit-layout\",\n      \"action\": \"评审\",\n      \"object\": \"布局问题\",\n      \"leaf_refs\": [\n        \"composition-patterns\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/economics-management-finance/core.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"core\",\n  \"domain_id\": \"economics-management-finance\",\n  \"intents\": [\n    {\n      \"id\": \"explore\",\n      \"action\": \"探索\",\n      \"object\": \"核心入口\",\n      \"leaf_refs\": []\n    }\n  ]\n}\n",
    "index/intents/education-sports/core.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"core\",\n  \"domain_id\": \"education-sports\",\n  \"intents\": [\n    {\n      \"id\": \"explore\",\n      \"action\": \"探索\",\n      \"object\": \"核心入口\",\n      \"leaf_refs\": []\n    }\n  ]\n}\n",
    "index/intents/history-geography-travel/core.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"core\",\n  \"domain_id\": \"history-geography-travel\",\n  \"intents\": [\n    {\n      \"id\": \"explore\",\n      \"action\": \"探索\",\n      \"object\": \"核心入口\",\n      \"leaf_refs\": []\n    }\n  ]\n}\n",
    "index/intents/industrial-mechanical-manufacturing/core.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"core\",\n  \"domain_id\": \"industrial-mechanical-manufacturing\",\n  \"intents\": [\n    {\n      \"id\": \"explore\",\n      \"action\": \"探索\",\n      \"object\": \"核心入口\",\n      \"leaf_refs\": []\n    }\n  ]\n}\n",
    "index/intents/language-literature-writing/core.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"core\",\n  \"domain_id\": \"language-literature-writing\",\n  \"intents\": [\n    {\n      \"id\": \"explore\",\n      \"action\": \"探索\",\n      \"object\": \"核心入口\",\n      \"leaf_refs\": []\n    }\n  ]\n}\n",
    "index/intents/law-politics-military/core.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"core\",\n  \"domain_id\": \"law-politics-military\",\n  \"intents\": [\n    {\n      \"id\": \"explore\",\n      \"action\": \"探索\",\n      \"object\": \"核心入口\",\n      \"leaf_refs\": []\n    }\n  ]\n}\n",
    "index/intents/math-chemistry-statistics/core.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"core\",\n  \"domain_id\": \"math-chemistry-statistics\",\n  \"intents\": [\n    {\n      \"id\": \"explore\",\n      \"action\": \"探索\",\n      \"object\": \"核心入口\",\n      \"leaf_refs\": []\n    }\n  ]\n}\n",
    "index/intents/news-media-advertising/core.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"core\",\n  \"domain_id\": \"news-media-advertising\",\n  \"intents\": [\n    {\n      \"id\": \"explore\",\n      \"action\": \"探索\",\n      \"object\": \"核心入口\",\n      \"leaf_refs\": []\n    }\n  ]\n}\n",
    "index/intents/philosophy-psychology-religion/core.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"core\",\n  \"domain_id\": \"philosophy-psychology-religion\",\n  \"intents\": [\n    {\n      \"id\": \"explore\",\n      \"action\": \"探索\",\n      \"object\": \"核心入口\",\n      \"leaf_refs\": []\n    }\n  ]\n}\n",
    "index/intents/software-engineering-architecture/backend-architecture.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"backend-architecture\",\n  \"domain_id\": \"software-engineering-architecture\",\n  \"intents\": [\n    {\n      \"id\": \"design-backend\",\n      \"action\": \"设计\",\n      \"object\": \"后端架构\",\n      \"leaf_refs\": [\n        \"service-boundary\"\n      ]\n    },\n    {\n      \"id\": \"review-backend\",\n      \"action\": \"评审\",\n      \"object\": \"后端方案\",\n      \"leaf_refs\": [\n        \"service-boundary\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/software-engineering-architecture/desktop-web-mobile.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"desktop-web-mobile\",\n  \"domain_id\": \"software-engineering-architecture\",\n  \"intents\": [\n    {\n      \"id\": \"compare-platform\",\n      \"action\": \"比较\",\n      \"object\": \"平台能力\",\n      \"leaf_refs\": [\n        \"cross-platform-rendering\"\n      ]\n    },\n    {\n      \"id\": \"choose-renderer\",\n      \"action\": \"选择\",\n      \"object\": \"渲染后端\",\n      \"leaf_refs\": [\n        \"cross-platform-rendering\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/software-engineering-architecture/frontend-platform.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"frontend-platform\",\n  \"domain_id\": \"software-engineering-architecture\",\n  \"intents\": [\n    {\n      \"id\": \"design-frontend\",\n      \"action\": \"设计\",\n      \"object\": \"前端平台\",\n      \"leaf_refs\": [\n        \"frontend-runtime\"\n      ]\n    },\n    {\n      \"id\": \"audit-frontend\",\n      \"action\": \"评审\",\n      \"object\": \"前端平台\",\n      \"leaf_refs\": [\n        \"frontend-runtime\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/software-engineering-architecture/high-availability.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"high-availability\",\n  \"domain_id\": \"software-engineering-architecture\",\n  \"intents\": [\n    {\n      \"id\": \"design-ha\",\n      \"action\": \"设计\",\n      \"object\": \"高可用\",\n      \"leaf_refs\": [\n        \"availability-patterns\"\n      ]\n    },\n    {\n      \"id\": \"audit-ha\",\n      \"action\": \"演练\",\n      \"object\": \"故障恢复\",\n      \"leaf_refs\": [\n        \"availability-patterns\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/software-engineering-architecture/high-concurrency.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"high-concurrency\",\n  \"domain_id\": \"software-engineering-architecture\",\n  \"intents\": [\n    {\n      \"id\": \"model-capacity\",\n      \"action\": \"建模\",\n      \"object\": \"并发容量\",\n      \"leaf_refs\": [\n        \"capacity-model\"\n      ]\n    },\n    {\n      \"id\": \"tune-performance\",\n      \"action\": \"优化\",\n      \"object\": \"性能\",\n      \"leaf_refs\": [\n        \"capacity-model\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/software-engineering-architecture/idempotency.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"idempotency\",\n  \"domain_id\": \"software-engineering-architecture\",\n  \"intents\": [\n    {\n      \"id\": \"design-idempotency\",\n      \"action\": \"设计\",\n      \"object\": \"幂等契约\",\n      \"leaf_refs\": [\n        \"idempotency-contract\"\n      ]\n    },\n    {\n      \"id\": \"diagnose-duplicate\",\n      \"action\": \"排查\",\n      \"object\": \"重复写入\",\n      \"leaf_refs\": [\n        \"idempotency-contract\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/software-engineering-architecture/observability.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"observability\",\n  \"domain_id\": \"software-engineering-architecture\",\n  \"intents\": [\n    {\n      \"id\": \"define-slo\",\n      \"action\": \"定义\",\n      \"object\": \"SLO\",\n      \"leaf_refs\": [\n        \"observability-contract\"\n      ]\n    },\n    {\n      \"id\": \"debug-production\",\n      \"action\": \"排障\",\n      \"object\": \"线上故障\",\n      \"leaf_refs\": [\n        \"observability-contract\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/software-engineering-architecture/scalability.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"scalability\",\n  \"domain_id\": \"software-engineering-architecture\",\n  \"intents\": [\n    {\n      \"id\": \"design-scale\",\n      \"action\": \"设计\",\n      \"object\": \"扩展策略\",\n      \"leaf_refs\": [\n        \"scaling-strategies\"\n      ]\n    },\n    {\n      \"id\": \"plan-migration\",\n      \"action\": \"规划\",\n      \"object\": \"容量迁移\",\n      \"leaf_refs\": [\n        \"scaling-strategies\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/workplace-communication/execution-language.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"execution-language\",\n  \"domain_id\": \"workplace-communication\",\n  \"intents\": [\n    {\n      \"id\": \"write-action\",\n      \"action\": \"编写\",\n      \"object\": \"执行项\",\n      \"leaf_refs\": [\n        \"action-item\"\n      ]\n    },\n    {\n      \"id\": \"review-status\",\n      \"action\": \"复盘\",\n      \"object\": \"状态汇报\",\n      \"leaf_refs\": [\n        \"action-item\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/workplace-communication/goal-alignment.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"goal-alignment\",\n  \"domain_id\": \"workplace-communication\",\n  \"intents\": [\n    {\n      \"id\": \"define-goal\",\n      \"action\": \"定义\",\n      \"object\": \"目标\",\n      \"leaf_refs\": [\n        \"goal-metric\"\n      ]\n    },\n    {\n      \"id\": \"review-priority\",\n      \"action\": \"评审\",\n      \"object\": \"优先级\",\n      \"leaf_refs\": [\n        \"goal-metric\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/workplace-communication/management-terms.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"management-terms\",\n  \"domain_id\": \"workplace-communication\",\n  \"intents\": [\n    {\n      \"id\": \"explain-term\",\n      \"action\": \"解释\",\n      \"object\": \"管理术语\",\n      \"leaf_refs\": [\n        \"management-mechanism\"\n      ]\n    },\n    {\n      \"id\": \"translate-jargon\",\n      \"action\": \"翻译\",\n      \"object\": \"组织黑话\",\n      \"leaf_refs\": [\n        \"management-mechanism\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/workplace-communication/project-collaboration.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"project-collaboration\",\n  \"domain_id\": \"workplace-communication\",\n  \"intents\": [\n    {\n      \"id\": \"align-collaboration\",\n      \"action\": \"对齐\",\n      \"object\": \"项目协作\",\n      \"leaf_refs\": [\n        \"dependency-alignment\"\n      ]\n    },\n    {\n      \"id\": \"resolve-dependency\",\n      \"action\": \"解决\",\n      \"object\": \"协作依赖\",\n      \"leaf_refs\": [\n        \"dependency-alignment\"\n      ]\n    }\n  ]\n}\n",
    "index/intents/workplace-communication/vague-expression.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"subdomain_id\": \"vague-expression\",\n  \"domain_id\": \"workplace-communication\",\n  \"intents\": [\n    {\n      \"id\": \"clarify-vague\",\n      \"action\": \"澄清\",\n      \"object\": \"模糊表达\",\n      \"leaf_refs\": [\n        \"jargon-translation\"\n      ]\n    },\n    {\n      \"id\": \"rewrite-actionable\",\n      \"action\": \"改写\",\n      \"object\": \"可执行表达\",\n      \"leaf_refs\": [\n        \"jargon-translation\"\n      ]\n    }\n  ]\n}\n",
    "index/leaves.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"knowledge_types\": [\n    \"term\",\n    \"pattern\",\n    \"technique\",\n    \"guideline\",\n    \"parameter\",\n    \"template\",\n    \"platform-research\"\n  ],\n  \"leaves\": [\n    {\n      \"leaf_id\": \"action-item\",\n      \"title\": \"执行项\",\n      \"path\": \"terms/workplace/action-item.json\",\n      \"domain_id\": \"workplace-communication\",\n      \"subdomain_id\": \"execution-language\",\n      \"knowledge_type\": \"term\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"write-action\",\n        \"review-status\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"availability-patterns\",\n      \"title\": \"高可用模式\",\n      \"path\": \"terms/software-engineering/availability-patterns.json\",\n      \"domain_id\": \"software-engineering-architecture\",\n      \"subdomain_id\": \"high-availability\",\n      \"knowledge_type\": \"term\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-ha\",\n        \"audit-ha\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"before-after-slider\",\n      \"title\": \"前后对比滑块\",\n      \"path\": \"terms/interaction/advanced/before-after-slider.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"bottom-sheet\",\n      \"title\": \"阻尼弹性底部抽屉\",\n      \"path\": \"terms/interaction/bottom-sheet.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"burst-feedback\",\n      \"title\": \"Burst 点击爆散\",\n      \"path\": \"terms/interaction/burst-feedback.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"button-stepper-morph\",\n      \"title\": \"按钮变步进器\",\n      \"path\": \"terms/interaction/continuous/button-stepper-morph.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"camera-language\",\n      \"title\": \"镜头语言\",\n      \"path\": \"terms/camera-language/camera-language.json\",\n      \"domain_id\": \"ai-aigc-meta-skills\",\n      \"subdomain_id\": \"camera-language\",\n      \"knowledge_type\": \"term\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"write-image-prompt\",\n        \"write-video-prompt\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"capacity-model\",\n      \"title\": \"并发容量模型\",\n      \"path\": \"terms/software-engineering/capacity-model.json\",\n      \"domain_id\": \"software-engineering-architecture\",\n      \"subdomain_id\": \"high-concurrency\",\n      \"knowledge_type\": \"term\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"model-capacity\",\n        \"tune-performance\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"card-flip\",\n      \"title\": \"3D 卡片翻面\",\n      \"path\": \"terms/interaction/card-flip.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"character-ip\",\n      \"title\": \"角色 IP 一致性\",\n      \"path\": \"terms/character-ip/character-ip.json\",\n      \"domain_id\": \"ai-aigc-meta-skills\",\n      \"subdomain_id\": \"character-ip\",\n      \"knowledge_type\": \"template\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"generate-character\",\n        \"extend-character\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 2,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"checkbox-cascade\",\n      \"title\": \"勾选联动\",\n      \"path\": \"terms/interaction/continuous/checkbox-cascade.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"technique\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"composition-language\",\n      \"title\": \"构图语言\",\n      \"path\": \"terms/composition/composition-language.json\",\n      \"domain_id\": \"ai-aigc-meta-skills\",\n      \"subdomain_id\": \"composition\",\n      \"knowledge_type\": \"term\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"write-image-prompt\",\n        \"audit-image-prompt\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"composition-patterns\",\n      \"title\": \"高级布局六式\",\n      \"path\": \"terms/visual-layout/composition-patterns.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"visual-layout\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-layout\",\n        \"audit-layout\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"count-animation\",\n      \"title\": \"Count 数字滚动\",\n      \"path\": \"terms/interaction/count-animation.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"cover-color-ambient-glow\",\n      \"title\": \"封面取色氛围光\",\n      \"path\": \"terms/visual-effects/cover-color-ambient-glow.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"visual-effects\",\n      \"knowledge_type\": \"technique\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-visual-effect\",\n        \"implement-visual-effect\",\n        \"audit-performance\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"cross-platform-rendering\",\n      \"title\": \"跨平台渲染边界\",\n      \"path\": \"terms/software-engineering/cross-platform-rendering.json\",\n      \"domain_id\": \"software-engineering-architecture\",\n      \"subdomain_id\": \"desktop-web-mobile\",\n      \"knowledge_type\": \"term\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"compare-platform\",\n        \"choose-renderer\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"cylindrical-list\",\n      \"title\": \"圆柱卷收列表\",\n      \"path\": \"terms/visual-effects/cylindrical-list.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"visual-effects\",\n      \"knowledge_type\": \"technique\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-visual-effect\",\n        \"implement-visual-effect\",\n        \"audit-performance\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"damped-bottom-sheet\",\n      \"title\": \"阻尼弹性抽屉\",\n      \"path\": \"terms/component-design/damped-bottom-sheet.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"component-design\",\n      \"knowledge_type\": \"template\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"generate-component\",\n        \"spec-component\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 2,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"dependency-alignment\",\n      \"title\": \"项目依赖对齐\",\n      \"path\": \"terms/workplace/dependency-alignment.json\",\n      \"domain_id\": \"workplace-communication\",\n      \"subdomain_id\": \"project-collaboration\",\n      \"knowledge_type\": \"term\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"align-collaboration\",\n        \"resolve-dependency\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"depth-layer-scroll\",\n      \"title\": \"景深分层滚动\",\n      \"path\": \"terms/visual-effects/depth-layer-scroll.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"visual-effects\",\n      \"knowledge_type\": \"technique\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-visual-effect\",\n        \"implement-visual-effect\",\n        \"audit-performance\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"diffused-glow-border\",\n      \"title\": \"动态弥散光晕边框\",\n      \"path\": \"terms/component-design/diffused-glow-border.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"component-design\",\n      \"knowledge_type\": \"template\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"generate-component\",\n        \"spec-component\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"drag-to-absorb\",\n      \"title\": \"拖到目标吸入\",\n      \"path\": \"terms/interaction/advanced/drag-to-absorb.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"draw-success\",\n      \"title\": \"Draw 成功勾选\",\n      \"path\": \"terms/interaction/draw-success.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"edge-docked-fab\",\n      \"title\": \"吸边悬浮球\",\n      \"path\": \"terms/interaction/advanced/edge-docked-fab.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"elastic-press-feedback\",\n      \"title\": \"弹性微缩触觉反馈\",\n      \"path\": \"terms/component-design/elastic-press-feedback.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"component-design\",\n      \"knowledge_type\": \"template\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"generate-component\",\n        \"spec-component\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"fab-panel-morph\",\n      \"title\": \"加号展开面板\",\n      \"path\": \"terms/interaction/continuous/fab-panel-morph.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"flip-reentry\",\n      \"title\": \"FLIP 反向归位\",\n      \"path\": \"terms/interaction/flip-reentry.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"technique\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 2,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"fluid-capsule-morph\",\n      \"title\": \"流体胶囊形变\",\n      \"path\": \"terms/component-design/fluid-capsule-morph.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"component-design\",\n      \"knowledge_type\": \"template\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"generate-component\",\n        \"spec-component\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"follow\",\n      \"title\": \"跟随\",\n      \"path\": \"terms/interaction/follow.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"principle\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"frontend-runtime\",\n      \"title\": \"前端平台边界\",\n      \"path\": \"terms/software-engineering/frontend-runtime.json\",\n      \"domain_id\": \"software-engineering-architecture\",\n      \"subdomain_id\": \"frontend-platform\",\n      \"knowledge_type\": \"term\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-frontend\",\n        \"audit-frontend\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"fullscreen-reveal-menu\",\n      \"title\": \"菜单铺满全屏\",\n      \"path\": \"terms/interaction/continuous/fullscreen-reveal-menu.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"goal-metric\",\n      \"title\": \"目标与指标\",\n      \"path\": \"terms/workplace/goal-metric.json\",\n      \"domain_id\": \"workplace-communication\",\n      \"subdomain_id\": \"goal-alignment\",\n      \"knowledge_type\": \"term\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"define-goal\",\n        \"review-priority\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"gpui-desktop-web\",\n      \"title\": \"GPUIX 桌面与 Web 平台研究\",\n      \"path\": \"terms/platform-research/gpui-desktop-web.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"3d-web-interface\",\n      \"knowledge_type\": \"platform-research\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"compare-platform\",\n        \"choose-renderer\"\n      ],\n      \"scope\": \"provider-specific\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": true\n    },\n    {\n      \"leaf_id\": \"gpui-mobile\",\n      \"title\": \"GPUIX 移动端平台研究\",\n      \"path\": \"terms/platform-research/gpui-mobile.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"3d-web-interface\",\n      \"knowledge_type\": \"platform-research\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"compare-platform\",\n        \"choose-renderer\"\n      ],\n      \"scope\": \"provider-specific\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": true\n    },\n    {\n      \"leaf_id\": \"grid-glass-dashboard\",\n      \"title\": \"方格纸玻璃卡 Dashboard\",\n      \"path\": \"terms/dashboard/grid-glass-dashboard.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"dashboard-design\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-dashboard\",\n        \"audit-dashboard\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"grouped-sidebar-dashboard\",\n      \"title\": \"分组侧边栏 Dashboard\",\n      \"path\": \"terms/dashboard/grouped-sidebar-dashboard.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"dashboard-design\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-dashboard\",\n        \"audit-dashboard\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"gsap-core\",\n      \"title\": \"GSAP Core\",\n      \"path\": \"terms/animation-tool-adapter/gsap-core.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"animation-tool-adapter\",\n      \"knowledge_type\": \"technique\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"implement-gsap\",\n        \"audit-gsap\"\n      ],\n      \"scope\": \"provider-specific\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": true,\n      \"provider\": \"GSAP\"\n    },\n    {\n      \"leaf_id\": \"gsap-frameworks\",\n      \"title\": \"GSAP 框架适配\",\n      \"path\": \"terms/animation-tool-adapter/gsap-frameworks.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"animation-tool-adapter\",\n      \"knowledge_type\": \"technique\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"implement-gsap\",\n        \"audit-gsap\"\n      ],\n      \"scope\": \"provider-specific\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": true,\n      \"provider\": \"GSAP\"\n    },\n    {\n      \"leaf_id\": \"gsap-performance\",\n      \"title\": \"GSAP 性能边界\",\n      \"path\": \"terms/animation-tool-adapter/gsap-performance.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"animation-tool-adapter\",\n      \"knowledge_type\": \"technique\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"implement-gsap\",\n        \"audit-gsap\"\n      ],\n      \"scope\": \"provider-specific\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": true,\n      \"provider\": \"GSAP\"\n    },\n    {\n      \"leaf_id\": \"gsap-plugins\",\n      \"title\": \"GSAP Plugins\",\n      \"path\": \"terms/animation-tool-adapter/gsap-plugins.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"animation-tool-adapter\",\n      \"knowledge_type\": \"technique\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"implement-gsap\",\n        \"audit-gsap\"\n      ],\n      \"scope\": \"provider-specific\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": true,\n      \"provider\": \"GSAP\"\n    },\n    {\n      \"leaf_id\": \"gsap-react-lifecycle\",\n      \"title\": \"GSAP React 生命周期\",\n      \"path\": \"terms/animation-tool-adapter/gsap-react-lifecycle.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"animation-tool-adapter\",\n      \"knowledge_type\": \"technique\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"implement-gsap\",\n        \"audit-gsap\"\n      ],\n      \"scope\": \"provider-specific\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": true,\n      \"provider\": \"GSAP\"\n    },\n    {\n      \"leaf_id\": \"gsap-scrolltrigger\",\n      \"title\": \"GSAP ScrollTrigger\",\n      \"path\": \"terms/animation-tool-adapter/gsap-scrolltrigger.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"animation-tool-adapter\",\n      \"knowledge_type\": \"technique\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"implement-gsap\",\n        \"audit-gsap\"\n      ],\n      \"scope\": \"provider-specific\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": true,\n      \"provider\": \"GSAP\"\n    },\n    {\n      \"leaf_id\": \"gsap-timeline\",\n      \"title\": \"GSAP Timeline\",\n      \"path\": \"terms/animation-tool-adapter/gsap-timeline.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"animation-tool-adapter\",\n      \"knowledge_type\": \"technique\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"implement-gsap\",\n        \"audit-gsap\"\n      ],\n      \"scope\": \"provider-specific\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": true,\n      \"provider\": \"GSAP\"\n    },\n    {\n      \"leaf_id\": \"high-contrast\",\n      \"title\": \"强对比视觉型\",\n      \"path\": \"terms/dashboard/high-contrast.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"dashboard-design\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-dashboard\",\n        \"audit-dashboard\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"icon-morph\",\n      \"title\": \"图标变形\",\n      \"path\": \"terms/interaction/continuous/icon-morph.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"idempotency-contract\",\n      \"title\": \"幂等契约\",\n      \"path\": \"terms/software-engineering/idempotency-contract.json\",\n      \"domain_id\": \"software-engineering-architecture\",\n      \"subdomain_id\": \"idempotency\",\n      \"knowledge_type\": \"term\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-idempotency\",\n        \"diagnose-duplicate\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"image-led-content\",\n      \"title\": \"图卡内容型\",\n      \"path\": \"terms/dashboard/image-led-content.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"dashboard-design\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-dashboard\",\n        \"audit-dashboard\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"immersive-atmosphere\",\n      \"title\": \"氛围沉浸型\",\n      \"path\": \"terms/dashboard/immersive-atmosphere.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"dashboard-design\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-dashboard\",\n        \"audit-dashboard\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"inertial-wheel\",\n      \"title\": \"惯性滚轮\",\n      \"path\": \"terms/interaction/advanced/inertial-wheel.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"information-hierarchy\",\n      \"title\": \"信息层级与密度\",\n      \"path\": \"terms/information-architecture/information-hierarchy.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"information-architecture\",\n      \"knowledge_type\": \"principle\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-information\",\n        \"audit-information\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"inline-detail-expand\",\n      \"title\": \"列表展开详情\",\n      \"path\": \"terms/interaction/continuous/inline-detail-expand.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"interruption\",\n      \"title\": \"可中断与恢复\",\n      \"path\": \"terms/interaction/interruption.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"principle\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"jargon-translation\",\n      \"title\": \"职场黑话翻译\",\n      \"path\": \"terms/workplace/jargon-translation.json\",\n      \"domain_id\": \"workplace-communication\",\n      \"subdomain_id\": \"vague-expression\",\n      \"knowledge_type\": \"term\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"clarify-vague\",\n        \"rewrite-actionable\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"layout-patterns\",\n      \"title\": \"高级布局模式\",\n      \"path\": \"terms/dashboard/layout-patterns.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"dashboard-design\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-dashboard\",\n        \"audit-dashboard\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 6,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"liquid-adhesion-drag\",\n      \"title\": \"液滴粘连拖拽\",\n      \"path\": \"terms/visual-effects/liquid-adhesion-drag.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"visual-effects\",\n      \"knowledge_type\": \"technique\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-visual-effect\",\n        \"implement-visual-effect\",\n        \"audit-performance\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"liquid-glass-bar\",\n      \"title\": \"液态玻璃栏\",\n      \"path\": \"terms/visual-effects/liquid-glass-bar.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"visual-effects\",\n      \"knowledge_type\": \"technique\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-visual-effect\",\n        \"implement-visual-effect\",\n        \"audit-performance\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"liquid-slider\",\n      \"title\": \"Liquid 液态滑块\",\n      \"path\": \"terms/interaction/liquid-slider.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"list-grid-flip\",\n      \"title\": \"列表切换网格\",\n      \"path\": \"terms/interaction/continuous/list-grid-flip.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"living-style-guide-preview\",\n      \"title\": \"设计系统活样式预览\",\n      \"path\": \"terms/design-system/living-style-guide-preview.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"design-system\",\n      \"knowledge_type\": \"guideline\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"build-design-system\",\n        \"preview-design-system\",\n        \"audit-design-system\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"long-press-preview\",\n      \"title\": \"长按浮起预览\",\n      \"path\": \"terms/interaction/advanced/long-press-preview.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"magnetic-cursor-odometer\",\n      \"title\": \"磁吸游标与滚动码表\",\n      \"path\": \"terms/component-design/magnetic-cursor-odometer.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"component-design\",\n      \"knowledge_type\": \"template\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"generate-component\",\n        \"spec-component\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"management-mechanism\",\n      \"title\": \"管理机制\",\n      \"path\": \"terms/workplace/management-mechanism.json\",\n      \"domain_id\": \"workplace-communication\",\n      \"subdomain_id\": \"management-terms\",\n      \"knowledge_type\": \"term\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"explain-term\",\n        \"translate-jargon\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"material-library\",\n      \"title\": \"材质风格词\",\n      \"path\": \"terms/material-style/material-library.json\",\n      \"domain_id\": \"ai-aigc-meta-skills\",\n      \"subdomain_id\": \"material-style\",\n      \"knowledge_type\": \"term\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"write-image-prompt\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"minimal-data\",\n      \"title\": \"极简数据型\",\n      \"path\": \"terms/dashboard/minimal-data.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"dashboard-design\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-dashboard\",\n        \"audit-dashboard\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"morph-icon\",\n      \"title\": \"Morph 汉堡变叉\",\n      \"path\": \"terms/interaction/morph-icon.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"motion-accessibility\",\n      \"title\": \"动效可访问性\",\n      \"path\": \"terms/interaction/accessibility.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"accessibility\",\n      \"knowledge_type\": \"guideline\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"audit-accessibility\",\n        \"implement-accessibility\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 2,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"motion-language\",\n      \"title\": \"动作与运动控制\",\n      \"path\": \"terms/motion-control/motion-language.json\",\n      \"domain_id\": \"ai-aigc-meta-skills\",\n      \"subdomain_id\": \"motion-control\",\n      \"knowledge_type\": \"technique\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"write-video-prompt\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"negative-constraints\",\n      \"title\": \"负面约束\",\n      \"path\": \"terms/negative-prompt/negative-constraints.json\",\n      \"domain_id\": \"ai-aigc-meta-skills\",\n      \"subdomain_id\": \"negative-prompt\",\n      \"knowledge_type\": \"guideline\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"write-image-prompt\",\n        \"audit-image-prompt\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"observability-contract\",\n      \"title\": \"可观测性契约\",\n      \"path\": \"terms/software-engineering/observability-contract.json\",\n      \"domain_id\": \"software-engineering-architecture\",\n      \"subdomain_id\": \"observability\",\n      \"knowledge_type\": \"term\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"define-slo\",\n        \"debug-production\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"perspective-carousel\",\n      \"title\": \"景随图换轮播\",\n      \"path\": \"terms/interaction/advanced/perspective-carousel.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 2,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"press-and-hold-confirm\",\n      \"title\": \"按住蓄力确认\",\n      \"path\": \"terms/interaction/advanced/press-and-hold-confirm.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"prompt-blocks\",\n      \"title\": \"图像提示词模块\",\n      \"path\": \"terms/image-prompt/prompt-blocks.json\",\n      \"domain_id\": \"ai-aigc-meta-skills\",\n      \"subdomain_id\": \"image-prompt\",\n      \"knowledge_type\": \"template\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"write-image-prompt\",\n        \"audit-image-prompt\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"radial-menu\",\n      \"title\": \"弧形快捷菜单\",\n      \"path\": \"terms/interaction/advanced/radial-menu.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"radial-reveal-transition\",\n      \"title\": \"圆形扩散转场\",\n      \"path\": \"terms/interaction/continuous/radial-reveal-transition.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"technique\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"reverse-animation\",\n      \"title\": \"撤销反向动画\",\n      \"path\": \"terms/interaction/reverse-animation.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"technique\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"implement-animation\",\n        \"audit-motion\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 3,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"ripple-button\",\n      \"title\": \"Ripple 水波按钮\",\n      \"path\": \"terms/interaction/ripple-button.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"rotary-knob\",\n      \"title\": \"旋钮转盘\",\n      \"path\": \"terms/interaction/advanced/rotary-knob.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"scaling-strategies\",\n      \"title\": \"扩展策略\",\n      \"path\": \"terms/software-engineering/scaling-strategies.json\",\n      \"domain_id\": \"software-engineering-architecture\",\n      \"subdomain_id\": \"scalability\",\n      \"knowledge_type\": \"term\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-scale\",\n        \"plan-migration\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"scroll-header-collapse\",\n      \"title\": \"顶栏随滚动收起\",\n      \"path\": \"terms/interaction/continuous/scroll-header-collapse.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"search-expand\",\n      \"title\": \"搜索框展开\",\n      \"path\": \"terms/interaction/continuous/search-expand.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"segmented-progress\",\n      \"title\": \"分段进度条\",\n      \"path\": \"terms/interaction/advanced/segmented-progress.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"service-boundary\",\n      \"title\": \"服务边界与状态\",\n      \"path\": \"terms/software-engineering/service-boundary.json\",\n      \"domain_id\": \"software-engineering-architecture\",\n      \"subdomain_id\": \"backend-architecture\",\n      \"knowledge_type\": \"term\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-backend\",\n        \"review-backend\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"shared-element-expand\",\n      \"title\": \"共享元素无缝展开\",\n      \"path\": \"terms/component-design/shared-element-expand.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"component-design\",\n      \"knowledge_type\": \"template\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"generate-component\",\n        \"spec-component\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"single-dark-accent-dashboard\",\n      \"title\": \"单深色单强调色 Dashboard\",\n      \"path\": \"terms/dashboard/single-dark-accent-dashboard.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"dashboard-design\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-dashboard\",\n        \"audit-dashboard\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"skeleton-shimmer\",\n      \"title\": \"Shimmer 骨架落位\",\n      \"path\": \"terms/interaction/skeleton-shimmer.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"slide-to-confirm\",\n      \"title\": \"滑动确认组件\",\n      \"path\": \"terms/interaction/advanced/slide-to-confirm.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"snap\",\n      \"title\": \"吸附\",\n      \"path\": \"terms/interaction/snap.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"principle\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"snap-card-timeline\",\n      \"title\": \"吸附卡加画线\",\n      \"path\": \"terms/interaction/continuous/snap-card-timeline.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"technique\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"spring-press\",\n      \"title\": \"Spring 按压回弹\",\n      \"path\": \"terms/interaction/spring-press.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"spring-stagger-flow\",\n      \"title\": \"物理弹簧交错流\",\n      \"path\": \"terms/component-design/spring-stagger-flow.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"component-design\",\n      \"knowledge_type\": \"template\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"generate-component\",\n        \"spec-component\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"squash-toggle\",\n      \"title\": \"Squash 弹性开关\",\n      \"path\": \"terms/interaction/squash-toggle.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"stack-card\",\n      \"title\": \"Stack 卡片抽走\",\n      \"path\": \"terms/interaction/stack-card.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"stack-card-expand\",\n      \"title\": \"叠卡展开\",\n      \"path\": \"terms/interaction/continuous/stack-card-expand.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"technique\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"submit-state-machine\",\n      \"title\": \"提交状态反馈\",\n      \"path\": \"terms/interaction/continuous/submit-state-machine.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 2,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"tab-indicator-spring\",\n      \"title\": \"标签指示条\",\n      \"path\": \"terms/interaction/continuous/tab-indicator-spring.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"three-ui-catalog\",\n      \"title\": \"ThreeUI 组件目录研究\",\n      \"path\": \"terms/platform-research/three-ui-catalog.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"3d-web-interface\",\n      \"knowledge_type\": \"platform-research\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"compare-platform\",\n        \"choose-renderer\"\n      ],\n      \"scope\": \"provider-specific\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": true\n    },\n    {\n      \"leaf_id\": \"threshold\",\n      \"title\": \"阈值\",\n      \"path\": \"terms/interaction/threshold.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"principle\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"tilt-light-panel\",\n      \"title\": \"3D 倾斜光影面板\",\n      \"path\": \"terms/component-design/tilt-light-panel.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"component-design\",\n      \"knowledge_type\": \"template\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"generate-component\",\n        \"spec-component\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"token-system\",\n      \"title\": \"设计令牌系统\",\n      \"path\": \"terms/design-tokens/token-system.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"design-tokens\",\n      \"knowledge_type\": \"parameter\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"define-tokens\",\n        \"audit-tokens\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"tonal-dark-dashboard\",\n      \"title\": \"暗底明度分层 Dashboard\",\n      \"path\": \"terms/dashboard/tonal-dark-dashboard.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"dashboard-design\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-dashboard\",\n        \"audit-dashboard\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"tool-parameters\",\n      \"title\": \"工具参数适配\",\n      \"path\": \"terms/tool-adapter/tool-parameters.json\",\n      \"domain_id\": \"ai-aigc-meta-skills\",\n      \"subdomain_id\": \"tool-adapter\",\n      \"knowledge_type\": \"template\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"write-image-prompt\",\n        \"write-video-prompt\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"undo-window\",\n      \"title\": \"撤销时间窗口\",\n      \"path\": \"terms/interaction/undo-window.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"technique\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"audit-motion\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 3,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"velocity-inheritance\",\n      \"title\": \"速度继承\",\n      \"path\": \"terms/interaction/velocity-inheritance.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"principle\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"video-direction\",\n      \"title\": \"视频镜头与运动描述\",\n      \"path\": \"terms/video-prompt/video-direction.json\",\n      \"domain_id\": \"ai-aigc-meta-skills\",\n      \"subdomain_id\": \"video-prompt\",\n      \"knowledge_type\": \"template\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"write-video-prompt\",\n        \"audit-video-prompt\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"warm-minimal\",\n      \"title\": \"暖调留白型\",\n      \"path\": \"terms/dashboard/warm-minimal.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"dashboard-design\",\n      \"knowledge_type\": \"pattern\",\n      \"status\": \"published\",\n      \"intent_ids\": [\n        \"design-dashboard\",\n        \"audit-dashboard\"\n      ],\n      \"scope\": \"general\",\n      \"entry_count\": 1,\n      \"do_not_generalize\": false\n    }\n  ]\n}\n",
    "index/packages.json": "{\n  \"schema_version\": \"2.0.0\",\n  \"packages\": [\n    {\n      \"domain_id\": \"agri-food-cooking\",\n      \"package_id\": \"agri-food-cooking-core\",\n      \"title\": \"农林/食品/烹饪领域需求澄清术语包（草案）\",\n      \"status\": \"draft\",\n      \"term_path\": \"terms/agri-food-cooking.json\",\n      \"intents\": [\n        \"design\",\n        \"diagnose\"\n      ],\n      \"subdomain_index\": \"index/domains/agri-food-cooking.json\",\n      \"leaf_count\": 0,\n      \"loading_policy\": \"progressive\"\n    },\n    {\n      \"domain_id\": \"ai-aigc-meta-skills\",\n      \"package_id\": \"aigc-core\",\n      \"title\": \"AIGC 影像与提示词需求澄清术语包\",\n      \"status\": \"published\",\n      \"term_path\": \"terms/aigc.json\",\n      \"intents\": [\n        \"generate-image\",\n        \"generate-video\",\n        \"write-prompt\"\n      ],\n      \"subdomain_index\": \"index/domains/ai-aigc-meta-skills.json\",\n      \"leaf_count\": 9,\n      \"loading_policy\": \"progressive\"\n    },\n    {\n      \"domain_id\": \"architecture-civil-space\",\n      \"package_id\": \"architecture-civil-space-core\",\n      \"title\": \"建筑/土木/空间领域需求澄清术语包（草案）\",\n      \"status\": \"draft\",\n      \"term_path\": \"terms/architecture-civil-space.json\",\n      \"intents\": [\n        \"design\",\n        \"diagnose\"\n      ],\n      \"subdomain_index\": \"index/domains/architecture-civil-space.json\",\n      \"leaf_count\": 0,\n      \"loading_policy\": \"progressive\"\n    },\n    {\n      \"domain_id\": \"arts-aesthetics-design\",\n      \"package_id\": \"arts-aesthetics-design-core\",\n      \"title\": \"艺术/美学/传统设计领域需求澄清术语包（草案）\",\n      \"status\": \"draft\",\n      \"term_path\": \"terms/arts-aesthetics-design.json\",\n      \"intents\": [\n        \"design\",\n        \"diagnose\"\n      ],\n      \"subdomain_index\": \"index/domains/arts-aesthetics-design.json\",\n      \"leaf_count\": 0,\n      \"loading_policy\": \"progressive\"\n    },\n    {\n      \"domain_id\": \"astronomy-earth-environment\",\n      \"package_id\": \"astronomy-earth-environment-core\",\n      \"title\": \"天文/地学/环境领域需求澄清术语包（草案）\",\n      \"status\": \"draft\",\n      \"term_path\": \"terms/astronomy-earth-environment.json\",\n      \"intents\": [\n        \"design\",\n        \"diagnose\"\n      ],\n      \"subdomain_index\": \"index/domains/astronomy-earth-environment.json\",\n      \"leaf_count\": 0,\n      \"loading_policy\": \"progressive\"\n    },\n    {\n      \"domain_id\": \"software-engineering-architecture\",\n      \"package_id\": \"backend-core\",\n      \"title\": \"后端与软件工程需求澄清术语包（幂等子域草案）\",\n      \"status\": \"published\",\n      \"term_path\": \"terms/backend.json\",\n      \"intents\": [\n        \"design-write\",\n        \"diagnose-write\"\n      ],\n      \"subdomain_index\": \"index/domains/software-engineering-architecture.json\",\n      \"leaf_count\": 8,\n      \"loading_policy\": \"progressive\"\n    },\n    {\n      \"domain_id\": \"biology-medicine-health\",\n      \"package_id\": \"biology-medicine-health-core\",\n      \"title\": \"生物/医学/健康领域需求澄清术语包（草案）\",\n      \"status\": \"draft\",\n      \"term_path\": \"terms/biology-medicine-health.json\",\n      \"intents\": [\n        \"design\",\n        \"diagnose\"\n      ],\n      \"subdomain_index\": \"index/domains/biology-medicine-health.json\",\n      \"leaf_count\": 0,\n      \"loading_policy\": \"progressive\"\n    },\n    {\n      \"domain_id\": \"communications-electronics-hardware\",\n      \"package_id\": \"communications-electronics-hardware-core\",\n      \"title\": \"通信/电子/硬件工程领域需求澄清术语包（草案）\",\n      \"status\": \"draft\",\n      \"term_path\": \"terms/communications-electronics-hardware.json\",\n      \"intents\": [\n        \"design\",\n        \"diagnose\"\n      ],\n      \"subdomain_index\": \"index/domains/communications-electronics-hardware.json\",\n      \"leaf_count\": 0,\n      \"loading_policy\": \"progressive\"\n    },\n    {\n      \"domain_id\": \"economics-management-finance\",\n      \"package_id\": \"economics-management-finance-core\",\n      \"title\": \"经济/管理/金融领域需求澄清术语包（草案）\",\n      \"status\": \"draft\",\n      \"term_path\": \"terms/economics-management-finance.json\",\n      \"intents\": [\n        \"design\",\n        \"diagnose\"\n      ],\n      \"subdomain_index\": \"index/domains/economics-management-finance.json\",\n      \"leaf_count\": 0,\n      \"loading_policy\": \"progressive\"\n    },\n    {\n      \"domain_id\": \"education-sports\",\n      \"package_id\": \"education-sports-core\",\n      \"title\": \"教育/体育/运动领域需求澄清术语包（草案）\",\n      \"status\": \"draft\",\n      \"term_path\": \"terms/education-sports.json\",\n      \"intents\": [\n        \"design\",\n        \"diagnose\"\n      ],\n      \"subdomain_index\": \"index/domains/education-sports.json\",\n      \"leaf_count\": 0,\n      \"loading_policy\": \"progressive\"\n    },\n    {\n      \"domain_id\": \"history-geography-travel\",\n      \"package_id\": \"history-geography-travel-core\",\n      \"title\": \"历史/地理/旅游领域需求澄清术语包（草案）\",\n      \"status\": \"draft\",\n      \"term_path\": \"terms/history-geography-travel.json\",\n      \"intents\": [\n        \"design\",\n        \"diagnose\"\n      ],\n      \"subdomain_index\": \"index/domains/history-geography-travel.json\",\n      \"leaf_count\": 0,\n      \"loading_policy\": \"progressive\"\n    },\n    {\n      \"domain_id\": \"industrial-mechanical-manufacturing\",\n      \"package_id\": \"industrial-mechanical-manufacturing-core\",\n      \"title\": \"工业/机械/制造领域需求澄清术语包（草案）\",\n      \"status\": \"draft\",\n      \"term_path\": \"terms/industrial-mechanical-manufacturing.json\",\n      \"intents\": [\n        \"design\",\n        \"diagnose\"\n      ],\n      \"subdomain_index\": \"index/domains/industrial-mechanical-manufacturing.json\",\n      \"leaf_count\": 0,\n      \"loading_policy\": \"progressive\"\n    },\n    {\n      \"domain_id\": \"language-literature-writing\",\n      \"package_id\": \"language-literature-writing-core\",\n      \"title\": \"语言/文学/写作领域需求澄清术语包（草案）\",\n      \"status\": \"draft\",\n      \"term_path\": \"terms/language-literature-writing.json\",\n      \"intents\": [\n        \"design\",\n        \"diagnose\"\n      ],\n      \"subdomain_index\": \"index/domains/language-literature-writing.json\",\n      \"leaf_count\": 0,\n      \"loading_policy\": \"progressive\"\n    },\n    {\n      \"domain_id\": \"law-politics-military\",\n      \"package_id\": \"law-politics-military-core\",\n      \"title\": \"政法/军事/法律领域需求澄清术语包（草案）\",\n      \"status\": \"draft\",\n      \"term_path\": \"terms/law-politics-military.json\",\n      \"intents\": [\n        \"design\",\n        \"diagnose\"\n      ],\n      \"subdomain_index\": \"index/domains/law-politics-military.json\",\n      \"leaf_count\": 0,\n      \"loading_policy\": \"progressive\"\n    },\n    {\n      \"domain_id\": \"math-chemistry-statistics\",\n      \"package_id\": \"math-chemistry-statistics-core\",\n      \"title\": \"数理/化学/统计领域需求澄清术语包（草案）\",\n      \"status\": \"draft\",\n      \"term_path\": \"terms/math-chemistry-statistics.json\",\n      \"intents\": [\n        \"design\",\n        \"diagnose\"\n      ],\n      \"subdomain_index\": \"index/domains/math-chemistry-statistics.json\",\n      \"leaf_count\": 0,\n      \"loading_policy\": \"progressive\"\n    },\n    {\n      \"domain_id\": \"news-media-advertising\",\n      \"package_id\": \"news-media-advertising-core\",\n      \"title\": \"新闻/传媒/广告领域需求澄清术语包（草案）\",\n      \"status\": \"draft\",\n      \"term_path\": \"terms/news-media-advertising.json\",\n      \"intents\": [\n        \"design\",\n        \"diagnose\"\n      ],\n      \"subdomain_index\": \"index/domains/news-media-advertising.json\",\n      \"leaf_count\": 0,\n      \"loading_policy\": \"progressive\"\n    },\n    {\n      \"domain_id\": \"philosophy-psychology-religion\",\n      \"package_id\": \"philosophy-psychology-religion-core\",\n      \"title\": \"哲学/心理/宗教领域需求澄清术语包（草案）\",\n      \"status\": \"draft\",\n      \"term_path\": \"terms/philosophy-psychology-religion.json\",\n      \"intents\": [\n        \"design\",\n        \"diagnose\"\n      ],\n      \"subdomain_index\": \"index/domains/philosophy-psychology-religion.json\",\n      \"leaf_count\": 0,\n      \"loading_policy\": \"progressive\"\n    },\n    {\n      \"domain_id\": \"digital-product-uiux\",\n      \"package_id\": \"uiux-core\",\n      \"title\": \"网页 UI/UX 需求澄清术语包\",\n      \"status\": \"published\",\n      \"term_path\": \"terms/uiux.json\",\n      \"intents\": [\n        \"design-page\",\n        \"diagnose-usability\"\n      ],\n      \"subdomain_index\": \"index/domains/digital-product-uiux.json\",\n      \"leaf_count\": 83,\n      \"loading_policy\": \"progressive\"\n    },\n    {\n      \"domain_id\": \"workplace-communication\",\n      \"package_id\": \"workplace-language\",\n      \"title\": \"职场模糊表达与专业化解释术语包\",\n      \"status\": \"published\",\n      \"term_path\": \"terms/workplace.json\",\n      \"intents\": [\n        \"clarify-workplace-language\",\n        \"rewrite-workplace-request\"\n      ],\n      \"subdomain_index\": \"index/domains/workplace-communication.json\",\n      \"leaf_count\": 5,\n      \"loading_policy\": \"progressive\"\n    }\n  ]\n}\n",
    "index/root.json": "{\n  \"schema_version\": \"2.0.0\",\n  \"domains\": [\n    {\n      \"domain_id\": \"philosophy-psychology-religion\",\n      \"title\": \"哲学/心理/宗教\",\n      \"description\": \"思想、心理与信念相关的解释和表达\",\n      \"package_status\": \"indexed\",\n      \"subdomain_index\": \"index/domains/philosophy-psychology-religion.json\",\n      \"loading_hint\": \"先匹配子域，再读取最小叶子包\"\n    },\n    {\n      \"domain_id\": \"law-politics-military\",\n      \"title\": \"政法/军事/法律\",\n      \"description\": \"法律、政策、治理与军事相关产物\",\n      \"package_status\": \"indexed\",\n      \"subdomain_index\": \"index/domains/law-politics-military.json\",\n      \"loading_hint\": \"先匹配子域，再读取最小叶子包\"\n    },\n    {\n      \"domain_id\": \"economics-management-finance\",\n      \"title\": \"经济/管理/金融\",\n      \"description\": \"经济、组织管理和金融相关产物\",\n      \"package_status\": \"indexed\",\n      \"subdomain_index\": \"index/domains/economics-management-finance.json\",\n      \"loading_hint\": \"先匹配子域，再读取最小叶子包\"\n    },\n    {\n      \"domain_id\": \"education-sports\",\n      \"title\": \"教育/体育/运动\",\n      \"description\": \"教学、训练和运动相关产物\",\n      \"package_status\": \"indexed\",\n      \"subdomain_index\": \"index/domains/education-sports.json\",\n      \"loading_hint\": \"先匹配子域，再读取最小叶子包\"\n    },\n    {\n      \"domain_id\": \"language-literature-writing\",\n      \"title\": \"语言/文学/写作\",\n      \"description\": \"语言表达、文学和写作相关产物\",\n      \"package_status\": \"indexed\",\n      \"subdomain_index\": \"index/domains/language-literature-writing.json\",\n      \"loading_hint\": \"先匹配子域，再读取最小叶子包\"\n    },\n    {\n      \"domain_id\": \"arts-aesthetics-design\",\n      \"title\": \"艺术/美学/传统设计\",\n      \"description\": \"艺术、美学和传统设计相关产物\",\n      \"package_status\": \"indexed\",\n      \"subdomain_index\": \"index/domains/arts-aesthetics-design.json\",\n      \"loading_hint\": \"先匹配子域，再读取最小叶子包\"\n    },\n    {\n      \"domain_id\": \"digital-product-uiux\",\n      \"title\": \"数字产品与交互设计（UI/UX）\",\n      \"description\": \"界面、交互和数字产品相关产物\",\n      \"package_status\": \"indexed\",\n      \"subdomain_index\": \"index/domains/digital-product-uiux.json\",\n      \"loading_hint\": \"先匹配子域，再读取最小叶子包\"\n    },\n    {\n      \"domain_id\": \"history-geography-travel\",\n      \"title\": \"历史/地理/旅游\",\n      \"description\": \"历史、地理和旅行相关产物\",\n      \"package_status\": \"indexed\",\n      \"subdomain_index\": \"index/domains/history-geography-travel.json\",\n      \"loading_hint\": \"先匹配子域，再读取最小叶子包\"\n    },\n    {\n      \"domain_id\": \"news-media-advertising\",\n      \"title\": \"新闻/传媒/广告\",\n      \"description\": \"报道、媒体、广告和短视频相关产物\",\n      \"package_status\": \"indexed\",\n      \"subdomain_index\": \"index/domains/news-media-advertising.json\",\n      \"loading_hint\": \"先匹配子域，再读取最小叶子包\"\n    },\n    {\n      \"domain_id\": \"math-chemistry-statistics\",\n      \"title\": \"数理/化学/统计\",\n      \"description\": \"数学、化学和统计分析相关产物\",\n      \"package_status\": \"indexed\",\n      \"subdomain_index\": \"index/domains/math-chemistry-statistics.json\",\n      \"loading_hint\": \"先匹配子域，再读取最小叶子包\"\n    },\n    {\n      \"domain_id\": \"astronomy-earth-environment\",\n      \"title\": \"天文/地学/环境\",\n      \"description\": \"天文、地学和环境相关产物\",\n      \"package_status\": \"indexed\",\n      \"subdomain_index\": \"index/domains/astronomy-earth-environment.json\",\n      \"loading_hint\": \"先匹配子域，再读取最小叶子包\"\n    },\n    {\n      \"domain_id\": \"biology-medicine-health\",\n      \"title\": \"生物/医学/健康\",\n      \"description\": \"生物、医学和健康相关产物\",\n      \"package_status\": \"indexed\",\n      \"subdomain_index\": \"index/domains/biology-medicine-health.json\",\n      \"loading_hint\": \"先匹配子域，再读取最小叶子包\"\n    },\n    {\n      \"domain_id\": \"agri-food-cooking\",\n      \"title\": \"农林/食品/烹饪\",\n      \"description\": \"农业、食品和烹饪相关产物\",\n      \"package_status\": \"indexed\",\n      \"subdomain_index\": \"index/domains/agri-food-cooking.json\",\n      \"loading_hint\": \"先匹配子域，再读取最小叶子包\"\n    },\n    {\n      \"domain_id\": \"industrial-mechanical-manufacturing\",\n      \"title\": \"工业/机械/制造\",\n      \"description\": \"工业、机械、制造和汽修相关产物\",\n      \"package_status\": \"indexed\",\n      \"subdomain_index\": \"index/domains/industrial-mechanical-manufacturing.json\",\n      \"loading_hint\": \"先匹配子域，再读取最小叶子包\"\n    },\n    {\n      \"domain_id\": \"architecture-civil-space\",\n      \"title\": \"建筑/土木/空间\",\n      \"description\": \"建筑、土木工程和空间设计相关产物\",\n      \"package_status\": \"indexed\",\n      \"subdomain_index\": \"index/domains/architecture-civil-space.json\",\n      \"loading_hint\": \"先匹配子域，再读取最小叶子包\"\n    },\n    {\n      \"domain_id\": \"communications-electronics-hardware\",\n      \"title\": \"通信/电子/硬件工程\",\n      \"description\": \"通信、电子和硬件工程相关产物\",\n      \"package_status\": \"indexed\",\n      \"subdomain_index\": \"index/domains/communications-electronics-hardware.json\",\n      \"loading_hint\": \"先匹配子域，再读取最小叶子包\"\n    },\n    {\n      \"domain_id\": \"software-engineering-architecture\",\n      \"title\": \"软件工程与架构\",\n      \"description\": \"前后端开发、系统架构和运维相关产物\",\n      \"package_status\": \"indexed\",\n      \"subdomain_index\": \"index/domains/software-engineering-architecture.json\",\n      \"loading_hint\": \"先匹配子域，再读取最小叶子包\"\n    },\n    {\n      \"domain_id\": \"ai-aigc-meta-skills\",\n      \"title\": \"AI/AIGC/元技能\",\n      \"description\": \"文生图、文生视频和提示词工程相关产物\",\n      \"package_status\": \"indexed\",\n      \"subdomain_index\": \"index/domains/ai-aigc-meta-skills.json\",\n      \"loading_hint\": \"先匹配子域，再读取最小叶子包\"\n    },\n    {\n      \"domain_id\": \"workplace-communication\",\n      \"title\": \"职场沟通与组织协作\",\n      \"description\": \"职场表达、目标对齐、项目协作和组织沟通相关产物\",\n      \"package_status\": \"indexed\",\n      \"subdomain_index\": \"index/domains/workplace-communication.json\",\n      \"loading_hint\": \"先匹配子域，再读取最小叶子包\"\n    }\n  ],\n  \"loading_policy\": {\n    \"strategy\": \"progressive\",\n    \"levels\": [\n      \"root\",\n      \"subdomain\",\n      \"intent\",\n      \"leaf\",\n      \"entry\"\n    ],\n    \"max_subdomains\": 3,\n    \"max_intents\": 3,\n    \"max_intents_scope\": \"per_subdomain\",\n    \"max_leaf_packages\": 8,\n    \"max_entries_per_leaf\": 30,\n    \"route_score_margin\": 2,\n    \"high_confidence_score\": 6,\n    \"high_confidence_margin\": 1,\n    \"min_route_score\": 2,\n    \"search_fallback\": \"ask-before-network\"\n  }\n}\n",
    "index/runtime.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"index_type\": \"runtime-router\",\n  \"generated_by\": \"scripts/bootstrap-progressive-content.py\",\n  \"matching\": {\n    \"normalization\": [\n      \"lowercase\",\n      \"unicode_nfkc\"\n    ],\n    \"scoring\": \"token-overlap\",\n    \"tie_break\": \"score_then_leaf_id\"\n  },\n  \"limits\": {\n    \"strategy\": \"progressive\",\n    \"levels\": [\n      \"root\",\n      \"subdomain\",\n      \"intent\",\n      \"leaf\",\n      \"entry\"\n    ],\n    \"max_subdomains\": 3,\n    \"max_intents\": 3,\n    \"max_intents_scope\": \"per_subdomain\",\n    \"max_leaf_packages\": 8,\n    \"max_entries_per_leaf\": 30,\n    \"route_score_margin\": 2,\n    \"high_confidence_score\": 6,\n    \"high_confidence_margin\": 1,\n    \"min_route_score\": 2,\n    \"search_fallback\": \"ask-before-network\"\n  },\n  \"routes\": [\n    {\n      \"leaf_id\": \"action-item\",\n      \"title\": \"执行项\",\n      \"keywords\": [\n        \"执行项\",\n        \"action-item\"\n      ],\n      \"path\": \"terms/workplace/action-item.json\",\n      \"domain_id\": \"workplace-communication\",\n      \"subdomain_id\": \"execution-language\",\n      \"knowledge_type\": \"term\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"write-action\",\n        \"review-status\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"availability-patterns\",\n      \"title\": \"高可用模式\",\n      \"keywords\": [\n        \"高可用\",\n        \"高可用模式\",\n        \"故障转移\",\n        \"RTO\",\n        \"RPO\",\n        \"availability-patterns\",\n        \"high-availability\"\n      ],\n      \"path\": \"terms/software-engineering/availability-patterns.json\",\n      \"domain_id\": \"software-engineering-architecture\",\n      \"subdomain_id\": \"high-availability\",\n      \"knowledge_type\": \"term\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-ha\",\n        \"audit-ha\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"before-after-slider\",\n      \"title\": \"前后对比滑块\",\n      \"keywords\": [\n        \"前后对比滑块\",\n        \"before after slider\",\n        \"before-after-slider\"\n      ],\n      \"path\": \"terms/interaction/advanced/before-after-slider.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"bottom-sheet\",\n      \"title\": \"阻尼弹性底部抽屉\",\n      \"keywords\": [\n        \"阻尼弹性底部抽屉\",\n        \"bottom sheet\",\n        \"bottom-sheet\"\n      ],\n      \"path\": \"terms/interaction/bottom-sheet.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"burst-feedback\",\n      \"title\": \"Burst 点击爆散\",\n      \"keywords\": [\n        \"Burst 点击爆散\",\n        \"burst feedback\",\n        \"burst-feedback\"\n      ],\n      \"path\": \"terms/interaction/burst-feedback.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"button-stepper-morph\",\n      \"title\": \"按钮变步进器\",\n      \"keywords\": [\n        \"按钮变步进器\",\n        \"button stepper morph\",\n        \"button-stepper-morph\"\n      ],\n      \"path\": \"terms/interaction/continuous/button-stepper-morph.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"camera-language\",\n      \"title\": \"镜头语言\",\n      \"keywords\": [\n        \"镜头语言\",\n        \"camera-language\"\n      ],\n      \"path\": \"terms/camera-language/camera-language.json\",\n      \"domain_id\": \"ai-aigc-meta-skills\",\n      \"subdomain_id\": \"camera-language\",\n      \"knowledge_type\": \"term\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"write-image-prompt\",\n        \"write-video-prompt\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"capacity-model\",\n      \"title\": \"并发容量模型\",\n      \"keywords\": [\n        \"高并发\",\n        \"并发容量\",\n        \"容量模型\",\n        \"RPS\",\n        \"P95\",\n        \"P99\",\n        \"capacity-model\",\n        \"high-concurrency\",\n        \"并发容量模型\"\n      ],\n      \"path\": \"terms/software-engineering/capacity-model.json\",\n      \"domain_id\": \"software-engineering-architecture\",\n      \"subdomain_id\": \"high-concurrency\",\n      \"knowledge_type\": \"term\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"model-capacity\",\n        \"tune-performance\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"card-flip\",\n      \"title\": \"3D 卡片翻面\",\n      \"keywords\": [\n        \"3D 卡片翻面\",\n        \"card flip\",\n        \"card-flip\"\n      ],\n      \"path\": \"terms/interaction/card-flip.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"character-ip\",\n      \"title\": \"角色 IP 一致性\",\n      \"keywords\": [\n        \"角色 IP\",\n        \"三视图\",\n        \"周边\",\n        \"一致性\",\n        \"毛绒玩偶\",\n        \"角色 IP 一致性\",\n        \"character-ip\"\n      ],\n      \"path\": \"terms/character-ip/character-ip.json\",\n      \"domain_id\": \"ai-aigc-meta-skills\",\n      \"subdomain_id\": \"character-ip\",\n      \"knowledge_type\": \"template\",\n      \"entry_count\": 2,\n      \"intent_ids\": [\n        \"generate-character\",\n        \"extend-character\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"checkbox-cascade\",\n      \"title\": \"勾选联动\",\n      \"keywords\": [\n        \"勾选联动\",\n        \"复选框联动\",\n        \"进度环\",\n        \"数字滚动\",\n        \"顶部背景\",\n        \"checkbox cascade\",\n        \"checkbox-cascade\"\n      ],\n      \"path\": \"terms/interaction/continuous/checkbox-cascade.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"technique\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"composition-language\",\n      \"title\": \"构图语言\",\n      \"keywords\": [\n        \"构图语言\",\n        \"composition-language\"\n      ],\n      \"path\": \"terms/composition/composition-language.json\",\n      \"domain_id\": \"ai-aigc-meta-skills\",\n      \"subdomain_id\": \"composition\",\n      \"knowledge_type\": \"term\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"write-image-prompt\",\n        \"audit-image-prompt\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"composition-patterns\",\n      \"title\": \"高级布局六式\",\n      \"keywords\": [\n        \"高级布局六式\",\n        \"composition-patterns\"\n      ],\n      \"path\": \"terms/visual-layout/composition-patterns.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"visual-layout\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-layout\",\n        \"audit-layout\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"count-animation\",\n      \"title\": \"Count 数字滚动\",\n      \"keywords\": [\n        \"Count 数字滚动\",\n        \"count animation\",\n        \"count-animation\"\n      ],\n      \"path\": \"terms/interaction/count-animation.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"cover-color-ambient-glow\",\n      \"title\": \"封面取色氛围光\",\n      \"keywords\": [\n        \"封面取色氛围光\",\n        \"cover color ambient glow\",\n        \"Canvas/ColorThief 取色\",\n        \"radial-gradient\",\n        \"cover-color-ambient-glow\"\n      ],\n      \"path\": \"terms/visual-effects/cover-color-ambient-glow.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"visual-effects\",\n      \"knowledge_type\": \"technique\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-visual-effect\",\n        \"implement-visual-effect\",\n        \"audit-performance\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"cross-platform-rendering\",\n      \"title\": \"跨平台渲染边界\",\n      \"keywords\": [\n        \"跨平台渲染边界\",\n        \"cross-platform-rendering\"\n      ],\n      \"path\": \"terms/software-engineering/cross-platform-rendering.json\",\n      \"domain_id\": \"software-engineering-architecture\",\n      \"subdomain_id\": \"desktop-web-mobile\",\n      \"knowledge_type\": \"term\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"compare-platform\",\n        \"choose-renderer\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"cylindrical-list\",\n      \"title\": \"圆柱卷收列表\",\n      \"keywords\": [\n        \"圆柱卷收\",\n        \"cylindrical list\",\n        \"rotateX/rotateY\",\n        \"scale\",\n        \"圆柱卷收列表\",\n        \"cylindrical-list\"\n      ],\n      \"path\": \"terms/visual-effects/cylindrical-list.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"visual-effects\",\n      \"knowledge_type\": \"technique\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-visual-effect\",\n        \"implement-visual-effect\",\n        \"audit-performance\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"damped-bottom-sheet\",\n      \"title\": \"阻尼弹性抽屉\",\n      \"keywords\": [\n        \"阻尼弹性抽屉\",\n        \"撕线弹出面板\",\n        \"撕线下拉\",\n        \"撕线下拉打开面板\",\n        \"撕口下拉\",\n        \"撕线面板\",\n        \"撕口弹出\",\n        \"tear line panel\",\n        \"damped-bottom-sheet\"\n      ],\n      \"path\": \"terms/component-design/damped-bottom-sheet.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"component-design\",\n      \"knowledge_type\": \"template\",\n      \"entry_count\": 2,\n      \"intent_ids\": [\n        \"generate-component\",\n        \"spec-component\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"dependency-alignment\",\n      \"title\": \"项目依赖对齐\",\n      \"keywords\": [\n        \"项目依赖对齐\",\n        \"dependency-alignment\"\n      ],\n      \"path\": \"terms/workplace/dependency-alignment.json\",\n      \"domain_id\": \"workplace-communication\",\n      \"subdomain_id\": \"project-collaboration\",\n      \"knowledge_type\": \"term\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"align-collaboration\",\n        \"resolve-dependency\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"depth-layer-scroll\",\n      \"title\": \"景深分层滚动\",\n      \"keywords\": [\n        \"景深分层滚动\",\n        \"depth layer scroll\",\n        \"scroll progress\",\n        \"translateY\",\n        \"depth-layer-scroll\"\n      ],\n      \"path\": \"terms/visual-effects/depth-layer-scroll.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"visual-effects\",\n      \"knowledge_type\": \"technique\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-visual-effect\",\n        \"implement-visual-effect\",\n        \"audit-performance\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"diffused-glow-border\",\n      \"title\": \"动态弥散光晕边框\",\n      \"keywords\": [\n        \"动态弥散光晕边框\",\n        \"组件\",\n        \"AI 生成\",\n        \"diffused-glow-border\"\n      ],\n      \"path\": \"terms/component-design/diffused-glow-border.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"component-design\",\n      \"knowledge_type\": \"template\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"generate-component\",\n        \"spec-component\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"drag-to-absorb\",\n      \"title\": \"拖到目标吸入\",\n      \"keywords\": [\n        \"拖到目标吸入\",\n        \"drag to absorb\",\n        \"drag-to-absorb\"\n      ],\n      \"path\": \"terms/interaction/advanced/drag-to-absorb.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"draw-success\",\n      \"title\": \"Draw 成功勾选\",\n      \"keywords\": [\n        \"Draw 成功勾选\",\n        \"draw success\",\n        \"draw-success\"\n      ],\n      \"path\": \"terms/interaction/draw-success.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"edge-docked-fab\",\n      \"title\": \"吸边悬浮球\",\n      \"keywords\": [\n        \"吸边悬浮球\",\n        \"吸边悬浮球，释放后吸附\",\n        \"贴边悬浮按钮\",\n        \"edge docked fab\",\n        \"edge-docked-fab\"\n      ],\n      \"path\": \"terms/interaction/advanced/edge-docked-fab.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"elastic-press-feedback\",\n      \"title\": \"弹性微缩触觉反馈\",\n      \"keywords\": [\n        \"弹性微缩触觉反馈\",\n        \"组件\",\n        \"AI 生成\",\n        \"elastic-press-feedback\"\n      ],\n      \"path\": \"terms/component-design/elastic-press-feedback.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"component-design\",\n      \"knowledge_type\": \"template\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"generate-component\",\n        \"spec-component\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"fab-panel-morph\",\n      \"title\": \"加号展开面板\",\n      \"keywords\": [\n        \"加号展开面板\",\n        \"fab panel morph\",\n        \"fab-panel-morph\"\n      ],\n      \"path\": \"terms/interaction/continuous/fab-panel-morph.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"flip-reentry\",\n      \"title\": \"FLIP 反向归位\",\n      \"keywords\": [\n        \"FLIP\",\n        \"列表恢复\",\n        \"原索引\",\n        \"共享元素\",\n        \"FLIP 反向归位\",\n        \"flip-reentry\"\n      ],\n      \"path\": \"terms/interaction/flip-reentry.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"technique\",\n      \"entry_count\": 2,\n      \"intent_ids\": [\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"fluid-capsule-morph\",\n      \"title\": \"流体胶囊形变\",\n      \"keywords\": [\n        \"流体胶囊形变\",\n        \"组件\",\n        \"AI 生成\",\n        \"fluid-capsule-morph\"\n      ],\n      \"path\": \"terms/component-design/fluid-capsule-morph.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"component-design\",\n      \"knowledge_type\": \"template\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"generate-component\",\n        \"spec-component\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"follow\",\n      \"title\": \"跟随\",\n      \"keywords\": [\n        \"跟随\",\n        \"跟手\",\n        \"速度跟随\",\n        \"follow\"\n      ],\n      \"path\": \"terms/interaction/follow.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"principle\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"frontend-runtime\",\n      \"title\": \"前端平台边界\",\n      \"keywords\": [\n        \"前端平台边界\",\n        \"frontend-runtime\"\n      ],\n      \"path\": \"terms/software-engineering/frontend-runtime.json\",\n      \"domain_id\": \"software-engineering-architecture\",\n      \"subdomain_id\": \"frontend-platform\",\n      \"knowledge_type\": \"term\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-frontend\",\n        \"audit-frontend\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"fullscreen-reveal-menu\",\n      \"title\": \"菜单铺满全屏\",\n      \"keywords\": [\n        \"菜单铺满全屏\",\n        \"fullscreen reveal menu\",\n        \"fullscreen-reveal-menu\"\n      ],\n      \"path\": \"terms/interaction/continuous/fullscreen-reveal-menu.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"goal-metric\",\n      \"title\": \"目标与指标\",\n      \"keywords\": [\n        \"目标与指标\",\n        \"goal-metric\"\n      ],\n      \"path\": \"terms/workplace/goal-metric.json\",\n      \"domain_id\": \"workplace-communication\",\n      \"subdomain_id\": \"goal-alignment\",\n      \"knowledge_type\": \"term\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"define-goal\",\n        \"review-priority\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"gpui-desktop-web\",\n      \"title\": \"GPUIX 桌面与 Web 平台研究\",\n      \"keywords\": [\n        \"GPUIX\",\n        \"Metal\",\n        \"DirectX\",\n        \"Vulkan\",\n        \"WebGPU\",\n        \"WebGL2\",\n        \"GPUIX 桌面与 Web 平台研究\",\n        \"gpui-desktop-web\"\n      ],\n      \"path\": \"terms/platform-research/gpui-desktop-web.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"3d-web-interface\",\n      \"knowledge_type\": \"platform-research\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"compare-platform\",\n        \"choose-renderer\"\n      ],\n      \"scope\": \"provider-specific\",\n      \"do_not_generalize\": true\n    },\n    {\n      \"leaf_id\": \"gpui-mobile\",\n      \"title\": \"GPUIX 移动端平台研究\",\n      \"keywords\": [\n        \"GPUIX\",\n        \"iOS\",\n        \"Android\",\n        \"移动端\",\n        \"gpui-mobile\",\n        \"GPUIX 移动端平台研究\"\n      ],\n      \"path\": \"terms/platform-research/gpui-mobile.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"3d-web-interface\",\n      \"knowledge_type\": \"platform-research\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"compare-platform\",\n        \"choose-renderer\"\n      ],\n      \"scope\": \"provider-specific\",\n      \"do_not_generalize\": true\n    },\n    {\n      \"leaf_id\": \"grid-glass-dashboard\",\n      \"title\": \"方格纸玻璃卡 Dashboard\",\n      \"keywords\": [\n        \"方格纸玻璃卡 Dashboard\",\n        \"dashboard\",\n        \"后台\",\n        \"grid-glass-dashboard\"\n      ],\n      \"path\": \"terms/dashboard/grid-glass-dashboard.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"dashboard-design\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-dashboard\",\n        \"audit-dashboard\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"grouped-sidebar-dashboard\",\n      \"title\": \"分组侧边栏 Dashboard\",\n      \"keywords\": [\n        \"分组侧边栏 Dashboard\",\n        \"dashboard\",\n        \"后台\",\n        \"grouped-sidebar-dashboard\"\n      ],\n      \"path\": \"terms/dashboard/grouped-sidebar-dashboard.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"dashboard-design\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-dashboard\",\n        \"audit-dashboard\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"gsap-core\",\n      \"title\": \"GSAP Core\",\n      \"keywords\": [\n        \"GSAP Core\",\n        \"gsap.to/from/fromTo\",\n        \"duration\",\n        \"gsap-core\"\n      ],\n      \"path\": \"terms/animation-tool-adapter/gsap-core.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"animation-tool-adapter\",\n      \"knowledge_type\": \"technique\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"implement-gsap\",\n        \"audit-gsap\"\n      ],\n      \"scope\": \"provider-specific\",\n      \"do_not_generalize\": true,\n      \"provider\": \"GSAP\"\n    },\n    {\n      \"leaf_id\": \"gsap-frameworks\",\n      \"title\": \"GSAP 框架适配\",\n      \"keywords\": [\n        \"GSAP 框架适配\",\n        \"gsap frameworks\",\n        \"onMounted/onUnmounted\",\n        \"onMount/onDestroy\",\n        \"gsap-frameworks\"\n      ],\n      \"path\": \"terms/animation-tool-adapter/gsap-frameworks.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"animation-tool-adapter\",\n      \"knowledge_type\": \"technique\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"implement-gsap\",\n        \"audit-gsap\"\n      ],\n      \"scope\": \"provider-specific\",\n      \"do_not_generalize\": true,\n      \"provider\": \"GSAP\"\n    },\n    {\n      \"leaf_id\": \"gsap-performance\",\n      \"title\": \"GSAP 性能边界\",\n      \"keywords\": [\n        \"GSAP 性能边界\",\n        \"gsap performance\",\n        \"transform\",\n        \"opacity\",\n        \"gsap-performance\"\n      ],\n      \"path\": \"terms/animation-tool-adapter/gsap-performance.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"animation-tool-adapter\",\n      \"knowledge_type\": \"technique\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"implement-gsap\",\n        \"audit-gsap\"\n      ],\n      \"scope\": \"provider-specific\",\n      \"do_not_generalize\": true,\n      \"provider\": \"GSAP\"\n    },\n    {\n      \"leaf_id\": \"gsap-plugins\",\n      \"title\": \"GSAP Plugins\",\n      \"keywords\": [\n        \"GSAP Plugins\",\n        \"Flip\",\n        \"Draggable\",\n        \"gsap-plugins\"\n      ],\n      \"path\": \"terms/animation-tool-adapter/gsap-plugins.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"animation-tool-adapter\",\n      \"knowledge_type\": \"technique\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"implement-gsap\",\n        \"audit-gsap\"\n      ],\n      \"scope\": \"provider-specific\",\n      \"do_not_generalize\": true,\n      \"provider\": \"GSAP\"\n    },\n    {\n      \"leaf_id\": \"gsap-react-lifecycle\",\n      \"title\": \"GSAP React 生命周期\",\n      \"keywords\": [\n        \"GSAP React 生命周期\",\n        \"GSAP\",\n        \"React 动画清理\",\n        \"组件卸载清理\",\n        \"ctx.revert\",\n        \"useGSAP\",\n        \"gsap react lifecycle\",\n        \"gsap-react-lifecycle\"\n      ],\n      \"path\": \"terms/animation-tool-adapter/gsap-react-lifecycle.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"animation-tool-adapter\",\n      \"knowledge_type\": \"technique\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"implement-gsap\",\n        \"audit-gsap\"\n      ],\n      \"scope\": \"provider-specific\",\n      \"do_not_generalize\": true,\n      \"provider\": \"GSAP\"\n    },\n    {\n      \"leaf_id\": \"gsap-scrolltrigger\",\n      \"title\": \"GSAP ScrollTrigger\",\n      \"keywords\": [\n        \"GSAP ScrollTrigger\",\n        \"ScrollTrigger\",\n        \"scrub\",\n        \"gsap-scrolltrigger\"\n      ],\n      \"path\": \"terms/animation-tool-adapter/gsap-scrolltrigger.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"animation-tool-adapter\",\n      \"knowledge_type\": \"technique\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"implement-gsap\",\n        \"audit-gsap\"\n      ],\n      \"scope\": \"provider-specific\",\n      \"do_not_generalize\": true,\n      \"provider\": \"GSAP\"\n    },\n    {\n      \"leaf_id\": \"gsap-timeline\",\n      \"title\": \"GSAP Timeline\",\n      \"keywords\": [\n        \"GSAP Timeline\",\n        \"timeline\",\n        \"label\",\n        \"gsap-timeline\"\n      ],\n      \"path\": \"terms/animation-tool-adapter/gsap-timeline.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"animation-tool-adapter\",\n      \"knowledge_type\": \"technique\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"implement-gsap\",\n        \"audit-gsap\"\n      ],\n      \"scope\": \"provider-specific\",\n      \"do_not_generalize\": true,\n      \"provider\": \"GSAP\"\n    },\n    {\n      \"leaf_id\": \"high-contrast\",\n      \"title\": \"强对比视觉型\",\n      \"keywords\": [\n        \"强对比视觉型\",\n        \"dashboard\",\n        \"后台\",\n        \"high-contrast\"\n      ],\n      \"path\": \"terms/dashboard/high-contrast.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"dashboard-design\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-dashboard\",\n        \"audit-dashboard\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"icon-morph\",\n      \"title\": \"图标变形\",\n      \"keywords\": [\n        \"图标变形\",\n        \"icon morph\",\n        \"icon-morph\"\n      ],\n      \"path\": \"terms/interaction/continuous/icon-morph.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"idempotency-contract\",\n      \"title\": \"幂等契约\",\n      \"keywords\": [\n        \"幂等契约\",\n        \"idempotency-contract\"\n      ],\n      \"path\": \"terms/software-engineering/idempotency-contract.json\",\n      \"domain_id\": \"software-engineering-architecture\",\n      \"subdomain_id\": \"idempotency\",\n      \"knowledge_type\": \"term\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-idempotency\",\n        \"diagnose-duplicate\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"image-led-content\",\n      \"title\": \"图卡内容型\",\n      \"keywords\": [\n        \"图卡内容型\",\n        \"dashboard\",\n        \"后台\",\n        \"image-led-content\"\n      ],\n      \"path\": \"terms/dashboard/image-led-content.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"dashboard-design\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-dashboard\",\n        \"audit-dashboard\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"immersive-atmosphere\",\n      \"title\": \"氛围沉浸型\",\n      \"keywords\": [\n        \"氛围沉浸型\",\n        \"dashboard\",\n        \"后台\",\n        \"immersive-atmosphere\"\n      ],\n      \"path\": \"terms/dashboard/immersive-atmosphere.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"dashboard-design\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-dashboard\",\n        \"audit-dashboard\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"inertial-wheel\",\n      \"title\": \"惯性滚轮\",\n      \"keywords\": [\n        \"惯性滚轮\",\n        \"时间滚轮\",\n        \"数值滚轮\",\n        \"阻尼滚轮\",\n        \"刻度吸附\",\n        \"inertial wheel\",\n        \"inertial-wheel\"\n      ],\n      \"path\": \"terms/interaction/advanced/inertial-wheel.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"information-hierarchy\",\n      \"title\": \"信息层级与密度\",\n      \"keywords\": [\n        \"信息层级与密度\",\n        \"information-hierarchy\"\n      ],\n      \"path\": \"terms/information-architecture/information-hierarchy.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"information-architecture\",\n      \"knowledge_type\": \"principle\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-information\",\n        \"audit-information\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"inline-detail-expand\",\n      \"title\": \"列表展开详情\",\n      \"keywords\": [\n        \"展开详情\",\n        \"inline detail expand\",\n        \"列表展开详情\",\n        \"inline-detail-expand\"\n      ],\n      \"path\": \"terms/interaction/continuous/inline-detail-expand.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"interruption\",\n      \"title\": \"可中断与恢复\",\n      \"keywords\": [\n        \"中断\",\n        \"快速连点\",\n        \"动画接管\",\n        \"可中断与恢复\",\n        \"interruption\"\n      ],\n      \"path\": \"terms/interaction/interruption.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"principle\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"jargon-translation\",\n      \"title\": \"职场黑话翻译\",\n      \"keywords\": [\n        \"职场黑话翻译\",\n        \"jargon-translation\"\n      ],\n      \"path\": \"terms/workplace/jargon-translation.json\",\n      \"domain_id\": \"workplace-communication\",\n      \"subdomain_id\": \"vague-expression\",\n      \"knowledge_type\": \"term\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"clarify-vague\",\n        \"rewrite-actionable\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"layout-patterns\",\n      \"title\": \"高级布局模式\",\n      \"keywords\": [\n        \"高级布局模式\",\n        \"dashboard\",\n        \"后台\",\n        \"layout-patterns\",\n        \"Dashboard三层规范\",\n        \"术语视觉执行分层\",\n        \"color-staggered-dashboard\",\n        \"多彩错列布局\",\n        \"多彩错列\",\n        \"非对称双列\",\n        \"容量圆点独立切换\",\n        \"industrial-zones-dashboard\",\n        \"工业分区布局\",\n        \"工业分区\",\n        \"玻璃表格\",\n        \"低库存筛选\",\n        \"选中物料联动补货卡\",\n        \"axial-observatory-dashboard\",\n        \"中轴观测布局\",\n        \"中轴观测\",\n        \"共享选中态\",\n        \"时间轴预览\",\n        \"M33联动\",\n        \"glass-dot-matrix-dashboard\",\n        \"玻璃点阵布局\",\n        \"玻璃点阵\",\n        \"点阵读数\",\n        \"月份指标联动\",\n        \"二氧化碳趋势\",\n        \"warm-three-column-dashboard\",\n        \"暖色三栏布局\",\n        \"暖色三栏\",\n        \"三栏控制台\",\n        \"卧室房间联动\",\n        \"模式单位同步\"\n      ],\n      \"path\": \"terms/dashboard/layout-patterns.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"dashboard-design\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 6,\n      \"intent_ids\": [\n        \"design-dashboard\",\n        \"audit-dashboard\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"liquid-adhesion-drag\",\n      \"title\": \"液滴粘连拖拽\",\n      \"keywords\": [\n        \"液滴粘连拖拽\",\n        \"liquid adhesion drag\",\n        \"SVG path/metaball\",\n        \"Canvas\",\n        \"liquid-adhesion-drag\"\n      ],\n      \"path\": \"terms/visual-effects/liquid-adhesion-drag.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"visual-effects\",\n      \"knowledge_type\": \"technique\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-visual-effect\",\n        \"implement-visual-effect\",\n        \"audit-performance\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"liquid-glass-bar\",\n      \"title\": \"液态玻璃栏\",\n      \"keywords\": [\n        \"液态玻璃栏\",\n        \"liquid glass bar\",\n        \"backdrop-filter\",\n        \"SVG displacement\",\n        \"liquid-glass-bar\"\n      ],\n      \"path\": \"terms/visual-effects/liquid-glass-bar.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"visual-effects\",\n      \"knowledge_type\": \"technique\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-visual-effect\",\n        \"implement-visual-effect\",\n        \"audit-performance\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"liquid-slider\",\n      \"title\": \"Liquid 液态滑块\",\n      \"keywords\": [\n        \"Liquid 液态滑块\",\n        \"liquid slider\",\n        \"liquid-slider\"\n      ],\n      \"path\": \"terms/interaction/liquid-slider.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"list-grid-flip\",\n      \"title\": \"列表切换网格\",\n      \"keywords\": [\n        \"切换网格\",\n        \"list grid flip\",\n        \"列表切换网格\",\n        \"list-grid-flip\"\n      ],\n      \"path\": \"terms/interaction/continuous/list-grid-flip.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"living-style-guide-preview\",\n      \"title\": \"设计系统活样式预览\",\n      \"keywords\": [\n        \"活样式指南\",\n        \"Light\",\n        \"Dark\",\n        \"设计系统\",\n        \"预览\",\n        \"token\",\n        \"设计系统活样式预览\",\n        \"living-style-guide-preview\"\n      ],\n      \"path\": \"terms/design-system/living-style-guide-preview.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"design-system\",\n      \"knowledge_type\": \"guideline\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"build-design-system\",\n        \"preview-design-system\",\n        \"audit-design-system\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"long-press-preview\",\n      \"title\": \"长按浮起预览\",\n      \"keywords\": [\n        \"长按浮起预览\",\n        \"long press preview\",\n        \"long-press-preview\"\n      ],\n      \"path\": \"terms/interaction/advanced/long-press-preview.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"magnetic-cursor-odometer\",\n      \"title\": \"磁吸游标与滚动码表\",\n      \"keywords\": [\n        \"磁吸游标与滚动码表\",\n        \"组件\",\n        \"AI 生成\",\n        \"magnetic-cursor-odometer\"\n      ],\n      \"path\": \"terms/component-design/magnetic-cursor-odometer.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"component-design\",\n      \"knowledge_type\": \"template\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"generate-component\",\n        \"spec-component\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"management-mechanism\",\n      \"title\": \"管理机制\",\n      \"keywords\": [\n        \"管理机制\",\n        \"management-mechanism\"\n      ],\n      \"path\": \"terms/workplace/management-mechanism.json\",\n      \"domain_id\": \"workplace-communication\",\n      \"subdomain_id\": \"management-terms\",\n      \"knowledge_type\": \"term\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"explain-term\",\n        \"translate-jargon\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"material-library\",\n      \"title\": \"材质风格词\",\n      \"keywords\": [\n        \"材质风格词\",\n        \"material-library\"\n      ],\n      \"path\": \"terms/material-style/material-library.json\",\n      \"domain_id\": \"ai-aigc-meta-skills\",\n      \"subdomain_id\": \"material-style\",\n      \"knowledge_type\": \"term\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"write-image-prompt\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"minimal-data\",\n      \"title\": \"极简数据型\",\n      \"keywords\": [\n        \"极简数据型\",\n        \"dashboard\",\n        \"后台\",\n        \"minimal-data\"\n      ],\n      \"path\": \"terms/dashboard/minimal-data.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"dashboard-design\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-dashboard\",\n        \"audit-dashboard\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"morph-icon\",\n      \"title\": \"Morph 汉堡变叉\",\n      \"keywords\": [\n        \"Morph 汉堡变叉\",\n        \"morph icon\",\n        \"morph-icon\"\n      ],\n      \"path\": \"terms/interaction/morph-icon.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"motion-accessibility\",\n      \"title\": \"动效可访问性\",\n      \"keywords\": [\n        \"aria\",\n        \"读屏\",\n        \"键盘\",\n        \"减少动态\",\n        \"prefers-reduced-motion\",\n        \"动效可访问性\",\n        \"motion-accessibility\"\n      ],\n      \"path\": \"terms/interaction/accessibility.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"accessibility\",\n      \"knowledge_type\": \"guideline\",\n      \"entry_count\": 2,\n      \"intent_ids\": [\n        \"audit-accessibility\",\n        \"implement-accessibility\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"motion-language\",\n      \"title\": \"动作与运动控制\",\n      \"keywords\": [\n        \"动作与运动控制\",\n        \"motion-language\"\n      ],\n      \"path\": \"terms/motion-control/motion-language.json\",\n      \"domain_id\": \"ai-aigc-meta-skills\",\n      \"subdomain_id\": \"motion-control\",\n      \"knowledge_type\": \"technique\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"write-video-prompt\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"negative-constraints\",\n      \"title\": \"负面约束\",\n      \"keywords\": [\n        \"负面约束\",\n        \"negative-constraints\"\n      ],\n      \"path\": \"terms/negative-prompt/negative-constraints.json\",\n      \"domain_id\": \"ai-aigc-meta-skills\",\n      \"subdomain_id\": \"negative-prompt\",\n      \"knowledge_type\": \"guideline\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"write-image-prompt\",\n        \"audit-image-prompt\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"observability-contract\",\n      \"title\": \"可观测性契约\",\n      \"keywords\": [\n        \"可观测性契约\",\n        \"observability-contract\"\n      ],\n      \"path\": \"terms/software-engineering/observability-contract.json\",\n      \"domain_id\": \"software-engineering-architecture\",\n      \"subdomain_id\": \"observability\",\n      \"knowledge_type\": \"term\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"define-slo\",\n        \"debug-production\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"perspective-carousel\",\n      \"title\": \"景随图换轮播\",\n      \"keywords\": [\n        \"景随图换轮播\",\n        \"卡片层叠轮播\",\n        \"层叠轮播\",\n        \"叠卡轮播\",\n        \"卡片堆叠轮播\",\n        \"perspective carousel\",\n        \"perspective-carousel\"\n      ],\n      \"path\": \"terms/interaction/advanced/perspective-carousel.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 2,\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"press-and-hold-confirm\",\n      \"title\": \"按住蓄力确认\",\n      \"keywords\": [\n        \"按住蓄力确认\",\n        \"按住按钮\",\n        \"长按确认\",\n        \"危险操作确认\",\n        \"press and hold confirm\",\n        \"press-and-hold-confirm\"\n      ],\n      \"path\": \"terms/interaction/advanced/press-and-hold-confirm.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"prompt-blocks\",\n      \"title\": \"图像提示词模块\",\n      \"keywords\": [\n        \"图像提示词模块\",\n        \"prompt-blocks\"\n      ],\n      \"path\": \"terms/image-prompt/prompt-blocks.json\",\n      \"domain_id\": \"ai-aigc-meta-skills\",\n      \"subdomain_id\": \"image-prompt\",\n      \"knowledge_type\": \"template\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"write-image-prompt\",\n        \"audit-image-prompt\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"radial-menu\",\n      \"title\": \"弧形快捷菜单\",\n      \"keywords\": [\n        \"弧形快捷菜单\",\n        \"radial menu\",\n        \"radial-menu\"\n      ],\n      \"path\": \"terms/interaction/advanced/radial-menu.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"radial-reveal-transition\",\n      \"title\": \"圆形扩散转场\",\n      \"keywords\": [\n        \"圆形扩散转场\",\n        \"圆形转场\",\n        \"径向揭示\",\n        \"点击点扩散\",\n        \"页面圆形扩散\",\n        \"radial reveal transition\",\n        \"radial-reveal-transition\"\n      ],\n      \"path\": \"terms/interaction/continuous/radial-reveal-transition.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"technique\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"reverse-animation\",\n      \"title\": \"撤销反向动画\",\n      \"keywords\": [\n        \"反向动画\",\n        \"归位\",\n        \"删除动画\",\n        \"恢复动画\",\n        \"撤销反向动画\",\n        \"reverse-animation\"\n      ],\n      \"path\": \"terms/interaction/reverse-animation.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"technique\",\n      \"entry_count\": 3,\n      \"intent_ids\": [\n        \"implement-animation\",\n        \"audit-motion\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"ripple-button\",\n      \"title\": \"Ripple 水波按钮\",\n      \"keywords\": [\n        \"Ripple 水波按钮\",\n        \"ripple button\",\n        \"ripple-button\"\n      ],\n      \"path\": \"terms/interaction/ripple-button.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"rotary-knob\",\n      \"title\": \"旋钮转盘\",\n      \"keywords\": [\n        \"旋钮转盘\",\n        \"rotary knob\",\n        \"rotary-knob\"\n      ],\n      \"path\": \"terms/interaction/advanced/rotary-knob.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"scaling-strategies\",\n      \"title\": \"扩展策略\",\n      \"keywords\": [\n        \"高扩展\",\n        \"扩展策略\",\n        \"水平扩展\",\n        \"分片\",\n        \"异步化\",\n        \"scaling-strategies\",\n        \"scalability\"\n      ],\n      \"path\": \"terms/software-engineering/scaling-strategies.json\",\n      \"domain_id\": \"software-engineering-architecture\",\n      \"subdomain_id\": \"scalability\",\n      \"knowledge_type\": \"term\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-scale\",\n        \"plan-migration\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"scroll-header-collapse\",\n      \"title\": \"顶栏随滚动收起\",\n      \"keywords\": [\n        \"顶栏随滚动收起\",\n        \"scroll header collapse\",\n        \"scroll-header-collapse\"\n      ],\n      \"path\": \"terms/interaction/continuous/scroll-header-collapse.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"search-expand\",\n      \"title\": \"搜索框展开\",\n      \"keywords\": [\n        \"搜索框展开\",\n        \"search expand\",\n        \"search-expand\"\n      ],\n      \"path\": \"terms/interaction/continuous/search-expand.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"segmented-progress\",\n      \"title\": \"分段进度条\",\n      \"keywords\": [\n        \"分段进度条\",\n        \"segmented progress\",\n        \"segmented-progress\"\n      ],\n      \"path\": \"terms/interaction/advanced/segmented-progress.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"service-boundary\",\n      \"title\": \"服务边界与状态\",\n      \"keywords\": [\n        \"服务边界与状态\",\n        \"service-boundary\"\n      ],\n      \"path\": \"terms/software-engineering/service-boundary.json\",\n      \"domain_id\": \"software-engineering-architecture\",\n      \"subdomain_id\": \"backend-architecture\",\n      \"knowledge_type\": \"term\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-backend\",\n        \"review-backend\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"shared-element-expand\",\n      \"title\": \"共享元素无缝展开\",\n      \"keywords\": [\n        \"共享元素无缝展开\",\n        \"组件\",\n        \"AI 生成\",\n        \"shared-element-expand\"\n      ],\n      \"path\": \"terms/component-design/shared-element-expand.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"component-design\",\n      \"knowledge_type\": \"template\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"generate-component\",\n        \"spec-component\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"single-dark-accent-dashboard\",\n      \"title\": \"单深色单强调色 Dashboard\",\n      \"keywords\": [\n        \"单深色单强调色 Dashboard\",\n        \"dashboard\",\n        \"后台\",\n        \"single-dark-accent-dashboard\"\n      ],\n      \"path\": \"terms/dashboard/single-dark-accent-dashboard.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"dashboard-design\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-dashboard\",\n        \"audit-dashboard\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"skeleton-shimmer\",\n      \"title\": \"Shimmer 骨架落位\",\n      \"keywords\": [\n        \"Shimmer 骨架落位\",\n        \"skeleton shimmer\",\n        \"skeleton-shimmer\"\n      ],\n      \"path\": \"terms/interaction/skeleton-shimmer.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"slide-to-confirm\",\n      \"title\": \"滑动确认组件\",\n      \"keywords\": [\n        \"滑动确认组件\",\n        \"slide to confirm\",\n        \"slide-to-confirm\"\n      ],\n      \"path\": \"terms/interaction/advanced/slide-to-confirm.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"snap\",\n      \"title\": \"吸附\",\n      \"keywords\": [\n        \"吸附\",\n        \"锚点\",\n        \"回弹\",\n        \"snap\"\n      ],\n      \"path\": \"terms/interaction/snap.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"principle\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"snap-card-timeline\",\n      \"title\": \"吸附卡加画线\",\n      \"keywords\": [\n        \"吸附卡画线\",\n        \"吸附卡加画线\",\n        \"时间线逐段绘制\",\n        \"卡片停稳后画线\",\n        \"卡片停稳后画时间线\",\n        \"snap card timeline\",\n        \"snap-card-timeline\"\n      ],\n      \"path\": \"terms/interaction/continuous/snap-card-timeline.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"technique\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"spring-press\",\n      \"title\": \"Spring 按压回弹\",\n      \"keywords\": [\n        \"Spring 按压回弹\",\n        \"spring press\",\n        \"spring-press\"\n      ],\n      \"path\": \"terms/interaction/spring-press.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"spring-stagger-flow\",\n      \"title\": \"物理弹簧交错流\",\n      \"keywords\": [\n        \"物理弹簧交错流\",\n        \"组件\",\n        \"AI 生成\",\n        \"spring-stagger-flow\"\n      ],\n      \"path\": \"terms/component-design/spring-stagger-flow.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"component-design\",\n      \"knowledge_type\": \"template\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"generate-component\",\n        \"spec-component\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"squash-toggle\",\n      \"title\": \"Squash 弹性开关\",\n      \"keywords\": [\n        \"Squash 弹性开关\",\n        \"squash toggle\",\n        \"squash-toggle\"\n      ],\n      \"path\": \"terms/interaction/squash-toggle.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"stack-card\",\n      \"title\": \"Stack 卡片抽走\",\n      \"keywords\": [\n        \"Stack 卡片抽走\",\n        \"stack card\",\n        \"stack-card\"\n      ],\n      \"path\": \"terms/interaction/stack-card.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"implement-animation\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"stack-card-expand\",\n      \"title\": \"叠卡展开\",\n      \"keywords\": [\n        \"叠卡展开\",\n        \"卡片铺开\",\n        \"卡片扇出\",\n        \"卡片叠回\",\n        \"stack card expand\",\n        \"stack-card-expand\"\n      ],\n      \"path\": \"terms/interaction/continuous/stack-card-expand.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"technique\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"submit-state-machine\",\n      \"title\": \"提交状态反馈\",\n      \"keywords\": [\n        \"提交状态\",\n        \"保存按钮\",\n        \"保存进度环\",\n        \"保存转进度\",\n        \"进度环打勾\",\n        \"submit state machine\",\n        \"提交状态反馈\",\n        \"submit-state-machine\"\n      ],\n      \"path\": \"terms/interaction/continuous/submit-state-machine.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 2,\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"tab-indicator-spring\",\n      \"title\": \"标签指示条\",\n      \"keywords\": [\n        \"标签指示条\",\n        \"tab indicator spring\",\n        \"tab-indicator-spring\"\n      ],\n      \"path\": \"terms/interaction/continuous/tab-indicator-spring.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"continuous-interaction\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-continuous\",\n        \"implement-continuous\",\n        \"audit-continuous\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"three-ui-catalog\",\n      \"title\": \"ThreeUI 组件目录研究\",\n      \"keywords\": [\n        \"ThreeUI\",\n        \"Hero\",\n        \"Backgrounds\",\n        \"Three.js\",\n        \"3D 组件\",\n        \"ThreeUI 组件目录研究\",\n        \"three-ui-catalog\"\n      ],\n      \"path\": \"terms/platform-research/three-ui-catalog.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"3d-web-interface\",\n      \"knowledge_type\": \"platform-research\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"compare-platform\",\n        \"choose-renderer\"\n      ],\n      \"scope\": \"provider-specific\",\n      \"do_not_generalize\": true\n    },\n    {\n      \"leaf_id\": \"threshold\",\n      \"title\": \"阈值\",\n      \"keywords\": [\n        \"阈值\",\n        \"触发条件\",\n        \"断开\",\n        \"threshold\"\n      ],\n      \"path\": \"terms/interaction/threshold.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"principle\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"tilt-light-panel\",\n      \"title\": \"3D 倾斜光影面板\",\n      \"keywords\": [\n        \"3D 倾斜光影面板\",\n        \"组件\",\n        \"AI 生成\",\n        \"tilt-light-panel\"\n      ],\n      \"path\": \"terms/component-design/tilt-light-panel.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"component-design\",\n      \"knowledge_type\": \"template\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"generate-component\",\n        \"spec-component\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"token-system\",\n      \"title\": \"设计令牌系统\",\n      \"keywords\": [\n        \"设计令牌系统\",\n        \"token-system\"\n      ],\n      \"path\": \"terms/design-tokens/token-system.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"design-tokens\",\n      \"knowledge_type\": \"parameter\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"define-tokens\",\n        \"audit-tokens\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"tonal-dark-dashboard\",\n      \"title\": \"暗底明度分层 Dashboard\",\n      \"keywords\": [\n        \"暗底明度分层 Dashboard\",\n        \"dashboard\",\n        \"后台\",\n        \"tonal-dark-dashboard\"\n      ],\n      \"path\": \"terms/dashboard/tonal-dark-dashboard.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"dashboard-design\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-dashboard\",\n        \"audit-dashboard\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"tool-parameters\",\n      \"title\": \"工具参数适配\",\n      \"keywords\": [\n        \"工具参数适配\",\n        \"tool-parameters\"\n      ],\n      \"path\": \"terms/tool-adapter/tool-parameters.json\",\n      \"domain_id\": \"ai-aigc-meta-skills\",\n      \"subdomain_id\": \"tool-adapter\",\n      \"knowledge_type\": \"template\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"write-image-prompt\",\n        \"write-video-prompt\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"undo-window\",\n      \"title\": \"撤销时间窗口\",\n      \"keywords\": [\n        \"撤销\",\n        \"undo\",\n        \"删除后恢复\",\n        \"可逆操作\",\n        \"撤销条\",\n        \"倒计时\",\n        \"撤销时间窗口\",\n        \"undo-window\"\n      ],\n      \"path\": \"terms/interaction/undo-window.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"interaction-motion\",\n      \"knowledge_type\": \"technique\",\n      \"entry_count\": 3,\n      \"intent_ids\": [\n        \"design-interaction\",\n        \"audit-motion\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"velocity-inheritance\",\n      \"title\": \"速度继承\",\n      \"keywords\": [\n        \"速度继承\",\n        \"释放速度\",\n        \"摩擦\",\n        \"velocity-inheritance\"\n      ],\n      \"path\": \"terms/interaction/velocity-inheritance.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"gesture-interaction\",\n      \"knowledge_type\": \"principle\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-gesture\",\n        \"implement-gesture\",\n        \"audit-gesture\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"video-direction\",\n      \"title\": \"视频镜头与运动描述\",\n      \"keywords\": [\n        \"视频镜头与运动描述\",\n        \"video-direction\"\n      ],\n      \"path\": \"terms/video-prompt/video-direction.json\",\n      \"domain_id\": \"ai-aigc-meta-skills\",\n      \"subdomain_id\": \"video-prompt\",\n      \"knowledge_type\": \"template\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"write-video-prompt\",\n        \"audit-video-prompt\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    },\n    {\n      \"leaf_id\": \"warm-minimal\",\n      \"title\": \"暖调留白型\",\n      \"keywords\": [\n        \"暖调留白型\",\n        \"dashboard\",\n        \"后台\",\n        \"warm-minimal\"\n      ],\n      \"path\": \"terms/dashboard/warm-minimal.json\",\n      \"domain_id\": \"digital-product-uiux\",\n      \"subdomain_id\": \"dashboard-design\",\n      \"knowledge_type\": \"pattern\",\n      \"entry_count\": 1,\n      \"intent_ids\": [\n        \"design-dashboard\",\n        \"audit-dashboard\"\n      ],\n      \"scope\": \"general\",\n      \"do_not_generalize\": false\n    }\n  ]\n}\n",
    "scripts/bootstrap-progressive-content.py": "#!/usr/bin/env python3\n\"\"\"Create Feeling to Jargon progressive indexes and granular knowledge packages.\"\"\"\nfrom __future__ import annotations\nimport json\nimport argparse\nimport unicodedata\nfrom pathlib import Path\n\nROOT = Path(__file__).resolve().parents[1]\nDASHBOARD_LAYOUT_LEAF_ID = \"layout-patterns\"\nDASHBOARD_STYLE_TEMPLATE_PATH = \"templates/dashboard/dashboard-style-system.json\"\n\ndef normalize_keyword(value: str) -> str:\n    return unicodedata.normalize(\"NFKC\", value).casefold().strip()\n\nPARSER = argparse.ArgumentParser(description=\"Bootstrap or refresh Feeling to Jargon progressive indexes\")\nPARSER.add_argument(\n    \"--force\",\n    action=\"store_true\",\n    help=\"regenerate existing leaf JSON from the embedded bootstrap catalog\",\n)\nARGS = PARSER.parse_args()\n\ndef dump(path: str, data: dict) -> None:\n    target = ROOT / path\n    target.parent.mkdir(parents=True, exist_ok=True)\n    target.write_text(json.dumps(data, ensure_ascii=False, indent=2) + \"\\n\", encoding=\"utf-8\")\n\ndef read_json(path: Path) -> dict:\n    with path.open(encoding=\"utf-8\") as handle:\n        return json.load(handle)\n\ndef adopt_existing_leaf(spec: dict) -> None:\n    \"\"\"Treat an existing leaf JSON as authored content unless --force is used.\"\"\"\n    target = ROOT / spec[\"path\"]\n    if not target.is_file() or ARGS.force is True:\n        dump(spec[\"path\"], {\n            \"schema_version\": \"1.0.0\",\n            **{key: value for key, value in spec.items() if key not in {\"path\", \"entries\"}},\n            \"entries\": spec[\"entries\"],\n        })\n        return\n    existing = read_json(target)\n    required = (\"leaf_id\", \"domain_id\", \"subdomain_id\", \"title\", \"knowledge_type\", \"status\", \"intent_ids\", \"entries\")\n    missing = [key for key in required if key not in existing]\n    if missing:\n        raise ValueError(f\"leaf {spec['path']} is missing required fields: {', '.join(missing)}\")\n    existing[\"path\"] = spec[\"path\"]\n    existing.setdefault(\"scope\", \"general\")\n    existing.setdefault(\"do_not_generalize\", False)\n    spec.clear()\n    spec.update(existing)\n\ndef discover_authored_leaves() -> None:\n    \"\"\"Include manually added granular leaves in the next generated index.\"\"\"\n    for path in sorted((ROOT / \"terms\").rglob(\"*.json\")):\n        relative = path.relative_to(ROOT).as_posix()\n        if len(path.relative_to(ROOT / \"terms\").parts) == 1:\n            continue\n        data = read_json(path)\n        leaf_id = data.get(\"leaf_id\")\n        if not leaf_id or leaf_id in leaf_defs:\n            continue\n        required = (\"domain_id\", \"subdomain_id\", \"title\", \"knowledge_type\", \"status\", \"intent_ids\", \"entries\")\n        if all(key in data for key in required):\n            data.setdefault(\"scope\", \"general\")\n            data.setdefault(\"do_not_generalize\", False)\n            leaf_defs[leaf_id] = {\"path\": relative, **data}\n\n# Keep root/package indexes backward compatible while publishing the progressive loader policy.\nroot = json.loads((ROOT / \"index/root.json\").read_text(encoding=\"utf-8\"))\nroot[\"schema_version\"] = \"2.0.0\"\nroot[\"loading_policy\"] = {\n    \"strategy\": \"progressive\",\n    \"levels\": [\"root\", \"subdomain\", \"intent\", \"leaf\", \"entry\"],\n    \"max_subdomains\": 3,\n    \"max_intents\": 3,\n    \"max_intents_scope\": \"per_subdomain\",\n    \"max_leaf_packages\": 8,\n    \"max_entries_per_leaf\": 30,\n    \"route_score_margin\": 2,\n    \"high_confidence_score\": 6,\n    \"high_confidence_margin\": 1,\n    \"min_route_score\": 2,\n    \"search_fallback\": \"ask-before-network\",\n}\ndomain_specs = {\n    \"digital-product-uiux\": [\n        (\"visual-layout\", \"视觉布局\", \"卡片、留白、非对称和出血布局\"),\n        (\"design-tokens\", \"设计令牌\", \"颜色、字体、圆角、阴影和间距\"),\n        (\"interaction-motion\", \"交互动效\", \"时间、速度、连续性和反馈\"),\n        (\"continuous-interaction\", \"连续交互\", \"同一容器内的展开、形变、切换和回退\"),\n        (\"gesture-interaction\", \"手势交互\", \"跟随、阈值、吸附和手势采样\"),\n        (\"information-architecture\", \"信息架构\", \"导航、层级、密度和内容组织\"),\n        (\"accessibility\", \"可访问性\", \"键盘、读屏、减少动态和状态表达\"),\n        (\"dashboard-design\", \"Dashboard 设计\", \"数据后台的视觉方向和布局\"),\n        (\"component-design\", \"组件设计\", \"可复用组件和 AI 组件描述\"),\n        (\"visual-effects\", \"视觉效果\", \"玻璃、光晕、景深、卷收和液态粘连\"),\n        (\"design-system\", \"设计系统\", \"设计令牌、预览和视觉验收\"),\n        (\"animation-tool-adapter\", \"动画工具适配\", \"GSAP 等动画工具的实现边界\"),\n        (\"3d-web-interface\", \"3D Web 界面\", \"实时 3D 和 GPU 视觉界面\"),\n    ],\n    \"ai-aigc-meta-skills\": [\n        (\"image-prompt\", \"图像提示词\", \"主体、材质、光线和构图\"),\n        (\"video-prompt\", \"视频提示词\", \"镜头、运动、声音和节奏\"),\n        (\"character-ip\", \"角色 IP\", \"角色一致性、三视图和衍生物\"),\n        (\"material-style\", \"材质与风格\", \"毛绒、PVC、纸张和渲染质感\"),\n        (\"camera-language\", \"镜头语言\", \"景别、焦段、机位和运镜\"),\n        (\"composition\", \"构图\", \"主体位置、留白和视觉动线\"),\n        (\"motion-control\", \"运动控制\", \"动作、跟随、速度和镜头运动\"),\n        (\"negative-prompt\", \"负面约束\", \"变形、漂移、重复和违规输出\"),\n        (\"tool-adapter\", \"工具适配\", \"通用、Midjourney 和 Stable Diffusion 参数\"),\n    ],\n    \"software-engineering-architecture\": [\n        (\"backend-architecture\", \"后端架构\", \"服务边界、状态和数据流\"),\n        (\"high-availability\", \"高可用\", \"冗余、故障域、RTO 和 RPO\"),\n        (\"high-concurrency\", \"高并发\", \"流量模型、延迟和资源隔离\"),\n        (\"scalability\", \"高扩展\", \"水平扩展、分片、缓存和异步化\"),\n        (\"observability\", \"可观测性\", \"SLI、SLO、日志、指标和追踪\"),\n        (\"idempotency\", \"幂等\", \"操作身份、重试和重复请求\"),\n        (\"frontend-platform\", \"前端平台\", \"组件、构建、运行时和交付\"),\n        (\"desktop-web-mobile\", \"桌面 Web 移动端\", \"跨平台渲染与能力边界\"),\n    ],\n    \"workplace-communication\": [\n        (\"vague-expression\", \"模糊表达\", \"把职场黑话翻译成可执行需求\"),\n        (\"project-collaboration\", \"项目协作\", \"角色、依赖、风险和决策\"),\n        (\"goal-alignment\", \"目标对齐\", \"目标、指标、范围和优先级\"),\n        (\"execution-language\", \"执行语言\", \"下一步、负责人、截止时间和验收\"),\n        (\"management-terms\", \"管理术语\", \"组织、机制、复盘和资源配置\"),\n    ],\n}\n# Small generic subdomain skeletons keep all roots progressively addressable without pretending coverage.\nfor domain in root[\"domains\"]:\n    domain_id = domain[\"domain_id\"]\n    domain_specs.setdefault(domain_id, [(\"core\", \"核心入口\", \"该领域的渐进式术语入口，内容持续扩充\")])\nfor domain in root[\"domains\"]:\n    domain_id = domain[\"domain_id\"]\n    domain[\"subdomain_index\"] = f\"index/domains/{domain_id}.json\"\n    domain[\"loading_hint\"] = \"先匹配子域，再读取最小叶子包\"\ndump(\"index/root.json\", root)\n\n# Intent groups are deliberately small: they are a routing layer, not a knowledge dump.\nintent_defaults = {\n    \"visual-layout\": [(\"design-layout\", \"设计\", \"页面布局\"), (\"audit-layout\", \"评审\", \"布局问题\")],\n    \"information-architecture\": [(\"design-information\", \"设计\", \"信息架构\"), (\"audit-information\", \"评审\", \"信息层级\")],\n    \"design-tokens\": [(\"define-tokens\", \"定义\", \"设计令牌\"), (\"audit-tokens\", \"审计\", \"令牌一致性\")],\n    \"interaction-motion\": [(\"design-interaction\", \"设计\", \"交互动效\"), (\"implement-animation\", \"实现\", \"动画反馈\"), (\"audit-motion\", \"评审\", \"动效质量\")],\n    \"continuous-interaction\": [(\"design-continuous\", \"设计\", \"连续交互\"), (\"implement-continuous\", \"实现\", \"连续组件\"), (\"audit-continuous\", \"评审\", \"连续性\")],\n    \"gesture-interaction\": [(\"design-gesture\", \"设计\", \"手势交互\"), (\"implement-gesture\", \"实现\", \"手势组件\"), (\"audit-gesture\", \"评审\", \"手感问题\")],\n    \"dashboard-design\": [(\"design-dashboard\", \"设计\", \"数据后台\"), (\"audit-dashboard\", \"评审\", \"后台审美\")],\n    \"component-design\": [(\"generate-component\", \"生成\", \"UI 组件\"), (\"spec-component\", \"规范\", \"组件需求\")],\n    \"visual-effects\": [(\"design-visual-effect\", \"设计\", \"视觉效果\"), (\"implement-visual-effect\", \"实现\", \"视觉效果\"), (\"audit-performance\", \"评审\", \"视觉性能\")],\n    \"design-system\": [(\"build-design-system\", \"建立\", \"设计系统\"), (\"preview-design-system\", \"预览\", \"设计系统\"), (\"audit-design-system\", \"验收\", \"视觉规范\")],\n    \"animation-tool-adapter\": [(\"implement-gsap\", \"实现\", \"GSAP 动效\"), (\"audit-gsap\", \"评审\", \"GSAP 集成\")],\n    \"3d-web-interface\": [(\"compare-platform\", \"比较\", \"平台能力\"), (\"choose-renderer\", \"选择\", \"渲染后端\")],\n    \"accessibility\": [(\"audit-accessibility\", \"审计\", \"可访问性\"), (\"implement-accessibility\", \"实现\", \"无障碍能力\")],\n    \"character-ip\": [(\"generate-character\", \"生成\", \"角色 IP\"), (\"extend-character\", \"延展\", \"角色周边\")],\n    \"image-prompt\": [(\"write-image-prompt\", \"编写\", \"图像提示词\"), (\"audit-image-prompt\", \"检查\", \"图像提示词\")],\n    \"video-prompt\": [(\"write-video-prompt\", \"编写\", \"视频提示词\"), (\"audit-video-prompt\", \"检查\", \"视频提示词\")],\n    \"material-style\": [(\"write-image-prompt\", \"编写\", \"材质提示词\")],\n    \"camera-language\": [(\"write-image-prompt\", \"编写\", \"镜头语言\"), (\"write-video-prompt\", \"编写\", \"镜头语言\")],\n    \"composition\": [(\"write-image-prompt\", \"编写\", \"构图语言\"), (\"audit-image-prompt\", \"检查\", \"构图语言\")],\n    \"motion-control\": [(\"write-video-prompt\", \"编写\", \"运动控制\")],\n    \"negative-prompt\": [(\"write-image-prompt\", \"编写\", \"负面约束\"), (\"audit-image-prompt\", \"检查\", \"负面约束\")],\n    \"tool-adapter\": [(\"write-image-prompt\", \"编写\", \"工具适配\"), (\"write-video-prompt\", \"编写\", \"工具适配\")],\n    \"backend-architecture\": [(\"design-backend\", \"设计\", \"后端架构\"), (\"review-backend\", \"评审\", \"后端方案\")],\n    \"high-availability\": [(\"design-ha\", \"设计\", \"高可用\"), (\"audit-ha\", \"演练\", \"故障恢复\")],\n    \"high-concurrency\": [(\"model-capacity\", \"建模\", \"并发容量\"), (\"tune-performance\", \"优化\", \"性能\")],\n    \"scalability\": [(\"design-scale\", \"设计\", \"扩展策略\"), (\"plan-migration\", \"规划\", \"容量迁移\")],\n    \"observability\": [(\"define-slo\", \"定义\", \"SLO\"), (\"debug-production\", \"排障\", \"线上故障\")],\n    \"idempotency\": [(\"design-idempotency\", \"设计\", \"幂等契约\"), (\"diagnose-duplicate\", \"排查\", \"重复写入\")],\n    \"frontend-platform\": [(\"design-frontend\", \"设计\", \"前端平台\"), (\"audit-frontend\", \"评审\", \"前端平台\")],\n    \"desktop-web-mobile\": [(\"compare-platform\", \"比较\", \"平台能力\"), (\"choose-renderer\", \"选择\", \"渲染后端\")],\n    \"vague-expression\": [(\"clarify-vague\", \"澄清\", \"模糊表达\"), (\"rewrite-actionable\", \"改写\", \"可执行表达\")],\n    \"project-collaboration\": [(\"align-collaboration\", \"对齐\", \"项目协作\"), (\"resolve-dependency\", \"解决\", \"协作依赖\")],\n    \"goal-alignment\": [(\"define-goal\", \"定义\", \"目标\"), (\"review-priority\", \"评审\", \"优先级\")],\n    \"execution-language\": [(\"write-action\", \"编写\", \"执行项\"), (\"review-status\", \"复盘\", \"状态汇报\")],\n    \"management-terms\": [(\"explain-term\", \"解释\", \"管理术语\"), (\"translate-jargon\", \"翻译\", \"组织黑话\")],\n}\n\n# Granular knowledge content. Every leaf is independently loadable.\nleaf_defs = {}\ndef add_leaf(path, leaf_id, domain_id, subdomain_id, title, knowledge_type, entries, intent_ids=None, scope=\"general\", extra=None):\n    leaf_defs[leaf_id] = {\n        \"path\": path,\n        \"leaf_id\": leaf_id,\n        \"domain_id\": domain_id,\n        \"subdomain_id\": subdomain_id,\n        \"title\": title,\n        \"knowledge_type\": knowledge_type,\n        \"scope\": scope,\n        \"status\": \"published\",\n        \"intent_ids\": intent_ids or [],\n        \"entries\": entries,\n        **(extra or {}),\n    }\n\n# Shared helpers.\ndef entry(eid, name, plain, when, params=None, related=None, constraints=None, aliases=None, **extra):\n    result = {\n        \"id\": eid, \"name\": name, \"plain_language\": plain, \"when_to_use\": when,\n        \"parameters\": params or [], \"related\": related or [], \"constraints\": constraints or [], \"aliases\": aliases or []\n    }\n    result.update(extra)\n    return result\n\ninteraction_dir = \"terms/interaction\"\nadd_leaf(f\"{interaction_dir}/undo-window.json\", \"undo-window\", \"digital-product-uiux\", \"interaction-motion\", \"撤销时间窗口\", \"technique\", [\n    entry(\"undo-window\", \"可逆操作时间窗口\", \"删除后保留一段明确的可撤销时间，让用户有机会反悔。\", \"删除、归档、批量移除等可逆操作\", [\"窗口默认 5s；高风险操作 8–10s\", \"过期后按钮禁用并完成最终删除\"], [\"progress-feedback\", \"reverse-animation\"], [\"不要让过期后仍看起来可点击\"]),\n    entry(\"progress-feedback\", \"线性进度反馈\", \"进度条或进度环的完成时间与撤销窗口完全一致。\", \"需要让剩余时间可见\", [\"动画使用 linear\", \"数字可每秒更新，进度动画保持连续\"], [\"undo-window\"], [\"不能用缓动制造错误的剩余时间感\"]),\n    entry(\"pause-on-focus\", \"聚焦暂停窗口\", \"用户悬停或键盘聚焦撤销控件时暂停倒计时。\", \"误操作成本高且需要可访问性增强的场景\", [\"暂停状态必须可见\", \"失焦后继续倒计时\"], [\"accessibility\"], [\"不能无限暂停导致资源长期占用\"]),\n], [\"design-interaction\", \"audit-motion\"], extra={\"loading_note\": \"撤销功能只需加载本叶子和反向动画，不加载全部动效\"})\nadd_leaf(f\"{interaction_dir}/reverse-animation.json\", \"reverse-animation\", \"digital-product-uiux\", \"interaction-motion\", \"撤销反向动画\", \"technique\", [\n    entry(\"reverse-path\", \"沿原路径反向归位\", \"撤销时沿删除动画的反方向回到原位置，而不是重新淡入。\", \"列表删除后恢复原项\", [\"删除缩小+位移+淡出，撤销放大+反向位移+淡入\", \"删除 200–300ms，撤销 180–240ms\"], [\"flip-reentry\", \"velocity-inheritance\"], [\"必须保留原索引、尺寸和位置上下文\"]),\n    entry(\"reentry-highlight\", \"归位确认高亮\", \"元素回到原位后增加短暂高亮或脉冲，确认它确实回来了。\", \"撤销后的状态需要被快速识别\", [\"高亮 500–700ms\", \"不改变布局\"], [\"reverse-path\"], [\"不要用强烈闪烁造成干扰\"]),\n    entry(\"reduced-motion\", \"减少动态降级\", \"减少动态时保留进度、状态和结果，不强制播放位移动画。\", \"用户开启 prefers-reduced-motion\", [\"保留明确状态变化\", \"取消复杂路径和粒子\"], [\"accessibility\"], [\"不可因为降级而丢失撤销入口\"]),\n], [\"implement-animation\", \"audit-motion\"])\nadd_leaf(f\"{interaction_dir}/flip-reentry.json\", \"flip-reentry\", \"digital-product-uiux\", \"interaction-motion\", \"FLIP 反向归位\", \"technique\", [\n    entry(\"flip\", \"First Last Invert Play\", \"记录删除前后布局，撤销时把真实节点插回原索引，再播放反向变换。\", \"列表重排、共享元素和复杂布局撤销\", [\"First 记录原位置尺寸\", \"Last 记录重排后位置\", \"Invert 计算差值\", \"Play 播放反向变换\"], [\"reverse-path\", \"shared-element-transition\"], [\"节点已移除时保留 ghost/clone 或占位符\"]),\n    entry(\"placeholder\", \"占位与真实节点回插\", \"节点暂时移除后保留占位，撤销时按原索引插回真实节点。\", \"DOM 节点生命周期较短的列表\", [\"恢复原索引\", \"其他项让位动画\"], [\"flip\"], [\"不能把 ghost 当作最终业务节点\"]),\n], [\"implement-animation\"])\nadd_leaf(f\"{interaction_dir}/accessibility.json\", \"motion-accessibility\", \"digital-product-uiux\", \"accessibility\", \"动效可访问性\", \"guideline\", [\n    entry(\"undo-aria\", \"撤销按钮可读标签\", \"按钮要读出操作和剩余时间，例如撤销删除，剩余 5 秒。\", \"撤销条、倒计时按钮\", [\"aria-label 动态更新\", \"键盘可聚焦和触发\"], [\"undo-window\"], [\"不要每秒通过 aria-live 播报倒计时\"]),\n    entry(\"undo-live\", \"轻量状态播报\", \"用 aria-live=polite 提示已删除、可撤销等关键状态。\", \"操作结果需要被读屏用户感知\", [\"只播报状态变化\", \"焦点不被撤销条抢走\"], [\"undo-aria\"], [\"不重复播报相同状态\"]),\n], [\"audit-accessibility\", \"implement-accessibility\"])\n\nshared_entries = {\n    \"follow\": [entry(\"follow\", \"跟随\", \"元素连续继承输入位置或速度，不瞬间跳到新状态。\", \"拖拽、滚动、转场和惯性动作\", [\"位置或速度 1:1 跟随\", \"必要时使用 lerp 或 spring 收敛\"], [\"threshold\", \"velocity-inheritance\"], [\"高频输入不能依赖昂贵布局重排\"])],\n    \"threshold\": [entry(\"threshold\", \"阈值\", \"达到位移、速度或双条件后才触发状态切换。\", \"半屏弹层、长按拖拽、粘连断开\", [\"明确位移阈值\", \"明确速度阈值\", \"可加入迟滞避免抖动\"], [\"snap\", \"follow\"], [\"不轻易触发，也不突然失效\"])],\n    \"snap\": [entry(\"snap\", \"吸附\", \"松手后把连续输入收敛到明确落点。\", \"滚轮、底部抽屉、滑块和拖拽\", [\"根据位置和速度选择锚点\", \"终点接管要平滑\"], [\"threshold\", \"velocity-inheritance\"], [\"不要硬跳到终点\"])],\n    \"velocity-inheritance\": [entry(\"velocity-inheritance\", \"速度继承\", \"松手后继续沿当前速度运动，再减速并吸附。\", \"惯性滚动、抽屉和抛物线飞入\", [\"保存释放瞬间速度\", \"设置 friction 和最大位移\"], [\"follow\", \"snap\"], [\"速度必须有上限，避免失控\"])],\n    \"interruption\": [entry(\"interruption\", \"可中断与恢复\", \"动画中途再次输入时接管当前状态，而不是等待旧动画结束。\", \"可拖拽、可快速连点或可反悔的组件\", [\"读取当前 transform\", \"取消旧动画并从当前状态继续\"], [\"follow\", \"reverse-animation\"], [\"不能产生双重回调或状态竞态\"])],\n}\nfor leaf_id, entries in shared_entries.items():\n    add_leaf(f\"{interaction_dir}/{leaf_id}.json\", leaf_id, \"digital-product-uiux\", \"gesture-interaction\", entries[0][\"name\"], \"principle\", entries, [\"design-gesture\", \"implement-gesture\", \"audit-gesture\"])\n\ninteraction_12 = {\n    \"spring-press\": (\"Spring 按压回弹\", \"按下缩到 0.96–0.98，松手用弹簧回到 1 并允许 1.02–1.04 的轻微过冲。\", [\"scale 0.96–0.98\", \"overshoot 2%–4%\", \"可叠加内阴影或明度变化\"]),\n    \"squash-toggle\": (\"Squash 弹性开关\", \"开关起步横向拉伸、纵向压缩，再回到正常比例。\", [\"scaleX 1.08\", \"scaleY 0.94\", \"180–240ms\", \"transform-origin 与方向一致\"]),\n    \"ripple-button\": (\"Ripple 水波按钮\", \"从真实触点向最远角扩散水波，不把点击中心固定在控件中心。\", [\"400–600ms\", \"半径覆盖最远角\", \"移动端用 worklet/WXS 获取坐标\"]),\n    \"burst-feedback\": (\"Burst 点击爆散\", \"关键点击用 6–12 个短寿命粒子表达完成或奖励。\", [\"寿命 300–500ms\", \"随机角度\", \"轻微重力\", \"只用于关键动作\"]),\n    \"draw-success\": (\"Draw 成功勾选\", \"先画圆再画勾，用 SVG 描边过程表达成功。\", [\"stroke-dasharray\", \"stroke-dashoffset\", \"400–700ms\"]),\n    \"liquid-slider\": (\"Liquid 液态滑块\", \"轨道、滑钮和数值使用同一弹簧同步变化。\", [\"同一 spring\", \"零延迟跟手\", \"轨道与数值同步\"]),\n    \"count-animation\": (\"Count 数字滚动\", \"数字按位滚动并在最后一段明显减速。\", [\"tabular-nums\", \"cubic-bezier(0.16,1,0.3,1)\", \"固定宽度\"]),\n    \"skeleton-shimmer\": (\"Shimmer 骨架落位\", \"骨架尺寸与真实内容一致，内容到达后平滑替换。\", [\"1.2–1.6s 循环\", \"高度、行高、间距一致\"]),\n    \"card-flip\": (\"3D 卡片翻面\", \"正反面围绕同一中心翻转，保持透视和背面隐藏。\", [\"perspective 800–1200\", \"backface-visibility hidden\", \"iOS 加 webkit 前缀\"]),\n    \"morph-icon\": (\"Morph 汉堡变叉\", \"使用同路径或线段位移旋转完成图标变形。\", [\"200–300ms\", \"同点数或明确线段映射\"]),\n    \"stack-card\": (\"Stack 卡片抽走\", \"抽走前卡时露出后卡的缩放和位移层级。\", [\"scale 0.94/0.88\", \"translateY 8/16\", \"后卡必须露边\"]),\n    \"bottom-sheet\": (\"阻尼弹性底部抽屉\", \"支持下拉、橡皮筋和多个锚点吸附。\", [\"closed/peek/half/full\", \"按位移+速度选锚点\", \"处理滚动穿透\"]),\n}\nfor leaf_id, (name, plain, params) in interaction_12.items():\n    subdomain_id = \"interaction-motion\" if leaf_id != \"bottom-sheet\" else \"gesture-interaction\"\n    intent_ids = [\"design-interaction\", \"implement-animation\"] if subdomain_id == \"interaction-motion\" else [\"design-gesture\", \"implement-gesture\"]\n    add_leaf(f\"{interaction_dir}/{leaf_id}.json\", leaf_id, \"digital-product-uiux\", subdomain_id, name, \"pattern\", [entry(leaf_id, name, plain, \"需要高级反馈但仍要保持可理解的操作结果\", params, [\"follow\", \"threshold\", \"snap\", \"interruption\"])], intent_ids)\n\ncontinuous_patterns = {\n    \"search-expand\": (\"搜索框展开\", \"图标与输入框共用容器，展开后自动聚焦，关闭时沿原路径收回。\", [\"transform-origin: left\", \"focus 延迟 80–120ms\", \"图标淡出\", \"关闭后焦点返回触发器\"], [\"idle\", \"expanded\", \"closing\"], [\"focus-continuity\", \"same-container-transition\"]),\n    \"fab-panel-morph\": (\"加号展开面板\", \"FAB 原位形变为操作面板，中心点保持不变，关闭时逆向收回。\", [\"clip-path\", \"border-radius\", \"scale\", \"中心点不变\"], [\"closed\", \"opening\", \"open\", \"closing\"], [\"same-container-transition\", \"interruption\"]),\n    \"submit-state-machine\": (\"提交状态反馈\", \"按钮容器固定，通过状态机切换 loading、success 和 result，避免按钮位移。\", [\"idle → loading → success → result\", \"固定按钮宽度\", \"只替换内部内容\"], [\"idle\", \"loading\", \"success\", \"result\"], [\"state-machine-driven-ui\", \"interruption\"]),\n    \"icon-morph\": (\"图标变形\", \"菜单、播放等图标优先通过 SVG path 插值完成状态变化。\", [\"路径点数一致\", \"200–300ms\", \"交叉淡入是降级方案\"], [\"default\", \"transitioning\", \"alternate\"], [\"same-container-transition\", \"reduced-motion\"]),\n    \"tab-indicator-spring\": (\"标签指示条\", \"指示条先拉向新位置，再收缩归位，轻微超调但不影响点击判断。\", [\"spring 或 cubic-bezier\", \"超调 5%–10%\", \"指示条不重建\"], [\"idle\", \"moving\", \"settled\"], [\"follow\", \"snap\"]),\n    \"button-stepper-morph\": (\"按钮变步进器\", \"加号按钮原位展开为减号、数量和加号，数量归零后收回。\", [\"同一组件多状态布局\", \"数量归零自动收回\", \"保持触发器位置\"], [\"add\", \"expanded\", \"decrementing\", \"collapsed\"], [\"state-machine-driven-ui\", \"same-container-transition\"]),\n    \"inline-detail-expand\": (\"列表展开详情\", \"选中列表项就地展开，其余项顺势下移，不跳转详情页。\", [\"max-height 或 FLIP\", \"保留选中项上下文\", \"其他项让位\"], [\"collapsed\", \"expanding\", \"expanded\", \"collapsing\"], [\"flip-reentry\", \"interruption\"]),\n    \"list-grid-flip\": (\"列表切换网格\", \"记录旧布局，切换布局后反转并播放到新位置，避免重载和跳变。\", [\"First/Last/Invert/Play\", \"transform 优先\", \"支持快速切换\"], [\"list\", \"switching\", \"grid\"], [\"flip-reentry\", \"interruption\"]),\n    \"scroll-header-collapse\": (\"顶栏随滚动收起\", \"滚动进度驱动搜索栏和顶栏收缩，反向滚动恢复。\", [\"scrollY 归一化 0–1\", \"requestAnimationFrame\", \"滚动方向迟滞\"], [\"expanded\", \"collapsing\", \"collapsed\", \"expanding\"], [\"follow\", \"reduced-motion\"]),\n    \"fullscreen-reveal-menu\": (\"菜单铺满全屏\", \"以触发按钮为中心用圆形揭示铺满全屏，菜单项交错进入。\", [\"clip-path: circle()\", \"stagger 30–50ms\", \"菜单方向可中断\"], [\"closed\", \"revealing\", \"open\", \"closing\"], [\"same-container-transition\", \"interruption\"]),\n}\nfor leaf_id, (name, plain, params, states, related) in continuous_patterns.items():\n    add_leaf(\n        f\"terms/interaction/continuous/{leaf_id}.json\",\n        leaf_id,\n        \"digital-product-uiux\",\n        \"continuous-interaction\",\n        name,\n        \"pattern\",\n        [entry(\n            leaf_id,\n            name,\n            plain,\n            \"需要状态切换连续、焦点稳定且避免跳页或突然替换容器的组件\",\n            params,\n            related,\n            [\"动画必须可中断\", \"支持 prefers-reduced-motion\", \"状态变化不能重复触发回调\"],\n            state_machine=states,\n            acceptance=[\"状态切换无跳变\", \"快速操作不产生竞态\", \"键盘和触摸路径结果一致\"],\n        )],\n        [\"design-continuous\", \"implement-continuous\", \"audit-continuous\"],\n    )\n\n# These interaction leaves translate a visual feeling into observable timing,\n# spatial and sequencing terms. They stay independent so a query loads one\n# interaction pattern instead of the entire motion catalog.\nmeasurable_continuous_interactions = {\n    \"checkbox-cascade\": {\n        \"title\": \"勾选联动\",\n        \"plain\": \"一次勾选按明确先后驱动顶部背景、进度环和数字滚动，多个反馈共享同一完成结果。\",\n        \"parameters\": [\"勾选反馈 80–160ms\", \"背景渐变 180–300ms\", \"进度环绘制 400–700ms\", \"数字滚动 300–500ms\", \"stroke-dashoffset\", \"数字 Y 轴偏移\"],\n        \"sequence\": [\"checkbox checked\", \"top background transition\", \"progress ring draw\", \"count update\", \"settled\"],\n        \"spatial_anchor\": [\"复选框是触发源\", \"顶部背景覆盖状态区域\", \"进度环围绕当前任务指标\", \"数字与进度环保持同一视觉组\"],\n        \"accessibility\": [\"键盘 Space/Enter 可勾选\", \"aria-checked 与视觉状态同步\", \"减少动态时保留最终进度和数字\"],\n        \"acceptance\": [\"勾选后所有反馈都出现\", \"进度环不早于触发状态\", \"数字与进度百分比一致\", \"快速连续勾选不会叠加旧动画\"],\n    },\n    \"stack-card-expand\": {\n        \"title\": \"叠卡展开\",\n        \"plain\": \"叠放卡片点击或下滑后扇出成完整铺排，再沿原空间路径叠回，展开期间锁定下方卡片误触。\",\n        \"parameters\": [\"Y 轴位移按卡片间距递增\", \"旋转角度按扇出方向分配\", \"缩放比例逐层收敛到 1\", \"Z 轴层级从前到后重排\", \"展开/收回使用同一锚点\"],\n        \"sequence\": [\"collapsed stack\", \"fan out\", \"content reveal\", \"expanded layout\", \"reverse stack\"],\n        \"spatial_anchor\": [\"首张卡片作为展开原点\", \"卡片沿预设扇形或垂直轨迹排列\", \"每张卡片保留可点击区域\", \"关闭时回到原重叠位置\"],\n        \"accessibility\": [\"键盘 Enter/Space 展开\", \"aria-expanded 表达状态\", \"减少动态时直接切换布局但保留层级\"],\n        \"acceptance\": [\"展开前后首张卡位置连续\", \"卡片不互相遮挡关键内容\", \"展开期间下层卡片不可误触\", \"关闭沿原路回叠\"],\n    },\n    \"snap-card-timeline\": {\n        \"title\": \"吸附卡加画线\",\n        \"plain\": \"卡片先减速吸附到最近目标，停稳后时间线再从起点逐段绘制到对应卡片位置。\",\n        \"parameters\": [\"先吸附后绘制\", \"卡片停止后延迟 80–160ms\", \"timeline duration 300–600ms\", \"stroke-dasharray\", \"stroke-dashoffset\", \"卡片最终 Y 轴位置\"],\n        \"sequence\": [\"drag or scroll\", \"decelerating\", \"snap to nearest card\", \"settled\", \"timeline draw\", \"complete\"],\n        \"spatial_anchor\": [\"吸附目标由最近卡片决定\", \"时间线起点固定在轨道起点\", \"终点对齐卡片中心或锚点\", \"线段绘制方向与滚动方向一致\"],\n        \"accessibility\": [\"键盘切换卡片时同样触发落位反馈\", \"aria-current 标记当前卡片\", \"减少动态时显示完整时间线\"],\n        \"acceptance\": [\"时间线绝不早于卡片停稳\", \"吸附目标稳定不抖动\", \"线终点准确对齐卡片\", \"取消或快速切换不会残留旧线段\"],\n    },\n    \"radial-reveal-transition\": {\n        \"title\": \"圆形扩散转场\",\n        \"plain\": \"从真实点击位置捕获圆心，以 clip-path circle 扩散覆盖屏幕，完全覆盖后再显示新页面内容。\",\n        \"parameters\": [\"捕获 pointer x/y\", \"最大半径覆盖最远屏幕角\", \"扩散 duration 300–500ms\", \"easing ease-out\", \"新页面在覆盖完成后进入\"],\n        \"sequence\": [\"capture origin\", \"circle expand\", \"screen covered\", \"new content enter\", \"settled\", \"reverse on back\"],\n        \"spatial_anchor\": [\"圆心等于触点坐标\", \"半径取触点到最远角距离\", \"新旧页面共享同一转场层\", \"返回时沿反向路径收回\"],\n        \"accessibility\": [\"键盘触发使用按钮中心作为安全圆心\", \"焦点在新页面可交互后移动\", \"prefers-reduced-motion 时取消扩散但保留状态切换\"],\n        \"acceptance\": [\"圆心不偏离触点\", \"覆盖完成前不暴露新旧页面混合帧\", \"返回操作可逆\", \"视口变化时重新计算最大半径\"],\n    },\n}\nfor leaf_id, spec in measurable_continuous_interactions.items():\n    add_leaf(\n        f\"terms/interaction/continuous/{leaf_id}.json\",\n        leaf_id,\n        \"digital-product-uiux\",\n        \"continuous-interaction\",\n        spec[\"title\"],\n        \"technique\",\n        [entry(\n            leaf_id,\n            spec[\"title\"],\n            spec[\"plain\"],\n            \"用户用自然语言描述联动、叠卡、吸附画线或圆形转场的感觉时\",\n            spec[\"parameters\"],\n            [\"follow\", \"snap\", \"interruption\", \"reduced-motion\"],\n            [\"避免生硬切换\", \"动画顺序必须可验证\", \"必须支持中断和反向回退\"],\n            aliases=[spec[\"title\"], leaf_id.replace(\"-\", \" \")],\n            state_machine=spec[\"sequence\"],\n            animation_sequence=spec[\"sequence\"],\n            spatial_anchor=spec[\"spatial_anchor\"],\n            accessibility=spec[\"accessibility\"],\n            acceptance=spec[\"acceptance\"],\n        )],\n        [\"design-continuous\", \"implement-continuous\", \"audit-continuous\"],\n    )\n\nadvanced_interactions = {\n    \"press-and-hold-confirm\": (\"按住蓄力确认\", \"按住危险操作按钮达到 800–1200ms 才确认，未满松手或移动超限则取消。\", [\"pressing\", \"charging\", \"confirmed\", \"cancel\"], [\"800–1200ms\", \"移动超过 10px 取消\", \"多点触控只认第一指\", \"进度环与按压时间一致\"], [\"键盘 Space/Enter\", \"ESC 取消\", \"aria-describedby\", \"替代二次确认\"]),\n    \"rotary-knob\": (\"旋钮转盘\", \"拖动或用键盘旋转旋钮，释放后吸附到最近刻度，中心数值同步变化。\", [\"dragging\", \"snapping\", \"idle\"], [\"-135° 到 +135°\", \"步进 1 或 5\", \"小于 0.35 步长磁吸\", \"touch-action: none\"], [\"role=slider\", \"aria-valuemin/max/now\", \"Home/End 到极值\"]),\n    \"before-after-slider\": (\"前后对比滑块\", \"拖动分割线实时裁切两张图，位置在 0%–100%，不使用惯性。\", [\"idle\", \"dragging\"], [\"初始 50%\", \"clip-path: inset()\", \"拖动无过渡\", \"容器 resize 重新计算\"], [\"role=slider\", \"左右箭头步进\", \"图片失败时保留可用状态\"]),\n    \"radial-menu\": (\"弧形快捷菜单\", \"长按悬浮按钮展开弧形子菜单，子项沿弧线交错弹出并支持边缘翻转。\", [\"pressing\", \"open\", \"closing\"], [\"长按 400–500ms\", \"移动超过 10px 取消\", \"stagger 30–50ms\", \"边缘翻转弧线方向\"], [\"aria-expanded\", \"role=menuitem\", \"ESC 焦点返回\"]),\n    \"slide-to-confirm\": (\"滑动确认组件\", \"滑块超过 80% 才确认，不足松手则弹回，确认只触发一次。\", [\"dragging\", \"threshold\", \"confirmed\", \"returning\"], [\"80% 阈值\", \"达到阈值加速到末端\", \"spring 回弹\", \"移动端阻止页面滚动\"], [\"role=slider\", \"Enter/Space 确认\", \"危险操作提供替代确认\"]),\n    \"long-press-preview\": (\"长按浮起预览\", \"长按列表项打开上下文预览，选中项浮起，菜单在局部空间内展开。\", [\"pressing\", \"preview\", \"menu\", \"closing\"], [\"450–600ms\", \"移动超过 10px 取消\", \"背景 blur 8px\", \"虚拟列表卸载时关闭\"], [\"Enter 打开\", \"焦点陷阱\", \"ESC 返回列表项\"]),\n    \"drag-to-absorb\": (\"拖到目标吸入\", \"拖拽元素靠近目标后目标张开，松手时元素缩小并吸入目标中心。\", [\"dragging\", \"hovering\", \"dropping\", \"absorbed\", \"returning\"], [\"目标半径 1.2 倍或外扩 48px\", \"目标 scale 1.15\", \"元素缩至 0.2\", \"未命中回原位\"], [\"键盘移动和放置\", \"目标重叠时按优先级\", \"多点触控只认第一指\"]),\n    \"segmented-progress\": (\"分段进度条\", \"按住暂停，点击左右区域切换上一项或下一项，进度与内容同步。\", [\"playing\", \"paused\", \"switching\"], [\"200ms 内抬起判定点击\", \"左右 35% 切换\", \"中间 30% 暂停\", \"最后一项循环\"], [\"左右箭头\", \"Space 暂停\", \"aria-live 当前项\"]),\n    \"perspective-carousel\": (\"景随图换轮播\", \"拖动距离或速度达到阈值后切换，中心项放大，侧边项透视缩小。\", [\"dragging\", \"snapping\", \"switching\"], [\"距离超过 20% 或速度超过 0.5px/ms\", \"perspective 1000px\", \"侧项 scale 0.85\", \"无限循环无跳帧\"], [\"aria-roledescription=carousel\", \"aria-current\", \"图片失败降级\"]),\n    \"inertial-wheel\": (\"惯性滚轮\", \"时间或数值滚轮在释放后继承速度惯性减速，越界时阻尼回弹并吸附到最近刻度。\", [\"dragging\", \"inertial\", \"decelerating\", \"overscrolling\", \"snapping\", \"settled\"], [\"手指阶段 1:1 跟手\", \"释放后保存 velocity\", \"friction 衰减\", \"越界阻尼\", \"spring 刚度/阻尼\", \"最近刻度吸附\", \"限制最大速度避免眩晕\"], [\"role=slider\", \"键盘离散步进\", \"Home/End 到极值\", \"减少动态时保留当前刻度\"]),\n}\nfor leaf_id, (name, plain, states, params, accessibility) in advanced_interactions.items():\n    add_leaf(\n        f\"terms/interaction/advanced/{leaf_id}.json\",\n        leaf_id,\n        \"digital-product-uiux\",\n        \"gesture-interaction\",\n        name,\n        \"pattern\",\n        [entry(\n            leaf_id,\n            name,\n            plain,\n            \"需要明确触发、阈值、取消、边界和键盘替代路径的复杂交互\",\n            params,\n            [\"follow\", \"threshold\", \"snap\", \"interruption\"],\n            [\"未达到阈值不能触发\", \"快速重复操作不叠加\", \"组件卸载时清理定时器和动画\"],\n            state_machine=states,\n            accessibility=accessibility,\n            acceptance=[\"60fps\", \"手势和键盘结果一致\", \"取消后状态完全复位\"],\n        )],\n        [\"design-gesture\", \"implement-gesture\", \"audit-gesture\"],\n    )\n\nadd_leaf(\n    \"terms/interaction/advanced/edge-docked-fab.json\",\n    \"edge-docked-fab\",\n    \"digital-product-uiux\",\n    \"gesture-interaction\",\n    \"吸边悬浮球\",\n    \"pattern\",\n    [entry(\n        \"edge-docked-fab\",\n        \"吸边悬浮球\",\n        \"毛玻璃悬浮球跟手拖拽，释放后吸附到最近左右边缘，闲置后缩成半透明贴边状态。\",\n        \"需要可移动的悬浮入口，同时避免遮挡底部 Tab 和安全区内容\",\n        [\"56px 圆球\", \"0.02 惯性\", \"距边 12px\", \"spring 300/30\", \"无操作 3s 后缩小\", \"滚动时 opacity 0.4\", \"停止滚动 400ms 恢复\", \"垂直位置限制在安全区\"],\n        [\"follow\", \"velocity-inheritance\", \"snap\", \"interruption\"],\n        [\"拖拽不能穿出安全区\", \"吸附后仍保留可点击面积\", \"页面滚动时不能遮挡底部 Tab\", \"组件卸载时清理滚动监听和恢复定时器\"],\n        aliases=[\"吸边悬浮球\", \"贴边悬浮按钮\", \"edge docked fab\"],\n        state_machine=[\"idle\", \"dragging\", \"snapping\", \"docked\", \"shrunk\", \"restoring\"],\n        animation_sequence=[\"follow pointer\", \"project release velocity\", \"snap to nearest edge\", \"shrink after idle\", \"restore after scroll\"],\n        spatial_anchor=[\"左右边缘为吸附锚点\", \"距边 12px\", \"垂直范围避开安全区和底部 Tab\"],\n        accessibility=[\"键盘焦点可达\", \"方向键移动或提供设置入口替代拖拽\", \"aria-label 描述悬浮入口\", \"减少动态时取消缩小和惯性\"],\n        acceptance=[\"拖拽 1:1 跟手\", \"释放后稳定吸边\", \"滚动透明度反馈及时\", \"不遮挡关键导航\", \"快速拖拽不产生双重吸附\"],\n    )],\n    [\"design-gesture\", \"implement-gesture\", \"audit-gesture\"],\n)\n\n# Dashboard terms and reusable style template.\ndashboard_entries = {\n    \"warm-minimal\": (\"暖调留白型\", \"奶油底色、单一黄色强调、细边框和弱阴影，保留呼吸感。\", [\"#F7F3EA\", \"一个主强调色\", \"圆角克制\", \"弱阴影\"]),\n    \"high-contrast\": (\"强对比视觉型\", \"一张主卡占据视觉中心，用高饱和对比和大数字建立层级。\", [\"主卡占视觉中心\", \"硬阴影\", \"大数字\", \"非对称\"]),\n    \"minimal-data\": (\"极简数据型\", \"以灰阶和一个强调色组织数据，去网格线和多余标签。\", [\"灰阶为主\", \"胶囊柱状图\", \"标签精简\"]),\n    \"immersive-atmosphere\": (\"氛围沉浸型\", \"深色底、雾面渐变、玻璃卡片和轻微动态光斑。\", [\"GPU 负载预算\", \"移动端降级\", \"模糊光斑\"]),\n    \"image-led-content\": (\"图卡内容型\", \"让真实图片成为主角，文字叠加且只保留一个强调色。\", [\"大图卡片\", \"文字叠加\", \"单一 CTA 色\"]),\n    \"layout-patterns\": (\"高级布局模式\", \"用错位、大图、非对称、层叠、留白和破格出血建立布局性格。\", [\"错位按 8/12/16px 节奏\", \"7:3 或 8:2 比例\", \"只破一处网格\", \"安全区内留信息\"]),\n    \"grid-glass-dashboard\": (\"方格纸玻璃卡 Dashboard\", \"用 44px 方格纸做底，让半透明白玻璃卡透出底层网格，指标按数值形成阶梯。\", [\"44px 网格底\", \"半透明白玻璃\", \"指标阶梯排列\", \"实心/斜纹/渐变填充\"]),\n    \"grouped-sidebar-dashboard\": (\"分组侧边栏 Dashboard\", \"把导航拆成三组并用大留白分隔，主区用超大细体字、三组数字和横向比例条建立节奏。\", [\"三组导航\", \"10px 大写灰字组名\", \"底部头像/用量条\", \"横向比例条替代饼图\"]),\n    \"single-dark-accent-dashboard\": (\"单深色单强调色 Dashboard\", \"整页只保留一条深色侧边栏和一个强调色，当前项、主按钮和命中图表共享同一强调色。\", [\"唯一深色侧边栏\", \"单一强调色\", \"侧栏底部强调色卡片\", \"其余区域保持浅色\"]),\n    \"tonal-dark-dashboard\": (\"暗底明度分层 Dashboard\", \"近黑底上只用明度区分卡片层级，不画描边；主读数放大，日期用圆点阵列表达。\", [\"近黑底\", \"卡片亮一档\", \"无描边\", \"超大主读数\", \"圆点阵列+斜纹空格\"]),\n}\nfor leaf_id, (name, plain, params) in dashboard_entries.items():\n    add_leaf(f\"terms/dashboard/{leaf_id}.json\", leaf_id, \"digital-product-uiux\", \"dashboard-design\", name, \"pattern\", [entry(leaf_id, name, plain, \"Dashboard 需要有明确审美方向且避免模板化\", params, [\"design-tokens\", \"layout-patterns\"], [\"不要所有卡片一样大\", \"不要默认蓝紫渐变\", \"不要模板化侧边栏+四张 KPI 卡\"])], [\"design-dashboard\", \"audit-dashboard\"])\n\n# Dashboard recipes that need their own routing leaf because each one changes\n# the page's primary visual judgment. Keep them separate from generic tokens.\n\n# Visual effects are implementation-sensitive: load the performance and\n# degradation contract together with the visual recipe.\nvisual_effects = {\n    \"liquid-glass-bar\": (\n        \"液态玻璃栏\",\n        \"固定导航使用背景模糊、轻微折射和随滚动位移的高光，底色与文字对比度随背景亮度平滑调整。\",\n        [\"backdrop-filter\", \"SVG displacement\", \"高光层\", \"亮度采样\", \"scroll-driven animation\"],\n        [\"桌面端优先使用 GPU 合成\", \"高光和折射必须限制在导航区域\", \"文字对比度持续满足可读性\"],\n        [\"不支持 backdrop-filter 时退化为不透明底色\", \"低端设备关闭折射只保留模糊或纯色\"],\n        [\"移动端降低模糊半径\", \"滚动中避免逐帧读取布局\"],\n        [\"prefers-reduced-motion 下停用高光流动，保留静态玻璃层\"],\n    ),\n    \"cover-color-ambient-glow\": (\n        \"封面取色氛围光\",\n        \"从封面图提取主色生成外围柔光，换图时用连续插值过渡而不是颜色突变。\",\n        [\"Canvas/ColorThief 取色\", \"radial-gradient\", \"CSS variables\", \"颜色插值\"],\n        [\"采样结果需要做饱和度和亮度限幅\", \"柔光不能降低正文对比度\"],\n        [\"取色失败时回退到主题色\", \"设备性能不足时只保留静态渐变\"],\n        [\"移动端降低光晕半径和不透明度\", \"图片切换只更新 CSS 变量\"],\n        [\"减少动态时保留最终主色，取消颜色过渡\"],\n    ),\n    \"depth-layer-scroll\": (\n        \"景深分层滚动\",\n        \"把内容拆为前、中、后三层，按滚动进度驱动不同速度、模糊和亮度，形成可控景深。\",\n        [\"scroll progress\", \"translateY\", \"blur/brightness\", \"lerp\"],\n        [\"后层速度更慢且更模糊\", \"前层速度更快且更清晰\", \"只动画 transform 和 opacity\"],\n        [\"不支持滤镜时只保留位移层级\", \"滚动性能不足时关闭实时 blur\"],\n        [\"移动端减少层数至两层\", \"使用 requestAnimationFrame 合并滚动采样\"],\n        [\"减少动态时取消视差和模糊变化，保留静态层级\"],\n    ),\n    \"cylindrical-list\": (\n        \"圆柱卷收列表\",\n        \"根据列表项距视区中心的距离插值旋转、缩放、亮度和透明度，让中心项突出、边缘项自然卷入。\",\n        [\"rotateX/rotateY\", \"scale\", \"opacity\", \"中心距离\", \"scroll snap\"],\n        [\"中心项必须保持清晰可读\", \"旋转角度随距离连续变化\", \"滚动停止后再交给 snap 接管\"],\n        [\"不支持 3D 时退化为缩放和透明度\", \"低端设备关闭实时滤镜\"],\n        [\"移动端限制透视深度和可见项数量\", \"虚拟列表避免为不可见项计算变换\"],\n        [\"减少动态时保留中心突出，不播放卷收路径\"],\n    ),\n    \"liquid-adhesion-drag\": (\n        \"液滴粘连拖拽\",\n        \"拖动元素与原位之间生成液态粘连连接，距离增大时颈部收缩，超过阈值后断开并弹性回圆。\",\n        [\"SVG path/metaball\", \"Canvas\", \"贝塞尔曲线\", \"spring\"],\n        [\"粘连距离必须有上限\", \"断裂阈值要有迟滞避免抖动\", \"断裂后两端分别回弹\"],\n        [\"不支持 SVG/Canvas 时退化为连接线或无粘连拖拽\", \"高负载时降低采样频率\"],\n        [\"移动端减少路径采样点\", \"拖动期间阻止页面滚动但允许取消\"],\n        [\"减少动态时取消粘连形变，保留拖拽和命中结果\"],\n    ),\n}\nfor leaf_id, (name, plain, params, budget, fallback, mobile, reduced_motion) in visual_effects.items():\n    add_leaf(\n        f\"terms/visual-effects/{leaf_id}.json\",\n        leaf_id,\n        \"digital-product-uiux\",\n        \"visual-effects\",\n        name,\n        \"technique\",\n        [entry(\n            leaf_id,\n            name,\n            plain,\n            \"需要有视觉表现但必须同时控制 GPU、移动端和减少动态成本\",\n            params,\n            [\"performance-budget\", \"progressive-degradation\", \"reduced-motion\"],\n            [\"动效必须可中断\", \"优先 transform/opacity\", \"不得以视觉效果掩盖可读性\"],\n            performance_budget=budget,\n            fallback=fallback,\n            mobile_degradation=mobile,\n            reduced_motion=reduced_motion,\n            acceptance=[\"滚动或拖拽保持 60fps 目标\", \"降级后主任务仍可完成\", \"视觉层不影响文本对比度\"],\n        )],\n        [\"design-visual-effect\", \"implement-visual-effect\", \"audit-performance\"],\n    )\n\n# GSAP entries are provider-specific adapter notes. They describe integration\n# boundaries and cleanup, not a replacement for the official API reference.\ngsap_leaves = {\n    \"gsap-core\": (\"GSAP Core\", \"tween、duration、easing、stagger 和可中断控制的基础适配。\", [\"gsap.to/from/fromTo\", \"duration\", \"ease\", \"stagger\", \"killTweensOf\"], [\"优先动画 transform/opacity\", \"从当前值继续而不是重置起点\"], [\"官方 API 版本变化需复核\"]),\n    \"gsap-timeline\": (\"GSAP Timeline\", \"用时间线、label 和 position parameter 编排连续动效，保持顺序可读且可复用。\", [\"timeline\", \"label\", \"position parameter\", \"nested timeline\", \"play/pause/reverse\"], [\"时间线必须有明确生命周期\", \"组件卸载时杀掉 timeline\"], [\"复杂时间线应拆为可测试片段\"]),\n    \"gsap-scrolltrigger\": (\"GSAP ScrollTrigger\", \"用 scrub、pin 和 start/end 将动画绑定到滚动进度，并避免把滚动逻辑散落在组件中。\", [\"ScrollTrigger\", \"scrub\", \"pin\", \"start/end\", \"refresh\"], [\"滚动驱动优先使用 transform\", \"动态内容变化后显式 refresh\"], [\"SSR 和无 DOM 环境不能初始化插件\"]),\n    \"gsap-plugins\": (\"GSAP Plugins\", \"按需使用 Flip、Draggable、Observer、SplitText 等插件，插件能力必须和交互目标一一对应。\", [\"Flip\", \"Draggable\", \"Observer\", \"SplitText\", \"registerPlugin\"], [\"只注册实际使用的插件\", \"拖拽和 Flip 必须有取消与回退路径\"], [\"插件 API 与授权边界以官方文档为准\"]),\n    \"gsap-react-lifecycle\": (\"GSAP React 生命周期\", \"在 React 中用 useGSAP 或 gsap.context 管理选择器作用域、动画创建和 ctx.revert 清理。\", [\"useGSAP\", \"gsap.context\", \"scope\", \"ctx.revert\", \"dependencies\"], [\"动画创建绑定组件生命周期\", \"依赖变化先清理旧动画\"], [\"避免在 render 阶段创建动画\"]),\n    \"gsap-performance\": (\"GSAP 性能边界\", \"把高频动效限制在合成属性，批量更新并减少布局读取，给复杂效果设置设备降级策略。\", [\"transform\", \"opacity\", \"batching\", \"will-change\", \"layout thrash\"], [\"不要连续写 width/height/top/left\", \"will-change 只在短时交互启用\"], [\"低端设备关闭粒子、滤镜或 3D 透视\"]),\n    \"gsap-frameworks\": (\"GSAP 框架适配\", \"在 Vue、Svelte 等框架中按生命周期创建和销毁上下文，隔离 SSR、hydration 与客户端动画。\", [\"onMounted/onUnmounted\", \"onMount/onDestroy\", \"SSR guard\", \"hydration\", \"context cleanup\"], [\"只在客户端创建动画\", \"路由切换时完整清理\"], [\"框架封装层不要隐藏 kill/revert 能力\"]),\n}\nfor leaf_id, (title, plain, params, constraints, verification) in gsap_leaves.items():\n    add_leaf(\n        f\"terms/animation-tool-adapter/{leaf_id}.json\",\n        leaf_id,\n        \"digital-product-uiux\",\n        \"animation-tool-adapter\",\n        title,\n        \"technique\",\n        [entry(\n            leaf_id,\n            title,\n            plain,\n            \"用户明确指定 GSAP，或项目已经采用 GSAP 作为动效实现层\",\n            params,\n            [\"continuous-interaction\", \"performance-budget\", \"interruption\"],\n            constraints,\n            aliases=[\"GSAP\", title.lower()],\n            provider=\"GSAP\",\n            provider_specific=True,\n            verification_required=True,\n            verification_note=verification,\n            acceptance=[\"动画创建和销毁可追踪\", \"快速交互不产生重复回调\", \"未指定 GSAP 时不强制引入\"],\n        )],\n        [\"implement-gsap\", \"audit-gsap\"],\n        scope=\"provider-specific\",\n        extra={\"do_not_generalize\": True, \"provider\": \"GSAP\", \"verified_at\": None, \"verification_required\": True},\n    )\n\n# A living style guide is a review artifact: it maps design tokens to rendered\n# Light/Dark states and records external preview links as pending references.\nadd_leaf(\n    \"terms/design-system/living-style-guide-preview.json\",\n    \"living-style-guide-preview\",\n    \"digital-product-uiux\",\n    \"design-system\",\n    \"设计系统活样式预览\",\n    \"guideline\",\n    [entry(\n        \"living-style-guide-preview\",\n        \"Light/Dark 活样式指南\",\n        \"用可直接打开的预览把色板、字体层级、组件状态和设计令牌映射到真实页面效果。\",\n        \"需要让设计评审和 AI 在写代码前先确认视觉方向\",\n        [\"Light/Dark 双主题\", \"色板与语义色\", \"字体排印层级\", \"按钮/输入框/卡片\", \"hover/click/disabled\", \"token 到页面效果映射\"],\n        [\"design-tokens\", \"dashboard-style-system\", \"accessibility\"],\n        [\"预览状态必须可复现\", \"颜色不能是唯一状态表达\", \"外部预览站和品牌资料保持待核验标记\"],\n        verification_checklist=[\"色板、排印、组件状态齐全\", \"浅色和深色对比度通过\", \"交互状态与 token 一致\", \"截图或浏览器验收后再发布\"],\n        external_references=[{\"kind\": \"preview-site\", \"status\": \"pending-verification\", \"url\": \"https://awesome-design-md-preview.vercel.app\"}],\n        verified_at=None,\n        verification_required=True,\n    )],\n    [\"build-design-system\", \"preview-design-system\", \"audit-design-system\"],\n    extra={\n        \"verification_required\": True,\n        \"verified_at\": None,\n        \"external_reference_policy\": \"外部预览资源只作待核验线索，不作为运行时事实\",\n    },\n)\n\n# Eight AI-feedable component descriptions.\ncomponents = {\n    \"tilt-light-panel\": (\"3D 倾斜光影面板\", \"监听 pointermove/touchmove 计算 rotateX/rotateY，最大倾斜 8–12°，叠加随指针移动的径向高光，松手用 Spring 回正。\", [\"pointer tracking\", \"perspective\", \"preserve-3d\", \"radial-gradient\", \"spring damping\"]),\n    \"fluid-capsule-morph\": (\"流体胶囊形变\", \"胶囊按钮通过 FLIP/shared layout 形变为弹窗，圆角从 999px 过渡到 24px，内容延迟淡入并带遮罩。\", [\"fluid morph\", \"FLIP\", \"layout animation\", \"border-radius morph\"]),\n    \"shared-element-expand\": (\"共享元素无缝展开\", \"列表卡片到详情页使用同一 layoutId，图片、标题和容器连续缩放，背景遮罩淡入，避免跳变。\", [\"shared element transition\", \"layoutId\", \"matched geometry\", \"continuous scale\"]),\n    \"magnetic-cursor-odometer\": (\"磁吸游标与滚动码表\", \"折线图拖拽时数据点磁吸，顶部数值使用 Odometer 按位滚动，拖拽、吸附和数值用 lerp+spring 联动。\", [\"magnetic snap\", \"odometer\", \"tabular-nums\", \"lerp\", \"spring follow\"]),\n    \"damped-bottom-sheet\": (\"阻尼弹性抽屉\", \"Bottom Sheet 根据位移和速度在 closed/peek/half/full 锚点间吸附，越界呈 rubber band 回弹。\", [\"rubber band\", \"velocity projection\", \"snap points\", \"spring snap\"]),\n    \"diffused-glow-border\": (\"动态弥散光晕边框\", \"用 conic-gradient 旋转描边，叠加 blur+opacity 呼吸背光，并用 mask 保留描边区域。\", [\"conic-gradient\", \"breathing glow\", \"blur halo\", \"mask composite\"]),\n    \"spring-stagger-flow\": (\"物理弹簧交错流\", \"列表子项按 index*0.03–0.06s 交错，从 y:20、opacity:0 进入并带轻微 spring。\", [\"staggerChildren\", \"spring cascade\", \"y-offset\", \"stagger delay\"]),\n    \"elastic-press-feedback\": (\"弹性微缩触觉反馈\", \"按钮按压缩到 0.96 并增加内阴影，释放时 Spring 轻微超调回 1，支持快速连点。\", [\"whileTap\", \"scale 0.96\", \"inset shadow\", \"spring overshoot\"]),\n}\nfor leaf_id, (name, plain, params) in components.items():\n    add_leaf(f\"terms/component-design/{leaf_id}.json\", leaf_id, \"digital-product-uiux\", \"component-design\", name, \"template\", [entry(leaf_id, name, plain, \"需要给 AI 编程或设计工具描述可复用组件\", params, [\"follow\", \"interruption\"])], [\"generate-component\", \"spec-component\"])\n\n# Fill the adjacent UI/UX subdomains so routing can become finer without loading a\n# monolithic UI package.\nadd_leaf(\"terms/visual-layout/composition-patterns.json\", \"composition-patterns\", \"digital-product-uiux\", \"visual-layout\", \"高级布局六式\", \"pattern\", [\n    entry(\"composition-patterns\", \"卡片错位/大图主导/非对称/层叠/留白/破格出血\", \"用比例、层级和安全区建立页面性格；每次只让少数元素破格。\", \"首屏、活动页、详情页和内容信息流\", [\"错位按 8/12/16px 节奏\", \"主图可占半屏或出血\", \"使用 7:3 或 8:2 非对称\", \"只破一处网格，内容留在安全区\"], [\"layout-patterns\", \"design-tokens\"], [\"错位无规律会像未对齐\", \"出血过多会削弱秩序\", \"留白必须仍有视觉焦点\"])\n], [\"design-layout\", \"audit-layout\"])\nadd_leaf(\"terms/design-tokens/token-system.json\", \"token-system\", \"digital-product-uiux\", \"design-tokens\", \"设计令牌系统\", \"parameter\", [\n    entry(\"token-system\", \"底色/强调色/层级/材质/主角五变量\", \"Dashboard 的审美方向主要由底色、强调色、布局层级、材质和内容主角决定。\", \"需要让 AI 生成非模板化后台或设计系统\", [\"背景色\", \"主强调色\", \"文字层级\", \"圆角/阴影\", \"卡片材质\", \"内容主角\"], [\"dashboard-style-system\", \"composition-patterns\"], [\"先定 token 再定组件，不要每张卡单独发明规则\"])\n], [\"define-tokens\", \"audit-tokens\"])\nadd_leaf(\"terms/information-architecture/information-hierarchy.json\", \"information-hierarchy\", \"digital-product-uiux\", \"information-architecture\", \"信息层级与密度\", \"principle\", [\n    entry(\"information-hierarchy\", \"信息层级\", \"先确定用户要做的决定，再按主次组织标题、数据、操作和辅助说明。\", \"复杂后台、内容页和移动端首页\", [\"主任务优先\", \"每屏保留一个视觉主角\", \"用密度和留白表达层级\"], [\"composition-patterns\", \"token-system\"], [\"不要用颜色和图标堆叠替代结构\"])\n], [\"design-information\", \"audit-information\"])\n\n# AIGC is split by prompt concern so a character request does not load camera,\n# negative-prompt and tool adapter knowledge at once.\nadd_leaf(\"terms/image-prompt/prompt-blocks.json\", \"prompt-blocks\", \"ai-aigc-meta-skills\", \"image-prompt\", \"图像提示词模块\", \"template\", [\n    entry(\"prompt-blocks\", \"主体/材质/光线/构图/质量模块\", \"把图像提示词拆为可重排模块，先锁主体，再补材质、光线、构图和质量。\", \"文生图、参考图重绘和产品效果图\", [\"subject\", \"material\", \"lighting\", \"composition\", \"quality\"], [\"character-ip\", \"negative-constraints\"], [\"不要把所有风格词混成一段无层级文本\"])\n], [\"write-image-prompt\", \"audit-image-prompt\"])\nadd_leaf(\"terms/video-prompt/video-direction.json\", \"video-direction\", \"ai-aigc-meta-skills\", \"video-prompt\", \"视频镜头与运动描述\", \"template\", [\n    entry(\"video-direction\", \"镜头/主体运动/声音三层描述\", \"视频提示词至少拆成景别、镜头运动、主体动作、节奏和声音。\", \"文生视频和分镜生成\", [\"shot\", \"camera_motion\", \"subject_motion\", \"tempo\", \"sound\"], [\"camera-language\", \"motion-language\"], [\"不要只写电影感而不说明可观察的镜头行为\"])\n], [\"write-video-prompt\", \"audit-video-prompt\"])\nadd_leaf(\"terms/material-style/material-library.json\", \"material-library\", \"ai-aigc-meta-skills\", \"material-style\", \"材质风格词\", \"term\", [\n    entry(\"material-library\", \"材质与反射\", \"用可观察的表面属性描述材质，例如高光泽釉面、短植绒、哑光纸张和半通透胶带。\", \"产品渲染、角色周边和材质迁移\", [\"roughness\", \"specular\", \"translucency\", \"texture\"], [\"prompt-blocks\", \"character-ip\"], [\"材质词不能替代主体和结构约束\"])\n], [\"write-image-prompt\"])\nadd_leaf(\"terms/camera-language/camera-language.json\", \"camera-language\", \"ai-aigc-meta-skills\", \"camera-language\", \"镜头语言\", \"term\", [\n    entry(\"camera-language\", \"景别/机位/焦段/运镜\", \"把电影感拆成可执行的景别、机位、焦段、景深和运动。\", \"想要电影感但需要稳定复现时\", [\"close/medium/wide\", \"high/low angle\", \"lens\", \"depth of field\", \"camera motion\"], [\"video-direction\", \"composition\"], [\"不要用受版权保护的具体作品名作为唯一指令\"])\n], [\"write-image-prompt\", \"write-video-prompt\"])\nadd_leaf(\"terms/composition/composition-language.json\", \"composition-language\", \"ai-aigc-meta-skills\", \"composition\", \"构图语言\", \"term\", [\n    entry(\"composition-language\", \"主体位置与视觉动线\", \"用中心、三分、对称、留白、前中后景和视觉引导线描述构图。\", \"需要主体位置和画面平衡可控时\", [\"subject placement\", \"negative space\", \"foreground/midground/background\", \"leading lines\"], [\"camera-language\", \"prompt-blocks\"], [\"构图要服务内容主角，不要为了术语堆叠\"])\n], [\"write-image-prompt\", \"audit-image-prompt\"])\nadd_leaf(\"terms/motion-control/motion-language.json\", \"motion-language\", \"ai-aigc-meta-skills\", \"motion-control\", \"动作与运动控制\", \"technique\", [\n    entry(\"motion-language\", \"方向/速度/幅度/节奏\", \"明确主体怎么动、镜头怎么动、速度和幅度如何变化。\", \"文生视频、产品动效和角色动作延展\", [\"direction\", \"speed\", \"amplitude\", \"rhythm\", \"follow\"], [\"video-direction\", \"velocity-inheritance\"], [\"动作必须可观察，避免只写情绪形容词\"])\n], [\"write-video-prompt\"])\nadd_leaf(\"terms/negative-prompt/negative-constraints.json\", \"negative-constraints\", \"ai-aigc-meta-skills\", \"negative-prompt\", \"负面约束\", \"guideline\", [\n    entry(\"negative-constraints\", \"结构/材质/一致性负面词\", \"把不希望出现的变形、额外肢体、颜色漂移、重复主体和低清晰度写成约束。\", \"角色一致性、产品渲染和批量出图\", [\"结构禁用\", \"材质禁用\", \"画面质量禁用\"], [\"character-ip\", \"prompt-blocks\"], [\"负面词不能掩盖主体描述不完整\"])\n], [\"write-image-prompt\", \"audit-image-prompt\"])\nadd_leaf(\"terms/tool-adapter/tool-parameters.json\", \"tool-parameters\", \"ai-aigc-meta-skills\", \"tool-adapter\", \"工具参数适配\", \"template\", [\n    entry(\"tool-parameters\", \"通用/Midjourney/SD 适配\", \"把同一套提示词拆成通用正文、画幅参数和工具专用控制字段。\", \"需要在多个生图工具间复用提示词\", [\"aspect_ratio\", \"style\", \"negative_prompt\", \"controlnet\"], [\"prompt-blocks\", \"negative-constraints\"], [\"工具参数是适配层，不改变核心语义\"])\n], [\"write-image-prompt\", \"write-video-prompt\"])\n\n# Backend architecture is split into independently retrievable reliability concerns.\nbackend_leaves = {\n    \"service-boundary\": (\"backend-architecture\", \"服务边界与状态\", \"把服务职责、同步/异步边界、状态归属和数据一致性写清楚。\", [\"service ownership\", \"sync/async\", \"state ownership\", \"consistency\"]),\n    \"availability-patterns\": (\"high-availability\", \"高可用模式\", \"跨实例、节点或可用区部署关键组件，并定义 RTO/RPO 和故障转移。\", [\"failure domain\", \"redundancy\", \"RTO\", \"RPO\", \"failover\"]),\n    \"capacity-model\": (\"high-concurrency\", \"并发容量模型\", \"用平均值、峰值、突发、P95/P99 和增长率描述高并发，而不是只说高并发。\", [\"RPS\", \"burst\", \"P95/P99\", \"growth rate\"]),\n    \"scaling-strategies\": (\"scalability\", \"扩展策略\", \"按无状态实例、缓存、分片和异步队列拆解增长路径。\", [\"horizontal scaling\", \"sharding\", \"cache\", \"async\"]),\n    \"observability-contract\": (\"observability\", \"可观测性契约\", \"将 SLI/SLO、日志、指标、追踪、告警和故障演练绑定到服务目标。\", [\"SLI\", \"SLO\", \"logs\", \"metrics\", \"traces\", \"alerts\"]),\n    \"idempotency-contract\": (\"idempotency\", \"幂等契约\", \"用操作身份、同键重试、内容一致性、并发响应和结果关联定义重复处理。\", [\"operation key\", \"retry\", \"payload match\", \"in-progress\", \"result record\"]),\n    \"frontend-runtime\": (\"frontend-platform\", \"前端平台边界\", \"把组件、构建、运行时、发布和回滚能力作为平台契约。\", [\"component API\", \"build\", \"runtime\", \"release\", \"rollback\"]),\n    \"cross-platform-rendering\": (\"desktop-web-mobile\", \"跨平台渲染边界\", \"按平台能力、渲染后端、输入方式和降级路径选择实现策略。\", [\"desktop\", \"web\", \"mobile\", \"renderer\", \"fallback\"]),\n}\nbackend_intents = {\n    \"backend-architecture\": [\"design-backend\", \"review-backend\"],\n    \"high-availability\": [\"design-ha\", \"audit-ha\"],\n    \"high-concurrency\": [\"model-capacity\", \"tune-performance\"],\n    \"scalability\": [\"design-scale\", \"plan-migration\"],\n    \"observability\": [\"define-slo\", \"debug-production\"],\n    \"idempotency\": [\"design-idempotency\", \"diagnose-duplicate\"],\n    \"frontend-platform\": [\"design-frontend\", \"audit-frontend\"],\n    \"desktop-web-mobile\": [\"compare-platform\", \"choose-renderer\"],\n}\nfor leaf_id, (subdomain, title, plain, params) in backend_leaves.items():\n    add_leaf(f\"terms/software-engineering/{leaf_id}.json\", leaf_id, \"software-engineering-architecture\", subdomain, title, \"term\", [\n        entry(leaf_id, title, plain, \"后端或平台方案需要拆解质量属性时\", params, [\"high-availability\", \"capacity-model\", \"scaling-strategies\", \"observability-contract\", \"idempotency-contract\"], [\"不要把质量属性当作无边界承诺\"])\n    ], backend_intents[subdomain])\n\n# Workplace language stays explanatory: it translates vague phrases into questions,\n# actions and acceptance criteria rather than preserving empty slogans.\nworkplace_leaves = {\n    \"jargon-translation\": (\"vague-expression\", \"职场黑话翻译\", \"把“拉齐、抓手、闭环、赋能”等模糊词翻译为对象、动作、负责人和结果。\", [\"原句\", \"真实对象\", \"动作\", \"负责人\", \"验收标准\"]),\n    \"dependency-alignment\": (\"project-collaboration\", \"项目依赖对齐\", \"明确依赖方、输入、输出、阻塞风险和升级路径。\", [\"依赖方\", \"输入\", \"输出\", \"截止时间\", \"升级路径\"]),\n    \"goal-metric\": (\"goal-alignment\", \"目标与指标\", \"把方向性目标拆成可观察结果、指标口径、范围和优先级。\", [\"目标\", \"指标\", \"口径\", \"范围\", \"优先级\"]),\n    \"action-item\": (\"execution-language\", \"执行项\", \"每个执行项写清负责人、下一步、截止时间和完成证据。\", [\"owner\", \"next step\", \"due date\", \"evidence\"]),\n    \"management-mechanism\": (\"management-terms\", \"管理机制\", \"把机制、复盘、资源配置和组织动作落到可观察的流程。\", [\"机制\", \"触发条件\", \"参与者\", \"输出\", \"复盘\"]),\n}\nfor leaf_id, (subdomain, title, plain, params) in workplace_leaves.items():\n    workplace_intents = {\n        \"vague-expression\": [\"clarify-vague\", \"rewrite-actionable\"],\n        \"project-collaboration\": [\"align-collaboration\", \"resolve-dependency\"],\n        \"goal-alignment\": [\"define-goal\", \"review-priority\"],\n        \"execution-language\": [\"write-action\", \"review-status\"],\n        \"management-terms\": [\"explain-term\", \"translate-jargon\"],\n    }\n    add_leaf(f\"terms/workplace/{leaf_id}.json\", leaf_id, \"workplace-communication\", subdomain, title, \"term\", [\n        entry(leaf_id, title, plain, \"用户说出职场模糊表达或需要改写协作要求时\", params, [\"information-hierarchy\", \"goal-metric\"], [\"不替用户猜测未提供的事实\"])\n    ], workplace_intents[subdomain])\n\n# Platform research is intentionally scoped and non-generalized.\nplatforms = {\n    \"gpui-desktop-web\": (\"GPUIX 桌面与 Web 平台研究\", \"provider-specific\", \"待核验的桌面/Web 平台适配记录；不得推广为所有 GPU UI 框架事实。\", [\"macOS/Metal\", \"Windows/DirectX\", \"Linux/Vulkan\", \"WebGPU/WebGL2 降级\"]),\n    \"gpui-mobile\": (\"GPUIX 移动端平台研究\", \"provider-specific\", \"移动端支持状态需以官方仓库和版本为准；社区实现不能等同官方支持。\", [\"iOS/Metal\", \"Android/Vulkan 或 GL\", \"触摸、软键盘、安全区\"]),\n    \"three-ui-catalog\": (\"ThreeUI 组件目录研究\", \"provider-specific\", \"目录分类用于检索组件，不代表所有组件都适合生产环境。\", [\"Landing Pages\", \"Hero\", \"Backgrounds\", \"Buttons\", \"Text Animation\", \"Three.js\", \"UI Elements\", \"CSS/Motion/Sections\"]),\n}\nfor leaf_id, (title, scope, plain, params) in platforms.items():\n    add_leaf(f\"terms/platform-research/{leaf_id}.json\", leaf_id, \"digital-product-uiux\", \"3d-web-interface\", title, \"platform-research\", [entry(leaf_id, title, plain, \"用户明确询问指定平台或组件目录\", params, [], [\"必须标注 provider-specific\", \"检索时优先官方来源\", \"verified_at 未设置时不得当作确定事实\"])], [\"compare-platform\", \"choose-renderer\"], scope=scope, extra={\"do_not_generalize\": True, \"verified_at\": None, \"verification_required\": True})\n\nadd_leaf(\"terms/character-ip/character-ip.json\", \"character-ip\", \"ai-aigc-meta-skills\", \"character-ip\", \"角色 IP 一致性\", \"template\", [\n    entry(\"base-ip\", \"基础 IP 设定\", \"先锁定角色体型、配色、五官、材质和负面约束，再按场景增量加载。\", \"同一角色需要生成三视图、动作、服装、表情或周边\", [\"主体描述\", \"一致性规则\", \"负面提示词\", \"参考图\"], [\"lineart-to-3d\", \"plush-texture\", \"merchandise-set\"], [\"一次只加载一个场景模板\"]),\n    entry(\"scene-module\", \"场景增量模块\", \"把材质、动作、镜头或周边作为独立模块叠加到基础 IP。\", \"需要复用角色但更换表现目标\", [\"scene_id\", \"aspect_ratio\", \"tool_adapter\"], [\"base-ip\"], [\"不要重复复制完整基础 IP\"]),\n], [\"generate-character\", \"extend-character\"])\n\n# Index all target leaves.\ndiscover_authored_leaves()\nfor spec in leaf_defs.values():\n    domain_id = spec[\"domain_id\"]\n    subdomain_id = spec[\"subdomain_id\"]\n    if domain_id not in domain_specs:\n        continue\n    known_subdomains = {item[0] for item in domain_specs[domain_id]}\n    if subdomain_id not in known_subdomains:\n        domain_specs[domain_id].append(\n            (subdomain_id, spec[\"title\"], f\"手工新增的 {subdomain_id} 叶子入口\")\n        )\nleaf_refs = []\nfor leaf_id, spec in sorted(leaf_defs.items()):\n    adopt_existing_leaf(spec)\n    leaf_ref = {\n        \"leaf_id\": leaf_id, \"title\": spec[\"title\"], \"path\": spec[\"path\"], \"domain_id\": spec[\"domain_id\"], \"subdomain_id\": spec[\"subdomain_id\"],\n        \"knowledge_type\": spec[\"knowledge_type\"], \"status\": spec[\"status\"], \"intent_ids\": spec[\"intent_ids\"], \"scope\": spec[\"scope\"],\n        \"entry_count\": len(spec[\"entries\"]), \"do_not_generalize\": spec.get(\"do_not_generalize\", False)\n    }\n    if spec.get(\"provider\"):\n        leaf_ref[\"provider\"] = spec[\"provider\"]\n    leaf_refs.append(leaf_ref)\n\n# Build references only after adopting the authored leaf contents.\ndump(DASHBOARD_STYLE_TEMPLATE_PATH, {\n    \"schema_version\": \"1.0.0\", \"template_id\": \"dashboard-style-system\", \"name\": \"Dashboard 审美 Skill\", \"type\": \"template\",\n    \"inputs\": [\"product_or_scene\", \"style_direction\", \"content_priority\"],\n    \"style_directions\": [{\"id\": k, \"name\": v[0], \"rule\": v[1], \"tokens\": v[2]} for k, v in dashboard_entries.items()],\n    \"output_contract\": [\"页面结构\", \"色彩规范\", \"组件规范\", \"可直接给 AI 的提示词\"],\n    \"field_contract\": {\n        \"layout\": \"布局名称与信息结构；不新增同义叶子\",\n        \"termSkill\": \"专业术语与结构关系；引用现有分类\",\n        \"uiSkill\": \"视觉层级、栅格、材质、排版；不负责修改业务状态\",\n        \"agentExec\": \"事件、前置条件、写入状态、派生视图与不受影响的状态\",\n        \"state\": \"唯一事实源、派生关系、不变量；新增实现建议需明确标记\",\n        \"tokens\": \"明确单位与适用范围；用户示例值不是全局默认值\"\n    },\n    \"shared_execution_contract\": {\n        \"flow\": [\n            \"事件\",\n            \"校验/前置条件\",\n            \"一次状态转换\",\n            \"派生所有关联视图\",\n            \"验收\"\n        ],\n        \"rules\": [\n            \"共享的是选择 ID 与时间上下文，不是每个面板各自复制一份状态；独立控件不得误联动。\",\n            \"展示读数由状态派生；请求失败、空数据与快速连续切换不得留下混合视图，异步结果需校验当前上下文。\",\n            \"颜色/尺寸是当前示例的 token，不是行为触发条件；计数从集合派生，不写死 7→8。\",\n            \"键盘与指针操作保持同样状态结果；选中/加载/错误不能只靠颜色，动态效果提供减少动态路径。\",\n            \"固定栏不等于固定整个页面；窄屏策略与断点未提供时先标记建议，不臆造原稿数值。\"\n        ],\n        \"acceptance\": [\n            \"事件前/后真实截图覆盖受影响与不受影响区域\",\n            \"端到端验证状态联动、独立性、错误/快速切换与键盘路径\",\n            \"截图只验证可见结果，状态一致性同时用断言验证\"\n        ]\n    },\n    \"source_gaps\": [\n        {\n            \"slot\": 5,\n            \"status\": \"needs_confirmation\",\n            \"entry_id\": \"warm-three-column-dashboard\",\n            \"missing\": \"完整点击逻辑、模式与单位映射；候选执行逻辑不得默认落地\"\n        },\n        {\n            \"slot\": 6,\n            \"status\": \"missing\",\n            \"missing\": \"第六个 Dashboard 的三层提示词原文\",\n            \"policy\": \"不创建空叶子、不生成虚构案例，不声称六例完整\"\n        }\n    ],\n    \"pattern_refs\": [\n        {\"entry_id\": item[\"id\"], \"path\": leaf_defs[DASHBOARD_LAYOUT_LEAF_ID][\"path\"], \"status\": item[\"evidence\"][\"status\"]}\n        for item in leaf_defs[DASHBOARD_LAYOUT_LEAF_ID][\"entries\"] if \"evidence\" in item and \"layout\" in item\n    ],\n    \"forbidden_defaults\": [\"默认蓝紫渐变\", \"所有卡片一样大\", \"满屏圆角矩形\", \"过多颜色和图标\", \"模板化侧边栏+顶栏+四张 KPI 卡\"]\n})\n\ndump(\"index/leaves.json\", {\"schema_version\": \"1.0.0\", \"knowledge_types\": [\"term\", \"pattern\", \"technique\", \"guideline\", \"parameter\", \"template\", \"platform-research\"], \"leaves\": leaf_refs})\n\nfor domain_id, subdomains in domain_specs.items():\n    subdomain_items = []\n    for subdomain_id, title, description in subdomains:\n        leaves = [x for x in leaf_refs if x[\"domain_id\"] == domain_id and x[\"subdomain_id\"] == subdomain_id]\n        if subdomain_id in intent_defaults:\n            intents = intent_defaults[subdomain_id]\n        else:\n            derived_intents = sorted({\n                intent_id\n                for leaf in leaves\n                for intent_id in leaf.get(\"intent_ids\", [])\n            })\n            intents = [(intent_id, \"匹配\", title) for intent_id in derived_intents] or [(\"explore\", \"探索\", title)]\n        intent_index_path = f\"index/intents/{domain_id}/{subdomain_id}.json\"\n        subdomain_items.append({\n            \"subdomain_id\": subdomain_id, \"title\": title, \"description\": description,\n            \"intent_index\": intent_index_path, \"leaf_count\": len(leaves),\n            \"status\": \"published\" if leaves else \"skeleton\"\n        })\n        dump(intent_index_path, {\n            \"schema_version\": \"1.0.0\", \"subdomain_id\": subdomain_id,\n            \"domain_id\": domain_id,\n            \"intents\": [{\"id\": iid, \"action\": action, \"object\": obj, \"leaf_refs\": [x[\"leaf_id\"] for x in leaf_refs if x[\"domain_id\"] == domain_id and x[\"subdomain_id\"] == subdomain_id and iid in x[\"intent_ids\"]]} for iid, action, obj in intents]\n        })\n    dump(f\"index/domains/{domain_id}.json\", {\"schema_version\": \"1.0.0\", \"domain_id\": domain_id, \"subdomains\": subdomain_items})\n\n# Add subdomain refs and leaf count to legacy package entries.\npackages = json.loads((ROOT / \"index/packages.json\").read_text(encoding=\"utf-8\"))\npackages[\"schema_version\"] = \"2.0.0\"\nfor package in packages[\"packages\"]:\n    domain_id = package[\"domain_id\"]\n    package[\"subdomain_index\"] = f\"index/domains/{domain_id}.json\"\n    package[\"leaf_count\"] = sum(1 for x in leaf_refs if x[\"domain_id\"] == domain_id)\n    package[\"loading_policy\"] = \"progressive\"\ndump(\"index/packages.json\", packages)\n\n# Runtime index: small routing records only; leaf content stays out of the runtime hot path.\nkeywords = {\n    \"undo-window\": [\"撤销\", \"undo\", \"删除后恢复\", \"可逆操作\", \"撤销条\", \"倒计时\"],\n    \"reverse-animation\": [\"反向动画\", \"归位\", \"删除动画\", \"恢复动画\"],\n    \"flip-reentry\": [\"FLIP\", \"列表恢复\", \"原索引\", \"共享元素\"],\n    \"motion-accessibility\": [\"aria\", \"读屏\", \"键盘\", \"减少动态\", \"prefers-reduced-motion\"],\n    \"follow\": [\"跟随\", \"跟手\", \"速度跟随\"], \"threshold\": [\"阈值\", \"触发条件\", \"断开\"], \"snap\": [\"吸附\", \"锚点\", \"回弹\"],\n    \"velocity-inheritance\": [\"速度继承\", \"释放速度\", \"摩擦\"], \"interruption\": [\"中断\", \"快速连点\", \"动画接管\"],\n    **{k: [v[0], k.replace('-', ' ')] for k, v in interaction_12.items()},\n    **{k: [v[0], \"dashboard\", \"后台\"] for k, v in dashboard_entries.items()},\n    **{k: [v[0], \"组件\", \"AI 生成\"] for k, v in components.items()},\n    **{\n        k: [v[0].replace(\"列表\", \"\"), k.replace(\"-\", \" \")]\n        for k, v in continuous_patterns.items()\n    },\n    **{\n        k: [v[0].replace(\"列表\", \"\"), k.replace(\"-\", \" \")]\n        for k, v in advanced_interactions.items()\n    },\n    **{\n        k: [v[0].replace(\"列表\", \"\"), k.replace(\"-\", \" \"), *v[2][:2]]\n        for k, v in visual_effects.items()\n    },\n    **{\n        k: [v[0], k.replace(\"-\", \" \"), *v[2][:2]]\n        for k, v in gsap_leaves.items()\n    },\n    \"living-style-guide-preview\": [\"活样式指南\", \"Light\", \"Dark\", \"设计系统\", \"预览\", \"token\"],\n    # Explicit aliases keep the five new feeling-to-term patterns ahead of\n    # generic motion leaves when the user describes the visible outcome.\n    \"checkbox-cascade\": [\"勾选联动\", \"复选框联动\", \"进度环\", \"数字滚动\", \"顶部背景\", \"checkbox cascade\"],\n    \"stack-card-expand\": [\"叠卡展开\", \"卡片铺开\", \"卡片扇出\", \"卡片叠回\", \"stack card expand\"],\n    \"snap-card-timeline\": [\"吸附卡画线\", \"吸附卡加画线\", \"时间线逐段绘制\", \"卡片停稳后画线\", \"卡片停稳后画时间线\", \"snap card timeline\"],\n    \"inertial-wheel\": [\"惯性滚轮\", \"时间滚轮\", \"数值滚轮\", \"阻尼滚轮\", \"刻度吸附\", \"inertial wheel\"],\n    \"radial-reveal-transition\": [\"圆形扩散转场\", \"圆形转场\", \"径向揭示\", \"点击点扩散\", \"页面圆形扩散\", \"radial reveal transition\"],\n    \"submit-state-machine\": [\"提交状态\", \"保存按钮\", \"保存进度环\", \"保存转进度\", \"进度环打勾\", \"submit state machine\"],\n    \"perspective-carousel\": [\"景随图换轮播\", \"卡片层叠轮播\", \"层叠轮播\", \"叠卡轮播\", \"卡片堆叠轮播\", \"perspective carousel\"],\n    \"damped-bottom-sheet\": [\"阻尼弹性抽屉\", \"撕线弹出面板\", \"撕线下拉\", \"撕线下拉打开面板\", \"撕口下拉\", \"撕线面板\", \"撕口弹出\", \"tear line panel\"],\n    \"edge-docked-fab\": [\"吸边悬浮球\", \"吸边悬浮球，释放后吸附\", \"贴边悬浮按钮\", \"edge docked fab\"],\n    \"press-and-hold-confirm\": [\"按住蓄力确认\", \"按住按钮\", \"长按确认\", \"危险操作确认\", \"press and hold confirm\"],\n    \"gsap-react-lifecycle\": [\"GSAP React 生命周期\", \"GSAP\", \"React 动画清理\", \"组件卸载清理\", \"ctx.revert\", \"useGSAP\", \"gsap react lifecycle\"],\n    \"availability-patterns\": [\"高可用\", \"高可用模式\", \"故障转移\", \"RTO\", \"RPO\", \"availability-patterns\", \"high-availability\"],\n    \"capacity-model\": [\"高并发\", \"并发容量\", \"容量模型\", \"RPS\", \"P95\", \"P99\", \"capacity-model\", \"high-concurrency\"],\n    \"scaling-strategies\": [\"高扩展\", \"扩展策略\", \"水平扩展\", \"分片\", \"异步化\", \"scaling-strategies\", \"scalability\"],\n    \"character-ip\": [\"角色 IP\", \"三视图\", \"周边\", \"一致性\", \"毛绒玩偶\"],\n    \"gpui-desktop-web\": [\"GPUIX\", \"Metal\", \"DirectX\", \"Vulkan\", \"WebGPU\", \"WebGL2\"],\n    \"gpui-mobile\": [\"GPUIX\", \"iOS\", \"Android\", \"移动端\", \"gpui-mobile\"],\n    \"three-ui-catalog\": [\"ThreeUI\", \"Hero\", \"Backgrounds\", \"Three.js\", \"3D 组件\"],\n}\n# Variants stay inside their authored leaf; publish identifiers, not bodies.\n# Keep aliases local to the family so adding a Dashboard does not add a route.\ndashboard_layout = leaf_defs[DASHBOARD_LAYOUT_LEAF_ID]\nkeywords[DASHBOARD_LAYOUT_LEAF_ID] = [\n    *keywords[DASHBOARD_LAYOUT_LEAF_ID],\n    *(alias for item in dashboard_layout[\"entries\"]\n      for alias in [item[\"id\"], item[\"name\"], *item.get(\"aliases\", [])]),\n]\nroutes = []\nfor ref in leaf_refs:\n    route_keywords = [\n        *keywords.get(ref[\"leaf_id\"], []),\n        ref[\"title\"],\n        ref[\"leaf_id\"],\n    ]\n    deduplicated_keywords = []\n    seen_keywords = set()\n    for keyword in route_keywords:\n        normalized = normalize_keyword(keyword)\n        if normalized not in seen_keywords:\n            seen_keywords.add(normalized)\n            deduplicated_keywords.append(keyword)\n    route = {\n        \"leaf_id\": ref[\"leaf_id\"], \"title\": ref[\"title\"], \"keywords\": deduplicated_keywords,\n        \"path\": ref[\"path\"], \"domain_id\": ref[\"domain_id\"], \"subdomain_id\": ref[\"subdomain_id\"],\n        \"knowledge_type\": ref[\"knowledge_type\"], \"entry_count\": ref[\"entry_count\"],\n        \"intent_ids\": ref[\"intent_ids\"], \"scope\": ref[\"scope\"], \"do_not_generalize\": ref[\"do_not_generalize\"]\n    }\n    if ref.get(\"provider\"):\n        route[\"provider\"] = ref[\"provider\"]\n    routes.append(route)\ndump(\"index/runtime.json\", {\n    \"schema_version\": \"1.0.0\", \"index_type\": \"runtime-router\", \"generated_by\": \"scripts/bootstrap-progressive-content.py\",\n    \"matching\": {\"normalization\": [\"lowercase\", \"unicode_nfkc\"], \"scoring\": \"token-overlap\", \"tie_break\": \"score_then_leaf_id\"},\n    \"limits\": root[\"loading_policy\"], \"routes\": routes\n})\nprint(f\"generated {len(leaf_refs)} granular leaves\")\n",
    "scripts/query-index.py": "#!/usr/bin/env python3\n\"\"\"Progressively route a user query to the smallest useful Feeling to Jargon knowledge set.\"\"\"\nfrom __future__ import annotations\nimport argparse\nimport json\nimport re\nimport unicodedata\nfrom pathlib import Path\n\nROOT = Path(__file__).resolve().parents[1]\n\ndef load(rel: str):\n    with (ROOT / rel).open(encoding=\"utf-8\") as f:\n        return json.load(f)\n\ndef normalize(value: str) -> str:\n    return unicodedata.normalize(\"NFKC\", value).lower().strip()\n\ndef chunks(value: str) -> list[str]:\n    text = normalize(value)\n    # Keep Chinese runs and latin/digit words; substring matching handles short Chinese phrases.\n    return re.findall(r\"[\\u4e00-\\u9fff]{2,}|[a-z0-9][a-z0-9+.#:/-]*\", text)\n\ndef chinese_runs(value: str) -> list[str]:\n    return re.findall(r\"[\\u4e00-\\u9fff]{2,}\", normalize(value))\n\ndef positive_int(value: str) -> int:\n    parsed = int(value)\n    if parsed <= 0:\n        raise ValueError(\"must be a positive integer\")\n    return parsed\n\ndef unique_keywords(keywords: list[str]) -> list[str]:\n    result = []\n    seen = set()\n    for keyword in keywords:\n        normalized = normalize(keyword)\n        if normalized not in seen:\n            seen.add(normalized)\n            result.append(keyword)\n    return result\n\ndef score(query: str, keywords: list[str]) -> int:\n    q = normalize(query)\n    q_tokens = {\n        token\n        for token in chunks(q)\n        if len(token) >= 3 or any(\"\\u4e00\" <= char <= \"\\u9fff\" for char in token)\n    }\n    points = 0\n    matched_bigrams: set[str] = set()\n    matched_tokens: set[str] = set()\n    for keyword in unique_keywords(keywords):\n        candidate = normalize(keyword)\n        if candidate in q and (len(candidate) >= 3 or any(\"\\u4e00\" <= char <= \"\\u9fff\" for char in candidate)):\n            points += 3\n            continue\n        # Chinese requests often contain a shorter phrase inside a descriptive\n        # keyword (e.g. “高可用” inside “高可用模式”). Count each observed\n        # bigram once per route so repeated aliases cannot inflate a score.\n        for phrase in chinese_runs(candidate):\n            if len(phrase) < 3:\n                continue\n            matched_indices = {\n                index\n                for index in range(0, len(phrase) - 1)\n                if phrase[index : index + 2] in q\n            }\n            # A single shared pair such as “卡片” is too generic. Require\n            # adjacent pairs from the same descriptive phrase, so the query\n            # contains a continuous 3-character fragment rather than two\n            # unrelated pairs scattered across the sentence.\n            adjacent_indices = {\n                index\n                for index in matched_indices\n                if index + 1 in matched_indices\n            }\n            if 0 in adjacent_indices:\n                matched_bigrams.update(\n                    phrase[index : index + 2]\n                    for index in adjacent_indices\n                )\n        matched_tokens.update(token for token in q_tokens if token in candidate)\n    return points + (2 * len(matched_bigrams)) + len(matched_tokens)\n\ndef select_entries(query: str, entries: list[dict], limit: int, margin: int, default_entry_id=None) -> list[dict]:\n    \"\"\"Rank inside a merged family before applying its entry budget.\"\"\"\n    ranked = []\n    normalized_query = normalize(query)\n    for position, item in enumerate(entries):\n        identifiers = [item.get(\"id\", \"\"), item.get(\"name\", \"\"), *item.get(\"aliases\", [])]\n        identifiers = [value for value in identifiers if normalize(value)]\n        exact = any(len(normalize(value)) >= 3 and normalize(value) in normalized_query for value in identifiers)\n        details = [item.get(\"plain_language\", \"\"), item.get(\"when_to_use\", \"\")]\n        item_score = score(query, identifiers) + score(query, [value for value in details if value])\n        if exact or item_score:\n            ranked.append((exact, item_score, position, item))\n    if not ranked:\n        # Families may name an overview; preserve other leaves' legacy fallback.\n        if default_entry_id:\n            return [item for item in entries if item[\"id\"] == default_entry_id][:limit]\n        return entries[:limit]\n    ranked.sort(key=lambda item: (-item[0], -item[1], item[2]))\n    if ranked[0][0]:\n        selected = [item for item in ranked if item[0]]\n    else:\n        selected = [item for item in ranked if item[1] >= ranked[0][1] - margin]\n    return [item[3] for item in selected[:limit]]\n\ndef main() -> None:\n    parser = argparse.ArgumentParser(description=\"Progressive Feeling to Jargon runtime query\")\n    parser.add_argument(\"query\", nargs=\"+\", help=\"user request\")\n    parser.add_argument(\"--max-leaves\", type=positive_int, default=None)\n    parser.add_argument(\"--max-entries\", type=positive_int, default=None)\n    args = parser.parse_args()\n    query = \" \".join(args.query)\n    root = load(\"index/root.json\")\n    runtime = load(\"index/runtime.json\")\n    limits = root[\"loading_policy\"]\n    min_route_score = limits.get(\"min_route_score\", 1)\n    max_leaves = args.max_leaves if args.max_leaves is not None else limits[\"max_leaf_packages\"]\n    max_entries = args.max_entries if args.max_entries is not None else limits[\"max_entries_per_leaf\"]\n\n    ranked = []\n    for route in runtime[\"routes\"]:\n        provider = normalize(route.get(\"provider\") or \"\")\n        if provider and provider not in normalize(query):\n            continue\n        route_score = score(query, route[\"keywords\"])\n        title = normalize(route.get(\"title\") or \"\")\n        if len(title) >= 3 and title in normalize(query):\n            route_score += 2\n        if route_score >= min_route_score:\n            ranked.append((route_score, route))\n    # A merged family must not lose routing priority just because it contains\n    # more entries. Entry budgets are applied after within-family ranking.\n    ranked.sort(key=lambda pair: (-pair[0], pair[1][\"leaf_id\"]))\n\n    # Keep routes close to the best match within each selected subdomain. This\n    # preserves one strong route per relevant subdomain while preventing a\n    # specific request such as \"GSAP timeline\" from loading every leaf that\n    # shares only the provider keyword.\n    initial_selected = ranked[:max_leaves]\n    selected_subdomains = []\n    for _, route in initial_selected:\n        key = (route[\"domain_id\"], route[\"subdomain_id\"])\n        if key not in selected_subdomains:\n            selected_subdomains.append(key)\n    selected_subdomains = selected_subdomains[: limits[\"max_subdomains\"]]\n    default_margin = limits.get(\"route_score_margin\", 0)\n    high_confidence_score = limits.get(\"high_confidence_score\", 0)\n    high_confidence_margin = limits.get(\"high_confidence_margin\", default_margin)\n    selected = []\n    for subdomain in selected_subdomains:\n        subdomain_ranked = [\n            pair for pair in ranked\n            if (pair[1][\"domain_id\"], pair[1][\"subdomain_id\"]) == subdomain\n        ]\n        if not subdomain_ranked:\n            continue\n        top_score = subdomain_ranked[0][0]\n        score_margin = high_confidence_margin if top_score >= high_confidence_score else default_margin\n        selected.extend(\n            pair for pair in subdomain_ranked\n            if pair[0] >= max(1, top_score - score_margin)\n        )\n    selected = selected[:max_leaves]\n\n    # Resolve the selected hierarchy before loading leaf content. The runtime\n    # router stays small and hot, while these indexes provide the authoritative\n    # domain -> subdomain -> intent path for the selected request.\n    domain_index_paths = []\n    intent_index_paths = []\n    selected_intents = {}\n    for domain_id, subdomain_id in selected_subdomains:\n        domain_path = f\"index/domains/{domain_id}.json\"\n        domain_doc = load(domain_path)\n        domain_index_paths.append(domain_path)\n        subdomain = next(item for item in domain_doc[\"subdomains\"] if item[\"subdomain_id\"] == subdomain_id)\n        intent_doc = load(subdomain[\"intent_index\"])\n        intent_index_paths.append(subdomain[\"intent_index\"])\n        selected_intents[(domain_id, subdomain_id)] = {\n            intent[\"id\"] for intent in intent_doc.get(\"intents\", [])\n        }\n    intent_rank = {}\n    for route_score, route in selected:\n        for intent_id in route.get(\"intent_ids\", []):\n            key = (route[\"domain_id\"], route[\"subdomain_id\"], intent_id)\n            intent_rank[key] = max(route_score, intent_rank.get(key, 0))\n    selected_intent_ids = set()\n    for domain_id, subdomain_id in selected_subdomains:\n        candidates = [\n            (score_value, intent_id)\n            for (candidate_domain, candidate_subdomain, intent_id), score_value in intent_rank.items()\n            if candidate_domain == domain_id and candidate_subdomain == subdomain_id\n        ]\n        candidates.sort(key=lambda item: (-item[0], item[1]))\n        selected_intent_ids.update(\n            (domain_id, subdomain_id, intent_id)\n            for _, intent_id in candidates[: limits[\"max_intents\"]]\n        )\n    selected = [\n        pair for pair in selected\n        if any(\n            (pair[1][\"domain_id\"], pair[1][\"subdomain_id\"], intent_id) in selected_intent_ids\n            for intent_id in set(pair[1].get(\"intent_ids\", []))\n            & selected_intents[(pair[1][\"domain_id\"], pair[1][\"subdomain_id\"])]\n        )\n    ]\n\n    loaded = []\n    for route_score, route in selected:\n        leaf = load(route[\"path\"])\n        terms = select_entries(\n            query, leaf.get(\"entries\", []), max_entries,\n            limits[\"route_score_margin\"], leaf.get(\"default_entry_id\"),\n        )\n        loaded.append({\n            \"leaf_id\": route[\"leaf_id\"], \"score\": route_score, \"knowledge_type\": route[\"knowledge_type\"],\n            \"scope\": route[\"scope\"], \"do_not_generalize\": route[\"do_not_generalize\"],\n            \"path\": route[\"path\"], \"entries\": terms,\n        })\n\n    output = {\n        \"query\": query,\n        \"strategy\": \"progressive\",\n        \"trace\": {\n            \"levels\": [\"root\", \"subdomain\", \"intent\", \"leaf\", \"entry\"],\n            \"root_loaded\": \"index/root.json\",\n            \"runtime_router_loaded\": \"index/runtime.json\",\n            \"domain_index_paths\": domain_index_paths,\n            \"intent_index_paths\": intent_index_paths,\n            \"selected_intents\": [\n                {\"domain_id\": d, \"subdomain_id\": s, \"intent_id\": i}\n                for d, s, i in sorted(selected_intent_ids)\n            ],\n            \"selected_subdomains\": [{\"domain_id\": d, \"subdomain_id\": s} for d, s in selected_subdomains],\n            \"loaded_leaf_paths\": [item[\"path\"] for item in loaded],\n            \"loaded_leaf_count\": len(loaded),\n            \"entry_limit\": max_entries,\n        },\n        \"matches\": loaded,\n        \"network_search\": \"not_requested\",\n    }\n    print(json.dumps(output, ensure_ascii=False, indent=2))\n\nif __name__ == \"__main__\":\n    main()\n",
    "scripts/test-dashboard-patterns.py": "#!/usr/bin/env python3\n\"\"\"E2E regression checks for consolidated Dashboard knowledge and entry budgets.\"\"\"\nfrom __future__ import annotations\n\nimport hashlib\nimport importlib.util\nimport json\nimport shutil\nimport subprocess\nimport sys\nimport tempfile\nimport unittest\nfrom pathlib import Path\n\n# Import the CLI for pure ranking checks without leaving bytecode artifacts.\nsys.dont_write_bytecode = True\nROOT = Path(__file__).resolve().parents[1]\nLAYOUT_LEAF_ID = \"layout-patterns\"\nLAYOUT_PATH = \"terms/dashboard/layout-patterns.json\"\nTEMPLATE_PATH = \"templates/dashboard/dashboard-style-system.json\"\nFIELDS = {\"layout\", \"termSkill\", \"uiSkill\", \"agentExec\", \"state\", \"tokens\"}\nEXPECTED_PATTERNS = {\n    \"多彩错列布局\": \"color-staggered-dashboard\",\n    \"工业分区布局\": \"industrial-zones-dashboard\",\n    \"中轴观测布局\": \"axial-observatory-dashboard\",\n    \"玻璃点阵布局\": \"glass-dot-matrix-dashboard\",\n    \"暖色三栏布局\": \"warm-three-column-dashboard\",\n}\nNATURAL_QUERIES = {\n    \"非对称双列，容量圆点独立切换\": \"color-staggered-dashboard\",\n    \"低库存筛选并选中物料联动补货卡\": \"industrial-zones-dashboard\",\n    \"共享选中态与时间轴预览联动\": \"axial-observatory-dashboard\",\n    \"点阵读数和月份指标联动\": \"glass-dot-matrix-dashboard\",\n    \"卧室房间联动和模式单位同步\": \"warm-three-column-dashboard\",\n}\n\n\ndef load(path):\n    return json.loads((ROOT / path).read_text(encoding=\"utf-8\"))\n\n\ndef query(text, *options):\n    result = subprocess.check_output(\n        [sys.executable, str(ROOT / \"scripts/query-index.py\"), text, *options], text=True,\n    )\n    return json.loads(result)\n\n\ndef json_snapshot(root):\n    return {str(p.relative_to(root)): hashlib.sha256(p.read_bytes()).hexdigest()\n            for p in root.rglob(\"*.json\")}\n\n\nclass DashboardPatternsTests(unittest.TestCase):\n    @classmethod\n    def setUpClass(cls):\n        cls.leaf = load(LAYOUT_PATH)\n        cls.template = load(TEMPLATE_PATH)\n        cls.entries = {item[\"id\"]: item for item in cls.leaf[\"entries\"]}\n        cls.patterns = {key: cls.entries[key] for key in EXPECTED_PATTERNS.values()}\n        spec = importlib.util.spec_from_file_location(\"query_index\", ROOT / \"scripts/query-index.py\")\n        cls.runtime = importlib.util.module_from_spec(spec)\n        spec.loader.exec_module(cls.runtime)\n\n    def test_variants_share_one_leaf_and_one_route(self):\n        ids = set(EXPECTED_PATTERNS.values())\n        leaves = load(\"index/leaves.json\")[\"leaves\"]\n        routes = load(\"index/runtime.json\")[\"routes\"]\n        self.assertTrue(ids.isdisjoint(item[\"leaf_id\"] for item in leaves))\n        self.assertEqual(sum(item[\"leaf_id\"] == LAYOUT_LEAF_ID for item in routes), 1)\n        self.assertEqual(self.leaf[\"default_entry_id\"], LAYOUT_LEAF_ID)\n        refs = self.template[\"pattern_refs\"]\n        self.assertEqual({ref[\"entry_id\"] for ref in refs}, set(self.patterns))\n        self.assertEqual(len(refs), len(self.patterns))\n        for ref in refs:\n            self.assertEqual(ref[\"path\"], LAYOUT_PATH)\n            self.assertEqual(ref[\"status\"], self.entries[ref[\"entry_id\"]][\"evidence\"][\"status\"])\n\n    def test_titles_ids_and_natural_queries_are_reachable_under_budget(self):\n        queries = {**EXPECTED_PATTERNS, **NATURAL_QUERIES,\n                   **{key: key for key in EXPECTED_PATTERNS.values()}}\n        for text, expected in queries.items():\n            for options in [(), (\"--max-entries\", \"1\", \"--max-leaves\", \"1\")]:\n                with self.subTest(query=text, options=options):\n                    result = query(text, *options)\n                    self.assertEqual(result[\"matches\"][0][\"leaf_id\"], LAYOUT_LEAF_ID)\n                    self.assertEqual([entry[\"id\"] for entry in result[\"matches\"][0][\"entries\"]], [expected])\n                    self.assertLessEqual(result[\"trace\"][\"loaded_leaf_count\"], 2)\n                    self.assertEqual(result[\"network_search\"], \"not_requested\")\n\n    def test_shared_contract_and_state_references(self):\n        self.assertEqual(set(self.template[\"field_contract\"]), FIELDS)\n        for item in self.patterns.values():\n            with self.subTest(entry=item[\"id\"]):\n                self.assertTrue(FIELDS.issubset(item))\n                self.assertEqual(item[\"contract_ref\"], TEMPLATE_PATH)\n                self.assertEqual(item[\"tokens\"][\"scope\"], \"provided_example\")\n                self.assertEqual(item[\"state\"][\"model_status\"], \"proposed_implementation\")\n                self.assertTrue(item[\"state\"][\"invariants\"])\n                state = item[\"state\"]\n                source = set(state[\"source\"])\n                derived = set(state[\"derived\"])\n                self.assertTrue(source.isdisjoint(derived))\n                for action in item[\"agentExec\"]:\n                    writes = set(action.get(\"writes\", []))\n                    preserves = set(action.get(\"preserves\", []))\n                    self.assertTrue(writes <= source)\n                    self.assertTrue(preserves <= source | derived)\n                    self.assertTrue(writes.isdisjoint(preserves))\n                    self.assertTrue(set(action.get(\"updates\", [])) <= source | derived)\n\n    def test_original_parameters_and_independent_state_are_preserved(self):\n        color = self.patterns[\"color-staggered-dashboard\"]\n        self.assertEqual(color[\"tokens\"][\"values\"][\"grid_ratio\"], [1.42, 1])\n        self.assertEqual(color[\"tokens\"][\"values\"][\"radius_px\"], 26)\n        self.assertEqual(color[\"agentExec\"][0][\"preserves\"], [\"capacitySelection\"])\n        industrial = self.patterns[\"industrial-zones-dashboard\"]\n        self.assertEqual(industrial[\"agentExec\"][0][\"sets\"], {\"stockFilter\": 2})\n        self.assertEqual(industrial[\"agentExec\"][2][\"example_transition\"], {\"before\": 7, \"after\": 8})\n        self.assertEqual(industrial[\"state\"][\"derived\"][\"replenishmentCount\"], \"count(replenishmentItems)\")\n        observatory = self.patterns[\"axial-observatory-dashboard\"]\n        self.assertEqual(set(observatory[\"agentExec\"][1][\"updates\"]), {\"queueSelection\", \"readings\", \"starMap\", \"curve\"})\n        glass = self.patterns[\"glass-dot-matrix-dashboard\"]\n        self.assertEqual(glass[\"agentExec\"][1][\"example_values\"], {\"selectedMonth\": 8, \"selectedMetric\": \"score\"})\n        self.assertEqual(glass[\"agentExec\"][2][\"preserves\"], [\"selectedMonth\"])\n\n    def test_unconfirmed_execution_is_not_presented_as_complete(self):\n        warm = self.patterns[\"warm-three-column-dashboard\"]\n        self.assertEqual(warm[\"evidence\"][\"status\"], \"needs_confirmation\")\n        self.assertEqual(warm[\"evidence\"][\"confirmed_layers\"], [\"layout\", \"termSkill\", \"uiSkill\"])\n        self.assertTrue(warm[\"evidence\"][\"missing_inputs\"])\n        for action in warm[\"agentExec\"]:\n            self.assertEqual(action[\"status\"], \"needs_confirmation\")\n        gaps = {item[\"slot\"]: item for item in self.template[\"source_gaps\"]}\n        self.assertEqual(gaps[5][\"status\"], \"needs_confirmation\")\n        self.assertEqual(gaps[6][\"status\"], \"missing\")\n        self.assertNotIn(\"entry_id\", gaps[6])\n        self.assertEqual(len(self.patterns), 5)\n\n    def test_entry_ranking_precedes_limit_and_preserves_legacy_fallback(self):\n        entries = [{\"id\": \"overview\", \"name\": \"概览\"}, {\"id\": \"target\", \"name\": \"工业分区布局\"}]\n        selected = self.runtime.select_entries(\"工业分区布局\", entries, 1, 2)\n        self.assertEqual(selected, [entries[1]])\n        self.assertEqual(self.runtime.select_entries(\"unmatched\", entries, 2, 2), entries)\n        self.assertEqual(self.runtime.select_entries(\"unmatched\", entries, 2, 2, \"overview\"), [entries[0]])\n        self.assertEqual(self.runtime.select_entries(\"unmatched\", [], 1, 2), [])\n\n    def test_generic_query_uses_overview_without_dumping_variants(self):\n        result = query(\"设计一个不模板化的 AI 数据后台\")\n        layout = next(item for item in result[\"matches\"] if item[\"leaf_id\"] == LAYOUT_LEAF_ID)\n        self.assertEqual([item[\"id\"] for item in layout[\"entries\"]], [LAYOUT_LEAF_ID])\n        self.assertIn(\"minimal-data\", [item[\"leaf_id\"] for item in result[\"matches\"]])\n\n    def test_combined_request_keeps_both_named_variants(self):\n        result = query(\"比较工业分区布局与暖色三栏布局\", \"--max-entries\", \"2\")\n        layout = next(item for item in result[\"matches\"] if item[\"leaf_id\"] == LAYOUT_LEAF_ID)\n        self.assertEqual({item[\"id\"] for item in layout[\"entries\"]},\n                         {\"industrial-zones-dashboard\", \"warm-three-column-dashboard\"})\n\n    def test_unrelated_queries_do_not_load_dashboard_family(self):\n        for text in [\"普通卡片轮播\", \"保存按钮变进度环\", \"GSAP timeline\", \"hello world\"]:\n            with self.subTest(query=text):\n                result = query(text)\n                self.assertNotIn(LAYOUT_LEAF_ID, [item[\"leaf_id\"] for item in result[\"matches\"]])\n\n    def test_regeneration_keeps_authored_content_and_is_idempotent(self):\n        with tempfile.TemporaryDirectory(prefix=\"dashboard-regression-\") as folder:\n            target = Path(folder)\n            for name in (\"scripts\", \"terms\", \"templates\", \"index\"):\n                shutil.copytree(ROOT / name, target / name, ignore=shutil.ignore_patterns(\"__pycache__\"))\n            authored = target / LAYOUT_PATH\n            document = json.loads(authored.read_text())\n            document[\"entries\"][-1][\"aliases\"].append(\"专属三栏回归别名\")\n            authored.write_text(json.dumps(document, ensure_ascii=False, indent=2) + \"\\n\")\n            original = authored.read_bytes()\n            command = [sys.executable, str(target / \"scripts/bootstrap-progressive-content.py\")]\n            subprocess.run(command, check=True, capture_output=True)\n            first = json_snapshot(target)\n            subprocess.run(command, check=True, capture_output=True)\n            self.assertEqual(first, json_snapshot(target))\n            self.assertEqual(original, authored.read_bytes())\n            self.assertEqual(len(json.loads((target / \"index/leaves.json\").read_text())[\"leaves\"]),\n                             len(load(\"index/leaves.json\")[\"leaves\"]))\n            template = json.loads((target / TEMPLATE_PATH).read_text())\n            self.assertEqual({item[\"entry_id\"] for item in template[\"pattern_refs\"]}, set(self.patterns))\n            result = json.loads(subprocess.check_output(\n                [sys.executable, str(target / \"scripts/query-index.py\"), \"专属三栏回归别名\", \"--max-entries\", \"1\"], text=True))\n            self.assertEqual(result[\"matches\"][0][\"entries\"][0][\"id\"], \"warm-three-column-dashboard\")\n\n\nif __name__ == \"__main__\":\n    unittest.main()\n",
    "scripts/test-progressive-index.py": "#!/usr/bin/env python3\n\"\"\"End-to-end checks for progressive routing scenarios.\"\"\"\nfrom __future__ import annotations\nimport json\nimport subprocess\nimport sys\nimport unicodedata\nfrom pathlib import Path\n\nROOT = Path(__file__).resolve().parents[1]\nQUERY = ROOT / \"scripts/query-index.py\"\nCASES = [\n    (\"删除列表项，5 秒内撤销并支持键盘\", {\"undo-window\", \"motion-accessibility\"}, 4),\n    (\"设计一个不模板化的 AI 数据后台\", {\"minimal-data\", \"layout-patterns\"}, 8),\n    (\"把这个角色做成毛绒玩偶和周边\", {\"character-ip\"}, 2),\n    (\"GPUIX 能不能跑移动端？\", {\"gpui-mobile\"}, 3),\n    (\"后端需要高可用、高并发、高扩展\", {\"availability-patterns\", \"capacity-model\", \"scaling-strategies\"}, 3),\n    (\"搜索框展开后自动聚焦，状态切换要连续\", {\"search-expand\"}, 8),\n    (\"按住按钮确认危险操作，未满松手要取消\", {\"press-and-hold-confirm\"}, 8),\n    (\"做一个前后对比滑块，支持键盘调整\", {\"before-after-slider\"}, 8),\n    (\"设计一个克制的暗色 Dashboard，用明度分层\", {\"tonal-dark-dashboard\"}, 8),\n    (\"实现液态玻璃导航并提供移动端降级\", {\"liquid-glass-bar\"}, 8),\n    (\"用 GSAP 做 React ScrollTrigger，并正确清理\", {\"gsap-scrolltrigger\", \"gsap-react-lifecycle\"}, 8),\n    (\"设计一个有 Light/Dark 预览的设计系统\", {\"living-style-guide-preview\"}, 8),\n    (\"勾选后让顶部背景、进度环和数字同步变化\", {\"checkbox-cascade\"}, 5),\n    (\"做一个叠卡展开，关闭时沿原路径叠回\", {\"stack-card-expand\"}, 5),\n    (\"卡片吸附后再逐段绘制时间线\", {\"snap-card-timeline\"}, 8),\n    (\"卡片停稳后画时间线\", {\"snap-card-timeline\"}, 8),\n    (\"做一个有惯性、回弹和刻度吸附的时间滚轮\", {\"inertial-wheel\"}, 8),\n    (\"从点击位置开始圆形扩散完成页面转场\", {\"radial-reveal-transition\"}, 5),\n    (\"撕线下拉打开面板，未达阈值回弹\", {\"damped-bottom-sheet\"}, 5),\n    (\"保存按钮收缩成进度环，完成后变已保存\", {\"submit-state-machine\"}, 5),\n    (\"做一个吸边悬浮球，释放后吸附左右边缘\", {\"edge-docked-fab\"}, 5),\n    (\"做一个三张卡片层叠轮播，拖过阈值飞出\", {\"perspective-carousel\"}, 5),\n]\nNEGATIVE_CASES = [\n    (\"hello world\", {\"morph-icon\", \"ripple-button\", \"liquid-slider\"}),\n    (\"GPUIX mobile\", {\"morph-icon\", \"ripple-button\", \"liquid-slider\"}),\n    (\"普通列表卡片\", {\"stack-card-expand\", \"snap-card-timeline\", \"inertial-wheel\"}),\n]\n\nfor query, expected, max_leaves in CASES:\n    raw = subprocess.check_output([\"python3\", str(QUERY), query], text=True)\n    result = json.loads(raw)\n    loaded = {item[\"leaf_id\"] for item in result[\"matches\"]}\n    assert expected.issubset(loaded), f\"{query}: missing {expected - loaded}\"\n    assert result[\"trace\"][\"loaded_leaf_count\"] <= max_leaves, f\"{query}: loaded too much\"\n    assert result[\"trace\"][\"loaded_leaf_count\"] <= 8, f\"{query}: exceeds global cap\"\n    assert len(result[\"trace\"][\"selected_subdomains\"]) <= 3, f\"{query}: exceeds subdomain cap\"\n    assert result[\"trace\"][\"domain_index_paths\"], f\"{query}: domain index was not loaded\"\n    assert result[\"trace\"][\"intent_index_paths\"], f\"{query}: intent index was not loaded\"\n    subdomains = len(result[\"trace\"][\"selected_subdomains\"])\n    assert len(result[\"trace\"][\"selected_intents\"]) <= 3 * subdomains, f\"{query}: exceeds per-subdomain intent cap\"\nfor query, forbidden in NEGATIVE_CASES:\n    raw = subprocess.check_output([\"python3\", str(QUERY), query], text=True)\n    result = json.loads(raw)\n    loaded = {item[\"leaf_id\"] for item in result[\"matches\"]}\n    assert loaded.isdisjoint(forbidden), f\"{query}: false positive {loaded & forbidden}\"\nraw = subprocess.check_output([\"python3\", str(QUERY), \"GPUIX 能不能跑移动端？\"], text=True)\ngpui_result = json.loads(raw)\ngpui_mobile = next(item for item in gpui_result[\"matches\"] if item[\"leaf_id\"] == \"gpui-mobile\")\nassert gpui_mobile[\"scope\"] == \"provider-specific\", \"provider scope was lost\"\nassert gpui_mobile[\"do_not_generalize\"] is True, \"provider boundary was lost\"\n\nraw = subprocess.check_output([\"python3\", str(QUERY), \"实现液态玻璃导航并提供移动端降级\"], text=True)\nglass_result = json.loads(raw)\nglass = next(item for item in glass_result[\"matches\"] if item[\"leaf_id\"] == \"liquid-glass-bar\")\nglass_entry = glass[\"entries\"][0]\nfor field in (\"performance_budget\", \"fallback\", \"mobile_degradation\", \"reduced_motion\"):\n    assert field in glass_entry and glass_entry[field], f\"visual effect field missing: {field}\"\n\nraw = subprocess.check_output([\"python3\", str(QUERY), \"用 GSAP 做 React ScrollTrigger，并正确清理\"], text=True)\ngsap_result = json.loads(raw)\ngsap = next(item for item in gsap_result[\"matches\"] if item[\"leaf_id\"] == \"gsap-scrolltrigger\")\nassert gsap[\"scope\"] == \"provider-specific\", \"GSAP provider scope was lost\"\nassert gsap[\"do_not_generalize\"] is True, \"GSAP generalization boundary was lost\"\nassert gsap[\"entries\"][0][\"verification_required\"] is True, \"GSAP verification flag was lost\"\n\nraw = subprocess.check_output([\"python3\", str(QUERY), \"设计一个有 Light/Dark 预览的设计系统\"], text=True)\ndesign_system_result = json.loads(raw)\ndesign_system = next(item for item in design_system_result[\"matches\"] if item[\"leaf_id\"] == \"living-style-guide-preview\")\nassert design_system[\"entries\"][0][\"verification_required\"] is True, \"design system verification flag was lost\"\nassert design_system[\"entries\"][0][\"external_references\"], \"design system external reference missing\"\n\nraw = subprocess.check_output([\"python3\", str(QUERY), \"GSAP timeline\"], text=True)\ngsap_timeline_result = json.loads(raw)\nassert gsap_timeline_result[\"matches\"][0][\"leaf_id\"] == \"gsap-timeline\", \"specific GSAP query lost top match\"\nassert gsap_timeline_result[\"trace\"][\"loaded_leaf_count\"] <= 2, \"specific GSAP query loaded unrelated leaves\"\n\nfor query, forbidden in [(\"React\", {\"gsap-react-lifecycle\"}), (\"React动画\", {\"gsap-react-lifecycle\"})]:\n    result = json.loads(subprocess.check_output([\"python3\", str(QUERY), query], text=True))\n    loaded = {item[\"leaf_id\"] for item in result[\"matches\"]}\n    assert loaded.isdisjoint(forbidden), f\"{query}: provider-specific false positive\"\n\nfor query, expected in [\n    (\"availability-patterns\", \"availability-patterns\"),\n    (\"capacity-model\", \"capacity-model\"),\n    (\"scaling-strategies\", \"scaling-strategies\"),\n]:\n    result = json.loads(subprocess.check_output([\"python3\", str(QUERY), query], text=True))\n    assert result[\"matches\"] and result[\"matches\"][0][\"leaf_id\"] == expected, f\"{query}: canonical route lookup failed\"\n\nfor query, expected_top in [\n    (\"勾选联动\", \"checkbox-cascade\"),\n    (\"叠卡展开\", \"stack-card-expand\"),\n    (\"卡片停稳后画时间线\", \"snap-card-timeline\"),\n    (\"惯性滚轮\", \"inertial-wheel\"),\n    (\"圆形扩散转场\", \"radial-reveal-transition\"),\n    (\"撕线弹出面板\", \"damped-bottom-sheet\"),\n    (\"保存按钮变进度环\", \"submit-state-machine\"),\n    (\"吸边悬浮球\", \"edge-docked-fab\"),\n    (\"卡片层叠轮播\", \"perspective-carousel\"),\n]:\n    result = json.loads(subprocess.check_output([\"python3\", str(QUERY), query], text=True))\n    assert result[\"matches\"][0][\"leaf_id\"] == expected_top, f\"{query}: wrong top match\"\n\nfor query, leaf_id, entry_id, required_fields in [\n    (\"勾选后让顶部背景、进度环和数字同步变化\", \"checkbox-cascade\", \"checkbox-cascade\", (\"state_machine\", \"animation_sequence\", \"spatial_anchor\", \"acceptance\")),\n    (\"做一个叠卡展开，关闭时沿原路径叠回\", \"stack-card-expand\", \"stack-card-expand\", (\"state_machine\", \"animation_sequence\", \"spatial_anchor\", \"acceptance\")),\n    (\"卡片吸附后再逐段绘制时间线\", \"snap-card-timeline\", \"snap-card-timeline\", (\"state_machine\", \"animation_sequence\", \"spatial_anchor\", \"acceptance\")),\n    (\"做一个有惯性、回弹和刻度吸附的时间滚轮\", \"inertial-wheel\", \"inertial-wheel\", (\"state_machine\", \"accessibility\", \"acceptance\")),\n    (\"从点击位置开始圆形扩散完成页面转场\", \"radial-reveal-transition\", \"radial-reveal-transition\", (\"state_machine\", \"animation_sequence\", \"spatial_anchor\", \"acceptance\")),\n    (\"撕线下拉打开面板，未达阈值回弹\", \"damped-bottom-sheet\", \"tear-line-panel\", (\"state_machine\", \"animation_sequence\", \"spatial_anchor\", \"acceptance\")),\n    (\"保存按钮收缩成进度环，完成后变已保存\", \"submit-state-machine\", \"save-progress-ring\", (\"state_machine\", \"animation_sequence\", \"spatial_anchor\", \"acceptance\")),\n    (\"做一个吸边悬浮球，释放后吸附左右边缘\", \"edge-docked-fab\", \"edge-docked-fab\", (\"state_machine\", \"animation_sequence\", \"spatial_anchor\", \"acceptance\")),\n    (\"做一个三张卡片层叠轮播，拖过阈值飞出\", \"perspective-carousel\", \"stacked-card-carousel\", (\"state_machine\", \"animation_sequence\", \"spatial_anchor\", \"acceptance\")),\n]:\n    result = json.loads(subprocess.check_output([\"python3\", str(QUERY), query], text=True))\n    leaf = next(item for item in result[\"matches\"] if item[\"leaf_id\"] == leaf_id)\n    entry = next(item for item in leaf[\"entries\"] if item[\"id\"] == entry_id)\n    for field in required_fields:\n        assert entry.get(field), f\"{leaf_id}: missing {field}\"\n\nfor option in (\"--max-leaves\", \"--max-entries\"):\n    completed = subprocess.run(\n        [\"python3\", str(QUERY), \"撤销\", option, \"0\"],\n        text=True,\n        capture_output=True,\n    )\n    assert completed.returncode != 0, f\"{option}: zero must be rejected\"\nruntime_doc = json.loads((ROOT / \"index/runtime.json\").read_text(encoding=\"utf-8\"))\nfor route in runtime_doc[\"routes\"]:\n    normalized_keywords = [unicodedata.normalize(\"NFKC\", keyword).casefold().strip() for keyword in route[\"keywords\"]]\n    assert len(normalized_keywords) == len(set(normalized_keywords)), f\"duplicate route keywords: {route['leaf_id']}\"\n\n# Every published leaf must remain addressable by its own title. This catches\n# explicit alias lists that accidentally shadow or omit the canonical title.\nfor leaf in json.loads((ROOT / \"index/leaves.json\").read_text(encoding=\"utf-8\"))[\"leaves\"]:\n    result = json.loads(subprocess.check_output([\"python3\", str(QUERY), leaf[\"title\"]], text=True))\n    assert result[\"matches\"] and result[\"matches\"][0][\"leaf_id\"] == leaf[\"leaf_id\"], f\"title route drift: {leaf['leaf_id']}\"\nsubprocess.run([sys.executable, str(ROOT / \"scripts/test-dashboard-patterns.py\")], check=True)\nprint(f\"progressive query ok: {len(CASES)} scenarios\")\n",
    "scripts/validate-index.py": "#!/usr/bin/env python3\n\"\"\"Validate legacy and progressive Feeling to Jargon indexes without loading the whole knowledge corpus.\"\"\"\nfrom __future__ import annotations\nimport json\nimport unicodedata\nfrom pathlib import Path\n\nROOT = Path(__file__).resolve().parents[1]\n\ndef load(path: Path):\n    with path.open(encoding=\"utf-8\") as f:\n        return json.load(f)\n\ndef assert_file(rel: str) -> dict:\n    path = ROOT / rel\n    assert path.is_file(), f\"missing file: {rel}\"\n    return load(path)\n\nroot_doc = assert_file(\"index/root.json\")\npackage_doc = assert_file(\"index/packages.json\")\nroot = root_doc[\"domains\"]\npackages = package_doc[\"packages\"]\nroot_ids = [item[\"domain_id\"] for item in root]\npackage_ids = [item[\"domain_id\"] for item in packages]\nassert len(root_ids) == len(set(root_ids)), \"duplicate root domain_id\"\nassert len([item[\"package_id\"] for item in packages]) == len(set(item[\"package_id\"] for item in packages)), \"duplicate package_id\"\nassert set(root_ids) == set(package_ids), f\"domain mismatch: roots={set(root_ids)-set(package_ids)}, packages={set(package_ids)-set(root_ids)}\"\npolicy = root_doc[\"loading_policy\"]\nfor key in (\"max_subdomains\", \"max_intents\", \"max_leaf_packages\", \"max_entries_per_leaf\", \"route_score_margin\", \"high_confidence_score\", \"high_confidence_margin\", \"min_route_score\"):\n    assert isinstance(policy[key], int) and policy[key] > 0, f\"invalid loading limit: {key}\"\nassert policy.get(\"max_intents_scope\") == \"per_subdomain\", \"intent limit scope must be per_subdomain\"\nfor item in packages:\n    term_path = ROOT / item[\"term_path\"]\n    assert term_path.is_file(), f\"missing legacy term package: {item['term_path']}\"\n    term = load(term_path)\n    assert term[\"package_id\"] == item[\"package_id\"], f\"package id mismatch: {item['package_id']}\"\n    assert term[\"domain_id\"] == item[\"domain_id\"], f\"domain id mismatch: {item['package_id']}\"\n    assert term[\"status\"] == item[\"status\"], f\"status mismatch: {item['package_id']}\"\n    intent_ids = {intent[\"id\"] for intent in term.get(\"intents\", [])}\n    assert set(item[\"intents\"]) == intent_ids, f\"intent mismatch: {item['package_id']}\"\n\nleaves_doc = assert_file(\"index/leaves.json\")\nruntime_doc = assert_file(\"index/runtime.json\")\nleaves = leaves_doc[\"leaves\"]\nroutes = runtime_doc[\"routes\"]\nleaf_ids = [item[\"leaf_id\"] for item in leaves]\nassert leaf_ids and len(leaf_ids) == len(set(leaf_ids)), \"duplicate or empty leaf_id\"\nassert len(routes) == len(leaf_ids), \"runtime route count mismatch\"\nroute_ids = {item[\"leaf_id\"] for item in routes}\nassert route_ids == set(leaf_ids), \"runtime routes and leaf manifest differ\"\nleaf_by_id = {item[\"leaf_id\"]: item for item in leaves}\nintent_ids_by_subdomain = {}\nintent_index_paths = set()\nfor domain in root:\n    domain_doc = assert_file(domain[\"subdomain_index\"])\n    assert domain_doc[\"domain_id\"] == domain[\"domain_id\"], f\"domain index mismatch: {domain['domain_id']}\"\n    subdomain_ids = {item[\"subdomain_id\"] for item in domain_doc[\"subdomains\"]}\n    assert subdomain_ids, f\"empty subdomain index: {domain['domain_id']}\"\n    for subdomain in domain_doc[\"subdomains\"]:\n        assert subdomain[\"intent_index\"] not in intent_index_paths, f\"duplicate intent index path: {subdomain['intent_index']}\"\n        intent_index_paths.add(subdomain[\"intent_index\"])\n        intent_doc = assert_file(subdomain[\"intent_index\"])\n        assert intent_doc[\"subdomain_id\"] == subdomain[\"subdomain_id\"], f\"intent index mismatch: {subdomain['subdomain_id']}\"\n        assert intent_doc.get(\"domain_id\") == domain[\"domain_id\"], f\"intent domain mismatch: {subdomain['subdomain_id']}\"\n        intent_ids_by_subdomain[(domain[\"domain_id\"], subdomain[\"subdomain_id\"])] = {\n            intent[\"id\"] for intent in intent_doc.get(\"intents\", [])\n        }\n        intent_leaf_refs = {\n            leaf_id\n            for intent in intent_doc.get(\"intents\", [])\n            for leaf_id in intent.get(\"leaf_refs\", [])\n        }\n        expected_leaf_refs = {\n            leaf[\"leaf_id\"]\n            for leaf in leaves\n            if leaf[\"domain_id\"] == domain[\"domain_id\"] and leaf[\"subdomain_id\"] == subdomain[\"subdomain_id\"]\n        }\n        assert intent_leaf_refs == expected_leaf_refs, f\"intent leaf mismatch: {subdomain['subdomain_id']}\"\nfor leaf in leaves:\n    leaf_doc = assert_file(leaf[\"path\"])\n    assert leaf_doc[\"leaf_id\"] == leaf[\"leaf_id\"], f\"leaf id mismatch: {leaf['leaf_id']}\"\n    assert leaf_doc[\"domain_id\"] == leaf[\"domain_id\"], f\"leaf domain mismatch: {leaf['leaf_id']}\"\n    assert leaf_doc[\"subdomain_id\"] == leaf[\"subdomain_id\"], f\"leaf subdomain mismatch: {leaf['leaf_id']}\"\n    assert leaf_doc[\"status\"] == leaf[\"status\"], f\"leaf status mismatch: {leaf['leaf_id']}\"\n    assert leaf_doc[\"knowledge_type\"] == leaf[\"knowledge_type\"], f\"knowledge type mismatch: {leaf['leaf_id']}\"\n    assert len(leaf_doc.get(\"entries\", [])) == leaf[\"entry_count\"], f\"entry count mismatch: {leaf['leaf_id']}\"\n    entry_ids = [item[\"id\"] for item in leaf_doc.get(\"entries\", [])]\n    assert len(entry_ids) == len(set(entry_ids)), f\"duplicate entry id: {leaf['leaf_id']}\"\n    if leaf_doc.get(\"default_entry_id\"):\n        assert leaf_doc[\"default_entry_id\"] in entry_ids, f\"missing overview entry: {leaf['leaf_id']}\"\n    if leaf[\"scope\"] == \"provider-specific\":\n        assert leaf_doc.get(\"do_not_generalize\") is True, f\"provider leaf must be scoped: {leaf['leaf_id']}\"\nfor route in routes:\n    normalized_keywords = [unicodedata.normalize(\"NFKC\", keyword).casefold().strip() for keyword in route[\"keywords\"]]\n    assert len(normalized_keywords) == len(set(normalized_keywords)), f\"duplicate route keywords: {route['leaf_id']}\"\n    manifest = leaf_by_id[route[\"leaf_id\"]]\n    for field in (\"title\", \"path\", \"domain_id\", \"subdomain_id\", \"knowledge_type\", \"entry_count\", \"scope\", \"intent_ids\", \"do_not_generalize\", \"provider\"):\n        assert route.get(field) == manifest.get(field), f\"runtime metadata mismatch: {route['leaf_id']} field={field}\"\n    route_intents = set(route.get(\"intent_ids\", []))\n    known_intents = intent_ids_by_subdomain[(route[\"domain_id\"], route[\"subdomain_id\"])]\n    assert route_intents <= known_intents, f\"runtime intent mismatch: {route['leaf_id']}\"\n    assert route[\"keywords\"], f\"empty runtime keywords: {route['leaf_id']}\"\nprint(f\"index ok: {len(root)} domains, {len(packages)} legacy packages, {len(leaves)} progressive leaves, {len(routes)} runtime routes\")\n",
    "skills/feeling-to-jargon/SKILL.md": "---\nname: feeling-to-jargon\ndescription: 将用户的感觉和模糊表达翻译成专业术语，并按需补全为更具体、可执行的提示词。\n---\n\n# Feeling to Jargon\n\nFeeling to Jargon 帮助用户把模糊感受翻译成专业术语，再按需补全成可执行的提示词。\n\n## 渐进式加载协议\n\n索引必须按以下顺序逐级收窄：\n\n```text\n根领域 → 专业子域 → 用户意图 → 叶子包 → 单条术语/技巧/模板\n```\n\n1. 读取 `index/root.json`，只判断候选根领域和加载上限。\n2. 读取对应的 `index/domains/<domain_id>.json`，最多选择 `max_subdomains` 个子域。\n3. 读取子域的 `index/intents/<domain_id>/<subdomain_id>.json`，最多选择 `max_intents` 个意图。\n4. 读取 `index/runtime.json` 做关键词/语义路由，只加载命中的叶子路径；低于 `min_route_score` 的弱匹配直接丢弃，高置信度匹配使用更窄的分数差裁剪。\n5. 每个叶子最多取 `max_entries_per_leaf` 条，优先取与用户表达最接近的条目。复杂交互优先读取同一叶子中的 `state_machine`、阈值、取消路径和 `acceptance`，不要只拿一段视觉描述。\n6. 用语义匹配识别术语、同义词、相关维度和缺失参数。\n7. 把匹配结果翻译成用户能看懂的解释，输出 3～6 个可执行方向。\n8. 只询问会改变方案的问题；用户确认后再生成最终增强提示词。\n\n运行时查询示例：\n\n```bash\npython3 scripts/query-index.py \"删除列表项，5 秒内撤销并支持键盘\"\n```\n\n不要直接读取 `terms/` 全目录，也不要把所有叶子包一次性塞进上下文。没有命中时，先说明覆盖不足；只有用户允许时才进行网络搜索。\n\n## 知识类型\n\n叶子包用 `knowledge_type` 区分：\n\n- `term`：专业术语和白话解释\n- `pattern`：可复用的设计/架构模式\n- `technique`：实现技巧和参数锚点\n- `guideline`：可访问性、质量和边界规范\n- `parameter`：设计或运行参数\n- `template`：可直接投喂给 AI 的提示词模板\n- `platform-research`：平台专属研究，必须标注范围和核验状态\n\n没有匹配到术语包时，说明覆盖不足；只有在用户允许时才进行网络搜索。搜索结果是本次临时参考，不写回术语列表。\n\n## Dashboard 三层规范（合并分类）\n\nDashboard 布局变体优先放进已有 `terms/dashboard/layout-patterns.json` 的条目，不为每个配色、场景或布局再建索引叶子。命中后只取当前条目，再按 `contract_ref` 读取 `templates/dashboard/dashboard-style-system.json` 的共享协议；视觉方向复用已有相关叶子，仅在需要时加载，不展开全部变体。\n\n按 `layout / termSkill / uiSkill / agentExec / state / tokens` 输出：术语定义信息结构，UI 定义视觉与栅格，Agent 定义交互状态机。分清共享状态与独立状态，写清每个事件改变什么、不改变什么，以及派生视图和验收断言。示例配色、比例和像素值不是全局默认值。\n\n先检查条目 `evidence` 与模板 `source_gaps`。暖色三栏的执行逻辑仍待确认，可以使用已知布局，但不能把候选房间联动或模式/单位映射当作事实；第六例没有原文，不补造、不建空索引。不要求用户重复确认前四例。\n\n## AIGC IP 模板\n\n当请求涉及同一角色的多种材质、动作、表情或周边时，先读取 `templates/aigc/base-ip.json`，再按场景读取一个 `templates/aigc/*.json`。合并基础 IP、一致性约束、场景模块和目标工具参数；不要把七个场景全部加载到同一次请求中。中文文字建议预留排版区域，由后期工具叠加。\n\n`terms/character-ip/character-ip.json` 只负责角色一致性和场景路由；镜头、构图、运动、负面约束和工具适配分别从对应子域加载。\n\n## 交互、视觉效果与工具适配\n\n连续交互和高级手势一次只加载一个模式。先读状态机、动画序列、触发阈值、空间锚点和取消/回退路径，再读可测参数、可访问性和验收标准；不要把整组交互一次性塞入上下文。遇到“细腻”“顺滑”“有质感”等感觉时，优先输出可观察的时间、速度、位移、旋转、缩放、吸附和先后关系。默认要求动画可中断、键盘和触摸结果一致，并遵守 `prefers-reduced-motion`。\n\n视觉效果必须和性能一起加载。液态玻璃、景深、圆柱卷收、取色光晕和液态粘连都要同时读取 `performance_budget`、`fallback`、`mobile_degradation` 和 `reduced_motion` 字段；如果设备能力不足，先降级表现再保证主任务可用。\n\nGSAP 适配只在用户明确指定 GSAP，或项目已经依赖 GSAP 时加载。优先使用工具对应叶子的生命周期、SSR 边界、`ctx.revert()`/销毁规则和 transform 性能约束；未指定 GSAP 时不要主动引入它。\n\n设计系统预览优先加载 `living-style-guide-preview`，用 Light/Dark、token、组件状态和视觉验收清单指导实现。外部预览站、厂商文档和示例仓库必须保留 `verification_required`，未核验时只能作为参考线索。\n\n## 平台研究边界\n\n`platform-research` 叶子包只记录指定供应商或项目的研究信息。若 `verified_at` 为空，必须把内容说成待核验信息，不得推广为所有 GPU UI 框架或所有平台的通用事实。\n",
    "templates/aigc/action-sheet.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"scene_id\": \"action-sheet\",\n  \"name\": \"动作延展\",\n  \"purpose\": \"生成挥手、蹦跳、抱爱心、奔跑、转圈圈、犯困打哈欠六个动作\",\n  \"required_inputs\": [\n    \"reference_image\"\n  ],\n  \"base_ip_ref\": \"templates/aigc/base-ip.json\",\n  \"prompt_blocks\": {\n    \"subject\": [\n      \"亮面珠光浅蓝 Q 版小胖恐龙，圆润身形，米白色肚皮与背刺，黑色大圆眼睛，粉嘟嘟圆形腮红，弯弯微笑小嘴，简约治愈卡通形象，马卡龙浅蓝与奶白柔和配色。\"\n    ],\n    \"composition\": [\n      \"六个动作设定\",\n      \"纯白背景\",\n      \"动作姿态清晰\",\n      \"3D 渲染马卡龙配色\"\n    ],\n    \"material\": [],\n    \"lighting\": [\n      \"柔和均匀的商业棚拍光线\"\n    ],\n    \"quality\": [\n      \"高细节\",\n      \"清晰边缘\",\n      \"统一比例\"\n    ],\n    \"constraints\": [\n      \"保持体型、头身比例、眼睛大小、腮红位置、背刺数量和核心配色一致\",\n      \"不得改变角色年龄感、体型和基础表情气质\",\n      \"不得增加写实恐龙特征、尖牙、锋利爪子或攻击性造型\",\n      \"不得出现额外肢体、比例失衡、颜色漂移或重复角色\"\n    ]\n  },\n  \"aspect_ratio\": \"3:4\",\n  \"negative_prompt\": [\n    \"写实恐龙\",\n    \"尖牙\",\n    \"锋利爪子\",\n    \"攻击性表情\",\n    \"身体变形\",\n    \"额外肢体\",\n    \"颜色漂移\",\n    \"重复角色\",\n    \"模糊\",\n    \"低清晰度\"\n  ],\n  \"tool_adapters\": {\n    \"generic\": {\n      \"suffix\": \"画幅比例 3:4，高质量商业效果图\"\n    },\n    \"midjourney\": {\n      \"suffix\": \"--ar 3:4 --stylize 150\"\n    },\n    \"stable_diffusion\": {\n      \"positive_prompt_mode\": \"按 prompt_blocks 合并\",\n      \"negative_prompt_mode\": \"使用 negative_prompt\",\n      \"controlnet_hint\": \"参考图优先使用线稿或角色结构控制\"\n    }\n  }\n}\n",
    "templates/aigc/base-ip.json": "{\n  \"id\": \"pastel-blue-dino\",\n  \"name\": \"珠光浅蓝 Q 版小胖恐龙\",\n  \"description\": \"亮面珠光浅蓝 Q 版小胖恐龙，圆润身形，米白色肚皮与背刺，黑色大圆眼睛，粉嘟嘟圆形腮红，弯弯微笑小嘴，简约治愈卡通形象，马卡龙浅蓝与奶白柔和配色。\",\n  \"consistency_rules\": [\n    \"保持体型、头身比例、眼睛大小、腮红位置、背刺数量和核心配色一致\",\n    \"不得改变角色年龄感、体型和基础表情气质\",\n    \"不得增加写实恐龙特征、尖牙、锋利爪子或攻击性造型\",\n    \"不得出现额外肢体、比例失衡、颜色漂移或重复角色\"\n  ],\n  \"negative_prompt\": [\"写实恐龙\", \"尖牙\", \"锋利爪子\", \"攻击性表情\", \"身体变形\", \"额外肢体\", \"颜色漂移\", \"重复角色\", \"模糊\", \"低清晰度\"]\n}\n",
    "templates/aigc/expression-sheet.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"scene_id\": \"expression-sheet\",\n  \"name\": \"表情包合集\",\n  \"purpose\": \"生成开心、委屈、生气、比心、拜托、犯困六个表情\",\n  \"required_inputs\": [\n    \"reference_image\"\n  ],\n  \"base_ip_ref\": \"templates/aigc/base-ip.json\",\n  \"prompt_blocks\": {\n    \"subject\": [\n      \"亮面珠光浅蓝 Q 版小胖恐龙，圆润身形，米白色肚皮与背刺，黑色大圆眼睛，粉嘟嘟圆形腮红，弯弯微笑小嘴，简约治愈卡通形象，马卡龙浅蓝与奶白柔和配色。\"\n    ],\n    \"composition\": [\n      \"白底贴纸设计稿\",\n      \"六种不同表情\",\n      \"中文文字后期叠加\",\n      \"3D 潮玩手办质感\"\n    ],\n    \"material\": [],\n    \"lighting\": [\n      \"柔和均匀的商业棚拍光线\"\n    ],\n    \"quality\": [\n      \"高细节\",\n      \"清晰边缘\",\n      \"统一比例\"\n    ],\n    \"constraints\": [\n      \"保持体型、头身比例、眼睛大小、腮红位置、背刺数量和核心配色一致\",\n      \"不得改变角色年龄感、体型和基础表情气质\",\n      \"不得增加写实恐龙特征、尖牙、锋利爪子或攻击性造型\",\n      \"不得出现额外肢体、比例失衡、颜色漂移或重复角色\"\n    ]\n  },\n  \"aspect_ratio\": \"3:4\",\n  \"negative_prompt\": [\n    \"写实恐龙\",\n    \"尖牙\",\n    \"锋利爪子\",\n    \"攻击性表情\",\n    \"身体变形\",\n    \"额外肢体\",\n    \"颜色漂移\",\n    \"重复角色\",\n    \"模糊\",\n    \"低清晰度\"\n  ],\n  \"tool_adapters\": {\n    \"generic\": {\n      \"suffix\": \"画幅比例 3:4，高质量商业效果图\"\n    },\n    \"midjourney\": {\n      \"suffix\": \"--ar 3:4 --stylize 150\"\n    },\n    \"stable_diffusion\": {\n      \"positive_prompt_mode\": \"按 prompt_blocks 合并\",\n      \"negative_prompt_mode\": \"使用 negative_prompt\",\n      \"controlnet_hint\": \"参考图优先使用线稿或角色结构控制\"\n    }\n  }\n}\n",
    "templates/aigc/lineart-to-3d.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"scene_id\": \"lineart-to-3d\",\n  \"name\": \"线稿转 3D\",\n  \"purpose\": \"根据黑白线稿锁定造型，转换为亮面糖胶 PVC 潮玩手办\",\n  \"required_inputs\": [\n    \"reference_image\"\n  ],\n  \"base_ip_ref\": \"templates/aigc/base-ip.json\",\n  \"prompt_blocks\": {\n    \"subject\": [\n      \"亮面珠光浅蓝 Q 版小胖恐龙，圆润身形，米白色肚皮与背刺，黑色大圆眼睛，粉嘟嘟圆形腮红，弯弯微笑小嘴，简约治愈卡通形象，马卡龙浅蓝与奶白柔和配色。\"\n    ],\n    \"composition\": [\n      \"黑白线稿为唯一造型参考\",\n      \"亮面光滑糖胶 PVC\",\n      \"高光泽釉面\",\n      \"无影棚柔光\",\n      \"3D OC 渲染\"\n    ],\n    \"material\": [],\n    \"lighting\": [\n      \"柔和均匀的商业棚拍光线\"\n    ],\n    \"quality\": [\n      \"高细节\",\n      \"清晰边缘\",\n      \"统一比例\"\n    ],\n    \"constraints\": [\n      \"保持体型、头身比例、眼睛大小、腮红位置、背刺数量和核心配色一致\",\n      \"不得改变角色年龄感、体型和基础表情气质\",\n      \"不得增加写实恐龙特征、尖牙、锋利爪子或攻击性造型\",\n      \"不得出现额外肢体、比例失衡、颜色漂移或重复角色\"\n    ]\n  },\n  \"aspect_ratio\": \"3:4\",\n  \"negative_prompt\": [\n    \"写实恐龙\",\n    \"尖牙\",\n    \"锋利爪子\",\n    \"攻击性表情\",\n    \"身体变形\",\n    \"额外肢体\",\n    \"颜色漂移\",\n    \"重复角色\",\n    \"模糊\",\n    \"低清晰度\"\n  ],\n  \"tool_adapters\": {\n    \"generic\": {\n      \"suffix\": \"画幅比例 3:4，高质量商业效果图\"\n    },\n    \"midjourney\": {\n      \"suffix\": \"--ar 3:4 --stylize 150\"\n    },\n    \"stable_diffusion\": {\n      \"positive_prompt_mode\": \"按 prompt_blocks 合并\",\n      \"negative_prompt_mode\": \"使用 negative_prompt\",\n      \"controlnet_hint\": \"参考图优先使用线稿或角色结构控制\"\n    }\n  }\n}\n",
    "templates/aigc/merchandise-set.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"scene_id\": \"merchandise-set\",\n  \"name\": \"周边整合\",\n  \"purpose\": \"生成统一 IP 的文创周边整套陈列效果图\",\n  \"required_inputs\": [\n    \"reference_image\"\n  ],\n  \"base_ip_ref\": \"templates/aigc/base-ip.json\",\n  \"prompt_blocks\": {\n    \"subject\": [\n      \"亮面珠光浅蓝 Q 版小胖恐龙，圆润身形，米白色肚皮与背刺，黑色大圆眼睛，粉嘟嘟圆形腮红，弯弯微笑小嘴，简约治愈卡通形象，马卡龙浅蓝与奶白柔和配色。\"\n    ],\n    \"composition\": [\n      \"钥匙扣、胶带、徽章、卡片、手办和立牌\",\n      \"分区陈列\",\n      \"材质区分清晰\",\n      \"商业品牌 IP 延展效果图\"\n    ],\n    \"material\": [],\n    \"lighting\": [\n      \"柔和均匀的商业棚拍光线\"\n    ],\n    \"quality\": [\n      \"高细节\",\n      \"清晰边缘\",\n      \"统一比例\"\n    ],\n    \"constraints\": [\n      \"保持体型、头身比例、眼睛大小、腮红位置、背刺数量和核心配色一致\",\n      \"不得改变角色年龄感、体型和基础表情气质\",\n      \"不得增加写实恐龙特征、尖牙、锋利爪子或攻击性造型\",\n      \"不得出现额外肢体、比例失衡、颜色漂移或重复角色\"\n    ]\n  },\n  \"aspect_ratio\": \"16:9\",\n  \"negative_prompt\": [\n    \"写实恐龙\",\n    \"尖牙\",\n    \"锋利爪子\",\n    \"攻击性表情\",\n    \"身体变形\",\n    \"额外肢体\",\n    \"颜色漂移\",\n    \"重复角色\",\n    \"模糊\",\n    \"低清晰度\"\n  ],\n  \"tool_adapters\": {\n    \"generic\": {\n      \"suffix\": \"画幅比例 16:9，高质量商业效果图\"\n    },\n    \"midjourney\": {\n      \"suffix\": \"--ar 16:9 --stylize 150\"\n    },\n    \"stable_diffusion\": {\n      \"positive_prompt_mode\": \"按 prompt_blocks 合并\",\n      \"negative_prompt_mode\": \"使用 negative_prompt\",\n      \"controlnet_hint\": \"参考图优先使用线稿或角色结构控制\"\n    }\n  }\n}\n",
    "templates/aigc/outfit-sheet.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"scene_id\": \"outfit-sheet\",\n  \"name\": \"服装穿搭\",\n  \"purpose\": \"生成四个不同造型并排站立的全身像\",\n  \"required_inputs\": [\n    \"reference_image\"\n  ],\n  \"base_ip_ref\": \"templates/aigc/base-ip.json\",\n  \"prompt_blocks\": {\n    \"subject\": [\n      \"亮面珠光浅蓝 Q 版小胖恐龙，圆润身形，米白色肚皮与背刺，黑色大圆眼睛，粉嘟嘟圆形腮红，弯弯微笑小嘴，简约治愈卡通形象，马卡龙浅蓝与奶白柔和配色。\"\n    ],\n    \"composition\": [\n      \"四套服装主题\",\n      \"横向并排\",\n      \"全身像\",\n      \"纯白背景\",\n      \"构图规整\"\n    ],\n    \"material\": [],\n    \"lighting\": [\n      \"柔和均匀的商业棚拍光线\"\n    ],\n    \"quality\": [\n      \"高细节\",\n      \"清晰边缘\",\n      \"统一比例\"\n    ],\n    \"constraints\": [\n      \"保持体型、头身比例、眼睛大小、腮红位置、背刺数量和核心配色一致\",\n      \"不得改变角色年龄感、体型和基础表情气质\",\n      \"不得增加写实恐龙特征、尖牙、锋利爪子或攻击性造型\",\n      \"不得出现额外肢体、比例失衡、颜色漂移或重复角色\"\n    ]\n  },\n  \"aspect_ratio\": \"4:3\",\n  \"negative_prompt\": [\n    \"写实恐龙\",\n    \"尖牙\",\n    \"锋利爪子\",\n    \"攻击性表情\",\n    \"身体变形\",\n    \"额外肢体\",\n    \"颜色漂移\",\n    \"重复角色\",\n    \"模糊\",\n    \"低清晰度\"\n  ],\n  \"tool_adapters\": {\n    \"generic\": {\n      \"suffix\": \"画幅比例 4:3，高质量商业效果图\"\n    },\n    \"midjourney\": {\n      \"suffix\": \"--ar 4:3 --stylize 150\"\n    },\n    \"stable_diffusion\": {\n      \"positive_prompt_mode\": \"按 prompt_blocks 合并\",\n      \"negative_prompt_mode\": \"使用 negative_prompt\",\n      \"controlnet_hint\": \"参考图优先使用线稿或角色结构控制\"\n    }\n  }\n}\n",
    "templates/aigc/plush-texture.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"scene_id\": \"plush-texture\",\n  \"name\": \"毛绒质感\",\n  \"purpose\": \"保持 IP 结构不变，转换为柔软短毛绒玩偶\",\n  \"required_inputs\": [\n    \"reference_image\"\n  ],\n  \"base_ip_ref\": \"templates/aigc/base-ip.json\",\n  \"prompt_blocks\": {\n    \"subject\": [\n      \"亮面珠光浅蓝 Q 版小胖恐龙，圆润身形，米白色肚皮与背刺，黑色大圆眼睛，粉嘟嘟圆形腮红，弯弯微笑小嘴，简约治愈卡通形象，马卡龙浅蓝与奶白柔和配色。\"\n    ],\n    \"composition\": [\n      \"短羊羔绒植绒面料\",\n      \"蓬松绒毛肌理\",\n      \"柔和哑光反射\",\n      \"浅浅软阴影\",\n      \"均匀棚拍柔光\"\n    ],\n    \"material\": [],\n    \"lighting\": [\n      \"柔和均匀的商业棚拍光线\"\n    ],\n    \"quality\": [\n      \"高细节\",\n      \"清晰边缘\",\n      \"统一比例\"\n    ],\n    \"constraints\": [\n      \"保持体型、头身比例、眼睛大小、腮红位置、背刺数量和核心配色一致\",\n      \"不得改变角色年龄感、体型和基础表情气质\",\n      \"不得增加写实恐龙特征、尖牙、锋利爪子或攻击性造型\",\n      \"不得出现额外肢体、比例失衡、颜色漂移或重复角色\"\n    ]\n  },\n  \"aspect_ratio\": \"3:4\",\n  \"negative_prompt\": [\n    \"写实恐龙\",\n    \"尖牙\",\n    \"锋利爪子\",\n    \"攻击性表情\",\n    \"身体变形\",\n    \"额外肢体\",\n    \"颜色漂移\",\n    \"重复角色\",\n    \"模糊\",\n    \"低清晰度\"\n  ],\n  \"tool_adapters\": {\n    \"generic\": {\n      \"suffix\": \"画幅比例 3:4，高质量商业效果图\"\n    },\n    \"midjourney\": {\n      \"suffix\": \"--ar 3:4 --stylize 150\"\n    },\n    \"stable_diffusion\": {\n      \"positive_prompt_mode\": \"按 prompt_blocks 合并\",\n      \"negative_prompt_mode\": \"使用 negative_prompt\",\n      \"controlnet_hint\": \"参考图优先使用线稿或角色结构控制\"\n    }\n  }\n}\n",
    "templates/aigc/turnaround-3view.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"scene_id\": \"turnaround-3view\",\n  \"name\": \"标准三视图\",\n  \"purpose\": \"生成正面、侧面、背面三视图，轮廓和比例保持一致\",\n  \"required_inputs\": [\n    \"reference_image\"\n  ],\n  \"base_ip_ref\": \"templates/aigc/base-ip.json\",\n  \"prompt_blocks\": {\n    \"subject\": [\n      \"亮面珠光浅蓝 Q 版小胖恐龙，圆润身形，米白色肚皮与背刺，黑色大圆眼睛，粉嘟嘟圆形腮红，弯弯微笑小嘴，简约治愈卡通形象，马卡龙浅蓝与奶白柔和配色。\"\n    ],\n    \"composition\": [\n      \"横向并排\",\n      \"正面、侧面、背面\",\n      \"标准角色设定图\",\n      \"无透视变形\"\n    ],\n    \"material\": [],\n    \"lighting\": [\n      \"柔和均匀的商业棚拍光线\"\n    ],\n    \"quality\": [\n      \"高细节\",\n      \"清晰边缘\",\n      \"统一比例\"\n    ],\n    \"constraints\": [\n      \"保持体型、头身比例、眼睛大小、腮红位置、背刺数量和核心配色一致\",\n      \"不得改变角色年龄感、体型和基础表情气质\",\n      \"不得增加写实恐龙特征、尖牙、锋利爪子或攻击性造型\",\n      \"不得出现额外肢体、比例失衡、颜色漂移或重复角色\"\n    ]\n  },\n  \"aspect_ratio\": \"4:3\",\n  \"negative_prompt\": [\n    \"写实恐龙\",\n    \"尖牙\",\n    \"锋利爪子\",\n    \"攻击性表情\",\n    \"身体变形\",\n    \"额外肢体\",\n    \"颜色漂移\",\n    \"重复角色\",\n    \"模糊\",\n    \"低清晰度\"\n  ],\n  \"tool_adapters\": {\n    \"generic\": {\n      \"suffix\": \"画幅比例 4:3，高质量商业效果图\"\n    },\n    \"midjourney\": {\n      \"suffix\": \"--ar 4:3 --stylize 150\"\n    },\n    \"stable_diffusion\": {\n      \"positive_prompt_mode\": \"按 prompt_blocks 合并\",\n      \"negative_prompt_mode\": \"使用 negative_prompt\",\n      \"controlnet_hint\": \"参考图优先使用线稿或角色结构控制\"\n    }\n  }\n}\n",
    "templates/dashboard/dashboard-style-system.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"template_id\": \"dashboard-style-system\",\n  \"name\": \"Dashboard 审美 Skill\",\n  \"type\": \"template\",\n  \"inputs\": [\n    \"product_or_scene\",\n    \"style_direction\",\n    \"content_priority\"\n  ],\n  \"style_directions\": [\n    {\n      \"id\": \"warm-minimal\",\n      \"name\": \"暖调留白型\",\n      \"rule\": \"奶油底色、单一黄色强调、细边框和弱阴影，保留呼吸感。\",\n      \"tokens\": [\n        \"#F7F3EA\",\n        \"一个主强调色\",\n        \"圆角克制\",\n        \"弱阴影\"\n      ]\n    },\n    {\n      \"id\": \"high-contrast\",\n      \"name\": \"强对比视觉型\",\n      \"rule\": \"一张主卡占据视觉中心，用高饱和对比和大数字建立层级。\",\n      \"tokens\": [\n        \"主卡占视觉中心\",\n        \"硬阴影\",\n        \"大数字\",\n        \"非对称\"\n      ]\n    },\n    {\n      \"id\": \"minimal-data\",\n      \"name\": \"极简数据型\",\n      \"rule\": \"以灰阶和一个强调色组织数据，去网格线和多余标签。\",\n      \"tokens\": [\n        \"灰阶为主\",\n        \"胶囊柱状图\",\n        \"标签精简\"\n      ]\n    },\n    {\n      \"id\": \"immersive-atmosphere\",\n      \"name\": \"氛围沉浸型\",\n      \"rule\": \"深色底、雾面渐变、玻璃卡片和轻微动态光斑。\",\n      \"tokens\": [\n        \"GPU 负载预算\",\n        \"移动端降级\",\n        \"模糊光斑\"\n      ]\n    },\n    {\n      \"id\": \"image-led-content\",\n      \"name\": \"图卡内容型\",\n      \"rule\": \"让真实图片成为主角，文字叠加且只保留一个强调色。\",\n      \"tokens\": [\n        \"大图卡片\",\n        \"文字叠加\",\n        \"单一 CTA 色\"\n      ]\n    },\n    {\n      \"id\": \"layout-patterns\",\n      \"name\": \"高级布局模式\",\n      \"rule\": \"用错位、大图、非对称、层叠、留白和破格出血建立布局性格。\",\n      \"tokens\": [\n        \"错位按 8/12/16px 节奏\",\n        \"7:3 或 8:2 比例\",\n        \"只破一处网格\",\n        \"安全区内留信息\"\n      ]\n    },\n    {\n      \"id\": \"grid-glass-dashboard\",\n      \"name\": \"方格纸玻璃卡 Dashboard\",\n      \"rule\": \"用 44px 方格纸做底，让半透明白玻璃卡透出底层网格，指标按数值形成阶梯。\",\n      \"tokens\": [\n        \"44px 网格底\",\n        \"半透明白玻璃\",\n        \"指标阶梯排列\",\n        \"实心/斜纹/渐变填充\"\n      ]\n    },\n    {\n      \"id\": \"grouped-sidebar-dashboard\",\n      \"name\": \"分组侧边栏 Dashboard\",\n      \"rule\": \"把导航拆成三组并用大留白分隔，主区用超大细体字、三组数字和横向比例条建立节奏。\",\n      \"tokens\": [\n        \"三组导航\",\n        \"10px 大写灰字组名\",\n        \"底部头像/用量条\",\n        \"横向比例条替代饼图\"\n      ]\n    },\n    {\n      \"id\": \"single-dark-accent-dashboard\",\n      \"name\": \"单深色单强调色 Dashboard\",\n      \"rule\": \"整页只保留一条深色侧边栏和一个强调色，当前项、主按钮和命中图表共享同一强调色。\",\n      \"tokens\": [\n        \"唯一深色侧边栏\",\n        \"单一强调色\",\n        \"侧栏底部强调色卡片\",\n        \"其余区域保持浅色\"\n      ]\n    },\n    {\n      \"id\": \"tonal-dark-dashboard\",\n      \"name\": \"暗底明度分层 Dashboard\",\n      \"rule\": \"近黑底上只用明度区分卡片层级，不画描边；主读数放大，日期用圆点阵列表达。\",\n      \"tokens\": [\n        \"近黑底\",\n        \"卡片亮一档\",\n        \"无描边\",\n        \"超大主读数\",\n        \"圆点阵列+斜纹空格\"\n      ]\n    }\n  ],\n  \"output_contract\": [\n    \"页面结构\",\n    \"色彩规范\",\n    \"组件规范\",\n    \"可直接给 AI 的提示词\"\n  ],\n  \"field_contract\": {\n    \"layout\": \"布局名称与信息结构；不新增同义叶子\",\n    \"termSkill\": \"专业术语与结构关系；引用现有分类\",\n    \"uiSkill\": \"视觉层级、栅格、材质、排版；不负责修改业务状态\",\n    \"agentExec\": \"事件、前置条件、写入状态、派生视图与不受影响的状态\",\n    \"state\": \"唯一事实源、派生关系、不变量；新增实现建议需明确标记\",\n    \"tokens\": \"明确单位与适用范围；用户示例值不是全局默认值\"\n  },\n  \"shared_execution_contract\": {\n    \"flow\": [\n      \"事件\",\n      \"校验/前置条件\",\n      \"一次状态转换\",\n      \"派生所有关联视图\",\n      \"验收\"\n    ],\n    \"rules\": [\n      \"共享的是选择 ID 与时间上下文，不是每个面板各自复制一份状态；独立控件不得误联动。\",\n      \"展示读数由状态派生；请求失败、空数据与快速连续切换不得留下混合视图，异步结果需校验当前上下文。\",\n      \"颜色/尺寸是当前示例的 token，不是行为触发条件；计数从集合派生，不写死 7→8。\",\n      \"键盘与指针操作保持同样状态结果；选中/加载/错误不能只靠颜色，动态效果提供减少动态路径。\",\n      \"固定栏不等于固定整个页面；窄屏策略与断点未提供时先标记建议，不臆造原稿数值。\"\n    ],\n    \"acceptance\": [\n      \"事件前/后真实截图覆盖受影响与不受影响区域\",\n      \"端到端验证状态联动、独立性、错误/快速切换与键盘路径\",\n      \"截图只验证可见结果，状态一致性同时用断言验证\"\n    ]\n  },\n  \"source_gaps\": [\n    {\n      \"slot\": 5,\n      \"status\": \"needs_confirmation\",\n      \"entry_id\": \"warm-three-column-dashboard\",\n      \"missing\": \"完整点击逻辑、模式与单位映射；候选执行逻辑不得默认落地\"\n    },\n    {\n      \"slot\": 6,\n      \"status\": \"missing\",\n      \"missing\": \"第六个 Dashboard 的三层提示词原文\",\n      \"policy\": \"不创建空叶子、不生成虚构案例，不声称六例完整\"\n    }\n  ],\n  \"pattern_refs\": [\n    {\n      \"entry_id\": \"color-staggered-dashboard\",\n      \"path\": \"terms/dashboard/layout-patterns.json\",\n      \"status\": \"provided\"\n    },\n    {\n      \"entry_id\": \"industrial-zones-dashboard\",\n      \"path\": \"terms/dashboard/layout-patterns.json\",\n      \"status\": \"provided\"\n    },\n    {\n      \"entry_id\": \"axial-observatory-dashboard\",\n      \"path\": \"terms/dashboard/layout-patterns.json\",\n      \"status\": \"provided\"\n    },\n    {\n      \"entry_id\": \"glass-dot-matrix-dashboard\",\n      \"path\": \"terms/dashboard/layout-patterns.json\",\n      \"status\": \"provided\"\n    },\n    {\n      \"entry_id\": \"warm-three-column-dashboard\",\n      \"path\": \"terms/dashboard/layout-patterns.json\",\n      \"status\": \"needs_confirmation\"\n    }\n  ],\n  \"forbidden_defaults\": [\n    \"默认蓝紫渐变\",\n    \"所有卡片一样大\",\n    \"满屏圆角矩形\",\n    \"过多颜色和图标\",\n    \"模板化侧边栏+顶栏+四张 KPI 卡\"\n  ]\n}\n",
    "terms/agri-food-cooking.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"package_id\": \"agri-food-cooking-core\",\n  \"domain_id\": \"agri-food-cooking\",\n  \"title\": \"农林/食品/烹饪领域需求澄清术语包（草案）\",\n  \"version\": \"0.1.0\",\n  \"status\": \"draft\",\n  \"intents\": [\n    {\n      \"id\": \"design\",\n      \"action\": \"设计\",\n      \"object\": \"农林/食品/烹饪相关产物\"\n    },\n    {\n      \"id\": \"diagnose\",\n      \"action\": \"排查\",\n      \"object\": \"农林/食品/烹饪相关问题\"\n    }\n  ],\n  \"dimensions\": [\n    {\n      \"id\": \"scope\",\n      \"name\": \"食材与安全\",\n      \"definition\": \"食材与安全的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"method\",\n      \"name\": \"过程与结果\",\n      \"definition\": \"过程与结果的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"symptom\",\n      \"name\": \"问题现象\",\n      \"definition\": \"用户观察到的具体问题、时间、范围和影响。\",\n      \"value_type\": \"free_text\"\n    }\n  ],\n  \"terms\": [\n    {\n      \"id\": \"core-1\",\n      \"term\": \"原料状态\",\n      \"plain_language\": \"新鲜度、成熟度和处理状态\",\n      \"benefit\": \"减少原料差异\",\n      \"cost\": \"需要检查来源\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-2\",\n      \"term\": \"卫生控制\",\n      \"plain_language\": \"温度、清洁和交叉污染控制\",\n      \"benefit\": \"降低食品风险\",\n      \"cost\": \"流程更严格\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-3\",\n      \"term\": \"配方比例\",\n      \"plain_language\": \"原料、液体和调味的比例关系\",\n      \"benefit\": \"结果更容易复现\",\n      \"cost\": \"灵活性降低\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-4\",\n      \"term\": \"火候时间\",\n      \"plain_language\": \"温度、时间和阶段控制\",\n      \"benefit\": \"口感更稳定\",\n      \"cost\": \"需要过程记录\",\n      \"dimension_id\": \"method\"\n    },\n    {\n      \"id\": \"core-5\",\n      \"term\": \"过敏原标识\",\n      \"plain_language\": \"明确可能引发过敏的成分\",\n      \"benefit\": \"方便安全选择\",\n      \"cost\": \"需要完整成分信息\",\n      \"dimension_id\": \"method\"\n    }\n  ],\n  \"mappings\": [\n    {\n      \"expression\": \"专业一点/做好一点\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"design\"\n      ],\n      \"dimension_ids\": [\n        \"scope\",\n        \"method\"\n      ],\n      \"reason\": \"需要先明确领域对象和方法约束。\"\n    }\n  ]\n}\n",
    "terms/aigc.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"package_id\": \"aigc-core\",\n  \"domain_id\": \"ai-aigc-meta-skills\",\n  \"title\": \"AIGC 影像与提示词需求澄清术语包\",\n  \"version\": \"0.1.0\",\n  \"status\": \"published\",\n  \"intents\": [\n    {\n      \"id\": \"generate-image\",\n      \"action\": \"生成\",\n      \"object\": \"图像\"\n    },\n    {\n      \"id\": \"generate-video\",\n      \"action\": \"生成\",\n      \"object\": \"视频\"\n    },\n    {\n      \"id\": \"write-prompt\",\n      \"action\": \"编写\",\n      \"object\": \"AIGC 提示词\"\n    }\n  ],\n  \"dimensions\": [\n    {\n      \"id\": \"subject\",\n      \"name\": \"主体描述\",\n      \"definition\": \"画面里具体出现什么对象或人物。\",\n      \"value_type\": \"free_text\"\n    },\n    {\n      \"id\": \"shot\",\n      \"name\": \"景别与镜头\",\n      \"definition\": \"画面框到主体哪里，以及视野宽窄。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"lighting\",\n      \"name\": \"光线\",\n      \"definition\": \"光从哪里来、软硬和明暗关系。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"composition\",\n      \"name\": \"构图\",\n      \"definition\": \"主体在画面中的位置和视觉平衡。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"color\",\n      \"name\": \"色调\",\n      \"definition\": \"画面整体偏暖、偏冷、鲜艳或克制。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"motion\",\n      \"name\": \"运动与运镜\",\n      \"definition\": \"主体怎么动、镜头怎么移动以及速度幅度。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"sound\",\n      \"name\": \"声音\",\n      \"definition\": \"人声、环境音和背景音乐的组成。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"style\",\n      \"name\": \"视觉风格\",\n      \"definition\": \"材质、媒介或影像风格的方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"aspect_ratio\",\n      \"name\": \"画幅比例\",\n      \"definition\": \"横屏、竖屏、方形或宽银幕比例。\",\n      \"value_type\": \"selection\"\n    }\n  ],\n  \"terms\": [\n    {\n      \"id\": \"shot-close\",\n      \"term\": \"特写\",\n      \"plain_language\": \"只拍脸或一个物件细节。\",\n      \"benefit\": \"突出表情或关键细节。\",\n      \"cost\": \"环境信息会减少。\",\n      \"dimension_id\": \"shot\"\n    },\n    {\n      \"id\": \"shot-medium\",\n      \"term\": \"中景\",\n      \"plain_language\": \"通常拍到膝盖以上并保留部分环境。\",\n      \"benefit\": \"人物和场景信息较平衡。\",\n      \"cost\": \"细节冲击弱于特写。\",\n      \"dimension_id\": \"shot\"\n    },\n    {\n      \"id\": \"shot-wide\",\n      \"term\": \"全景\",\n      \"plain_language\": \"拍到完整人物和环境。\",\n      \"benefit\": \"交代空间关系清楚。\",\n      \"cost\": \"人物细节更少。\",\n      \"dimension_id\": \"shot\"\n    },\n    {\n      \"id\": \"light-soft\",\n      \"term\": \"柔光\",\n      \"plain_language\": \"阴影边缘柔和，画面更平顺。\",\n      \"benefit\": \"适合人像和温和氛围。\",\n      \"cost\": \"戏剧冲突较弱。\",\n      \"dimension_id\": \"lighting\"\n    },\n    {\n      \"id\": \"light-hard\",\n      \"term\": \"硬光\",\n      \"plain_language\": \"阴影边缘锐利，明暗反差强。\",\n      \"benefit\": \"画面更有戏剧性。\",\n      \"cost\": \"容易显得生硬。\",\n      \"dimension_id\": \"lighting\"\n    },\n    {\n      \"id\": \"comp-center\",\n      \"term\": \"中心构图\",\n      \"plain_language\": \"主体放在画面正中。\",\n      \"benefit\": \"稳定、直接、容易理解。\",\n      \"cost\": \"画面变化和动势较少。\",\n      \"dimension_id\": \"composition\"\n    },\n    {\n      \"id\": \"color-warm\",\n      \"term\": \"暖色调\",\n      \"plain_language\": \"整体偏橙黄，感觉温暖。\",\n      \"benefit\": \"适合怀旧、亲近和日落氛围。\",\n      \"cost\": \"冷静疏离感较弱。\",\n      \"dimension_id\": \"color\"\n    },\n    {\n      \"id\": \"motion-static\",\n      \"term\": \"固定镜头\",\n      \"plain_language\": \"相机保持不动，主要看主体动作。\",\n      \"benefit\": \"画面稳定，便于观察。\",\n      \"cost\": \"动态冲击较少。\",\n      \"dimension_id\": \"motion\"\n    },\n    {\n      \"id\": \"motion-follow\",\n      \"term\": \"跟随运镜\",\n      \"plain_language\": \"镜头跟着主体移动。\",\n      \"benefit\": \"运动关系更强，沉浸感更高。\",\n      \"cost\": \"生成稳定性和构图控制要求更高。\",\n      \"dimension_id\": \"motion\"\n    },\n    {\n      \"id\": \"style-film\",\n      \"term\": \"电影感影像\",\n      \"plain_language\": \"通过光线、构图、色调和景深形成统一影像风格。\",\n      \"benefit\": \"整体气质更明确。\",\n      \"cost\": \"不能保证自动达到某部电影的具体效果。\",\n      \"dimension_id\": \"style\"\n    },\n    {\n      \"id\": \"ratio-landscape\",\n      \"term\": \"16:9 横屏\",\n      \"plain_language\": \"适合常规横屏视频和网页展示。\",\n      \"benefit\": \"横向空间充足。\",\n      \"cost\": \"手机竖屏展示需要裁切。\",\n      \"dimension_id\": \"aspect_ratio\"\n    },\n    {\n      \"id\": \"ratio-portrait\",\n      \"term\": \"9:16 竖屏\",\n      \"plain_language\": \"适合短视频和手机全屏观看。\",\n      \"benefit\": \"移动端占屏更充分。\",\n      \"cost\": \"横向场景信息更受限。\",\n      \"dimension_id\": \"aspect_ratio\"\n    }\n  ],\n  \"mappings\": [\n    {\n      \"expression\": \"电影感\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"generate-image\",\n        \"generate-video\",\n        \"write-prompt\"\n      ],\n      \"dimension_ids\": [\n        \"shot\",\n        \"lighting\",\n        \"composition\",\n        \"color\",\n        \"style\"\n      ],\n      \"reason\": \"需要拆解镜头、光线、构图、色调和风格。\"\n    }\n  ],\n  \"template_refs\": {\n    \"base_ip\": \"templates/aigc/base-ip.json\",\n    \"scenes\": [\n      \"templates/aigc/lineart-to-3d.json\",\n      \"templates/aigc/plush-texture.json\",\n      \"templates/aigc/turnaround-3view.json\",\n      \"templates/aigc/expression-sheet.json\",\n      \"templates/aigc/action-sheet.json\",\n      \"templates/aigc/outfit-sheet.json\",\n      \"templates/aigc/merchandise-set.json\"\n    ]\n  }\n}\n",
    "terms/animation-tool-adapter/gsap-core.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"gsap-core\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"animation-tool-adapter\",\n  \"title\": \"GSAP Core\",\n  \"knowledge_type\": \"technique\",\n  \"scope\": \"provider-specific\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"implement-gsap\",\n    \"audit-gsap\"\n  ],\n  \"do_not_generalize\": true,\n  \"provider\": \"GSAP\",\n  \"verified_at\": null,\n  \"verification_required\": true,\n  \"entries\": [\n    {\n      \"id\": \"gsap-core\",\n      \"name\": \"GSAP Core\",\n      \"plain_language\": \"tween、duration、easing、stagger 和可中断控制的基础适配。\",\n      \"when_to_use\": \"用户明确指定 GSAP，或项目已经采用 GSAP 作为动效实现层\",\n      \"parameters\": [\n        \"gsap.to/from/fromTo\",\n        \"duration\",\n        \"ease\",\n        \"stagger\",\n        \"killTweensOf\"\n      ],\n      \"related\": [\n        \"continuous-interaction\",\n        \"performance-budget\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"优先动画 transform/opacity\",\n        \"从当前值继续而不是重置起点\"\n      ],\n      \"aliases\": [\n        \"GSAP\",\n        \"gsap core\"\n      ],\n      \"provider\": \"GSAP\",\n      \"provider_specific\": true,\n      \"verification_required\": true,\n      \"verification_note\": [\n        \"官方 API 版本变化需复核\"\n      ],\n      \"acceptance\": [\n        \"动画创建和销毁可追踪\",\n        \"快速交互不产生重复回调\",\n        \"未指定 GSAP 时不强制引入\"\n      ]\n    }\n  ]\n}\n",
    "terms/animation-tool-adapter/gsap-frameworks.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"gsap-frameworks\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"animation-tool-adapter\",\n  \"title\": \"GSAP 框架适配\",\n  \"knowledge_type\": \"technique\",\n  \"scope\": \"provider-specific\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"implement-gsap\",\n    \"audit-gsap\"\n  ],\n  \"do_not_generalize\": true,\n  \"provider\": \"GSAP\",\n  \"verified_at\": null,\n  \"verification_required\": true,\n  \"entries\": [\n    {\n      \"id\": \"gsap-frameworks\",\n      \"name\": \"GSAP 框架适配\",\n      \"plain_language\": \"在 Vue、Svelte 等框架中按生命周期创建和销毁上下文，隔离 SSR、hydration 与客户端动画。\",\n      \"when_to_use\": \"用户明确指定 GSAP，或项目已经采用 GSAP 作为动效实现层\",\n      \"parameters\": [\n        \"onMounted/onUnmounted\",\n        \"onMount/onDestroy\",\n        \"SSR guard\",\n        \"hydration\",\n        \"context cleanup\"\n      ],\n      \"related\": [\n        \"continuous-interaction\",\n        \"performance-budget\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"只在客户端创建动画\",\n        \"路由切换时完整清理\"\n      ],\n      \"aliases\": [\n        \"GSAP\",\n        \"gsap 框架适配\"\n      ],\n      \"provider\": \"GSAP\",\n      \"provider_specific\": true,\n      \"verification_required\": true,\n      \"verification_note\": [\n        \"框架封装层不要隐藏 kill/revert 能力\"\n      ],\n      \"acceptance\": [\n        \"动画创建和销毁可追踪\",\n        \"快速交互不产生重复回调\",\n        \"未指定 GSAP 时不强制引入\"\n      ]\n    }\n  ]\n}\n",
    "terms/animation-tool-adapter/gsap-performance.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"gsap-performance\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"animation-tool-adapter\",\n  \"title\": \"GSAP 性能边界\",\n  \"knowledge_type\": \"technique\",\n  \"scope\": \"provider-specific\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"implement-gsap\",\n    \"audit-gsap\"\n  ],\n  \"do_not_generalize\": true,\n  \"provider\": \"GSAP\",\n  \"verified_at\": null,\n  \"verification_required\": true,\n  \"entries\": [\n    {\n      \"id\": \"gsap-performance\",\n      \"name\": \"GSAP 性能边界\",\n      \"plain_language\": \"把高频动效限制在合成属性，批量更新并减少布局读取，给复杂效果设置设备降级策略。\",\n      \"when_to_use\": \"用户明确指定 GSAP，或项目已经采用 GSAP 作为动效实现层\",\n      \"parameters\": [\n        \"transform\",\n        \"opacity\",\n        \"batching\",\n        \"will-change\",\n        \"layout thrash\"\n      ],\n      \"related\": [\n        \"continuous-interaction\",\n        \"performance-budget\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"不要连续写 width/height/top/left\",\n        \"will-change 只在短时交互启用\"\n      ],\n      \"aliases\": [\n        \"GSAP\",\n        \"gsap 性能边界\"\n      ],\n      \"provider\": \"GSAP\",\n      \"provider_specific\": true,\n      \"verification_required\": true,\n      \"verification_note\": [\n        \"低端设备关闭粒子、滤镜或 3D 透视\"\n      ],\n      \"acceptance\": [\n        \"动画创建和销毁可追踪\",\n        \"快速交互不产生重复回调\",\n        \"未指定 GSAP 时不强制引入\"\n      ]\n    }\n  ]\n}\n",
    "terms/animation-tool-adapter/gsap-plugins.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"gsap-plugins\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"animation-tool-adapter\",\n  \"title\": \"GSAP Plugins\",\n  \"knowledge_type\": \"technique\",\n  \"scope\": \"provider-specific\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"implement-gsap\",\n    \"audit-gsap\"\n  ],\n  \"do_not_generalize\": true,\n  \"provider\": \"GSAP\",\n  \"verified_at\": null,\n  \"verification_required\": true,\n  \"entries\": [\n    {\n      \"id\": \"gsap-plugins\",\n      \"name\": \"GSAP Plugins\",\n      \"plain_language\": \"按需使用 Flip、Draggable、Observer、SplitText 等插件，插件能力必须和交互目标一一对应。\",\n      \"when_to_use\": \"用户明确指定 GSAP，或项目已经采用 GSAP 作为动效实现层\",\n      \"parameters\": [\n        \"Flip\",\n        \"Draggable\",\n        \"Observer\",\n        \"SplitText\",\n        \"registerPlugin\"\n      ],\n      \"related\": [\n        \"continuous-interaction\",\n        \"performance-budget\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"只注册实际使用的插件\",\n        \"拖拽和 Flip 必须有取消与回退路径\"\n      ],\n      \"aliases\": [\n        \"GSAP\",\n        \"gsap plugins\"\n      ],\n      \"provider\": \"GSAP\",\n      \"provider_specific\": true,\n      \"verification_required\": true,\n      \"verification_note\": [\n        \"插件 API 与授权边界以官方文档为准\"\n      ],\n      \"acceptance\": [\n        \"动画创建和销毁可追踪\",\n        \"快速交互不产生重复回调\",\n        \"未指定 GSAP 时不强制引入\"\n      ]\n    }\n  ]\n}\n",
    "terms/animation-tool-adapter/gsap-react-lifecycle.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"gsap-react-lifecycle\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"animation-tool-adapter\",\n  \"title\": \"GSAP React 生命周期\",\n  \"knowledge_type\": \"technique\",\n  \"scope\": \"provider-specific\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"implement-gsap\",\n    \"audit-gsap\"\n  ],\n  \"do_not_generalize\": true,\n  \"provider\": \"GSAP\",\n  \"verified_at\": null,\n  \"verification_required\": true,\n  \"entries\": [\n    {\n      \"id\": \"gsap-react-lifecycle\",\n      \"name\": \"GSAP React 生命周期\",\n      \"plain_language\": \"在 React 中用 useGSAP 或 gsap.context 管理选择器作用域、动画创建和 ctx.revert 清理。\",\n      \"when_to_use\": \"用户明确指定 GSAP，或项目已经采用 GSAP 作为动效实现层\",\n      \"parameters\": [\n        \"useGSAP\",\n        \"gsap.context\",\n        \"scope\",\n        \"ctx.revert\",\n        \"dependencies\"\n      ],\n      \"related\": [\n        \"continuous-interaction\",\n        \"performance-budget\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"动画创建绑定组件生命周期\",\n        \"依赖变化先清理旧动画\"\n      ],\n      \"aliases\": [\n        \"GSAP\",\n        \"gsap react 生命周期\"\n      ],\n      \"provider\": \"GSAP\",\n      \"provider_specific\": true,\n      \"verification_required\": true,\n      \"verification_note\": [\n        \"避免在 render 阶段创建动画\"\n      ],\n      \"acceptance\": [\n        \"动画创建和销毁可追踪\",\n        \"快速交互不产生重复回调\",\n        \"未指定 GSAP 时不强制引入\"\n      ]\n    }\n  ]\n}\n",
    "terms/animation-tool-adapter/gsap-scrolltrigger.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"gsap-scrolltrigger\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"animation-tool-adapter\",\n  \"title\": \"GSAP ScrollTrigger\",\n  \"knowledge_type\": \"technique\",\n  \"scope\": \"provider-specific\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"implement-gsap\",\n    \"audit-gsap\"\n  ],\n  \"do_not_generalize\": true,\n  \"provider\": \"GSAP\",\n  \"verified_at\": null,\n  \"verification_required\": true,\n  \"entries\": [\n    {\n      \"id\": \"gsap-scrolltrigger\",\n      \"name\": \"GSAP ScrollTrigger\",\n      \"plain_language\": \"用 scrub、pin 和 start/end 将动画绑定到滚动进度，并避免把滚动逻辑散落在组件中。\",\n      \"when_to_use\": \"用户明确指定 GSAP，或项目已经采用 GSAP 作为动效实现层\",\n      \"parameters\": [\n        \"ScrollTrigger\",\n        \"scrub\",\n        \"pin\",\n        \"start/end\",\n        \"refresh\"\n      ],\n      \"related\": [\n        \"continuous-interaction\",\n        \"performance-budget\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"滚动驱动优先使用 transform\",\n        \"动态内容变化后显式 refresh\"\n      ],\n      \"aliases\": [\n        \"GSAP\",\n        \"gsap scrolltrigger\"\n      ],\n      \"provider\": \"GSAP\",\n      \"provider_specific\": true,\n      \"verification_required\": true,\n      \"verification_note\": [\n        \"SSR 和无 DOM 环境不能初始化插件\"\n      ],\n      \"acceptance\": [\n        \"动画创建和销毁可追踪\",\n        \"快速交互不产生重复回调\",\n        \"未指定 GSAP 时不强制引入\"\n      ]\n    }\n  ]\n}\n",
    "terms/animation-tool-adapter/gsap-timeline.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"gsap-timeline\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"animation-tool-adapter\",\n  \"title\": \"GSAP Timeline\",\n  \"knowledge_type\": \"technique\",\n  \"scope\": \"provider-specific\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"implement-gsap\",\n    \"audit-gsap\"\n  ],\n  \"do_not_generalize\": true,\n  \"provider\": \"GSAP\",\n  \"verified_at\": null,\n  \"verification_required\": true,\n  \"entries\": [\n    {\n      \"id\": \"gsap-timeline\",\n      \"name\": \"GSAP Timeline\",\n      \"plain_language\": \"用时间线、label 和 position parameter 编排连续动效，保持顺序可读且可复用。\",\n      \"when_to_use\": \"用户明确指定 GSAP，或项目已经采用 GSAP 作为动效实现层\",\n      \"parameters\": [\n        \"timeline\",\n        \"label\",\n        \"position parameter\",\n        \"nested timeline\",\n        \"play/pause/reverse\"\n      ],\n      \"related\": [\n        \"continuous-interaction\",\n        \"performance-budget\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"时间线必须有明确生命周期\",\n        \"组件卸载时杀掉 timeline\"\n      ],\n      \"aliases\": [\n        \"GSAP\",\n        \"gsap timeline\"\n      ],\n      \"provider\": \"GSAP\",\n      \"provider_specific\": true,\n      \"verification_required\": true,\n      \"verification_note\": [\n        \"复杂时间线应拆为可测试片段\"\n      ],\n      \"acceptance\": [\n        \"动画创建和销毁可追踪\",\n        \"快速交互不产生重复回调\",\n        \"未指定 GSAP 时不强制引入\"\n      ]\n    }\n  ]\n}\n",
    "terms/architecture-civil-space.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"package_id\": \"architecture-civil-space-core\",\n  \"domain_id\": \"architecture-civil-space\",\n  \"title\": \"建筑/土木/空间领域需求澄清术语包（草案）\",\n  \"version\": \"0.1.0\",\n  \"status\": \"draft\",\n  \"intents\": [\n    {\n      \"id\": \"design\",\n      \"action\": \"设计\",\n      \"object\": \"建筑/土木/空间相关产物\"\n    },\n    {\n      \"id\": \"diagnose\",\n      \"action\": \"排查\",\n      \"object\": \"建筑/土木/空间相关问题\"\n    }\n  ],\n  \"dimensions\": [\n    {\n      \"id\": \"scope\",\n      \"name\": \"空间功能\",\n      \"definition\": \"空间功能的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"method\",\n      \"name\": \"规范与材料\",\n      \"definition\": \"规范与材料的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"symptom\",\n      \"name\": \"问题现象\",\n      \"definition\": \"用户观察到的具体问题、时间、范围和影响。\",\n      \"value_type\": \"free_text\"\n    }\n  ],\n  \"terms\": [\n    {\n      \"id\": \"core-1\",\n      \"term\": \"功能分区\",\n      \"plain_language\": \"按使用者和活动组织空间\",\n      \"benefit\": \"减少动线冲突\",\n      \"cost\": \"需要先梳理场景\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-2\",\n      \"term\": \"动线组织\",\n      \"plain_language\": \"人流、物流和疏散路径\",\n      \"benefit\": \"空间使用更顺畅\",\n      \"cost\": \"可能占用面积\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-3\",\n      \"term\": \"结构体系\",\n      \"plain_language\": \"明确承重和结构形式\",\n      \"benefit\": \"降低结构返工\",\n      \"cost\": \"需要专业计算\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-4\",\n      \"term\": \"材料耐久\",\n      \"plain_language\": \"按环境选择材料耐候性\",\n      \"benefit\": \"维护周期更清楚\",\n      \"cost\": \"初始成本可能更高\",\n      \"dimension_id\": \"method\"\n    },\n    {\n      \"id\": \"core-5\",\n      \"term\": \"消防无障碍\",\n      \"plain_language\": \"纳入疏散、消防和无障碍要求\",\n      \"benefit\": \"降低合规风险\",\n      \"cost\": \"需按当地规范核验\",\n      \"dimension_id\": \"method\"\n    }\n  ],\n  \"mappings\": [\n    {\n      \"expression\": \"专业一点/做好一点\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"design\"\n      ],\n      \"dimension_ids\": [\n        \"scope\",\n        \"method\"\n      ],\n      \"reason\": \"需要先明确领域对象和方法约束。\"\n    }\n  ]\n}\n",
    "terms/arts-aesthetics-design.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"package_id\": \"arts-aesthetics-design-core\",\n  \"domain_id\": \"arts-aesthetics-design\",\n  \"title\": \"艺术/美学/传统设计领域需求澄清术语包（草案）\",\n  \"version\": \"0.1.0\",\n  \"status\": \"draft\",\n  \"intents\": [\n    {\n      \"id\": \"design\",\n      \"action\": \"设计\",\n      \"object\": \"艺术/美学/传统设计相关产物\"\n    },\n    {\n      \"id\": \"diagnose\",\n      \"action\": \"排查\",\n      \"object\": \"艺术/美学/传统设计相关问题\"\n    }\n  ],\n  \"dimensions\": [\n    {\n      \"id\": \"scope\",\n      \"name\": \"媒介与形式\",\n      \"definition\": \"媒介与形式的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"method\",\n      \"name\": \"审美方向\",\n      \"definition\": \"审美方向的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"symptom\",\n      \"name\": \"问题现象\",\n      \"definition\": \"用户观察到的具体问题、时间、范围和影响。\",\n      \"value_type\": \"free_text\"\n    }\n  ],\n  \"terms\": [\n    {\n      \"id\": \"core-1\",\n      \"term\": \"媒介材料\",\n      \"plain_language\": \"明确绘画、摄影、雕塑或数字媒介\",\n      \"benefit\": \"方便选择技法\",\n      \"cost\": \"限制表达范围\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-2\",\n      \"term\": \"构图节奏\",\n      \"plain_language\": \"安排视觉重点、比例和留白\",\n      \"benefit\": \"画面更有秩序\",\n      \"cost\": \"探索空间变小\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-3\",\n      \"term\": \"色彩关系\",\n      \"plain_language\": \"明确主色、辅色和对比色\",\n      \"benefit\": \"视觉气质更稳定\",\n      \"cost\": \"色彩自由度降低\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-4\",\n      \"term\": \"风格参照\",\n      \"plain_language\": \"用流派、时期或作品特征描述方向\",\n      \"benefit\": \"沟通更准确\",\n      \"cost\": \"不能复制具体作品\",\n      \"dimension_id\": \"method\"\n    },\n    {\n      \"id\": \"core-5\",\n      \"term\": \"材质肌理\",\n      \"plain_language\": \"明确粗糙、光滑、透明或颗粒感\",\n      \"benefit\": \"质感更具体\",\n      \"cost\": \"实现成本可能提高\",\n      \"dimension_id\": \"method\"\n    }\n  ],\n  \"mappings\": [\n    {\n      \"expression\": \"专业一点/做好一点\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"design\"\n      ],\n      \"dimension_ids\": [\n        \"scope\",\n        \"method\"\n      ],\n      \"reason\": \"需要先明确领域对象和方法约束。\"\n    }\n  ]\n}\n",
    "terms/astronomy-earth-environment.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"package_id\": \"astronomy-earth-environment-core\",\n  \"domain_id\": \"astronomy-earth-environment\",\n  \"title\": \"天文/地学/环境领域需求澄清术语包（草案）\",\n  \"version\": \"0.1.0\",\n  \"status\": \"draft\",\n  \"intents\": [\n    {\n      \"id\": \"design\",\n      \"action\": \"设计\",\n      \"object\": \"天文/地学/环境相关产物\"\n    },\n    {\n      \"id\": \"diagnose\",\n      \"action\": \"排查\",\n      \"object\": \"天文/地学/环境相关问题\"\n    }\n  ],\n  \"dimensions\": [\n    {\n      \"id\": \"scope\",\n      \"name\": \"观测对象\",\n      \"definition\": \"观测对象的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"method\",\n      \"name\": \"尺度与证据\",\n      \"definition\": \"尺度与证据的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"symptom\",\n      \"name\": \"问题现象\",\n      \"definition\": \"用户观察到的具体问题、时间、范围和影响。\",\n      \"value_type\": \"free_text\"\n    }\n  ],\n  \"terms\": [\n    {\n      \"id\": \"core-1\",\n      \"term\": \"观测对象\",\n      \"plain_language\": \"明确天体、地质现象或环境指标\",\n      \"benefit\": \"问题更容易验证\",\n      \"cost\": \"范围需要收窄\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-2\",\n      \"term\": \"时间尺度\",\n      \"plain_language\": \"区分瞬时、季节、年代或长期趋势\",\n      \"benefit\": \"避免误读变化\",\n      \"cost\": \"需要连续数据\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-3\",\n      \"term\": \"空间尺度\",\n      \"plain_language\": \"明确局地、区域或全球范围\",\n      \"benefit\": \"结论边界更清楚\",\n      \"cost\": \"数据要求更高\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-4\",\n      \"term\": \"测量方法\",\n      \"plain_language\": \"说明仪器、样本和计算口径\",\n      \"benefit\": \"结果更可复核\",\n      \"cost\": \"准备成本更高\",\n      \"dimension_id\": \"method\"\n    },\n    {\n      \"id\": \"core-5\",\n      \"term\": \"不确定性\",\n      \"plain_language\": \"记录误差、置信度和替代解释\",\n      \"benefit\": \"避免过度结论\",\n      \"cost\": \"表达更谨慎\",\n      \"dimension_id\": \"method\"\n    }\n  ],\n  \"mappings\": [\n    {\n      \"expression\": \"专业一点/做好一点\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"design\"\n      ],\n      \"dimension_ids\": [\n        \"scope\",\n        \"method\"\n      ],\n      \"reason\": \"需要先明确领域对象和方法约束。\"\n    }\n  ]\n}\n",
    "terms/backend.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"package_id\": \"backend-core\",\n  \"domain_id\": \"software-engineering-architecture\",\n  \"title\": \"后端与软件工程需求澄清术语包（幂等子域草案）\",\n  \"version\": \"0.1.0\",\n  \"status\": \"published\",\n  \"intents\": [\n    {\n      \"id\": \"design-write\",\n      \"action\": \"设计\",\n      \"object\": \"非支付写入 API 的重复处理契约\"\n    },\n    {\n      \"id\": \"diagnose-write\",\n      \"action\": \"排查\",\n      \"object\": \"重复写入或响应不明的现象\"\n    }\n  ],\n  \"dimensions\": [\n    {\n      \"id\": \"identity\",\n      \"name\": \"操作身份\",\n      \"definition\": \"约定哪一笔操作算同一笔；识别范围包括调用方或租户以及操作种类，不能仅由内容相同推断。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"retry\",\n      \"name\": \"结果不明时的重试策略\",\n      \"definition\": \"规定结果不明时是按已支持的契约复用请求身份，还是暂停自动提交并核实。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"payload\",\n      \"name\": \"同身份内容变化规则\",\n      \"definition\": \"同一操作身份再次出现时，如何处理影响业务意图的内容变化。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"concurrency\",\n      \"name\": \"处理中重复请求的响应方式\",\n      \"definition\": \"首个同身份操作尚未完成时，重复到达者得到处理中状态还是明确拒绝。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"retention\",\n      \"name\": \"重复识别记录保留窗口\",\n      \"definition\": \"从明确约定的起点保留操作识别记录的时长，以 h 表示；到期与清理行为需另述。\",\n      \"value_type\": \"continuous\"\n    },\n    {\n      \"id\": \"protection\",\n      \"name\": \"结果与写入记录保护\",\n      \"definition\": \"为重复请求记录可关联的结果，并要求识别记录和业务变更在声明边界内一致生效。\",\n      \"value_type\": \"multi_select\"\n    },\n    {\n      \"id\": \"symptom\",\n      \"name\": \"可观察的写入现象\",\n      \"definition\": \"记录时间线、请求身份是否相同、响应及可见写入结果；只保留观察，不把超时判断为失败。\",\n      \"value_type\": \"free_text\"\n    },\n    {\n      \"id\": \"availability\",\n      \"name\": \"高可用目标\",\n      \"definition\": \"系统在故障、发布或依赖异常时继续提供服务的目标与边界。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"capacity\",\n      \"name\": \"并发与流量模型\",\n      \"definition\": \"明确并发用户、请求速率、峰值、突发和延迟目标。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"scalability\",\n      \"name\": \"扩展策略\",\n      \"definition\": \"明确通过加机器、分片、缓存或异步化应对增长的方式。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"resilience\",\n      \"name\": \"容错与降级\",\n      \"definition\": \"明确超时、重试、熔断、限流和降级的组合。\",\n      \"value_type\": \"multi_select\"\n    },\n    {\n      \"id\": \"observability\",\n      \"name\": \"可观测性\",\n      \"definition\": \"明确指标、日志、追踪、告警和故障定位要求。\",\n      \"value_type\": \"multi_select\"\n    }\n  ],\n  \"terms\": [\n    {\n      \"id\": \"caller-key\",\n      \"term\": \"调用方提供的操作编号\",\n      \"plain_language\": \"每一笔新操作有自己的编号；重发同一笔时保留编号，内容相同的两笔操作仍可分开。\",\n      \"benefit\": \"调用方能明确表达是在重发还是创建另一笔。\",\n      \"cost\": \"双方要管理编号生成、传递、作用范围和生命周期。\",\n      \"dimension_id\": \"identity\"\n    },\n    {\n      \"id\": \"business-key\",\n      \"term\": \"业务唯一标识\",\n      \"plain_language\": \"按业务约定的唯一编号识别一笔操作，而不是只看提交内容是否一样。\",\n      \"benefit\": \"复用已有业务身份，便于核实对应记录。\",\n      \"cost\": \"编号重用、多次合法修改和不同操作可能冲突，需要业务裁定。\",\n      \"dimension_id\": \"identity\"\n    },\n    {\n      \"id\": \"retry-same-key\",\n      \"term\": \"同键重试\",\n      \"plain_language\": \"确认服务支持后，重发同一笔时沿用原编号和原业务内容，不因超时换新编号。\",\n      \"benefit\": \"减少结果不明时由调用方重复发起新操作的风险。\",\n      \"cost\": \"需要额外状态、故障恢复与窗口边界设计；不表示所有失败均可重试。\",\n      \"dimension_id\": \"retry\"\n    },\n    {\n      \"id\": \"manual-reconcile\",\n      \"term\": \"暂停自动重试并核实\",\n      \"plain_language\": \"先停止自动重复提交，查清原操作是否生效，再由负责人决定后续处理。\",\n      \"benefit\": \"在重试契约尚不明确时避免直接重复提交。\",\n      \"cost\": \"恢复较慢且需要人员参与；查询本身未必足以消除所有不确定性。\",\n      \"dimension_id\": \"retry\"\n    },\n    {\n      \"id\": \"reject-mismatch\",\n      \"term\": \"拒绝同身份内容不一致\",\n      \"plain_language\": \"同一编号再次提交时，约定参与比较的内容变了就拒绝，不悄悄覆盖原操作。\",\n      \"benefit\": \"暴露编号误用或不同业务意图。\",\n      \"cost\": \"需要保存可核对信息，调用方还要处理拒绝和业务修改流程。\",\n      \"dimension_id\": \"payload\"\n    },\n    {\n      \"id\": \"report-in-progress\",\n      \"term\": \"告知原操作处理中\",\n      \"plain_language\": \"原操作还在做，就告诉后来者仍在处理，不再启动一份，也不假装已经成功。\",\n      \"benefit\": \"调用方可以区分处理中与已完成。\",\n      \"cost\": \"需要处理中状态及后续获取结果的契约。\",\n      \"dimension_id\": \"concurrency\"\n    },\n    {\n      \"id\": \"reject-in-progress\",\n      \"term\": \"拒绝处理中重复请求\",\n      \"plain_language\": \"原操作还在做时，明确拒绝这次重复提交；这不说明原操作失败了。\",\n      \"benefit\": \"并发冲突明确暴露给调用方。\",\n      \"cost\": \"调用方需要处理冲突和后续核实，不能把拒绝当作可换新编号的证据。\",\n      \"dimension_id\": \"concurrency\"\n    },\n    {\n      \"id\": \"record-result\",\n      \"term\": \"保存可关联的操作结果\",\n      \"plain_language\": \"留下这笔操作的处理结果或可查询结果的关联记录，让重发者能知道原操作的结果。\",\n      \"benefit\": \"减少重复请求对原操作归属和结果的疑问。\",\n      \"cost\": \"需要结果存储或可恢复关联，并处理隐私、生命周期及状态变化。\",\n      \"dimension_id\": \"protection\"\n    },\n    {\n      \"id\": \"atomic-record\",\n      \"term\": \"识别记录与业务变更原子生效\",\n      \"plain_language\": \"在约定的服务写入边界内，操作识别记录与业务变更要么一起生效，要么都不生效。\",\n      \"benefit\": \"避免仅记住编号却未写入，或已写入却没有识别记录的间隙。\",\n      \"cost\": \"需要一致性与故障恢复设计和失败测试，不是加一个键就实现。\",\n      \"dimension_id\": \"protection\"\n    },\n    {\n      \"id\": \"ha-redundancy\",\n      \"term\": \"故障域冗余\",\n      \"plain_language\": \"关键组件跨实例、节点或可用区部署，单点故障不直接中断服务。\",\n      \"benefit\": \"提高故障承受能力。\",\n      \"cost\": \"成本、部署和数据一致性复杂度增加。\",\n      \"dimension_id\": \"availability\"\n    },\n    {\n      \"id\": \"ha-failover\",\n      \"term\": \"故障转移与恢复目标\",\n      \"plain_language\": \"明确 RTO、RPO、健康检查和切换方式。\",\n      \"benefit\": \"把高可用从口号变成可验证目标。\",\n      \"cost\": \"需要演练和监控。\",\n      \"dimension_id\": \"availability\"\n    },\n    {\n      \"id\": \"capacity-rps\",\n      \"term\": \"请求速率模型\",\n      \"plain_language\": \"用平均值、峰值、突发和增长率描述流量，而不是只说“高并发”。\",\n      \"benefit\": \"容量评估有输入依据。\",\n      \"cost\": \"需要真实或合理的流量数据。\",\n      \"dimension_id\": \"capacity\"\n    },\n    {\n      \"id\": \"capacity-p95\",\n      \"term\": \"P95/P99 延迟目标\",\n      \"plain_language\": \"明确接口、负载、统计窗口和 P95/P99 延迟目标。\",\n      \"benefit\": \"性能目标可测量。\",\n      \"cost\": \"目标越高，资源成本越大。\",\n      \"dimension_id\": \"capacity\"\n    },\n    {\n      \"id\": \"scale-horizontal\",\n      \"term\": \"水平扩展\",\n      \"plain_language\": \"通过增加无状态实例分摊请求。\",\n      \"benefit\": \"适合持续增长和弹性流量。\",\n      \"cost\": \"需要处理共享状态和数据瓶颈。\",\n      \"dimension_id\": \"scalability\"\n    },\n    {\n      \"id\": \"scale-sharding\",\n      \"term\": \"分片扩展\",\n      \"plain_language\": \"按租户、业务键或范围拆分数据与负载。\",\n      \"benefit\": \"突破单库或单节点容量边界。\",\n      \"cost\": \"跨分片查询和迁移更复杂。\",\n      \"dimension_id\": \"scalability\"\n    },\n    {\n      \"id\": \"resilience-timeout\",\n      \"term\": \"超时与限时\",\n      \"plain_language\": \"为依赖调用设置明确超时和截止时间。\",\n      \"benefit\": \"避免线程或连接长期占用。\",\n      \"cost\": \"过短会增加失败率。\",\n      \"dimension_id\": \"resilience\"\n    },\n    {\n      \"id\": \"resilience-circuit\",\n      \"term\": \"熔断与降级\",\n      \"plain_language\": \"依赖异常时停止放大故障，并返回受控的降级结果。\",\n      \"benefit\": \"降低级联故障风险。\",\n      \"cost\": \"部分功能不可用，需明确用户体验。\",\n      \"dimension_id\": \"resilience\"\n    },\n    {\n      \"id\": \"obs-sli\",\n      \"term\": \"SLI/SLO 指标\",\n      \"plain_language\": \"用可用性、延迟、错误率等指标和目标描述服务状态。\",\n      \"benefit\": \"告警和改进有依据。\",\n      \"cost\": \"需要稳定采集和误差预算。\",\n      \"dimension_id\": \"observability\"\n    },\n    {\n      \"id\": \"obs-trace\",\n      \"term\": \"分布式追踪\",\n      \"plain_language\": \"为跨服务请求关联 trace 和 span。\",\n      \"benefit\": \"更快定位链路瓶颈。\",\n      \"cost\": \"采集、存储和隐私治理成本增加。\",\n      \"dimension_id\": \"observability\"\n    }\n  ],\n  \"mappings\": [\n    {\n      \"expression\": \"每笔操作由调用方提供独立编号，同一笔保留编号\",\n      \"level\": \"L1\",\n      \"intent_ids\": [\n        \"design-write\"\n      ],\n      \"dimension_ids\": [\n        \"identity\"\n      ],\n      \"reason\": \"表达明确身份方向，尚未说明的重试、内容及并发规则仍需处理。\"\n    },\n    {\n      \"expression\": \"调用方每笔给编号，重发沿用原编号和内容；保存结果关联，识别记录与业务变更一起生效；内容不一致拒绝，原操作未完成就告知处理中\",\n      \"level\": \"L1\",\n      \"intent_ids\": [\n        \"design-write\"\n      ],\n      \"dimension_ids\": [\n        \"identity\",\n        \"retry\",\n        \"payload\",\n        \"concurrency\",\n        \"protection\"\n      ],\n      \"reason\": \"完整表达显式包含全部依赖和四个必填维度，不从单说重试偷加保护措施；窗口未给仍是待定。\"\n    },\n    {\n      \"expression\": \"按约定唯一的业务编号识别；结果不明先停下人工核实；内容不一致拒绝，仍在处理时拒绝重复提交\",\n      \"level\": \"L1\",\n      \"intent_ids\": [\n        \"design-write\"\n      ],\n      \"dimension_ids\": [\n        \"identity\",\n        \"retry\",\n        \"payload\",\n        \"concurrency\"\n      ],\n      \"reason\": \"独立候选组合，不与同键自动重试混合；仍须保留业务编号唯一范围前提。\"\n    },\n    {\n      \"expression\": \"重复编号记久一点\",\n      \"level\": \"L2\",\n      \"intent_ids\": [\n        \"design-write\"\n      ],\n      \"dimension_ids\": [\n        \"retention\"\n      ],\n      \"reason\": \"先问最长离线或补发时间；示例只说明单位和口径，不把 24 h 注入为用户选择。\"\n    },\n    {\n      \"expression\": \"稳定一点，不要重复创建\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"design-write\"\n      ],\n      \"dimension_ids\": [\n        \"identity\",\n        \"retry\",\n        \"payload\",\n        \"concurrency\",\n        \"protection\"\n      ],\n      \"reason\": \"目标不能唯一决定实现方向；按缺失值澄清，不把稳定解释为性能或可用性承诺。\"\n    },\n    {\n      \"expression\": \"超时了就重试\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"design-write\"\n      ],\n      \"dimension_ids\": [\n        \"identity\",\n        \"retry\",\n        \"protection\"\n      ],\n      \"reason\": \"未说明身份与保护不能直接映射成同键重试；需要核实服务契约和原操作结果。\"\n    },\n    {\n      \"expression\": \"排查为什么超时后出现两条记录\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"diagnose-write\"\n      ],\n      \"dimension_ids\": [\n        \"symptom\"\n      ],\n      \"reason\": \"保留已知现象并追问时间线和关联证据，不给设计候选或预判根因。\"\n    },\n    {\n      \"expression\": \"大型后端、稳定、高并发、高扩展\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"design-write\"\n      ],\n      \"dimension_ids\": [\n        \"availability\",\n        \"capacity\",\n        \"scalability\",\n        \"resilience\",\n        \"observability\"\n      ],\n      \"reason\": \"需要把稳定拆成可用性、流量模型、扩展策略、容错和可观测性。\"\n    }\n  ]\n}\n",
    "terms/biology-medicine-health.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"package_id\": \"biology-medicine-health-core\",\n  \"domain_id\": \"biology-medicine-health\",\n  \"title\": \"生物/医学/健康领域需求澄清术语包（草案）\",\n  \"version\": \"0.1.0\",\n  \"status\": \"draft\",\n  \"intents\": [\n    {\n      \"id\": \"design\",\n      \"action\": \"设计\",\n      \"object\": \"生物/医学/健康相关产物\"\n    },\n    {\n      \"id\": \"diagnose\",\n      \"action\": \"排查\",\n      \"object\": \"生物/医学/健康相关问题\"\n    }\n  ],\n  \"dimensions\": [\n    {\n      \"id\": \"scope\",\n      \"name\": \"健康目标\",\n      \"definition\": \"健康目标的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"method\",\n      \"name\": \"证据与风险\",\n      \"definition\": \"证据与风险的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"symptom\",\n      \"name\": \"问题现象\",\n      \"definition\": \"用户观察到的具体问题、时间、范围和影响。\",\n      \"value_type\": \"free_text\"\n    }\n  ],\n  \"terms\": [\n    {\n      \"id\": \"core-1\",\n      \"term\": \"健康教育\",\n      \"plain_language\": \"提供通用知识和预防信息\",\n      \"benefit\": \"适合公众理解\",\n      \"cost\": \"不针对个体诊断\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-2\",\n      \"term\": \"症状记录\",\n      \"plain_language\": \"记录时间、频率、严重程度和变化\",\n      \"benefit\": \"方便就医沟通\",\n      \"cost\": \"不能自行推断病因\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-3\",\n      \"term\": \"风险分层\",\n      \"plain_language\": \"区分一般、需咨询和紧急情况\",\n      \"benefit\": \"提高安全性\",\n      \"cost\": \"需要明确边界\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-4\",\n      \"term\": \"证据等级\",\n      \"plain_language\": \"区分指南、研究和经验信息\",\n      \"benefit\": \"减少误导\",\n      \"cost\": \"结论可能不确定\",\n      \"dimension_id\": \"method\"\n    },\n    {\n      \"id\": \"core-5\",\n      \"term\": \"专业转介\",\n      \"plain_language\": \"明确何时联系医生或急救\",\n      \"benefit\": \"避免延误处理\",\n      \"cost\": \"不能替代医疗服务\",\n      \"dimension_id\": \"method\"\n    }\n  ],\n  \"mappings\": [\n    {\n      \"expression\": \"专业一点/做好一点\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"design\"\n      ],\n      \"dimension_ids\": [\n        \"scope\",\n        \"method\"\n      ],\n      \"reason\": \"需要先明确领域对象和方法约束。\"\n    }\n  ]\n}\n",
    "terms/camera-language/camera-language.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"camera-language\",\n  \"domain_id\": \"ai-aigc-meta-skills\",\n  \"subdomain_id\": \"camera-language\",\n  \"title\": \"镜头语言\",\n  \"knowledge_type\": \"term\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"write-image-prompt\",\n    \"write-video-prompt\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"camera-language\",\n      \"name\": \"景别/机位/焦段/运镜\",\n      \"plain_language\": \"把电影感拆成可执行的景别、机位、焦段、景深和运动。\",\n      \"when_to_use\": \"想要电影感但需要稳定复现时\",\n      \"parameters\": [\n        \"close/medium/wide\",\n        \"high/low angle\",\n        \"lens\",\n        \"depth of field\",\n        \"camera motion\"\n      ],\n      \"related\": [\n        \"video-direction\",\n        \"composition\"\n      ],\n      \"constraints\": [\n        \"不要用受版权保护的具体作品名作为唯一指令\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/character-ip/character-ip.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"character-ip\",\n  \"domain_id\": \"ai-aigc-meta-skills\",\n  \"subdomain_id\": \"character-ip\",\n  \"title\": \"角色 IP 一致性\",\n  \"knowledge_type\": \"template\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"generate-character\",\n    \"extend-character\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"base-ip\",\n      \"name\": \"基础 IP 设定\",\n      \"plain_language\": \"先锁定角色体型、配色、五官、材质和负面约束，再按场景增量加载。\",\n      \"when_to_use\": \"同一角色需要生成三视图、动作、服装、表情或周边\",\n      \"parameters\": [\n        \"主体描述\",\n        \"一致性规则\",\n        \"负面提示词\",\n        \"参考图\"\n      ],\n      \"related\": [\n        \"lineart-to-3d\",\n        \"plush-texture\",\n        \"merchandise-set\"\n      ],\n      \"constraints\": [\n        \"一次只加载一个场景模板\"\n      ],\n      \"aliases\": []\n    },\n    {\n      \"id\": \"scene-module\",\n      \"name\": \"场景增量模块\",\n      \"plain_language\": \"把材质、动作、镜头或周边作为独立模块叠加到基础 IP。\",\n      \"when_to_use\": \"需要复用角色但更换表现目标\",\n      \"parameters\": [\n        \"scene_id\",\n        \"aspect_ratio\",\n        \"tool_adapter\"\n      ],\n      \"related\": [\n        \"base-ip\"\n      ],\n      \"constraints\": [\n        \"不要重复复制完整基础 IP\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/communications-electronics-hardware.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"package_id\": \"communications-electronics-hardware-core\",\n  \"domain_id\": \"communications-electronics-hardware\",\n  \"title\": \"通信/电子/硬件工程领域需求澄清术语包（草案）\",\n  \"version\": \"0.1.0\",\n  \"status\": \"draft\",\n  \"intents\": [\n    {\n      \"id\": \"design\",\n      \"action\": \"设计\",\n      \"object\": \"通信/电子/硬件工程相关产物\"\n    },\n    {\n      \"id\": \"diagnose\",\n      \"action\": \"排查\",\n      \"object\": \"通信/电子/硬件工程相关问题\"\n    }\n  ],\n  \"dimensions\": [\n    {\n      \"id\": \"scope\",\n      \"name\": \"系统对象\",\n      \"definition\": \"系统对象的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"method\",\n      \"name\": \"接口与约束\",\n      \"definition\": \"接口与约束的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"symptom\",\n      \"name\": \"问题现象\",\n      \"definition\": \"用户观察到的具体问题、时间、范围和影响。\",\n      \"value_type\": \"free_text\"\n    }\n  ],\n  \"terms\": [\n    {\n      \"id\": \"core-1\",\n      \"term\": \"系统架构\",\n      \"plain_language\": \"明确设备、链路和协议组成\",\n      \"benefit\": \"方便拆解系统\",\n      \"cost\": \"前期建模需要时间\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-2\",\n      \"term\": \"接口规格\",\n      \"plain_language\": \"明确电气、机械、通信和软件接口\",\n      \"benefit\": \"提高互操作性\",\n      \"cost\": \"规格约束更严格\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-3\",\n      \"term\": \"带宽时延\",\n      \"plain_language\": \"明确吞吐量、延迟和抖动目标\",\n      \"benefit\": \"性能可测量\",\n      \"cost\": \"需要测试环境\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-4\",\n      \"term\": \"功耗散热\",\n      \"plain_language\": \"明确供电、热设计和工作温度\",\n      \"benefit\": \"降低硬件故障\",\n      \"cost\": \"可能增加体积成本\",\n      \"dimension_id\": \"method\"\n    },\n    {\n      \"id\": \"core-5\",\n      \"term\": \"兼容认证\",\n      \"plain_language\": \"明确标准、频段和认证要求\",\n      \"benefit\": \"减少上市风险\",\n      \"cost\": \"测试周期更长\",\n      \"dimension_id\": \"method\"\n    }\n  ],\n  \"mappings\": [\n    {\n      \"expression\": \"专业一点/做好一点\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"design\"\n      ],\n      \"dimension_ids\": [\n        \"scope\",\n        \"method\"\n      ],\n      \"reason\": \"需要先明确领域对象和方法约束。\"\n    }\n  ]\n}\n",
    "terms/component-design/damped-bottom-sheet.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"damped-bottom-sheet\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"component-design\",\n  \"title\": \"阻尼弹性抽屉\",\n  \"knowledge_type\": \"template\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"generate-component\",\n    \"spec-component\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"damped-bottom-sheet\",\n      \"name\": \"阻尼弹性抽屉\",\n      \"plain_language\": \"Bottom Sheet 根据位移和速度在 closed/peek/half/full 锚点间吸附，越界呈 rubber band 回弹。\",\n      \"when_to_use\": \"需要给 AI 编程或设计工具描述可复用组件\",\n      \"parameters\": [\n        \"rubber band\",\n        \"velocity projection\",\n        \"snap points\",\n        \"spring snap\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"interruption\"\n      ],\n      \"constraints\": [],\n      \"aliases\": []\n    },\n    {\n      \"id\": \"tear-line-panel\",\n      \"name\": \"撕线弹出面板\",\n      \"plain_language\": \"面板顶部用虚线撕口和锯齿 SVG 表达可拖拽边界，下拉跟手映射撕裂进度，超过阈值弹簧展开，未达则回弹。\",\n      \"when_to_use\": \"需要通过撕口下拉打开局部面板，并把撕裂感转成可衡量的位移和开口进度\",\n      \"parameters\": [\n        \"顶部 2px 虚线撕口\",\n        \"SVG path 锯齿\",\n        \"下拉超过 80px 展开\",\n        \"展开到 40% 屏高\",\n        \"spring stiffness 260\",\n        \"damping 28\"\n      ],\n      \"related\": [\n        \"damped-bottom-sheet\",\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"展开时页面禁止滚动\",\n        \"快速甩动按释放速度判定\",\n        \"中途松手未达阈值必须回弹\",\n        \"锯齿开口宽度与拖拽进度 0→1 同步\"\n      ],\n      \"aliases\": [\n        \"撕线面板\",\n        \"撕口弹出\",\n        \"tear line panel\"\n      ],\n      \"state_machine\": [\n        \"closed\",\n        \"dragging\",\n        \"expanded\",\n        \"returning\"\n      ],\n      \"animation_sequence\": [\n        \"grab tear line\",\n        \"follow drag\",\n        \"threshold decision\",\n        \"spring expand or return\"\n      ],\n      \"spatial_anchor\": [\n        \"撕口是唯一拖拽起点\",\n        \"面板从顶部边界展开\",\n        \"展开高度以视口百分比表达\"\n      ],\n      \"accessibility\": [\n        \"键盘 Enter/Space 打开\",\n        \"aria-expanded 表达面板状态\",\n        \"减少动态时直接切换并保留抓手提示\"\n      ],\n      \"acceptance\": [\n        \"跟手位移无延迟\",\n        \"80px 阈值稳定\",\n        \"未达阈值回弹无跳变\",\n        \"展开时不发生背景滚动\"\n      ]\n    }\n  ]\n}\n",
    "terms/component-design/diffused-glow-border.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"diffused-glow-border\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"component-design\",\n  \"title\": \"动态弥散光晕边框\",\n  \"knowledge_type\": \"template\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"generate-component\",\n    \"spec-component\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"diffused-glow-border\",\n      \"name\": \"动态弥散光晕边框\",\n      \"plain_language\": \"用 conic-gradient 旋转描边，叠加 blur+opacity 呼吸背光，并用 mask 保留描边区域。\",\n      \"when_to_use\": \"需要给 AI 编程或设计工具描述可复用组件\",\n      \"parameters\": [\n        \"conic-gradient\",\n        \"breathing glow\",\n        \"blur halo\",\n        \"mask composite\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"interruption\"\n      ],\n      \"constraints\": [],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/component-design/elastic-press-feedback.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"elastic-press-feedback\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"component-design\",\n  \"title\": \"弹性微缩触觉反馈\",\n  \"knowledge_type\": \"template\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"generate-component\",\n    \"spec-component\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"elastic-press-feedback\",\n      \"name\": \"弹性微缩触觉反馈\",\n      \"plain_language\": \"按钮按压缩到 0.96 并增加内阴影，释放时 Spring 轻微超调回 1，支持快速连点。\",\n      \"when_to_use\": \"需要给 AI 编程或设计工具描述可复用组件\",\n      \"parameters\": [\n        \"whileTap\",\n        \"scale 0.96\",\n        \"inset shadow\",\n        \"spring overshoot\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"interruption\"\n      ],\n      \"constraints\": [],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/component-design/fluid-capsule-morph.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"fluid-capsule-morph\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"component-design\",\n  \"title\": \"流体胶囊形变\",\n  \"knowledge_type\": \"template\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"generate-component\",\n    \"spec-component\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"fluid-capsule-morph\",\n      \"name\": \"流体胶囊形变\",\n      \"plain_language\": \"胶囊按钮通过 FLIP/shared layout 形变为弹窗，圆角从 999px 过渡到 24px，内容延迟淡入并带遮罩。\",\n      \"when_to_use\": \"需要给 AI 编程或设计工具描述可复用组件\",\n      \"parameters\": [\n        \"fluid morph\",\n        \"FLIP\",\n        \"layout animation\",\n        \"border-radius morph\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"interruption\"\n      ],\n      \"constraints\": [],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/component-design/magnetic-cursor-odometer.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"magnetic-cursor-odometer\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"component-design\",\n  \"title\": \"磁吸游标与滚动码表\",\n  \"knowledge_type\": \"template\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"generate-component\",\n    \"spec-component\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"magnetic-cursor-odometer\",\n      \"name\": \"磁吸游标与滚动码表\",\n      \"plain_language\": \"折线图拖拽时数据点磁吸，顶部数值使用 Odometer 按位滚动，拖拽、吸附和数值用 lerp+spring 联动。\",\n      \"when_to_use\": \"需要给 AI 编程或设计工具描述可复用组件\",\n      \"parameters\": [\n        \"magnetic snap\",\n        \"odometer\",\n        \"tabular-nums\",\n        \"lerp\",\n        \"spring follow\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"interruption\"\n      ],\n      \"constraints\": [],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/component-design/shared-element-expand.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"shared-element-expand\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"component-design\",\n  \"title\": \"共享元素无缝展开\",\n  \"knowledge_type\": \"template\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"generate-component\",\n    \"spec-component\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"shared-element-expand\",\n      \"name\": \"共享元素无缝展开\",\n      \"plain_language\": \"列表卡片到详情页使用同一 layoutId，图片、标题和容器连续缩放，背景遮罩淡入，避免跳变。\",\n      \"when_to_use\": \"需要给 AI 编程或设计工具描述可复用组件\",\n      \"parameters\": [\n        \"shared element transition\",\n        \"layoutId\",\n        \"matched geometry\",\n        \"continuous scale\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"interruption\"\n      ],\n      \"constraints\": [],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/component-design/spring-stagger-flow.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"spring-stagger-flow\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"component-design\",\n  \"title\": \"物理弹簧交错流\",\n  \"knowledge_type\": \"template\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"generate-component\",\n    \"spec-component\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"spring-stagger-flow\",\n      \"name\": \"物理弹簧交错流\",\n      \"plain_language\": \"列表子项按 index*0.03–0.06s 交错，从 y:20、opacity:0 进入并带轻微 spring。\",\n      \"when_to_use\": \"需要给 AI 编程或设计工具描述可复用组件\",\n      \"parameters\": [\n        \"staggerChildren\",\n        \"spring cascade\",\n        \"y-offset\",\n        \"stagger delay\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"interruption\"\n      ],\n      \"constraints\": [],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/component-design/tilt-light-panel.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"tilt-light-panel\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"component-design\",\n  \"title\": \"3D 倾斜光影面板\",\n  \"knowledge_type\": \"template\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"generate-component\",\n    \"spec-component\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"tilt-light-panel\",\n      \"name\": \"3D 倾斜光影面板\",\n      \"plain_language\": \"监听 pointermove/touchmove 计算 rotateX/rotateY，最大倾斜 8–12°，叠加随指针移动的径向高光，松手用 Spring 回正。\",\n      \"when_to_use\": \"需要给 AI 编程或设计工具描述可复用组件\",\n      \"parameters\": [\n        \"pointer tracking\",\n        \"perspective\",\n        \"preserve-3d\",\n        \"radial-gradient\",\n        \"spring damping\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"interruption\"\n      ],\n      \"constraints\": [],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/composition/composition-language.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"composition-language\",\n  \"domain_id\": \"ai-aigc-meta-skills\",\n  \"subdomain_id\": \"composition\",\n  \"title\": \"构图语言\",\n  \"knowledge_type\": \"term\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"write-image-prompt\",\n    \"audit-image-prompt\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"composition-language\",\n      \"name\": \"主体位置与视觉动线\",\n      \"plain_language\": \"用中心、三分、对称、留白、前中后景和视觉引导线描述构图。\",\n      \"when_to_use\": \"需要主体位置和画面平衡可控时\",\n      \"parameters\": [\n        \"subject placement\",\n        \"negative space\",\n        \"foreground/midground/background\",\n        \"leading lines\"\n      ],\n      \"related\": [\n        \"camera-language\",\n        \"prompt-blocks\"\n      ],\n      \"constraints\": [\n        \"构图要服务内容主角，不要为了术语堆叠\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/dashboard/grid-glass-dashboard.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"grid-glass-dashboard\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"dashboard-design\",\n  \"title\": \"方格纸玻璃卡 Dashboard\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-dashboard\",\n    \"audit-dashboard\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"grid-glass-dashboard\",\n      \"name\": \"方格纸玻璃卡 Dashboard\",\n      \"plain_language\": \"用 44px 方格纸做底，让半透明白玻璃卡透出底层网格，指标按数值形成阶梯。\",\n      \"when_to_use\": \"Dashboard 需要有明确审美方向且避免模板化\",\n      \"parameters\": [\n        \"44px 网格底\",\n        \"半透明白玻璃\",\n        \"指标阶梯排列\",\n        \"实心/斜纹/渐变填充\"\n      ],\n      \"related\": [\n        \"design-tokens\",\n        \"layout-patterns\"\n      ],\n      \"constraints\": [\n        \"不要所有卡片一样大\",\n        \"不要默认蓝紫渐变\",\n        \"不要模板化侧边栏+四张 KPI 卡\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/dashboard/grouped-sidebar-dashboard.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"grouped-sidebar-dashboard\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"dashboard-design\",\n  \"title\": \"分组侧边栏 Dashboard\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-dashboard\",\n    \"audit-dashboard\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"grouped-sidebar-dashboard\",\n      \"name\": \"分组侧边栏 Dashboard\",\n      \"plain_language\": \"把导航拆成三组并用大留白分隔，主区用超大细体字、三组数字和横向比例条建立节奏。\",\n      \"when_to_use\": \"Dashboard 需要有明确审美方向且避免模板化\",\n      \"parameters\": [\n        \"三组导航\",\n        \"10px 大写灰字组名\",\n        \"底部头像/用量条\",\n        \"横向比例条替代饼图\"\n      ],\n      \"related\": [\n        \"design-tokens\",\n        \"layout-patterns\"\n      ],\n      \"constraints\": [\n        \"不要所有卡片一样大\",\n        \"不要默认蓝紫渐变\",\n        \"不要模板化侧边栏+四张 KPI 卡\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/dashboard/high-contrast.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"high-contrast\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"dashboard-design\",\n  \"title\": \"强对比视觉型\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-dashboard\",\n    \"audit-dashboard\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"high-contrast\",\n      \"name\": \"强对比视觉型\",\n      \"plain_language\": \"一张主卡占据视觉中心，用高饱和对比和大数字建立层级。\",\n      \"when_to_use\": \"Dashboard 需要有明确审美方向且避免模板化\",\n      \"parameters\": [\n        \"主卡占视觉中心\",\n        \"硬阴影\",\n        \"大数字\",\n        \"非对称\"\n      ],\n      \"related\": [\n        \"design-tokens\",\n        \"layout-patterns\"\n      ],\n      \"constraints\": [\n        \"不要所有卡片一样大\",\n        \"不要默认蓝紫渐变\",\n        \"不要模板化侧边栏+四张 KPI 卡\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/dashboard/image-led-content.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"image-led-content\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"dashboard-design\",\n  \"title\": \"图卡内容型\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-dashboard\",\n    \"audit-dashboard\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"image-led-content\",\n      \"name\": \"图卡内容型\",\n      \"plain_language\": \"让真实图片成为主角，文字叠加且只保留一个强调色。\",\n      \"when_to_use\": \"Dashboard 需要有明确审美方向且避免模板化\",\n      \"parameters\": [\n        \"大图卡片\",\n        \"文字叠加\",\n        \"单一 CTA 色\"\n      ],\n      \"related\": [\n        \"design-tokens\",\n        \"layout-patterns\"\n      ],\n      \"constraints\": [\n        \"不要所有卡片一样大\",\n        \"不要默认蓝紫渐变\",\n        \"不要模板化侧边栏+四张 KPI 卡\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/dashboard/immersive-atmosphere.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"immersive-atmosphere\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"dashboard-design\",\n  \"title\": \"氛围沉浸型\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-dashboard\",\n    \"audit-dashboard\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"immersive-atmosphere\",\n      \"name\": \"氛围沉浸型\",\n      \"plain_language\": \"深色底、雾面渐变、玻璃卡片和轻微动态光斑。\",\n      \"when_to_use\": \"Dashboard 需要有明确审美方向且避免模板化\",\n      \"parameters\": [\n        \"GPU 负载预算\",\n        \"移动端降级\",\n        \"模糊光斑\"\n      ],\n      \"related\": [\n        \"design-tokens\",\n        \"layout-patterns\"\n      ],\n      \"constraints\": [\n        \"不要所有卡片一样大\",\n        \"不要默认蓝紫渐变\",\n        \"不要模板化侧边栏+四张 KPI 卡\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/dashboard/layout-patterns.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"layout-patterns\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"dashboard-design\",\n  \"title\": \"高级布局模式\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-dashboard\",\n    \"audit-dashboard\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"layout-patterns\",\n      \"name\": \"高级布局模式\",\n      \"plain_language\": \"用错位、大图、非对称、层叠、留白和破格出血建立布局性格。\",\n      \"when_to_use\": \"Dashboard 需要有明确审美方向且避免模板化\",\n      \"parameters\": [\n        \"错位按 8/12/16px 节奏\",\n        \"7:3 或 8:2 比例\",\n        \"只破一处网格\",\n        \"安全区内留信息\"\n      ],\n      \"related\": [\n        \"design-tokens\",\n        \"layout-patterns\"\n      ],\n      \"constraints\": [\n        \"不要所有卡片一样大\",\n        \"不要默认蓝紫渐变\",\n        \"不要模板化侧边栏+四张 KPI 卡\"\n      ],\n      \"aliases\": [\n        \"Dashboard三层规范\",\n        \"术语视觉执行分层\"\n      ],\n      \"contract_ref\": \"templates/dashboard/dashboard-style-system.json\"\n    },\n    {\n      \"id\": \"color-staggered-dashboard\",\n      \"name\": \"多彩错列布局\",\n      \"plain_language\": \"非对称双列；大卡主位；多彩卡片；斜纹/实心状态\",\n      \"when_to_use\": \"需要多彩错列布局的信息结构、视觉参数与交互联动规范时\",\n      \"parameters\": [\n        \"grid_ratio\",\n        \"radius_px\",\n        \"title_weight\"\n      ],\n      \"related\": [\n        \"high-contrast\"\n      ],\n      \"constraints\": [\n        \"布局、视觉和执行状态分层；具体参数只属于本例，不作为同类页面默认值\"\n      ],\n      \"aliases\": [\n        \"多彩错列\",\n        \"非对称双列\",\n        \"容量圆点独立切换\"\n      ],\n      \"contract_ref\": \"templates/dashboard/dashboard-style-system.json\",\n      \"layout\": \"多彩错列布局\",\n      \"termSkill\": [\n        \"非对称双列\",\n        \"大卡主位\",\n        \"多彩卡片\",\n        \"斜纹/实心状态\"\n      ],\n      \"uiSkill\": {\n        \"background\": \"近黑\",\n        \"palette\": [\n          \"珊瑚\",\n          \"长春花\",\n          \"冰蓝\",\n          \"鼠尾草\"\n        ],\n        \"hierarchy\": \"大卡主位，斜纹/实心区分状态\"\n      },\n      \"agentExec\": [\n        {\n          \"event\": \"select_day\",\n          \"example\": \"点击 Thu\",\n          \"writes\": [\n            \"selectedDay\"\n          ],\n          \"updates\": [\n            \"barSeries\",\n            \"dayLabel\"\n          ],\n          \"preserves\": [\n            \"capacitySelection\"\n          ]\n        },\n        {\n          \"event\": \"toggle_capacity\",\n          \"example\": \"独立切换容量圆点\",\n          \"writes\": [\n            \"capacitySelection\"\n          ],\n          \"updates\": [\n            \"capacityDots\"\n          ],\n          \"preserves\": [\n            \"selectedDay\"\n          ]\n        }\n      ],\n      \"state\": {\n        \"model_status\": \"proposed_implementation\",\n        \"source\": {\n          \"selectedDay\": \"用户选择的日期；不预设初值\",\n          \"capacitySelection\": \"独立容量选择\"\n        },\n        \"derived\": {\n          \"barSeries\": \"data[selectedDay].bars\",\n          \"dayLabel\": \"selectedDay\",\n          \"capacityDots\": \"capacitySelection\"\n        },\n        \"invariants\": [\n          \"日期仅驱动柱形与标签；不改变容量选择\",\n          \"容量操作不改变日期或柱形数据\"\n        ]\n      },\n      \"tokens\": {\n        \"scope\": \"provided_example\",\n        \"values\": {\n          \"grid_ratio\": [\n            1.42,\n            1\n          ],\n          \"radius_px\": 26,\n          \"title_weight\": 800\n        }\n      },\n      \"evidence\": {\n        \"status\": \"provided\",\n        \"source\": \"user_dashboard_brief\",\n        \"state_model\": \"实现建议，不宣称为原始产品已有逻辑\"\n      }\n    },\n    {\n      \"id\": \"industrial-zones-dashboard\",\n      \"name\": \"工业分区布局\",\n      \"plain_language\": \"右侧固定操作区；左侧状态筛选；玻璃表格；选中态联动\",\n      \"when_to_use\": \"需要工业分区布局的信息结构、视觉参数与交互联动规范时\",\n      \"parameters\": [\n        \"accent_hex\",\n        \"secondary_accent_hex\",\n        \"grid_ratio\",\n        \"first_row_px\",\n        \"row_height_px\"\n      ],\n      \"related\": [\n        \"grid-glass-dashboard\"\n      ],\n      \"constraints\": [\n        \"布局、视觉和执行状态分层；具体参数只属于本例，不作为同类页面默认值\"\n      ],\n      \"aliases\": [\n        \"工业分区\",\n        \"玻璃表格\",\n        \"低库存筛选\",\n        \"选中物料联动补货卡\"\n      ],\n      \"contract_ref\": \"templates/dashboard/dashboard-style-system.json\",\n      \"layout\": \"工业分区布局\",\n      \"termSkill\": [\n        \"右侧固定操作区\",\n        \"左侧状态筛选\",\n        \"玻璃表格\",\n        \"选中态联动\"\n      ],\n      \"uiSkill\": {\n        \"background\": \"雾灰\",\n        \"material\": \"玻璃表格\",\n        \"layout\": \"左侧筛选 / 中部表格 / 右侧固定操作区\"\n      },\n      \"agentExec\": [\n        {\n          \"event\": \"filter_low_stock\",\n          \"writes\": [\n            \"stockFilter\"\n          ],\n          \"sets\": {\n            \"stockFilter\": 2\n          },\n          \"updates\": [\n            \"visibleRows\"\n          ],\n          \"preserves\": [\n            \"replenishmentCount\"\n          ]\n        },\n        {\n          \"event\": \"select_item\",\n          \"example\": \"选中 Prime 85mm\",\n          \"writes\": [\n            \"selectedItemId\"\n          ],\n          \"updates\": [\n            \"replenishmentCard\"\n          ],\n          \"preserves\": [\n            \"replenishmentCount\"\n          ]\n        },\n        {\n          \"event\": \"add_to_replenishment\",\n          \"writes\": [\n            \"replenishmentItems\"\n          ],\n          \"updates\": [\n            \"replenishmentCount\"\n          ],\n          \"example_transition\": {\n            \"before\": 7,\n            \"after\": 8\n          },\n          \"guard\": \"成功加入一个新项目才增加；重复、失败与空选择不得重复计数\"\n        }\n      ],\n      \"state\": {\n        \"model_status\": \"proposed_implementation\",\n        \"source\": {\n          \"stockFilter\": \"st 筛选码；低库存 st=2\",\n          \"selectedItemId\": \"稳定物料 ID，不用行号\",\n          \"replenishmentItems\": \"待补货集合\"\n        },\n        \"derived\": {\n          \"visibleRows\": \"items filtered by stockFilter\",\n          \"replenishmentCard\": \"items[selectedItemId]\",\n          \"replenishmentCount\": \"count(replenishmentItems)\"\n        },\n        \"invariants\": [\n          \"筛选不应伪装成新增补货\",\n          \"选中物料与补货卡一致\",\n          \"7→8 是示例断言，不是写死计数；重复加入策略需确认\"\n        ]\n      },\n      \"tokens\": {\n        \"scope\": \"provided_example\",\n        \"values\": {\n          \"accent_hex\": \"#F3EB30\",\n          \"secondary_accent_hex\": \"#FB9350\",\n          \"grid_ratio\": [\n            1.02,\n            1,\n            0.72\n          ],\n          \"first_row_px\": 196,\n          \"row_height_px\": 60\n        }\n      },\n      \"evidence\": {\n        \"status\": \"provided\",\n        \"source\": \"user_dashboard_brief\",\n        \"state_model\": \"实现建议，不宣称为原始产品已有逻辑\"\n      }\n    },\n    {\n      \"id\": \"axial-observatory-dashboard\",\n      \"name\": \"中轴观测布局\",\n      \"plain_language\": \"中央主视图；双侧信息栏；共享选中态；时间轴预览\",\n      \"when_to_use\": \"需要中轴观测布局的信息结构、视觉参数与交互联动规范时\",\n      \"parameters\": [\n        \"text_hex\",\n        \"accent_hex\",\n        \"columns\",\n        \"timeline_px\"\n      ],\n      \"related\": [\n        \"immersive-atmosphere\"\n      ],\n      \"constraints\": [\n        \"布局、视觉和执行状态分层；具体参数只属于本例，不作为同类页面默认值\"\n      ],\n      \"aliases\": [\n        \"中轴观测\",\n        \"共享选中态\",\n        \"时间轴预览\",\n        \"M33联动\"\n      ],\n      \"contract_ref\": \"templates/dashboard/dashboard-style-system.json\",\n      \"layout\": \"中轴观测布局\",\n      \"termSkill\": [\n        \"中央主视图\",\n        \"双侧信息栏\",\n        \"共享选中态\",\n        \"时间轴预览\"\n      ],\n      \"uiSkill\": {\n        \"background\": \"深蓝暮色\",\n        \"typography\": \"衬线大编号配等宽读数\",\n        \"layout\": \"两侧固定宽度，中央主视图自适应\"\n      },\n      \"agentExec\": [\n        {\n          \"event\": \"select_target\",\n          \"example\": \"选中 M33\",\n          \"writes\": [\n            \"selectedTargetId\"\n          ],\n          \"updates\": [\n            \"queueSelection\",\n            \"readings\",\n            \"starMap\",\n            \"curve\"\n          ],\n          \"preserves\": [\n            \"previewTime\"\n          ]\n        },\n        {\n          \"event\": \"scrub_timeline\",\n          \"writes\": [\n            \"previewTime\"\n          ],\n          \"updates\": [\n            \"queueSelection\",\n            \"readings\",\n            \"starMap\",\n            \"curve\"\n          ],\n          \"preserves\": [\n            \"selectedTargetId\"\n          ],\n          \"guard\": \"每个面板使用同一目标与预览时间；过期异步响应不可覆盖当前选择\"\n        }\n      ],\n      \"state\": {\n        \"model_status\": \"proposed_implementation\",\n        \"source\": {\n          \"selectedTargetId\": \"共享目标 ID\",\n          \"previewTime\": \"共享预览时间\"\n        },\n        \"derived\": {\n          \"queueSelection\": \"selectedTargetId at previewTime\",\n          \"readings\": \"derive(selectedTargetId, previewTime)\",\n          \"starMap\": \"derive(selectedTargetId, previewTime)\",\n          \"curve\": \"derive(selectedTargetId, previewTime)\"\n        },\n        \"invariants\": [\n          \"选中 M33 时队列、读数、星图、曲线一致\",\n          \"拖动时间轴后整页使用同一时间，不混用旧请求结果\"\n        ]\n      },\n      \"tokens\": {\n        \"scope\": \"provided_example\",\n        \"values\": {\n          \"text_hex\": \"#E9E4D8\",\n          \"accent_hex\": \"#F2B24C\",\n          \"columns\": [\n            \"292px\",\n            \"minmax(0, 1fr)\",\n            \"292px\"\n          ],\n          \"timeline_px\": 196\n        }\n      },\n      \"evidence\": {\n        \"status\": \"provided\",\n        \"source\": \"user_dashboard_brief\",\n        \"state_model\": \"实现建议，不宣称为原始产品已有逻辑\"\n      }\n    },\n    {\n      \"id\": \"glass-dot-matrix-dashboard\",\n      \"name\": \"玻璃点阵布局\",\n      \"plain_language\": \"浅灰玻璃；点阵读数；月份切换；指标趋势联动\",\n      \"when_to_use\": \"需要玻璃点阵布局的信息结构、视觉参数与交互联动规范时\",\n      \"parameters\": [\n        \"radius_px\",\n        \"gap_px\"\n      ],\n      \"related\": [\n        \"grid-glass-dashboard\"\n      ],\n      \"constraints\": [\n        \"布局、视觉和执行状态分层；具体参数只属于本例，不作为同类页面默认值\"\n      ],\n      \"aliases\": [\n        \"玻璃点阵\",\n        \"点阵读数\",\n        \"月份指标联动\",\n        \"二氧化碳趋势\"\n      ],\n      \"contract_ref\": \"templates/dashboard/dashboard-style-system.json\",\n      \"layout\": \"玻璃点阵布局\",\n      \"termSkill\": [\n        \"浅灰玻璃\",\n        \"点阵读数\",\n        \"月份切换\",\n        \"指标趋势联动\"\n      ],\n      \"uiSkill\": {\n        \"background\": \"浅灰\",\n        \"material\": \"玻璃\",\n        \"accent\": \"荧光黄绿\",\n        \"readout\": \"点阵读数\"\n      },\n      \"agentExec\": [\n        {\n          \"event\": \"select_month\",\n          \"writes\": [\n            \"selectedMonth\"\n          ],\n          \"updates\": [\n            \"metricReadout\",\n            \"trendSeries\"\n          ],\n          \"preserves\": [\n            \"selectedMetric\"\n          ]\n        },\n        {\n          \"event\": \"select_monthly_metric\",\n          \"example\": \"点击 8 月评分指标\",\n          \"writes\": [\n            \"selectedMonth\",\n            \"selectedMetric\"\n          ],\n          \"example_values\": {\n            \"selectedMonth\": 8,\n            \"selectedMetric\": \"score\"\n          },\n          \"updates\": [\n            \"metricReadout\",\n            \"trendSeries\"\n          ],\n          \"guard\": \"月份与指标在同一次状态转换中提交\"\n        },\n        {\n          \"event\": \"select_carbon_metric\",\n          \"example\": \"选择二氧化碳\",\n          \"writes\": [\n            \"selectedMetric\",\n            \"trendVisible\"\n          ],\n          \"example_values\": {\n            \"selectedMetric\": \"co2\",\n            \"trendVisible\": true\n          },\n          \"updates\": [\n            \"metricReadout\",\n            \"trendSeries\"\n          ],\n          \"preserves\": [\n            \"selectedMonth\"\n          ]\n        }\n      ],\n      \"state\": {\n        \"model_status\": \"proposed_implementation\",\n        \"source\": {\n          \"selectedMonth\": \"共享月份\",\n          \"selectedMetric\": \"共享指标\",\n          \"trendVisible\": \"趋势浮层可见状态\"\n        },\n        \"derived\": {\n          \"metricReadout\": \"metrics[selectedMonth][selectedMetric]\",\n          \"trendSeries\": \"series[selectedMonth][selectedMetric]\"\n        },\n        \"invariants\": [\n          \"点 8 月评分后所有月份视图回到 8 月\",\n          \"切换二氧化碳不丢失月份，趋势与读数使用同一指标\",\n          \"关闭趋势浮层不重置月份或指标\"\n        ]\n      },\n      \"tokens\": {\n        \"scope\": \"provided_example\",\n        \"values\": {\n          \"radius_px\": 30,\n          \"gap_px\": 14\n        }\n      },\n      \"evidence\": {\n        \"status\": \"provided\",\n        \"source\": \"user_dashboard_brief\",\n        \"state_model\": \"实现建议，不宣称为原始产品已有逻辑\"\n      }\n    },\n    {\n      \"id\": \"warm-three-column-dashboard\",\n      \"name\": \"暖色三栏布局\",\n      \"plain_language\": \"深浅分区；三栏控制台；模式与单位同步\",\n      \"when_to_use\": \"需要暖色三栏布局的信息结构、视觉参数与交互联动规范时\",\n      \"parameters\": [\n        \"column_sizing\"\n      ],\n      \"related\": [\n        \"warm-minimal\",\n        \"single-dark-accent-dashboard\"\n      ],\n      \"constraints\": [\n        \"布局、视觉和执行状态分层；具体参数只属于本例，不作为同类页面默认值\"\n      ],\n      \"aliases\": [\n        \"暖色三栏\",\n        \"三栏控制台\",\n        \"卧室房间联动\",\n        \"模式单位同步\"\n      ],\n      \"contract_ref\": \"templates/dashboard/dashboard-style-system.json\",\n      \"layout\": \"暖色三栏布局\",\n      \"termSkill\": [\n        \"深浅分区\",\n        \"三栏控制台\",\n        \"模式与单位同步\"\n      ],\n      \"uiSkill\": {\n        \"background\": \"奶油\",\n        \"sidebar\": \"炭黑\",\n        \"accent\": \"琥珀\",\n        \"layout\": \"两侧固定，中间自适应；缺少固定宽度与窄屏断点数值\"\n      },\n      \"agentExec\": [\n        {\n          \"event\": \"select_room\",\n          \"status\": \"needs_confirmation\",\n          \"candidate\": \"点击卧室房名、照片或温度卡，联动中间房间详情与右侧控制\",\n          \"writes\": [\n            \"selectedRoomId\"\n          ],\n          \"updates\": [\n            \"roomDetails\",\n            \"roomControls\"\n          ]\n        },\n        {\n          \"event\": \"change_mode\",\n          \"status\": \"needs_confirmation\",\n          \"candidate\": \"切换模式同步单位与读数，但模式枚举、单位映射与换算规则未知\",\n          \"writes\": [\n            \"mode\"\n          ],\n          \"updates\": [\n            \"displayUnit\",\n            \"displayReading\"\n          ],\n          \"guard\": \"确认映射前不推定模式切换等于摄氏/华氏切换\"\n        }\n      ],\n      \"state\": {\n        \"model_status\": \"proposed_implementation\",\n        \"source\": {\n          \"selectedRoomId\": \"候选共享房间 ID，待确认\",\n          \"mode\": \"模式枚举待确认\",\n          \"canonicalReading\": \"基础物理量与存储单位待确认\"\n        },\n        \"derived\": {\n          \"roomDetails\": \"candidate: rooms[selectedRoomId]\",\n          \"roomControls\": \"candidate: rooms[selectedRoomId]\",\n          \"displayUnit\": \"blocked: mode-to-unit mapping required\",\n          \"displayReading\": \"blocked: unit conversion rule required\"\n        },\n        \"invariants\": [\n          \"交互建议不得当成已确认需求\",\n          \"单位变化时数值必须按明确规则同步换算；不可只替换单位文字\",\n          \"确认前只使用已提供的布局与视觉信息\"\n        ]\n      },\n      \"tokens\": {\n        \"scope\": \"provided_example\",\n        \"values\": {\n          \"column_sizing\": [\n            \"fixed\",\n            \"fluid\",\n            \"fixed\"\n          ]\n        }\n      },\n      \"evidence\": {\n        \"status\": \"needs_confirmation\",\n        \"source\": \"user_dashboard_brief\",\n        \"state_model\": \"实现建议，不宣称为原始产品已有逻辑\",\n        \"confirmed_layers\": [\n          \"layout\",\n          \"termSkill\",\n          \"uiSkill\"\n        ],\n        \"missing_inputs\": [\n          \"房名/照片/温度卡点击后的完整逻辑\",\n          \"模式枚举及单位映射、换算规则\"\n        ]\n      }\n    }\n  ],\n  \"default_entry_id\": \"layout-patterns\"\n}\n",
    "terms/dashboard/minimal-data.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"minimal-data\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"dashboard-design\",\n  \"title\": \"极简数据型\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-dashboard\",\n    \"audit-dashboard\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"minimal-data\",\n      \"name\": \"极简数据型\",\n      \"plain_language\": \"以灰阶和一个强调色组织数据，去网格线和多余标签。\",\n      \"when_to_use\": \"Dashboard 需要有明确审美方向且避免模板化\",\n      \"parameters\": [\n        \"灰阶为主\",\n        \"胶囊柱状图\",\n        \"标签精简\"\n      ],\n      \"related\": [\n        \"design-tokens\",\n        \"layout-patterns\"\n      ],\n      \"constraints\": [\n        \"不要所有卡片一样大\",\n        \"不要默认蓝紫渐变\",\n        \"不要模板化侧边栏+四张 KPI 卡\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/dashboard/single-dark-accent-dashboard.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"single-dark-accent-dashboard\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"dashboard-design\",\n  \"title\": \"单深色单强调色 Dashboard\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-dashboard\",\n    \"audit-dashboard\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"single-dark-accent-dashboard\",\n      \"name\": \"单深色单强调色 Dashboard\",\n      \"plain_language\": \"整页只保留一条深色侧边栏和一个强调色，当前项、主按钮和命中图表共享同一强调色。\",\n      \"when_to_use\": \"Dashboard 需要有明确审美方向且避免模板化\",\n      \"parameters\": [\n        \"唯一深色侧边栏\",\n        \"单一强调色\",\n        \"侧栏底部强调色卡片\",\n        \"其余区域保持浅色\"\n      ],\n      \"related\": [\n        \"design-tokens\",\n        \"layout-patterns\"\n      ],\n      \"constraints\": [\n        \"不要所有卡片一样大\",\n        \"不要默认蓝紫渐变\",\n        \"不要模板化侧边栏+四张 KPI 卡\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/dashboard/tonal-dark-dashboard.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"tonal-dark-dashboard\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"dashboard-design\",\n  \"title\": \"暗底明度分层 Dashboard\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-dashboard\",\n    \"audit-dashboard\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"tonal-dark-dashboard\",\n      \"name\": \"暗底明度分层 Dashboard\",\n      \"plain_language\": \"近黑底上只用明度区分卡片层级，不画描边；主读数放大，日期用圆点阵列表达。\",\n      \"when_to_use\": \"Dashboard 需要有明确审美方向且避免模板化\",\n      \"parameters\": [\n        \"近黑底\",\n        \"卡片亮一档\",\n        \"无描边\",\n        \"超大主读数\",\n        \"圆点阵列+斜纹空格\"\n      ],\n      \"related\": [\n        \"design-tokens\",\n        \"layout-patterns\"\n      ],\n      \"constraints\": [\n        \"不要所有卡片一样大\",\n        \"不要默认蓝紫渐变\",\n        \"不要模板化侧边栏+四张 KPI 卡\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/dashboard/warm-minimal.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"warm-minimal\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"dashboard-design\",\n  \"title\": \"暖调留白型\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-dashboard\",\n    \"audit-dashboard\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"warm-minimal\",\n      \"name\": \"暖调留白型\",\n      \"plain_language\": \"奶油底色、单一黄色强调、细边框和弱阴影，保留呼吸感。\",\n      \"when_to_use\": \"Dashboard 需要有明确审美方向且避免模板化\",\n      \"parameters\": [\n        \"#F7F3EA\",\n        \"一个主强调色\",\n        \"圆角克制\",\n        \"弱阴影\"\n      ],\n      \"related\": [\n        \"design-tokens\",\n        \"layout-patterns\"\n      ],\n      \"constraints\": [\n        \"不要所有卡片一样大\",\n        \"不要默认蓝紫渐变\",\n        \"不要模板化侧边栏+四张 KPI 卡\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/design-system/living-style-guide-preview.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"living-style-guide-preview\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"design-system\",\n  \"title\": \"设计系统活样式预览\",\n  \"knowledge_type\": \"guideline\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"build-design-system\",\n    \"preview-design-system\",\n    \"audit-design-system\"\n  ],\n  \"verification_required\": true,\n  \"verified_at\": null,\n  \"external_reference_policy\": \"外部预览资源只作待核验线索，不作为运行时事实\",\n  \"entries\": [\n    {\n      \"id\": \"living-style-guide-preview\",\n      \"name\": \"Light/Dark 活样式指南\",\n      \"plain_language\": \"用可直接打开的预览把色板、字体层级、组件状态和设计令牌映射到真实页面效果。\",\n      \"when_to_use\": \"需要让设计评审和 AI 在写代码前先确认视觉方向\",\n      \"parameters\": [\n        \"Light/Dark 双主题\",\n        \"色板与语义色\",\n        \"字体排印层级\",\n        \"按钮/输入框/卡片\",\n        \"hover/click/disabled\",\n        \"token 到页面效果映射\"\n      ],\n      \"related\": [\n        \"design-tokens\",\n        \"dashboard-style-system\",\n        \"accessibility\"\n      ],\n      \"constraints\": [\n        \"预览状态必须可复现\",\n        \"颜色不能是唯一状态表达\",\n        \"外部预览站和品牌资料保持待核验标记\"\n      ],\n      \"aliases\": [],\n      \"verification_checklist\": [\n        \"色板、排印、组件状态齐全\",\n        \"浅色和深色对比度通过\",\n        \"交互状态与 token 一致\",\n        \"截图或浏览器验收后再发布\"\n      ],\n      \"external_references\": [\n        {\n          \"kind\": \"preview-site\",\n          \"status\": \"pending-verification\",\n          \"url\": \"https://awesome-design-md-preview.vercel.app\"\n        }\n      ],\n      \"verified_at\": null,\n      \"verification_required\": true\n    }\n  ]\n}\n",
    "terms/design-tokens/token-system.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"token-system\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"design-tokens\",\n  \"title\": \"设计令牌系统\",\n  \"knowledge_type\": \"parameter\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"define-tokens\",\n    \"audit-tokens\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"token-system\",\n      \"name\": \"底色/强调色/层级/材质/主角五变量\",\n      \"plain_language\": \"Dashboard 的审美方向主要由底色、强调色、布局层级、材质和内容主角决定。\",\n      \"when_to_use\": \"需要让 AI 生成非模板化后台或设计系统\",\n      \"parameters\": [\n        \"背景色\",\n        \"主强调色\",\n        \"文字层级\",\n        \"圆角/阴影\",\n        \"卡片材质\",\n        \"内容主角\"\n      ],\n      \"related\": [\n        \"dashboard-style-system\",\n        \"composition-patterns\"\n      ],\n      \"constraints\": [\n        \"先定 token 再定组件，不要每张卡单独发明规则\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/economics-management-finance.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"package_id\": \"economics-management-finance-core\",\n  \"domain_id\": \"economics-management-finance\",\n  \"title\": \"经济/管理/金融领域需求澄清术语包（草案）\",\n  \"version\": \"0.1.0\",\n  \"status\": \"draft\",\n  \"intents\": [\n    {\n      \"id\": \"design\",\n      \"action\": \"设计\",\n      \"object\": \"经济/管理/金融相关产物\"\n    },\n    {\n      \"id\": \"diagnose\",\n      \"action\": \"排查\",\n      \"object\": \"经济/管理/金融相关问题\"\n    }\n  ],\n  \"dimensions\": [\n    {\n      \"id\": \"scope\",\n      \"name\": \"业务目标\",\n      \"definition\": \"业务目标的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"method\",\n      \"name\": \"指标与风险\",\n      \"definition\": \"指标与风险的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"symptom\",\n      \"name\": \"问题现象\",\n      \"definition\": \"用户观察到的具体问题、时间、范围和影响。\",\n      \"value_type\": \"free_text\"\n    }\n  ],\n  \"terms\": [\n    {\n      \"id\": \"core-1\",\n      \"term\": \"业务目标\",\n      \"plain_language\": \"明确增长、成本、现金流或投资目标\",\n      \"benefit\": \"方案可衡量\",\n      \"cost\": \"目标之间可能冲突\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-2\",\n      \"term\": \"指标口径\",\n      \"plain_language\": \"明确收入、利润、转化或风险指标定义\",\n      \"benefit\": \"避免数据争议\",\n      \"cost\": \"需要统一数据源\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-3\",\n      \"term\": \"时间期限\",\n      \"plain_language\": \"明确短期、中期或长期目标\",\n      \"benefit\": \"方便匹配策略\",\n      \"cost\": \"短期和长期可能冲突\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-4\",\n      \"term\": \"风险承受\",\n      \"plain_language\": \"明确波动、损失和流动性容忍度\",\n      \"benefit\": \"避免只谈收益\",\n      \"cost\": \"需要完整背景\",\n      \"dimension_id\": \"method\"\n    },\n    {\n      \"id\": \"core-5\",\n      \"term\": \"合规边界\",\n      \"plain_language\": \"明确适用监管和披露要求\",\n      \"benefit\": \"降低合规风险\",\n      \"cost\": \"需要专业复核\",\n      \"dimension_id\": \"method\"\n    }\n  ],\n  \"mappings\": [\n    {\n      \"expression\": \"专业一点/做好一点\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"design\"\n      ],\n      \"dimension_ids\": [\n        \"scope\",\n        \"method\"\n      ],\n      \"reason\": \"需要先明确领域对象和方法约束。\"\n    }\n  ]\n}\n",
    "terms/education-sports.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"package_id\": \"education-sports-core\",\n  \"domain_id\": \"education-sports\",\n  \"title\": \"教育/体育/运动领域需求澄清术语包（草案）\",\n  \"version\": \"0.1.0\",\n  \"status\": \"draft\",\n  \"intents\": [\n    {\n      \"id\": \"design\",\n      \"action\": \"设计\",\n      \"object\": \"教育/体育/运动相关产物\"\n    },\n    {\n      \"id\": \"diagnose\",\n      \"action\": \"排查\",\n      \"object\": \"教育/体育/运动相关问题\"\n    }\n  ],\n  \"dimensions\": [\n    {\n      \"id\": \"scope\",\n      \"name\": \"学习目标\",\n      \"definition\": \"学习目标的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"method\",\n      \"name\": \"训练与评价\",\n      \"definition\": \"训练与评价的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"symptom\",\n      \"name\": \"问题现象\",\n      \"definition\": \"用户观察到的具体问题、时间、范围和影响。\",\n      \"value_type\": \"free_text\"\n    }\n  ],\n  \"terms\": [\n    {\n      \"id\": \"core-1\",\n      \"term\": \"学习目标\",\n      \"plain_language\": \"明确知识、技能或表现结果\",\n      \"benefit\": \"方便设计活动\",\n      \"cost\": \"需要定义水平\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-2\",\n      \"term\": \"学习者水平\",\n      \"plain_language\": \"明确年龄、基础和差异\",\n      \"benefit\": \"内容更合适\",\n      \"cost\": \"需要收集背景\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-3\",\n      \"term\": \"训练活动\",\n      \"plain_language\": \"明确练习、反馈和递进方式\",\n      \"benefit\": \"过程更可执行\",\n      \"cost\": \"准备成本更高\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-4\",\n      \"term\": \"评价方式\",\n      \"plain_language\": \"明确测验、作品、表现或比赛\",\n      \"benefit\": \"结果可检查\",\n      \"cost\": \"评价需要时间\",\n      \"dimension_id\": \"method\"\n    },\n    {\n      \"id\": \"core-5\",\n      \"term\": \"安全负荷\",\n      \"plain_language\": \"明确运动强度、恢复和保护措施\",\n      \"benefit\": \"降低训练风险\",\n      \"cost\": \"进度可能更慢\",\n      \"dimension_id\": \"method\"\n    }\n  ],\n  \"mappings\": [\n    {\n      \"expression\": \"专业一点/做好一点\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"design\"\n      ],\n      \"dimension_ids\": [\n        \"scope\",\n        \"method\"\n      ],\n      \"reason\": \"需要先明确领域对象和方法约束。\"\n    }\n  ]\n}\n",
    "terms/history-geography-travel.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"package_id\": \"history-geography-travel-core\",\n  \"domain_id\": \"history-geography-travel\",\n  \"title\": \"历史/地理/旅游领域需求澄清术语包（草案）\",\n  \"version\": \"0.1.0\",\n  \"status\": \"draft\",\n  \"intents\": [\n    {\n      \"id\": \"design\",\n      \"action\": \"设计\",\n      \"object\": \"历史/地理/旅游相关产物\"\n    },\n    {\n      \"id\": \"diagnose\",\n      \"action\": \"排查\",\n      \"object\": \"历史/地理/旅游相关问题\"\n    }\n  ],\n  \"dimensions\": [\n    {\n      \"id\": \"scope\",\n      \"name\": \"对象与范围\",\n      \"definition\": \"对象与范围的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"method\",\n      \"name\": \"时间与证据\",\n      \"definition\": \"时间与证据的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"symptom\",\n      \"name\": \"问题现象\",\n      \"definition\": \"用户观察到的具体问题、时间、范围和影响。\",\n      \"value_type\": \"free_text\"\n    }\n  ],\n  \"terms\": [\n    {\n      \"id\": \"core-1\",\n      \"term\": \"对象范围\",\n      \"plain_language\": \"明确地点、人物、事件或路线\",\n      \"benefit\": \"避免内容过宽\",\n      \"cost\": \"需要限定边界\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-2\",\n      \"term\": \"时代季节\",\n      \"plain_language\": \"明确历史时期或旅行季节\",\n      \"benefit\": \"叙述和计划更准确\",\n      \"cost\": \"需要核对资料\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-3\",\n      \"term\": \"证据来源\",\n      \"plain_language\": \"区分档案、地图、官方信息和传闻\",\n      \"benefit\": \"减少错误传播\",\n      \"cost\": \"研究时间更长\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-4\",\n      \"term\": \"空间路线\",\n      \"plain_language\": \"明确距离、交通和区域关系\",\n      \"benefit\": \"行程更可执行\",\n      \"cost\": \"可能减少备选\",\n      \"dimension_id\": \"method\"\n    },\n    {\n      \"id\": \"core-5\",\n      \"term\": \"文化语境\",\n      \"plain_language\": \"说明当地习俗、禁忌和历史背景\",\n      \"benefit\": \"体验更尊重\",\n      \"cost\": \"需要本地资料\",\n      \"dimension_id\": \"method\"\n    }\n  ],\n  \"mappings\": [\n    {\n      \"expression\": \"专业一点/做好一点\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"design\"\n      ],\n      \"dimension_ids\": [\n        \"scope\",\n        \"method\"\n      ],\n      \"reason\": \"需要先明确领域对象和方法约束。\"\n    }\n  ]\n}\n",
    "terms/image-prompt/prompt-blocks.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"prompt-blocks\",\n  \"domain_id\": \"ai-aigc-meta-skills\",\n  \"subdomain_id\": \"image-prompt\",\n  \"title\": \"图像提示词模块\",\n  \"knowledge_type\": \"template\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"write-image-prompt\",\n    \"audit-image-prompt\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"prompt-blocks\",\n      \"name\": \"主体/材质/光线/构图/质量模块\",\n      \"plain_language\": \"把图像提示词拆为可重排模块，先锁主体，再补材质、光线、构图和质量。\",\n      \"when_to_use\": \"文生图、参考图重绘和产品效果图\",\n      \"parameters\": [\n        \"subject\",\n        \"material\",\n        \"lighting\",\n        \"composition\",\n        \"quality\"\n      ],\n      \"related\": [\n        \"character-ip\",\n        \"negative-constraints\"\n      ],\n      \"constraints\": [\n        \"不要把所有风格词混成一段无层级文本\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/industrial-mechanical-manufacturing.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"package_id\": \"industrial-mechanical-manufacturing-core\",\n  \"domain_id\": \"industrial-mechanical-manufacturing\",\n  \"title\": \"工业/机械/制造领域需求澄清术语包（草案）\",\n  \"version\": \"0.1.0\",\n  \"status\": \"draft\",\n  \"intents\": [\n    {\n      \"id\": \"design\",\n      \"action\": \"设计\",\n      \"object\": \"工业/机械/制造相关产物\"\n    },\n    {\n      \"id\": \"diagnose\",\n      \"action\": \"排查\",\n      \"object\": \"工业/机械/制造相关问题\"\n    }\n  ],\n  \"dimensions\": [\n    {\n      \"id\": \"scope\",\n      \"name\": \"产品与工艺\",\n      \"definition\": \"产品与工艺的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"method\",\n      \"name\": \"质量与安全\",\n      \"definition\": \"质量与安全的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"symptom\",\n      \"name\": \"问题现象\",\n      \"definition\": \"用户观察到的具体问题、时间、范围和影响。\",\n      \"value_type\": \"free_text\"\n    }\n  ],\n  \"terms\": [\n    {\n      \"id\": \"core-1\",\n      \"term\": \"工艺路线\",\n      \"plain_language\": \"明确加工、装配、检测和维护步骤\",\n      \"benefit\": \"方便安排工序\",\n      \"cost\": \"流程约束更强\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-2\",\n      \"term\": \"材料性能\",\n      \"plain_language\": \"明确强度、耐温、耐腐蚀等要求\",\n      \"benefit\": \"选材更准确\",\n      \"cost\": \"成本可能提高\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-3\",\n      \"term\": \"公差配合\",\n      \"plain_language\": \"明确尺寸公差和装配关系\",\n      \"benefit\": \"减少装配问题\",\n      \"cost\": \"加工难度上升\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-4\",\n      \"term\": \"质量检验\",\n      \"plain_language\": \"明确测量方法、抽样和验收标准\",\n      \"benefit\": \"质量可追溯\",\n      \"cost\": \"需要检测资源\",\n      \"dimension_id\": \"method\"\n    },\n    {\n      \"id\": \"core-5\",\n      \"term\": \"安全防护\",\n      \"plain_language\": \"明确设备防护、锁定和作业风险\",\n      \"benefit\": \"降低事故风险\",\n      \"cost\": \"操作流程更严格\",\n      \"dimension_id\": \"method\"\n    }\n  ],\n  \"mappings\": [\n    {\n      \"expression\": \"专业一点/做好一点\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"design\"\n      ],\n      \"dimension_ids\": [\n        \"scope\",\n        \"method\"\n      ],\n      \"reason\": \"需要先明确领域对象和方法约束。\"\n    }\n  ]\n}\n",
    "terms/information-architecture/information-hierarchy.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"information-hierarchy\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"information-architecture\",\n  \"title\": \"信息层级与密度\",\n  \"knowledge_type\": \"principle\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-information\",\n    \"audit-information\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"information-hierarchy\",\n      \"name\": \"信息层级\",\n      \"plain_language\": \"先确定用户要做的决定，再按主次组织标题、数据、操作和辅助说明。\",\n      \"when_to_use\": \"复杂后台、内容页和移动端首页\",\n      \"parameters\": [\n        \"主任务优先\",\n        \"每屏保留一个视觉主角\",\n        \"用密度和留白表达层级\"\n      ],\n      \"related\": [\n        \"composition-patterns\",\n        \"token-system\"\n      ],\n      \"constraints\": [\n        \"不要用颜色和图标堆叠替代结构\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/interaction/accessibility.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"motion-accessibility\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"accessibility\",\n  \"title\": \"动效可访问性\",\n  \"knowledge_type\": \"guideline\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"audit-accessibility\",\n    \"implement-accessibility\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"undo-aria\",\n      \"name\": \"撤销按钮可读标签\",\n      \"plain_language\": \"按钮要读出操作和剩余时间，例如撤销删除，剩余 5 秒。\",\n      \"when_to_use\": \"撤销条、倒计时按钮\",\n      \"parameters\": [\n        \"aria-label 动态更新\",\n        \"键盘可聚焦和触发\"\n      ],\n      \"related\": [\n        \"undo-window\"\n      ],\n      \"constraints\": [\n        \"不要每秒通过 aria-live 播报倒计时\"\n      ],\n      \"aliases\": []\n    },\n    {\n      \"id\": \"undo-live\",\n      \"name\": \"轻量状态播报\",\n      \"plain_language\": \"用 aria-live=polite 提示已删除、可撤销等关键状态。\",\n      \"when_to_use\": \"操作结果需要被读屏用户感知\",\n      \"parameters\": [\n        \"只播报状态变化\",\n        \"焦点不被撤销条抢走\"\n      ],\n      \"related\": [\n        \"undo-aria\"\n      ],\n      \"constraints\": [\n        \"不重复播报相同状态\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/interaction/advanced/before-after-slider.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"before-after-slider\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"gesture-interaction\",\n  \"title\": \"前后对比滑块\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-gesture\",\n    \"implement-gesture\",\n    \"audit-gesture\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"before-after-slider\",\n      \"name\": \"前后对比滑块\",\n      \"plain_language\": \"拖动分割线实时裁切两张图，位置在 0%–100%，不使用惯性。\",\n      \"when_to_use\": \"需要明确触发、阈值、取消、边界和键盘替代路径的复杂交互\",\n      \"parameters\": [\n        \"初始 50%\",\n        \"clip-path: inset()\",\n        \"拖动无过渡\",\n        \"容器 resize 重新计算\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"未达到阈值不能触发\",\n        \"快速重复操作不叠加\",\n        \"组件卸载时清理定时器和动画\"\n      ],\n      \"aliases\": [],\n      \"state_machine\": [\n        \"idle\",\n        \"dragging\"\n      ],\n      \"accessibility\": [\n        \"role=slider\",\n        \"左右箭头步进\",\n        \"图片失败时保留可用状态\"\n      ],\n      \"acceptance\": [\n        \"60fps\",\n        \"手势和键盘结果一致\",\n        \"取消后状态完全复位\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/advanced/drag-to-absorb.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"drag-to-absorb\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"gesture-interaction\",\n  \"title\": \"拖到目标吸入\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-gesture\",\n    \"implement-gesture\",\n    \"audit-gesture\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"drag-to-absorb\",\n      \"name\": \"拖到目标吸入\",\n      \"plain_language\": \"拖拽元素靠近目标后目标张开，松手时元素缩小并吸入目标中心。\",\n      \"when_to_use\": \"需要明确触发、阈值、取消、边界和键盘替代路径的复杂交互\",\n      \"parameters\": [\n        \"目标半径 1.2 倍或外扩 48px\",\n        \"目标 scale 1.15\",\n        \"元素缩至 0.2\",\n        \"未命中回原位\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"未达到阈值不能触发\",\n        \"快速重复操作不叠加\",\n        \"组件卸载时清理定时器和动画\"\n      ],\n      \"aliases\": [],\n      \"state_machine\": [\n        \"dragging\",\n        \"hovering\",\n        \"dropping\",\n        \"absorbed\",\n        \"returning\"\n      ],\n      \"accessibility\": [\n        \"键盘移动和放置\",\n        \"目标重叠时按优先级\",\n        \"多点触控只认第一指\"\n      ],\n      \"acceptance\": [\n        \"60fps\",\n        \"手势和键盘结果一致\",\n        \"取消后状态完全复位\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/advanced/edge-docked-fab.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"edge-docked-fab\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"gesture-interaction\",\n  \"title\": \"吸边悬浮球\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-gesture\",\n    \"implement-gesture\",\n    \"audit-gesture\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"edge-docked-fab\",\n      \"name\": \"吸边悬浮球\",\n      \"plain_language\": \"毛玻璃悬浮球跟手拖拽，释放后吸附到最近左右边缘，闲置后缩成半透明贴边状态。\",\n      \"when_to_use\": \"需要可移动的悬浮入口，同时避免遮挡底部 Tab 和安全区内容\",\n      \"parameters\": [\n        \"56px 圆球\",\n        \"0.02 惯性\",\n        \"距边 12px\",\n        \"spring 300/30\",\n        \"无操作 3s 后缩小\",\n        \"滚动时 opacity 0.4\",\n        \"停止滚动 400ms 恢复\",\n        \"垂直位置限制在安全区\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"velocity-inheritance\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"拖拽不能穿出安全区\",\n        \"吸附后仍保留可点击面积\",\n        \"页面滚动时不能遮挡底部 Tab\",\n        \"组件卸载时清理滚动监听和恢复定时器\"\n      ],\n      \"aliases\": [\n        \"吸边悬浮球\",\n        \"贴边悬浮按钮\",\n        \"edge docked fab\"\n      ],\n      \"state_machine\": [\n        \"idle\",\n        \"dragging\",\n        \"snapping\",\n        \"docked\",\n        \"shrunk\",\n        \"restoring\"\n      ],\n      \"animation_sequence\": [\n        \"follow pointer\",\n        \"project release velocity\",\n        \"snap to nearest edge\",\n        \"shrink after idle\",\n        \"restore after scroll\"\n      ],\n      \"spatial_anchor\": [\n        \"左右边缘为吸附锚点\",\n        \"距边 12px\",\n        \"垂直范围避开安全区和底部 Tab\"\n      ],\n      \"accessibility\": [\n        \"键盘焦点可达\",\n        \"方向键移动或提供设置入口替代拖拽\",\n        \"aria-label 描述悬浮入口\",\n        \"减少动态时取消缩小和惯性\"\n      ],\n      \"acceptance\": [\n        \"拖拽 1:1 跟手\",\n        \"释放后稳定吸边\",\n        \"滚动透明度反馈及时\",\n        \"不遮挡关键导航\",\n        \"快速拖拽不产生双重吸附\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/advanced/inertial-wheel.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"inertial-wheel\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"gesture-interaction\",\n  \"title\": \"惯性滚轮\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-gesture\",\n    \"implement-gesture\",\n    \"audit-gesture\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"inertial-wheel\",\n      \"name\": \"惯性滚轮\",\n      \"plain_language\": \"时间或数值滚轮在释放后继承速度惯性减速，越界时阻尼回弹并吸附到最近刻度。\",\n      \"when_to_use\": \"需要明确触发、阈值、取消、边界和键盘替代路径的复杂交互\",\n      \"parameters\": [\n        \"手指阶段 1:1 跟手\",\n        \"释放后保存 velocity\",\n        \"friction 衰减\",\n        \"越界阻尼\",\n        \"spring 刚度/阻尼\",\n        \"最近刻度吸附\",\n        \"限制最大速度避免眩晕\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"未达到阈值不能触发\",\n        \"快速重复操作不叠加\",\n        \"组件卸载时清理定时器和动画\"\n      ],\n      \"aliases\": [],\n      \"state_machine\": [\n        \"dragging\",\n        \"inertial\",\n        \"decelerating\",\n        \"overscrolling\",\n        \"snapping\",\n        \"settled\"\n      ],\n      \"accessibility\": [\n        \"role=slider\",\n        \"键盘离散步进\",\n        \"Home/End 到极值\",\n        \"减少动态时保留当前刻度\"\n      ],\n      \"acceptance\": [\n        \"60fps\",\n        \"手势和键盘结果一致\",\n        \"取消后状态完全复位\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/advanced/long-press-preview.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"long-press-preview\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"gesture-interaction\",\n  \"title\": \"长按浮起预览\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-gesture\",\n    \"implement-gesture\",\n    \"audit-gesture\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"long-press-preview\",\n      \"name\": \"长按浮起预览\",\n      \"plain_language\": \"长按列表项打开上下文预览，选中项浮起，菜单在局部空间内展开。\",\n      \"when_to_use\": \"需要明确触发、阈值、取消、边界和键盘替代路径的复杂交互\",\n      \"parameters\": [\n        \"450–600ms\",\n        \"移动超过 10px 取消\",\n        \"背景 blur 8px\",\n        \"虚拟列表卸载时关闭\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"未达到阈值不能触发\",\n        \"快速重复操作不叠加\",\n        \"组件卸载时清理定时器和动画\"\n      ],\n      \"aliases\": [],\n      \"state_machine\": [\n        \"pressing\",\n        \"preview\",\n        \"menu\",\n        \"closing\"\n      ],\n      \"accessibility\": [\n        \"Enter 打开\",\n        \"焦点陷阱\",\n        \"ESC 返回列表项\"\n      ],\n      \"acceptance\": [\n        \"60fps\",\n        \"手势和键盘结果一致\",\n        \"取消后状态完全复位\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/advanced/perspective-carousel.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"perspective-carousel\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"gesture-interaction\",\n  \"title\": \"景随图换轮播\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-gesture\",\n    \"implement-gesture\",\n    \"audit-gesture\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"perspective-carousel\",\n      \"name\": \"景随图换轮播\",\n      \"plain_language\": \"拖动距离或速度达到阈值后切换，中心项放大，侧边项透视缩小。\",\n      \"when_to_use\": \"需要明确触发、阈值、取消、边界和键盘替代路径的复杂交互\",\n      \"parameters\": [\n        \"距离超过 20% 或速度超过 0.5px/ms\",\n        \"perspective 1000px\",\n        \"侧项 scale 0.85\",\n        \"无限循环无跳帧\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"未达到阈值不能触发\",\n        \"快速重复操作不叠加\",\n        \"组件卸载时清理定时器和动画\"\n      ],\n      \"aliases\": [],\n      \"state_machine\": [\n        \"dragging\",\n        \"snapping\",\n        \"switching\"\n      ],\n      \"accessibility\": [\n        \"aria-roledescription=carousel\",\n        \"aria-current\",\n        \"图片失败降级\"\n      ],\n      \"acceptance\": [\n        \"60fps\",\n        \"手势和键盘结果一致\",\n        \"取消后状态完全复位\"\n      ]\n    },\n    {\n      \"id\": \"stacked-card-carousel\",\n      \"name\": \"卡片层叠轮播\",\n      \"plain_language\": \"三张卡片以缩放和 Y 轴偏移形成层叠，顶层跟随拖拽并轻微旋转，达到距离或速度阈值后飞出，下层补位。\",\n      \"when_to_use\": \"需要卡片层级、拖拽跟手、飞出切换和循环补位的移动端轮播\",\n      \"parameters\": [\n        \"scale 0.92/0.96/1\",\n        \"Y 偏移 16/8/0\",\n        \"顶层最大旋转 8°\",\n        \"拖过 1/3 宽度或速度 > 500 触发\",\n        \"spring 280/26\",\n        \"只剩一张时循环补位\"\n      ],\n      \"related\": [\n        \"stack-card\",\n        \"stack-card-expand\",\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"velocity-inheritance\"\n      ],\n      \"constraints\": [\n        \"未达距离和速度阈值时回弹\",\n        \"顶层飞出后下层平滑补位\",\n        \"快速连滑不叠加旧回调\",\n        \"卡片内容和操作区不能因旋转不可达\"\n      ],\n      \"aliases\": [\n        \"卡片层叠轮播\",\n        \"叠卡轮播\",\n        \"卡片堆叠轮播\",\n        \"stacked card carousel\"\n      ],\n      \"state_machine\": [\n        \"idle\",\n        \"dragging\",\n        \"projecting\",\n        \"flying-out\",\n        \"promoting\",\n        \"snapping\",\n        \"settled\"\n      ],\n      \"animation_sequence\": [\n        \"top card follows pointer\",\n        \"threshold decision\",\n        \"fly out or spring back\",\n        \"next card promotes\",\n        \"loop refill\"\n      ],\n      \"spatial_anchor\": [\n        \"三层卡片共享中心轴\",\n        \"Y 偏移按层级递减\",\n        \"下层露边保持层级可见\"\n      ],\n      \"accessibility\": [\n        \"键盘左右切换\",\n        \"aria-roledescription=carousel\",\n        \"aria-current 标记当前卡片\",\n        \"减少动态时取消旋转和飞出\"\n      ],\n      \"acceptance\": [\n        \"拖拽 1:1 跟手\",\n        \"阈值判断稳定\",\n        \"飞出后下层无跳帧补位\",\n        \"只剩一张时循环不中断\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/advanced/press-and-hold-confirm.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"press-and-hold-confirm\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"gesture-interaction\",\n  \"title\": \"按住蓄力确认\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-gesture\",\n    \"implement-gesture\",\n    \"audit-gesture\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"press-and-hold-confirm\",\n      \"name\": \"按住蓄力确认\",\n      \"plain_language\": \"按住危险操作按钮达到 800–1200ms 才确认，未满松手或移动超限则取消。\",\n      \"when_to_use\": \"需要明确触发、阈值、取消、边界和键盘替代路径的复杂交互\",\n      \"parameters\": [\n        \"800–1200ms\",\n        \"移动超过 10px 取消\",\n        \"多点触控只认第一指\",\n        \"进度环与按压时间一致\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"未达到阈值不能触发\",\n        \"快速重复操作不叠加\",\n        \"组件卸载时清理定时器和动画\"\n      ],\n      \"aliases\": [],\n      \"state_machine\": [\n        \"pressing\",\n        \"charging\",\n        \"confirmed\",\n        \"cancel\"\n      ],\n      \"accessibility\": [\n        \"键盘 Space/Enter\",\n        \"ESC 取消\",\n        \"aria-describedby\",\n        \"替代二次确认\"\n      ],\n      \"acceptance\": [\n        \"60fps\",\n        \"手势和键盘结果一致\",\n        \"取消后状态完全复位\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/advanced/radial-menu.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"radial-menu\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"gesture-interaction\",\n  \"title\": \"弧形快捷菜单\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-gesture\",\n    \"implement-gesture\",\n    \"audit-gesture\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"radial-menu\",\n      \"name\": \"弧形快捷菜单\",\n      \"plain_language\": \"长按悬浮按钮展开弧形子菜单，子项沿弧线交错弹出并支持边缘翻转。\",\n      \"when_to_use\": \"需要明确触发、阈值、取消、边界和键盘替代路径的复杂交互\",\n      \"parameters\": [\n        \"长按 400–500ms\",\n        \"移动超过 10px 取消\",\n        \"stagger 30–50ms\",\n        \"边缘翻转弧线方向\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"未达到阈值不能触发\",\n        \"快速重复操作不叠加\",\n        \"组件卸载时清理定时器和动画\"\n      ],\n      \"aliases\": [],\n      \"state_machine\": [\n        \"pressing\",\n        \"open\",\n        \"closing\"\n      ],\n      \"accessibility\": [\n        \"aria-expanded\",\n        \"role=menuitem\",\n        \"ESC 焦点返回\"\n      ],\n      \"acceptance\": [\n        \"60fps\",\n        \"手势和键盘结果一致\",\n        \"取消后状态完全复位\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/advanced/rotary-knob.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"rotary-knob\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"gesture-interaction\",\n  \"title\": \"旋钮转盘\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-gesture\",\n    \"implement-gesture\",\n    \"audit-gesture\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"rotary-knob\",\n      \"name\": \"旋钮转盘\",\n      \"plain_language\": \"拖动或用键盘旋转旋钮，释放后吸附到最近刻度，中心数值同步变化。\",\n      \"when_to_use\": \"需要明确触发、阈值、取消、边界和键盘替代路径的复杂交互\",\n      \"parameters\": [\n        \"-135° 到 +135°\",\n        \"步进 1 或 5\",\n        \"小于 0.35 步长磁吸\",\n        \"touch-action: none\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"未达到阈值不能触发\",\n        \"快速重复操作不叠加\",\n        \"组件卸载时清理定时器和动画\"\n      ],\n      \"aliases\": [],\n      \"state_machine\": [\n        \"dragging\",\n        \"snapping\",\n        \"idle\"\n      ],\n      \"accessibility\": [\n        \"role=slider\",\n        \"aria-valuemin/max/now\",\n        \"Home/End 到极值\"\n      ],\n      \"acceptance\": [\n        \"60fps\",\n        \"手势和键盘结果一致\",\n        \"取消后状态完全复位\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/advanced/segmented-progress.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"segmented-progress\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"gesture-interaction\",\n  \"title\": \"分段进度条\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-gesture\",\n    \"implement-gesture\",\n    \"audit-gesture\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"segmented-progress\",\n      \"name\": \"分段进度条\",\n      \"plain_language\": \"按住暂停，点击左右区域切换上一项或下一项，进度与内容同步。\",\n      \"when_to_use\": \"需要明确触发、阈值、取消、边界和键盘替代路径的复杂交互\",\n      \"parameters\": [\n        \"200ms 内抬起判定点击\",\n        \"左右 35% 切换\",\n        \"中间 30% 暂停\",\n        \"最后一项循环\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"未达到阈值不能触发\",\n        \"快速重复操作不叠加\",\n        \"组件卸载时清理定时器和动画\"\n      ],\n      \"aliases\": [],\n      \"state_machine\": [\n        \"playing\",\n        \"paused\",\n        \"switching\"\n      ],\n      \"accessibility\": [\n        \"左右箭头\",\n        \"Space 暂停\",\n        \"aria-live 当前项\"\n      ],\n      \"acceptance\": [\n        \"60fps\",\n        \"手势和键盘结果一致\",\n        \"取消后状态完全复位\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/advanced/slide-to-confirm.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"slide-to-confirm\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"gesture-interaction\",\n  \"title\": \"滑动确认组件\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-gesture\",\n    \"implement-gesture\",\n    \"audit-gesture\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"slide-to-confirm\",\n      \"name\": \"滑动确认组件\",\n      \"plain_language\": \"滑块超过 80% 才确认，不足松手则弹回，确认只触发一次。\",\n      \"when_to_use\": \"需要明确触发、阈值、取消、边界和键盘替代路径的复杂交互\",\n      \"parameters\": [\n        \"80% 阈值\",\n        \"达到阈值加速到末端\",\n        \"spring 回弹\",\n        \"移动端阻止页面滚动\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"未达到阈值不能触发\",\n        \"快速重复操作不叠加\",\n        \"组件卸载时清理定时器和动画\"\n      ],\n      \"aliases\": [],\n      \"state_machine\": [\n        \"dragging\",\n        \"threshold\",\n        \"confirmed\",\n        \"returning\"\n      ],\n      \"accessibility\": [\n        \"role=slider\",\n        \"Enter/Space 确认\",\n        \"危险操作提供替代确认\"\n      ],\n      \"acceptance\": [\n        \"60fps\",\n        \"手势和键盘结果一致\",\n        \"取消后状态完全复位\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/bottom-sheet.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"bottom-sheet\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"gesture-interaction\",\n  \"title\": \"阻尼弹性底部抽屉\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-gesture\",\n    \"implement-gesture\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"bottom-sheet\",\n      \"name\": \"阻尼弹性底部抽屉\",\n      \"plain_language\": \"支持下拉、橡皮筋和多个锚点吸附。\",\n      \"when_to_use\": \"需要高级反馈但仍要保持可理解的操作结果\",\n      \"parameters\": [\n        \"closed/peek/half/full\",\n        \"按位移+速度选锚点\",\n        \"处理滚动穿透\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/interaction/burst-feedback.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"burst-feedback\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"interaction-motion\",\n  \"title\": \"Burst 点击爆散\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-interaction\",\n    \"implement-animation\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"burst-feedback\",\n      \"name\": \"Burst 点击爆散\",\n      \"plain_language\": \"关键点击用 6–12 个短寿命粒子表达完成或奖励。\",\n      \"when_to_use\": \"需要高级反馈但仍要保持可理解的操作结果\",\n      \"parameters\": [\n        \"寿命 300–500ms\",\n        \"随机角度\",\n        \"轻微重力\",\n        \"只用于关键动作\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/interaction/card-flip.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"card-flip\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"interaction-motion\",\n  \"title\": \"3D 卡片翻面\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-interaction\",\n    \"implement-animation\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"card-flip\",\n      \"name\": \"3D 卡片翻面\",\n      \"plain_language\": \"正反面围绕同一中心翻转，保持透视和背面隐藏。\",\n      \"when_to_use\": \"需要高级反馈但仍要保持可理解的操作结果\",\n      \"parameters\": [\n        \"perspective 800–1200\",\n        \"backface-visibility hidden\",\n        \"iOS 加 webkit 前缀\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/interaction/continuous/button-stepper-morph.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"button-stepper-morph\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"continuous-interaction\",\n  \"title\": \"按钮变步进器\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-continuous\",\n    \"implement-continuous\",\n    \"audit-continuous\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"button-stepper-morph\",\n      \"name\": \"按钮变步进器\",\n      \"plain_language\": \"加号按钮原位展开为减号、数量和加号，数量归零后收回。\",\n      \"when_to_use\": \"需要状态切换连续、焦点稳定且避免跳页或突然替换容器的组件\",\n      \"parameters\": [\n        \"同一组件多状态布局\",\n        \"数量归零自动收回\",\n        \"保持触发器位置\"\n      ],\n      \"related\": [\n        \"state-machine-driven-ui\",\n        \"same-container-transition\"\n      ],\n      \"constraints\": [\n        \"动画必须可中断\",\n        \"支持 prefers-reduced-motion\",\n        \"状态变化不能重复触发回调\"\n      ],\n      \"aliases\": [],\n      \"state_machine\": [\n        \"add\",\n        \"expanded\",\n        \"decrementing\",\n        \"collapsed\"\n      ],\n      \"acceptance\": [\n        \"状态切换无跳变\",\n        \"快速操作不产生竞态\",\n        \"键盘和触摸路径结果一致\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/continuous/checkbox-cascade.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"checkbox-cascade\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"continuous-interaction\",\n  \"title\": \"勾选联动\",\n  \"knowledge_type\": \"technique\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-continuous\",\n    \"implement-continuous\",\n    \"audit-continuous\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"checkbox-cascade\",\n      \"name\": \"勾选联动\",\n      \"plain_language\": \"一次勾选按明确先后驱动顶部背景、进度环和数字滚动，多个反馈共享同一完成结果。\",\n      \"when_to_use\": \"用户用自然语言描述联动、叠卡、吸附画线或圆形转场的感觉时\",\n      \"parameters\": [\n        \"勾选反馈 80–160ms\",\n        \"背景渐变 180–300ms\",\n        \"进度环绘制 400–700ms\",\n        \"数字滚动 300–500ms\",\n        \"stroke-dashoffset\",\n        \"数字 Y 轴偏移\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"snap\",\n        \"interruption\",\n        \"reduced-motion\"\n      ],\n      \"constraints\": [\n        \"避免生硬切换\",\n        \"动画顺序必须可验证\",\n        \"必须支持中断和反向回退\"\n      ],\n      \"aliases\": [\n        \"勾选联动\",\n        \"checkbox cascade\"\n      ],\n      \"state_machine\": [\n        \"checkbox checked\",\n        \"top background transition\",\n        \"progress ring draw\",\n        \"count update\",\n        \"settled\"\n      ],\n      \"animation_sequence\": [\n        \"checkbox checked\",\n        \"top background transition\",\n        \"progress ring draw\",\n        \"count update\",\n        \"settled\"\n      ],\n      \"spatial_anchor\": [\n        \"复选框是触发源\",\n        \"顶部背景覆盖状态区域\",\n        \"进度环围绕当前任务指标\",\n        \"数字与进度环保持同一视觉组\"\n      ],\n      \"accessibility\": [\n        \"键盘 Space/Enter 可勾选\",\n        \"aria-checked 与视觉状态同步\",\n        \"减少动态时保留最终进度和数字\"\n      ],\n      \"acceptance\": [\n        \"勾选后所有反馈都出现\",\n        \"进度环不早于触发状态\",\n        \"数字与进度百分比一致\",\n        \"快速连续勾选不会叠加旧动画\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/continuous/fab-panel-morph.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"fab-panel-morph\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"continuous-interaction\",\n  \"title\": \"加号展开面板\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-continuous\",\n    \"implement-continuous\",\n    \"audit-continuous\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"fab-panel-morph\",\n      \"name\": \"加号展开面板\",\n      \"plain_language\": \"FAB 原位形变为操作面板，中心点保持不变，关闭时逆向收回。\",\n      \"when_to_use\": \"需要状态切换连续、焦点稳定且避免跳页或突然替换容器的组件\",\n      \"parameters\": [\n        \"clip-path\",\n        \"border-radius\",\n        \"scale\",\n        \"中心点不变\"\n      ],\n      \"related\": [\n        \"same-container-transition\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"动画必须可中断\",\n        \"支持 prefers-reduced-motion\",\n        \"状态变化不能重复触发回调\"\n      ],\n      \"aliases\": [],\n      \"state_machine\": [\n        \"closed\",\n        \"opening\",\n        \"open\",\n        \"closing\"\n      ],\n      \"acceptance\": [\n        \"状态切换无跳变\",\n        \"快速操作不产生竞态\",\n        \"键盘和触摸路径结果一致\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/continuous/fullscreen-reveal-menu.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"fullscreen-reveal-menu\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"continuous-interaction\",\n  \"title\": \"菜单铺满全屏\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-continuous\",\n    \"implement-continuous\",\n    \"audit-continuous\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"fullscreen-reveal-menu\",\n      \"name\": \"菜单铺满全屏\",\n      \"plain_language\": \"以触发按钮为中心用圆形揭示铺满全屏，菜单项交错进入。\",\n      \"when_to_use\": \"需要状态切换连续、焦点稳定且避免跳页或突然替换容器的组件\",\n      \"parameters\": [\n        \"clip-path: circle()\",\n        \"stagger 30–50ms\",\n        \"菜单方向可中断\"\n      ],\n      \"related\": [\n        \"same-container-transition\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"动画必须可中断\",\n        \"支持 prefers-reduced-motion\",\n        \"状态变化不能重复触发回调\"\n      ],\n      \"aliases\": [],\n      \"state_machine\": [\n        \"closed\",\n        \"revealing\",\n        \"open\",\n        \"closing\"\n      ],\n      \"acceptance\": [\n        \"状态切换无跳变\",\n        \"快速操作不产生竞态\",\n        \"键盘和触摸路径结果一致\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/continuous/icon-morph.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"icon-morph\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"continuous-interaction\",\n  \"title\": \"图标变形\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-continuous\",\n    \"implement-continuous\",\n    \"audit-continuous\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"icon-morph\",\n      \"name\": \"图标变形\",\n      \"plain_language\": \"菜单、播放等图标优先通过 SVG path 插值完成状态变化。\",\n      \"when_to_use\": \"需要状态切换连续、焦点稳定且避免跳页或突然替换容器的组件\",\n      \"parameters\": [\n        \"路径点数一致\",\n        \"200–300ms\",\n        \"交叉淡入是降级方案\"\n      ],\n      \"related\": [\n        \"same-container-transition\",\n        \"reduced-motion\"\n      ],\n      \"constraints\": [\n        \"动画必须可中断\",\n        \"支持 prefers-reduced-motion\",\n        \"状态变化不能重复触发回调\"\n      ],\n      \"aliases\": [],\n      \"state_machine\": [\n        \"default\",\n        \"transitioning\",\n        \"alternate\"\n      ],\n      \"acceptance\": [\n        \"状态切换无跳变\",\n        \"快速操作不产生竞态\",\n        \"键盘和触摸路径结果一致\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/continuous/inline-detail-expand.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"inline-detail-expand\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"continuous-interaction\",\n  \"title\": \"列表展开详情\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-continuous\",\n    \"implement-continuous\",\n    \"audit-continuous\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"inline-detail-expand\",\n      \"name\": \"列表展开详情\",\n      \"plain_language\": \"选中列表项就地展开，其余项顺势下移，不跳转详情页。\",\n      \"when_to_use\": \"需要状态切换连续、焦点稳定且避免跳页或突然替换容器的组件\",\n      \"parameters\": [\n        \"max-height 或 FLIP\",\n        \"保留选中项上下文\",\n        \"其他项让位\"\n      ],\n      \"related\": [\n        \"flip-reentry\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"动画必须可中断\",\n        \"支持 prefers-reduced-motion\",\n        \"状态变化不能重复触发回调\"\n      ],\n      \"aliases\": [],\n      \"state_machine\": [\n        \"collapsed\",\n        \"expanding\",\n        \"expanded\",\n        \"collapsing\"\n      ],\n      \"acceptance\": [\n        \"状态切换无跳变\",\n        \"快速操作不产生竞态\",\n        \"键盘和触摸路径结果一致\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/continuous/list-grid-flip.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"list-grid-flip\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"continuous-interaction\",\n  \"title\": \"列表切换网格\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-continuous\",\n    \"implement-continuous\",\n    \"audit-continuous\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"list-grid-flip\",\n      \"name\": \"列表切换网格\",\n      \"plain_language\": \"记录旧布局，切换布局后反转并播放到新位置，避免重载和跳变。\",\n      \"when_to_use\": \"需要状态切换连续、焦点稳定且避免跳页或突然替换容器的组件\",\n      \"parameters\": [\n        \"First/Last/Invert/Play\",\n        \"transform 优先\",\n        \"支持快速切换\"\n      ],\n      \"related\": [\n        \"flip-reentry\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"动画必须可中断\",\n        \"支持 prefers-reduced-motion\",\n        \"状态变化不能重复触发回调\"\n      ],\n      \"aliases\": [],\n      \"state_machine\": [\n        \"list\",\n        \"switching\",\n        \"grid\"\n      ],\n      \"acceptance\": [\n        \"状态切换无跳变\",\n        \"快速操作不产生竞态\",\n        \"键盘和触摸路径结果一致\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/continuous/radial-reveal-transition.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"radial-reveal-transition\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"continuous-interaction\",\n  \"title\": \"圆形扩散转场\",\n  \"knowledge_type\": \"technique\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-continuous\",\n    \"implement-continuous\",\n    \"audit-continuous\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"radial-reveal-transition\",\n      \"name\": \"圆形扩散转场\",\n      \"plain_language\": \"从真实点击位置捕获圆心，以 clip-path circle 扩散覆盖屏幕，完全覆盖后再显示新页面内容。\",\n      \"when_to_use\": \"用户用自然语言描述联动、叠卡、吸附画线或圆形转场的感觉时\",\n      \"parameters\": [\n        \"捕获 pointer x/y\",\n        \"最大半径覆盖最远屏幕角\",\n        \"扩散 duration 300–500ms\",\n        \"easing ease-out\",\n        \"新页面在覆盖完成后进入\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"snap\",\n        \"interruption\",\n        \"reduced-motion\"\n      ],\n      \"constraints\": [\n        \"避免生硬切换\",\n        \"动画顺序必须可验证\",\n        \"必须支持中断和反向回退\"\n      ],\n      \"aliases\": [\n        \"圆形扩散转场\",\n        \"radial reveal transition\"\n      ],\n      \"state_machine\": [\n        \"capture origin\",\n        \"circle expand\",\n        \"screen covered\",\n        \"new content enter\",\n        \"settled\",\n        \"reverse on back\"\n      ],\n      \"animation_sequence\": [\n        \"capture origin\",\n        \"circle expand\",\n        \"screen covered\",\n        \"new content enter\",\n        \"settled\",\n        \"reverse on back\"\n      ],\n      \"spatial_anchor\": [\n        \"圆心等于触点坐标\",\n        \"半径取触点到最远角距离\",\n        \"新旧页面共享同一转场层\",\n        \"返回时沿反向路径收回\"\n      ],\n      \"accessibility\": [\n        \"键盘触发使用按钮中心作为安全圆心\",\n        \"焦点在新页面可交互后移动\",\n        \"prefers-reduced-motion 时取消扩散但保留状态切换\"\n      ],\n      \"acceptance\": [\n        \"圆心不偏离触点\",\n        \"覆盖完成前不暴露新旧页面混合帧\",\n        \"返回操作可逆\",\n        \"视口变化时重新计算最大半径\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/continuous/scroll-header-collapse.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"scroll-header-collapse\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"continuous-interaction\",\n  \"title\": \"顶栏随滚动收起\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-continuous\",\n    \"implement-continuous\",\n    \"audit-continuous\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"scroll-header-collapse\",\n      \"name\": \"顶栏随滚动收起\",\n      \"plain_language\": \"滚动进度驱动搜索栏和顶栏收缩，反向滚动恢复。\",\n      \"when_to_use\": \"需要状态切换连续、焦点稳定且避免跳页或突然替换容器的组件\",\n      \"parameters\": [\n        \"scrollY 归一化 0–1\",\n        \"requestAnimationFrame\",\n        \"滚动方向迟滞\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"reduced-motion\"\n      ],\n      \"constraints\": [\n        \"动画必须可中断\",\n        \"支持 prefers-reduced-motion\",\n        \"状态变化不能重复触发回调\"\n      ],\n      \"aliases\": [],\n      \"state_machine\": [\n        \"expanded\",\n        \"collapsing\",\n        \"collapsed\",\n        \"expanding\"\n      ],\n      \"acceptance\": [\n        \"状态切换无跳变\",\n        \"快速操作不产生竞态\",\n        \"键盘和触摸路径结果一致\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/continuous/search-expand.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"search-expand\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"continuous-interaction\",\n  \"title\": \"搜索框展开\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-continuous\",\n    \"implement-continuous\",\n    \"audit-continuous\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"search-expand\",\n      \"name\": \"搜索框展开\",\n      \"plain_language\": \"图标与输入框共用容器，展开后自动聚焦，关闭时沿原路径收回。\",\n      \"when_to_use\": \"需要状态切换连续、焦点稳定且避免跳页或突然替换容器的组件\",\n      \"parameters\": [\n        \"transform-origin: left\",\n        \"focus 延迟 80–120ms\",\n        \"图标淡出\",\n        \"关闭后焦点返回触发器\"\n      ],\n      \"related\": [\n        \"focus-continuity\",\n        \"same-container-transition\"\n      ],\n      \"constraints\": [\n        \"动画必须可中断\",\n        \"支持 prefers-reduced-motion\",\n        \"状态变化不能重复触发回调\"\n      ],\n      \"aliases\": [],\n      \"state_machine\": [\n        \"idle\",\n        \"expanded\",\n        \"closing\"\n      ],\n      \"acceptance\": [\n        \"状态切换无跳变\",\n        \"快速操作不产生竞态\",\n        \"键盘和触摸路径结果一致\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/continuous/snap-card-timeline.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"snap-card-timeline\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"continuous-interaction\",\n  \"title\": \"吸附卡加画线\",\n  \"knowledge_type\": \"technique\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-continuous\",\n    \"implement-continuous\",\n    \"audit-continuous\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"snap-card-timeline\",\n      \"name\": \"吸附卡加画线\",\n      \"plain_language\": \"卡片先减速吸附到最近目标，停稳后时间线再从起点逐段绘制到对应卡片位置。\",\n      \"when_to_use\": \"用户用自然语言描述联动、叠卡、吸附画线或圆形转场的感觉时\",\n      \"parameters\": [\n        \"先吸附后绘制\",\n        \"卡片停止后延迟 80–160ms\",\n        \"timeline duration 300–600ms\",\n        \"stroke-dasharray\",\n        \"stroke-dashoffset\",\n        \"卡片最终 Y 轴位置\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"snap\",\n        \"interruption\",\n        \"reduced-motion\"\n      ],\n      \"constraints\": [\n        \"避免生硬切换\",\n        \"动画顺序必须可验证\",\n        \"必须支持中断和反向回退\"\n      ],\n      \"aliases\": [\n        \"吸附卡加画线\",\n        \"snap card timeline\"\n      ],\n      \"state_machine\": [\n        \"drag or scroll\",\n        \"decelerating\",\n        \"snap to nearest card\",\n        \"settled\",\n        \"timeline draw\",\n        \"complete\"\n      ],\n      \"animation_sequence\": [\n        \"drag or scroll\",\n        \"decelerating\",\n        \"snap to nearest card\",\n        \"settled\",\n        \"timeline draw\",\n        \"complete\"\n      ],\n      \"spatial_anchor\": [\n        \"吸附目标由最近卡片决定\",\n        \"时间线起点固定在轨道起点\",\n        \"终点对齐卡片中心或锚点\",\n        \"线段绘制方向与滚动方向一致\"\n      ],\n      \"accessibility\": [\n        \"键盘切换卡片时同样触发落位反馈\",\n        \"aria-current 标记当前卡片\",\n        \"减少动态时显示完整时间线\"\n      ],\n      \"acceptance\": [\n        \"时间线绝不早于卡片停稳\",\n        \"吸附目标稳定不抖动\",\n        \"线终点准确对齐卡片\",\n        \"取消或快速切换不会残留旧线段\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/continuous/stack-card-expand.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"stack-card-expand\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"continuous-interaction\",\n  \"title\": \"叠卡展开\",\n  \"knowledge_type\": \"technique\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-continuous\",\n    \"implement-continuous\",\n    \"audit-continuous\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"stack-card-expand\",\n      \"name\": \"叠卡展开\",\n      \"plain_language\": \"叠放卡片点击或下滑后扇出成完整铺排，再沿原空间路径叠回，展开期间锁定下方卡片误触。\",\n      \"when_to_use\": \"用户用自然语言描述联动、叠卡、吸附画线或圆形转场的感觉时\",\n      \"parameters\": [\n        \"Y 轴位移按卡片间距递增\",\n        \"旋转角度按扇出方向分配\",\n        \"缩放比例逐层收敛到 1\",\n        \"Z 轴层级从前到后重排\",\n        \"展开/收回使用同一锚点\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"snap\",\n        \"interruption\",\n        \"reduced-motion\"\n      ],\n      \"constraints\": [\n        \"避免生硬切换\",\n        \"动画顺序必须可验证\",\n        \"必须支持中断和反向回退\"\n      ],\n      \"aliases\": [\n        \"叠卡展开\",\n        \"stack card expand\"\n      ],\n      \"state_machine\": [\n        \"collapsed stack\",\n        \"fan out\",\n        \"content reveal\",\n        \"expanded layout\",\n        \"reverse stack\"\n      ],\n      \"animation_sequence\": [\n        \"collapsed stack\",\n        \"fan out\",\n        \"content reveal\",\n        \"expanded layout\",\n        \"reverse stack\"\n      ],\n      \"spatial_anchor\": [\n        \"首张卡片作为展开原点\",\n        \"卡片沿预设扇形或垂直轨迹排列\",\n        \"每张卡片保留可点击区域\",\n        \"关闭时回到原重叠位置\"\n      ],\n      \"accessibility\": [\n        \"键盘 Enter/Space 展开\",\n        \"aria-expanded 表达状态\",\n        \"减少动态时直接切换布局但保留层级\"\n      ],\n      \"acceptance\": [\n        \"展开前后首张卡位置连续\",\n        \"卡片不互相遮挡关键内容\",\n        \"展开期间下层卡片不可误触\",\n        \"关闭沿原路回叠\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/continuous/submit-state-machine.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"submit-state-machine\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"continuous-interaction\",\n  \"title\": \"提交状态反馈\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-continuous\",\n    \"implement-continuous\",\n    \"audit-continuous\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"submit-state-machine\",\n      \"name\": \"提交状态反馈\",\n      \"plain_language\": \"按钮容器固定，通过状态机切换 loading、success 和 result，避免按钮位移。\",\n      \"when_to_use\": \"需要状态切换连续、焦点稳定且避免跳页或突然替换容器的组件\",\n      \"parameters\": [\n        \"idle → loading → success → result\",\n        \"固定按钮宽度\",\n        \"只替换内部内容\"\n      ],\n      \"related\": [\n        \"state-machine-driven-ui\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"动画必须可中断\",\n        \"支持 prefers-reduced-motion\",\n        \"状态变化不能重复触发回调\"\n      ],\n      \"aliases\": [],\n      \"state_machine\": [\n        \"idle\",\n        \"loading\",\n        \"success\",\n        \"result\"\n      ],\n      \"acceptance\": [\n        \"状态切换无跳变\",\n        \"快速操作不产生竞态\",\n        \"键盘和触摸路径结果一致\"\n      ]\n    },\n    {\n      \"id\": \"save-progress-ring\",\n      \"name\": \"保存按钮变进度环\",\n      \"plain_language\": \"胶囊保存按钮点击后收缩为正圆，文字淡出并在同一容器内绘制进度环，完成后画勾并展开为已保存。\",\n      \"when_to_use\": \"保存、上传或提交操作需要把进行中、完成和结果连续表达在同一按钮内\",\n      \"parameters\": [\n        \"按钮 120×44、圆角 22\",\n        \"收缩到 44×44\",\n        \"文字淡出 240ms ease-out\",\n        \"进度环 1.2s linear\",\n        \"stroke 3、round cap\",\n        \"完成勾选 200ms\",\n        \"已保存展开 300ms spring\"\n      ],\n      \"related\": [\n        \"draw-success\",\n        \"progress-feedback\",\n        \"interruption\"\n      ],\n      \"constraints\": [\n        \"进行中禁用重复点击\",\n        \"中途取消必须清理进度动画和回调\",\n        \"按钮宽度变化不能造成周围布局跳动\",\n        \"减少动态时保留进行中与完成状态\"\n      ],\n      \"aliases\": [\n        \"保存按钮进度环\",\n        \"保存转进度\",\n        \"save progress ring\"\n      ],\n      \"state_machine\": [\n        \"idle\",\n        \"saving\",\n        \"progress-ring\",\n        \"success-check\",\n        \"saved\",\n        \"cancelled\"\n      ],\n      \"animation_sequence\": [\n        \"capsule to circle\",\n        \"label fade out\",\n        \"ring draw\",\n        \"check draw\",\n        \"expand to saved\"\n      ],\n      \"spatial_anchor\": [\n        \"进度环沿按钮外圈绘制\",\n        \"勾选与圆环共享中心\",\n        \"文字恢复在原容器内\"\n      ],\n      \"accessibility\": [\n        \"键盘 Enter/Space 触发\",\n        \"aria-busy 表达保存中\",\n        \"完成状态通过 aria-live=polite 通知\"\n      ],\n      \"acceptance\": [\n        \"保存中只触发一次\",\n        \"取消后可再次保存\",\n        \"进度环不提前完成\",\n        \"完成后按钮回到可读结果\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/continuous/tab-indicator-spring.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"tab-indicator-spring\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"continuous-interaction\",\n  \"title\": \"标签指示条\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-continuous\",\n    \"implement-continuous\",\n    \"audit-continuous\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"tab-indicator-spring\",\n      \"name\": \"标签指示条\",\n      \"plain_language\": \"指示条先拉向新位置，再收缩归位，轻微超调但不影响点击判断。\",\n      \"when_to_use\": \"需要状态切换连续、焦点稳定且避免跳页或突然替换容器的组件\",\n      \"parameters\": [\n        \"spring 或 cubic-bezier\",\n        \"超调 5%–10%\",\n        \"指示条不重建\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"snap\"\n      ],\n      \"constraints\": [\n        \"动画必须可中断\",\n        \"支持 prefers-reduced-motion\",\n        \"状态变化不能重复触发回调\"\n      ],\n      \"aliases\": [],\n      \"state_machine\": [\n        \"idle\",\n        \"moving\",\n        \"settled\"\n      ],\n      \"acceptance\": [\n        \"状态切换无跳变\",\n        \"快速操作不产生竞态\",\n        \"键盘和触摸路径结果一致\"\n      ]\n    }\n  ]\n}\n",
    "terms/interaction/count-animation.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"count-animation\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"interaction-motion\",\n  \"title\": \"Count 数字滚动\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-interaction\",\n    \"implement-animation\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"count-animation\",\n      \"name\": \"Count 数字滚动\",\n      \"plain_language\": \"数字按位滚动并在最后一段明显减速。\",\n      \"when_to_use\": \"需要高级反馈但仍要保持可理解的操作结果\",\n      \"parameters\": [\n        \"tabular-nums\",\n        \"cubic-bezier(0.16,1,0.3,1)\",\n        \"固定宽度\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/interaction/draw-success.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"draw-success\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"interaction-motion\",\n  \"title\": \"Draw 成功勾选\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-interaction\",\n    \"implement-animation\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"draw-success\",\n      \"name\": \"Draw 成功勾选\",\n      \"plain_language\": \"先画圆再画勾，用 SVG 描边过程表达成功。\",\n      \"when_to_use\": \"需要高级反馈但仍要保持可理解的操作结果\",\n      \"parameters\": [\n        \"stroke-dasharray\",\n        \"stroke-dashoffset\",\n        \"400–700ms\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/interaction/flip-reentry.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"flip-reentry\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"interaction-motion\",\n  \"title\": \"FLIP 反向归位\",\n  \"knowledge_type\": \"technique\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"implement-animation\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"flip\",\n      \"name\": \"First Last Invert Play\",\n      \"plain_language\": \"记录删除前后布局，撤销时把真实节点插回原索引，再播放反向变换。\",\n      \"when_to_use\": \"列表重排、共享元素和复杂布局撤销\",\n      \"parameters\": [\n        \"First 记录原位置尺寸\",\n        \"Last 记录重排后位置\",\n        \"Invert 计算差值\",\n        \"Play 播放反向变换\"\n      ],\n      \"related\": [\n        \"reverse-path\",\n        \"shared-element-transition\"\n      ],\n      \"constraints\": [\n        \"节点已移除时保留 ghost/clone 或占位符\"\n      ],\n      \"aliases\": []\n    },\n    {\n      \"id\": \"placeholder\",\n      \"name\": \"占位与真实节点回插\",\n      \"plain_language\": \"节点暂时移除后保留占位，撤销时按原索引插回真实节点。\",\n      \"when_to_use\": \"DOM 节点生命周期较短的列表\",\n      \"parameters\": [\n        \"恢复原索引\",\n        \"其他项让位动画\"\n      ],\n      \"related\": [\n        \"flip\"\n      ],\n      \"constraints\": [\n        \"不能把 ghost 当作最终业务节点\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/interaction/follow.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"follow\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"gesture-interaction\",\n  \"title\": \"跟随\",\n  \"knowledge_type\": \"principle\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-gesture\",\n    \"implement-gesture\",\n    \"audit-gesture\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"follow\",\n      \"name\": \"跟随\",\n      \"plain_language\": \"元素连续继承输入位置或速度，不瞬间跳到新状态。\",\n      \"when_to_use\": \"拖拽、滚动、转场和惯性动作\",\n      \"parameters\": [\n        \"位置或速度 1:1 跟随\",\n        \"必要时使用 lerp 或 spring 收敛\"\n      ],\n      \"related\": [\n        \"threshold\",\n        \"velocity-inheritance\"\n      ],\n      \"constraints\": [\n        \"高频输入不能依赖昂贵布局重排\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/interaction/interruption.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"interruption\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"gesture-interaction\",\n  \"title\": \"可中断与恢复\",\n  \"knowledge_type\": \"principle\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-gesture\",\n    \"implement-gesture\",\n    \"audit-gesture\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"interruption\",\n      \"name\": \"可中断与恢复\",\n      \"plain_language\": \"动画中途再次输入时接管当前状态，而不是等待旧动画结束。\",\n      \"when_to_use\": \"可拖拽、可快速连点或可反悔的组件\",\n      \"parameters\": [\n        \"读取当前 transform\",\n        \"取消旧动画并从当前状态继续\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"reverse-animation\"\n      ],\n      \"constraints\": [\n        \"不能产生双重回调或状态竞态\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/interaction/liquid-slider.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"liquid-slider\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"interaction-motion\",\n  \"title\": \"Liquid 液态滑块\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-interaction\",\n    \"implement-animation\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"liquid-slider\",\n      \"name\": \"Liquid 液态滑块\",\n      \"plain_language\": \"轨道、滑钮和数值使用同一弹簧同步变化。\",\n      \"when_to_use\": \"需要高级反馈但仍要保持可理解的操作结果\",\n      \"parameters\": [\n        \"同一 spring\",\n        \"零延迟跟手\",\n        \"轨道与数值同步\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/interaction/morph-icon.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"morph-icon\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"interaction-motion\",\n  \"title\": \"Morph 汉堡变叉\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-interaction\",\n    \"implement-animation\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"morph-icon\",\n      \"name\": \"Morph 汉堡变叉\",\n      \"plain_language\": \"使用同路径或线段位移旋转完成图标变形。\",\n      \"when_to_use\": \"需要高级反馈但仍要保持可理解的操作结果\",\n      \"parameters\": [\n        \"200–300ms\",\n        \"同点数或明确线段映射\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/interaction/reverse-animation.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"reverse-animation\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"interaction-motion\",\n  \"title\": \"撤销反向动画\",\n  \"knowledge_type\": \"technique\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"implement-animation\",\n    \"audit-motion\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"reverse-path\",\n      \"name\": \"沿原路径反向归位\",\n      \"plain_language\": \"撤销时沿删除动画的反方向回到原位置，而不是重新淡入。\",\n      \"when_to_use\": \"列表删除后恢复原项\",\n      \"parameters\": [\n        \"删除缩小+位移+淡出，撤销放大+反向位移+淡入\",\n        \"删除 200–300ms，撤销 180–240ms\"\n      ],\n      \"related\": [\n        \"flip-reentry\",\n        \"velocity-inheritance\"\n      ],\n      \"constraints\": [\n        \"必须保留原索引、尺寸和位置上下文\"\n      ],\n      \"aliases\": []\n    },\n    {\n      \"id\": \"reentry-highlight\",\n      \"name\": \"归位确认高亮\",\n      \"plain_language\": \"元素回到原位后增加短暂高亮或脉冲，确认它确实回来了。\",\n      \"when_to_use\": \"撤销后的状态需要被快速识别\",\n      \"parameters\": [\n        \"高亮 500–700ms\",\n        \"不改变布局\"\n      ],\n      \"related\": [\n        \"reverse-path\"\n      ],\n      \"constraints\": [\n        \"不要用强烈闪烁造成干扰\"\n      ],\n      \"aliases\": []\n    },\n    {\n      \"id\": \"reduced-motion\",\n      \"name\": \"减少动态降级\",\n      \"plain_language\": \"减少动态时保留进度、状态和结果，不强制播放位移动画。\",\n      \"when_to_use\": \"用户开启 prefers-reduced-motion\",\n      \"parameters\": [\n        \"保留明确状态变化\",\n        \"取消复杂路径和粒子\"\n      ],\n      \"related\": [\n        \"accessibility\"\n      ],\n      \"constraints\": [\n        \"不可因为降级而丢失撤销入口\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/interaction/ripple-button.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"ripple-button\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"interaction-motion\",\n  \"title\": \"Ripple 水波按钮\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-interaction\",\n    \"implement-animation\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"ripple-button\",\n      \"name\": \"Ripple 水波按钮\",\n      \"plain_language\": \"从真实触点向最远角扩散水波，不把点击中心固定在控件中心。\",\n      \"when_to_use\": \"需要高级反馈但仍要保持可理解的操作结果\",\n      \"parameters\": [\n        \"400–600ms\",\n        \"半径覆盖最远角\",\n        \"移动端用 worklet/WXS 获取坐标\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/interaction/skeleton-shimmer.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"skeleton-shimmer\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"interaction-motion\",\n  \"title\": \"Shimmer 骨架落位\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-interaction\",\n    \"implement-animation\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"skeleton-shimmer\",\n      \"name\": \"Shimmer 骨架落位\",\n      \"plain_language\": \"骨架尺寸与真实内容一致，内容到达后平滑替换。\",\n      \"when_to_use\": \"需要高级反馈但仍要保持可理解的操作结果\",\n      \"parameters\": [\n        \"1.2–1.6s 循环\",\n        \"高度、行高、间距一致\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/interaction/snap.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"snap\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"gesture-interaction\",\n  \"title\": \"吸附\",\n  \"knowledge_type\": \"principle\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-gesture\",\n    \"implement-gesture\",\n    \"audit-gesture\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"snap\",\n      \"name\": \"吸附\",\n      \"plain_language\": \"松手后把连续输入收敛到明确落点。\",\n      \"when_to_use\": \"滚轮、底部抽屉、滑块和拖拽\",\n      \"parameters\": [\n        \"根据位置和速度选择锚点\",\n        \"终点接管要平滑\"\n      ],\n      \"related\": [\n        \"threshold\",\n        \"velocity-inheritance\"\n      ],\n      \"constraints\": [\n        \"不要硬跳到终点\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/interaction/spring-press.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"spring-press\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"interaction-motion\",\n  \"title\": \"Spring 按压回弹\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-interaction\",\n    \"implement-animation\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"spring-press\",\n      \"name\": \"Spring 按压回弹\",\n      \"plain_language\": \"按下缩到 0.96–0.98，松手用弹簧回到 1 并允许 1.02–1.04 的轻微过冲。\",\n      \"when_to_use\": \"需要高级反馈但仍要保持可理解的操作结果\",\n      \"parameters\": [\n        \"scale 0.96–0.98\",\n        \"overshoot 2%–4%\",\n        \"可叠加内阴影或明度变化\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/interaction/squash-toggle.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"squash-toggle\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"interaction-motion\",\n  \"title\": \"Squash 弹性开关\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-interaction\",\n    \"implement-animation\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"squash-toggle\",\n      \"name\": \"Squash 弹性开关\",\n      \"plain_language\": \"开关起步横向拉伸、纵向压缩，再回到正常比例。\",\n      \"when_to_use\": \"需要高级反馈但仍要保持可理解的操作结果\",\n      \"parameters\": [\n        \"scaleX 1.08\",\n        \"scaleY 0.94\",\n        \"180–240ms\",\n        \"transform-origin 与方向一致\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/interaction/stack-card.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"stack-card\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"interaction-motion\",\n  \"title\": \"Stack 卡片抽走\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-interaction\",\n    \"implement-animation\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"stack-card\",\n      \"name\": \"Stack 卡片抽走\",\n      \"plain_language\": \"抽走前卡时露出后卡的缩放和位移层级。\",\n      \"when_to_use\": \"需要高级反馈但仍要保持可理解的操作结果\",\n      \"parameters\": [\n        \"scale 0.94/0.88\",\n        \"translateY 8/16\",\n        \"后卡必须露边\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"threshold\",\n        \"snap\",\n        \"interruption\"\n      ],\n      \"constraints\": [],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/interaction/threshold.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"threshold\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"gesture-interaction\",\n  \"title\": \"阈值\",\n  \"knowledge_type\": \"principle\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-gesture\",\n    \"implement-gesture\",\n    \"audit-gesture\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"threshold\",\n      \"name\": \"阈值\",\n      \"plain_language\": \"达到位移、速度或双条件后才触发状态切换。\",\n      \"when_to_use\": \"半屏弹层、长按拖拽、粘连断开\",\n      \"parameters\": [\n        \"明确位移阈值\",\n        \"明确速度阈值\",\n        \"可加入迟滞避免抖动\"\n      ],\n      \"related\": [\n        \"snap\",\n        \"follow\"\n      ],\n      \"constraints\": [\n        \"不轻易触发，也不突然失效\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/interaction/undo-window.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"undo-window\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"interaction-motion\",\n  \"title\": \"撤销时间窗口\",\n  \"knowledge_type\": \"technique\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-interaction\",\n    \"audit-motion\"\n  ],\n  \"loading_note\": \"撤销功能只需加载本叶子和反向动画，不加载全部动效\",\n  \"entries\": [\n    {\n      \"id\": \"undo-window\",\n      \"name\": \"可逆操作时间窗口\",\n      \"plain_language\": \"删除后保留一段明确的可撤销时间，让用户有机会反悔。\",\n      \"when_to_use\": \"删除、归档、批量移除等可逆操作\",\n      \"parameters\": [\n        \"窗口默认 5s；高风险操作 8–10s\",\n        \"过期后按钮禁用并完成最终删除\"\n      ],\n      \"related\": [\n        \"progress-feedback\",\n        \"reverse-animation\"\n      ],\n      \"constraints\": [\n        \"不要让过期后仍看起来可点击\"\n      ],\n      \"aliases\": []\n    },\n    {\n      \"id\": \"progress-feedback\",\n      \"name\": \"线性进度反馈\",\n      \"plain_language\": \"进度条或进度环的完成时间与撤销窗口完全一致。\",\n      \"when_to_use\": \"需要让剩余时间可见\",\n      \"parameters\": [\n        \"动画使用 linear\",\n        \"数字可每秒更新，进度动画保持连续\"\n      ],\n      \"related\": [\n        \"undo-window\"\n      ],\n      \"constraints\": [\n        \"不能用缓动制造错误的剩余时间感\"\n      ],\n      \"aliases\": []\n    },\n    {\n      \"id\": \"pause-on-focus\",\n      \"name\": \"聚焦暂停窗口\",\n      \"plain_language\": \"用户悬停或键盘聚焦撤销控件时暂停倒计时。\",\n      \"when_to_use\": \"误操作成本高且需要可访问性增强的场景\",\n      \"parameters\": [\n        \"暂停状态必须可见\",\n        \"失焦后继续倒计时\"\n      ],\n      \"related\": [\n        \"accessibility\"\n      ],\n      \"constraints\": [\n        \"不能无限暂停导致资源长期占用\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/interaction/velocity-inheritance.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"velocity-inheritance\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"gesture-interaction\",\n  \"title\": \"速度继承\",\n  \"knowledge_type\": \"principle\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-gesture\",\n    \"implement-gesture\",\n    \"audit-gesture\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"velocity-inheritance\",\n      \"name\": \"速度继承\",\n      \"plain_language\": \"松手后继续沿当前速度运动，再减速并吸附。\",\n      \"when_to_use\": \"惯性滚动、抽屉和抛物线飞入\",\n      \"parameters\": [\n        \"保存释放瞬间速度\",\n        \"设置 friction 和最大位移\"\n      ],\n      \"related\": [\n        \"follow\",\n        \"snap\"\n      ],\n      \"constraints\": [\n        \"速度必须有上限，避免失控\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/language-literature-writing.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"package_id\": \"language-literature-writing-core\",\n  \"domain_id\": \"language-literature-writing\",\n  \"title\": \"语言/文学/写作领域需求澄清术语包（草案）\",\n  \"version\": \"0.1.0\",\n  \"status\": \"draft\",\n  \"intents\": [\n    {\n      \"id\": \"design\",\n      \"action\": \"设计\",\n      \"object\": \"语言/文学/写作相关产物\"\n    },\n    {\n      \"id\": \"diagnose\",\n      \"action\": \"排查\",\n      \"object\": \"语言/文学/写作相关问题\"\n    }\n  ],\n  \"dimensions\": [\n    {\n      \"id\": \"scope\",\n      \"name\": \"写作目的\",\n      \"definition\": \"写作目的的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"method\",\n      \"name\": \"体裁与读者\",\n      \"definition\": \"体裁与读者的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"symptom\",\n      \"name\": \"问题现象\",\n      \"definition\": \"用户观察到的具体问题、时间、范围和影响。\",\n      \"value_type\": \"free_text\"\n    }\n  ],\n  \"terms\": [\n    {\n      \"id\": \"core-1\",\n      \"term\": \"写作目的\",\n      \"plain_language\": \"明确说明、说服、叙事或表达情绪\",\n      \"benefit\": \"内容更聚焦\",\n      \"cost\": \"需舍弃无关内容\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-2\",\n      \"term\": \"体裁结构\",\n      \"plain_language\": \"明确报道、议论文、小说或诗歌结构\",\n      \"benefit\": \"形式更符合场景\",\n      \"cost\": \"格式限制更多\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-3\",\n      \"term\": \"读者语境\",\n      \"plain_language\": \"明确年龄、知识背景和阅读场景\",\n      \"benefit\": \"表达更容易理解\",\n      \"cost\": \"受众范围变窄\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-4\",\n      \"term\": \"语气风格\",\n      \"plain_language\": \"明确正式、口语、克制或抒情\",\n      \"benefit\": \"声音更统一\",\n      \"cost\": \"个性空间受约束\",\n      \"dimension_id\": \"method\"\n    },\n    {\n      \"id\": \"core-5\",\n      \"term\": \"证据引用\",\n      \"plain_language\": \"明确事实、引文和出处关系\",\n      \"benefit\": \"可信度更高\",\n      \"cost\": \"整理成本更高\",\n      \"dimension_id\": \"method\"\n    }\n  ],\n  \"mappings\": [\n    {\n      \"expression\": \"专业一点/做好一点\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"design\"\n      ],\n      \"dimension_ids\": [\n        \"scope\",\n        \"method\"\n      ],\n      \"reason\": \"需要先明确领域对象和方法约束。\"\n    }\n  ]\n}\n",
    "terms/law-politics-military.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"package_id\": \"law-politics-military-core\",\n  \"domain_id\": \"law-politics-military\",\n  \"title\": \"政法/军事/法律领域需求澄清术语包（草案）\",\n  \"version\": \"0.1.0\",\n  \"status\": \"draft\",\n  \"intents\": [\n    {\n      \"id\": \"design\",\n      \"action\": \"设计\",\n      \"object\": \"政法/军事/法律相关产物\"\n    },\n    {\n      \"id\": \"diagnose\",\n      \"action\": \"排查\",\n      \"object\": \"政法/军事/法律相关问题\"\n    }\n  ],\n  \"dimensions\": [\n    {\n      \"id\": \"scope\",\n      \"name\": \"法域与事项\",\n      \"definition\": \"法域与事项的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"method\",\n      \"name\": \"证据与程序\",\n      \"definition\": \"证据与程序的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"symptom\",\n      \"name\": \"问题现象\",\n      \"definition\": \"用户观察到的具体问题、时间、范围和影响。\",\n      \"value_type\": \"free_text\"\n    }\n  ],\n  \"terms\": [\n    {\n      \"id\": \"core-1\",\n      \"term\": \"法域事项\",\n      \"plain_language\": \"明确国家地区、法律部门和具体事项\",\n      \"benefit\": \"避免套用错误规则\",\n      \"cost\": \"必须补充事实\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-2\",\n      \"term\": \"权利义务\",\n      \"plain_language\": \"明确各方身份、责任和限制\",\n      \"benefit\": \"方便识别问题\",\n      \"cost\": \"需要完整合同或法条\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-3\",\n      \"term\": \"证据材料\",\n      \"plain_language\": \"明确事实、文件、时间线和来源\",\n      \"benefit\": \"便于专业分析\",\n      \"cost\": \"整理成本更高\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-4\",\n      \"term\": \"程序期限\",\n      \"plain_language\": \"明确申报、答复、诉讼或审批期限\",\n      \"benefit\": \"减少程序错误\",\n      \"cost\": \"必须核对最新规则\",\n      \"dimension_id\": \"method\"\n    },\n    {\n      \"id\": \"core-5\",\n      \"term\": \"专业意见\",\n      \"plain_language\": \"明确需要律师、监管或官方决定的节点\",\n      \"benefit\": \"降低误导风险\",\n      \"cost\": \"不能由普通提示替代\",\n      \"dimension_id\": \"method\"\n    }\n  ],\n  \"mappings\": [\n    {\n      \"expression\": \"专业一点/做好一点\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"design\"\n      ],\n      \"dimension_ids\": [\n        \"scope\",\n        \"method\"\n      ],\n      \"reason\": \"需要先明确领域对象和方法约束。\"\n    }\n  ]\n}\n",
    "terms/material-style/material-library.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"material-library\",\n  \"domain_id\": \"ai-aigc-meta-skills\",\n  \"subdomain_id\": \"material-style\",\n  \"title\": \"材质风格词\",\n  \"knowledge_type\": \"term\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"write-image-prompt\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"material-library\",\n      \"name\": \"材质与反射\",\n      \"plain_language\": \"用可观察的表面属性描述材质，例如高光泽釉面、短植绒、哑光纸张和半通透胶带。\",\n      \"when_to_use\": \"产品渲染、角色周边和材质迁移\",\n      \"parameters\": [\n        \"roughness\",\n        \"specular\",\n        \"translucency\",\n        \"texture\"\n      ],\n      \"related\": [\n        \"prompt-blocks\",\n        \"character-ip\"\n      ],\n      \"constraints\": [\n        \"材质词不能替代主体和结构约束\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/math-chemistry-statistics.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"package_id\": \"math-chemistry-statistics-core\",\n  \"domain_id\": \"math-chemistry-statistics\",\n  \"title\": \"数理/化学/统计领域需求澄清术语包（草案）\",\n  \"version\": \"0.1.0\",\n  \"status\": \"draft\",\n  \"intents\": [\n    {\n      \"id\": \"design\",\n      \"action\": \"设计\",\n      \"object\": \"数理/化学/统计相关产物\"\n    },\n    {\n      \"id\": \"diagnose\",\n      \"action\": \"排查\",\n      \"object\": \"数理/化学/统计相关问题\"\n    }\n  ],\n  \"dimensions\": [\n    {\n      \"id\": \"scope\",\n      \"name\": \"问题与变量\",\n      \"definition\": \"问题与变量的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"method\",\n      \"name\": \"方法与不确定性\",\n      \"definition\": \"方法与不确定性的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"symptom\",\n      \"name\": \"问题现象\",\n      \"definition\": \"用户观察到的具体问题、时间、范围和影响。\",\n      \"value_type\": \"free_text\"\n    }\n  ],\n  \"terms\": [\n    {\n      \"id\": \"core-1\",\n      \"term\": \"问题定义\",\n      \"plain_language\": \"明确求什么、变量和边界\",\n      \"benefit\": \"避免算错问题\",\n      \"cost\": \"需先整理条件\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-2\",\n      \"term\": \"模型假设\",\n      \"plain_language\": \"明确独立性、分布和近似条件\",\n      \"benefit\": \"结论更可解释\",\n      \"cost\": \"模型适用范围变窄\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-3\",\n      \"term\": \"测量口径\",\n      \"plain_language\": \"明确单位、采样和统计窗口\",\n      \"benefit\": \"结果可复核\",\n      \"cost\": \"数据准备更复杂\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-4\",\n      \"term\": \"误差不确定性\",\n      \"plain_language\": \"记录误差、区间和置信度\",\n      \"benefit\": \"避免过度精确\",\n      \"cost\": \"表达更谨慎\",\n      \"dimension_id\": \"method\"\n    },\n    {\n      \"id\": \"core-5\",\n      \"term\": \"验证复算\",\n      \"plain_language\": \"提供样本、公式和复算步骤\",\n      \"benefit\": \"便于发现错误\",\n      \"cost\": \"文档工作增加\",\n      \"dimension_id\": \"method\"\n    }\n  ],\n  \"mappings\": [\n    {\n      \"expression\": \"专业一点/做好一点\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"design\"\n      ],\n      \"dimension_ids\": [\n        \"scope\",\n        \"method\"\n      ],\n      \"reason\": \"需要先明确领域对象和方法约束。\"\n    }\n  ]\n}\n",
    "terms/motion-control/motion-language.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"motion-language\",\n  \"domain_id\": \"ai-aigc-meta-skills\",\n  \"subdomain_id\": \"motion-control\",\n  \"title\": \"动作与运动控制\",\n  \"knowledge_type\": \"technique\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"write-video-prompt\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"motion-language\",\n      \"name\": \"方向/速度/幅度/节奏\",\n      \"plain_language\": \"明确主体怎么动、镜头怎么动、速度和幅度如何变化。\",\n      \"when_to_use\": \"文生视频、产品动效和角色动作延展\",\n      \"parameters\": [\n        \"direction\",\n        \"speed\",\n        \"amplitude\",\n        \"rhythm\",\n        \"follow\"\n      ],\n      \"related\": [\n        \"video-direction\",\n        \"velocity-inheritance\"\n      ],\n      \"constraints\": [\n        \"动作必须可观察，避免只写情绪形容词\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/negative-prompt/negative-constraints.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"negative-constraints\",\n  \"domain_id\": \"ai-aigc-meta-skills\",\n  \"subdomain_id\": \"negative-prompt\",\n  \"title\": \"负面约束\",\n  \"knowledge_type\": \"guideline\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"write-image-prompt\",\n    \"audit-image-prompt\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"negative-constraints\",\n      \"name\": \"结构/材质/一致性负面词\",\n      \"plain_language\": \"把不希望出现的变形、额外肢体、颜色漂移、重复主体和低清晰度写成约束。\",\n      \"when_to_use\": \"角色一致性、产品渲染和批量出图\",\n      \"parameters\": [\n        \"结构禁用\",\n        \"材质禁用\",\n        \"画面质量禁用\"\n      ],\n      \"related\": [\n        \"character-ip\",\n        \"prompt-blocks\"\n      ],\n      \"constraints\": [\n        \"负面词不能掩盖主体描述不完整\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/news-media-advertising.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"package_id\": \"news-media-advertising-core\",\n  \"domain_id\": \"news-media-advertising\",\n  \"title\": \"新闻/传媒/广告领域需求澄清术语包（草案）\",\n  \"version\": \"0.1.0\",\n  \"status\": \"draft\",\n  \"intents\": [\n    {\n      \"id\": \"design\",\n      \"action\": \"设计\",\n      \"object\": \"新闻/传媒/广告相关产物\"\n    },\n    {\n      \"id\": \"diagnose\",\n      \"action\": \"排查\",\n      \"object\": \"新闻/传媒/广告相关问题\"\n    }\n  ],\n  \"dimensions\": [\n    {\n      \"id\": \"scope\",\n      \"name\": \"受众与目标\",\n      \"definition\": \"受众与目标的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"method\",\n      \"name\": \"事实与渠道\",\n      \"definition\": \"事实与渠道的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"symptom\",\n      \"name\": \"问题现象\",\n      \"definition\": \"用户观察到的具体问题、时间、范围和影响。\",\n      \"value_type\": \"free_text\"\n    }\n  ],\n  \"terms\": [\n    {\n      \"id\": \"core-1\",\n      \"term\": \"受众目标\",\n      \"plain_language\": \"明确给谁看和希望行动什么\",\n      \"benefit\": \"传播更有针对性\",\n      \"cost\": \"覆盖面可能变窄\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-2\",\n      \"term\": \"事实核查\",\n      \"plain_language\": \"记录来源、交叉验证和未确认信息\",\n      \"benefit\": \"降低误导风险\",\n      \"cost\": \"制作周期更长\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-3\",\n      \"term\": \"叙事结构\",\n      \"plain_language\": \"明确倒金字塔、故事线或短视频节奏\",\n      \"benefit\": \"内容更易理解\",\n      \"cost\": \"表达自由度下降\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-4\",\n      \"term\": \"渠道规格\",\n      \"plain_language\": \"适配新闻稿、公众号、短视频或广告位\",\n      \"benefit\": \"发布更顺畅\",\n      \"cost\": \"需要多版本制作\",\n      \"dimension_id\": \"method\"\n    },\n    {\n      \"id\": \"core-5\",\n      \"term\": \"广告标识\",\n      \"plain_language\": \"区分报道、推广、赞助和用户内容\",\n      \"benefit\": \"降低误认风险\",\n      \"cost\": \"商业表达更受限\",\n      \"dimension_id\": \"method\"\n    }\n  ],\n  \"mappings\": [\n    {\n      \"expression\": \"专业一点/做好一点\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"design\"\n      ],\n      \"dimension_ids\": [\n        \"scope\",\n        \"method\"\n      ],\n      \"reason\": \"需要先明确领域对象和方法约束。\"\n    }\n  ]\n}\n",
    "terms/philosophy-psychology-religion.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"package_id\": \"philosophy-psychology-religion-core\",\n  \"domain_id\": \"philosophy-psychology-religion\",\n  \"title\": \"哲学/心理/宗教领域需求澄清术语包（草案）\",\n  \"version\": \"0.1.0\",\n  \"status\": \"draft\",\n  \"intents\": [\n    {\n      \"id\": \"design\",\n      \"action\": \"设计\",\n      \"object\": \"哲学/心理/宗教相关产物\"\n    },\n    {\n      \"id\": \"diagnose\",\n      \"action\": \"排查\",\n      \"object\": \"哲学/心理/宗教相关问题\"\n    }\n  ],\n  \"dimensions\": [\n    {\n      \"id\": \"scope\",\n      \"name\": \"问题与传统\",\n      \"definition\": \"问题与传统的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"method\",\n      \"name\": \"解释边界\",\n      \"definition\": \"解释边界的可确认方向。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"symptom\",\n      \"name\": \"问题现象\",\n      \"definition\": \"用户观察到的具体问题、时间、范围和影响。\",\n      \"value_type\": \"free_text\"\n    }\n  ],\n  \"terms\": [\n    {\n      \"id\": \"core-1\",\n      \"term\": \"问题范围\",\n      \"plain_language\": \"明确讨论概念、经验、信仰或实践\",\n      \"benefit\": \"避免混淆问题\",\n      \"cost\": \"需要承认多种观点\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-2\",\n      \"term\": \"理论传统\",\n      \"plain_language\": \"说明使用的学派、经典或研究框架\",\n      \"benefit\": \"讨论更有出处\",\n      \"cost\": \"不适合强行统一\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-3\",\n      \"term\": \"事实观点区分\",\n      \"plain_language\": \"区分可验证事实、解释和价值判断\",\n      \"benefit\": \"减少过度推断\",\n      \"cost\": \"结论更谨慎\",\n      \"dimension_id\": \"scope\"\n    },\n    {\n      \"id\": \"core-4\",\n      \"term\": \"文化语境\",\n      \"plain_language\": \"说明语言、群体和历史背景\",\n      \"benefit\": \"降低误读\",\n      \"cost\": \"需要更多背景\",\n      \"dimension_id\": \"method\"\n    },\n    {\n      \"id\": \"core-5\",\n      \"term\": \"专业边界\",\n      \"plain_language\": \"区分哲学讨论、心理教育和临床判断\",\n      \"benefit\": \"避免越界建议\",\n      \"cost\": \"不能替代专业服务\",\n      \"dimension_id\": \"method\"\n    }\n  ],\n  \"mappings\": [\n    {\n      \"expression\": \"专业一点/做好一点\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"design\"\n      ],\n      \"dimension_ids\": [\n        \"scope\",\n        \"method\"\n      ],\n      \"reason\": \"需要先明确领域对象和方法约束。\"\n    }\n  ]\n}\n",
    "terms/platform-research/gpui-desktop-web.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"gpui-desktop-web\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"3d-web-interface\",\n  \"title\": \"GPUIX 桌面与 Web 平台研究\",\n  \"knowledge_type\": \"platform-research\",\n  \"scope\": \"provider-specific\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"compare-platform\",\n    \"choose-renderer\"\n  ],\n  \"do_not_generalize\": true,\n  \"verified_at\": null,\n  \"verification_required\": true,\n  \"entries\": [\n    {\n      \"id\": \"gpui-desktop-web\",\n      \"name\": \"GPUIX 桌面与 Web 平台研究\",\n      \"plain_language\": \"待核验的桌面/Web 平台适配记录；不得推广为所有 GPU UI 框架事实。\",\n      \"when_to_use\": \"用户明确询问指定平台或组件目录\",\n      \"parameters\": [\n        \"macOS/Metal\",\n        \"Windows/DirectX\",\n        \"Linux/Vulkan\",\n        \"WebGPU/WebGL2 降级\"\n      ],\n      \"related\": [],\n      \"constraints\": [\n        \"必须标注 provider-specific\",\n        \"检索时优先官方来源\",\n        \"verified_at 未设置时不得当作确定事实\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/platform-research/gpui-mobile.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"gpui-mobile\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"3d-web-interface\",\n  \"title\": \"GPUIX 移动端平台研究\",\n  \"knowledge_type\": \"platform-research\",\n  \"scope\": \"provider-specific\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"compare-platform\",\n    \"choose-renderer\"\n  ],\n  \"do_not_generalize\": true,\n  \"verified_at\": null,\n  \"verification_required\": true,\n  \"entries\": [\n    {\n      \"id\": \"gpui-mobile\",\n      \"name\": \"GPUIX 移动端平台研究\",\n      \"plain_language\": \"移动端支持状态需以官方仓库和版本为准；社区实现不能等同官方支持。\",\n      \"when_to_use\": \"用户明确询问指定平台或组件目录\",\n      \"parameters\": [\n        \"iOS/Metal\",\n        \"Android/Vulkan 或 GL\",\n        \"触摸、软键盘、安全区\"\n      ],\n      \"related\": [],\n      \"constraints\": [\n        \"必须标注 provider-specific\",\n        \"检索时优先官方来源\",\n        \"verified_at 未设置时不得当作确定事实\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/platform-research/three-ui-catalog.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"three-ui-catalog\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"3d-web-interface\",\n  \"title\": \"ThreeUI 组件目录研究\",\n  \"knowledge_type\": \"platform-research\",\n  \"scope\": \"provider-specific\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"compare-platform\",\n    \"choose-renderer\"\n  ],\n  \"do_not_generalize\": true,\n  \"verified_at\": null,\n  \"verification_required\": true,\n  \"entries\": [\n    {\n      \"id\": \"three-ui-catalog\",\n      \"name\": \"ThreeUI 组件目录研究\",\n      \"plain_language\": \"目录分类用于检索组件，不代表所有组件都适合生产环境。\",\n      \"when_to_use\": \"用户明确询问指定平台或组件目录\",\n      \"parameters\": [\n        \"Landing Pages\",\n        \"Hero\",\n        \"Backgrounds\",\n        \"Buttons\",\n        \"Text Animation\",\n        \"Three.js\",\n        \"UI Elements\",\n        \"CSS/Motion/Sections\"\n      ],\n      \"related\": [],\n      \"constraints\": [\n        \"必须标注 provider-specific\",\n        \"检索时优先官方来源\",\n        \"verified_at 未设置时不得当作确定事实\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/software-engineering/availability-patterns.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"availability-patterns\",\n  \"domain_id\": \"software-engineering-architecture\",\n  \"subdomain_id\": \"high-availability\",\n  \"title\": \"高可用模式\",\n  \"knowledge_type\": \"term\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-ha\",\n    \"audit-ha\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"availability-patterns\",\n      \"name\": \"高可用模式\",\n      \"plain_language\": \"跨实例、节点或可用区部署关键组件，并定义 RTO/RPO 和故障转移。\",\n      \"when_to_use\": \"后端或平台方案需要拆解质量属性时\",\n      \"parameters\": [\n        \"failure domain\",\n        \"redundancy\",\n        \"RTO\",\n        \"RPO\",\n        \"failover\"\n      ],\n      \"related\": [\n        \"high-availability\",\n        \"capacity-model\",\n        \"scaling-strategies\",\n        \"observability-contract\",\n        \"idempotency-contract\"\n      ],\n      \"constraints\": [\n        \"不要把质量属性当作无边界承诺\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/software-engineering/capacity-model.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"capacity-model\",\n  \"domain_id\": \"software-engineering-architecture\",\n  \"subdomain_id\": \"high-concurrency\",\n  \"title\": \"并发容量模型\",\n  \"knowledge_type\": \"term\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"model-capacity\",\n    \"tune-performance\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"capacity-model\",\n      \"name\": \"并发容量模型\",\n      \"plain_language\": \"用平均值、峰值、突发、P95/P99 和增长率描述高并发，而不是只说高并发。\",\n      \"when_to_use\": \"后端或平台方案需要拆解质量属性时\",\n      \"parameters\": [\n        \"RPS\",\n        \"burst\",\n        \"P95/P99\",\n        \"growth rate\"\n      ],\n      \"related\": [\n        \"high-availability\",\n        \"capacity-model\",\n        \"scaling-strategies\",\n        \"observability-contract\",\n        \"idempotency-contract\"\n      ],\n      \"constraints\": [\n        \"不要把质量属性当作无边界承诺\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/software-engineering/cross-platform-rendering.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"cross-platform-rendering\",\n  \"domain_id\": \"software-engineering-architecture\",\n  \"subdomain_id\": \"desktop-web-mobile\",\n  \"title\": \"跨平台渲染边界\",\n  \"knowledge_type\": \"term\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"compare-platform\",\n    \"choose-renderer\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"cross-platform-rendering\",\n      \"name\": \"跨平台渲染边界\",\n      \"plain_language\": \"按平台能力、渲染后端、输入方式和降级路径选择实现策略。\",\n      \"when_to_use\": \"后端或平台方案需要拆解质量属性时\",\n      \"parameters\": [\n        \"desktop\",\n        \"web\",\n        \"mobile\",\n        \"renderer\",\n        \"fallback\"\n      ],\n      \"related\": [\n        \"high-availability\",\n        \"capacity-model\",\n        \"scaling-strategies\",\n        \"observability-contract\",\n        \"idempotency-contract\"\n      ],\n      \"constraints\": [\n        \"不要把质量属性当作无边界承诺\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/software-engineering/frontend-runtime.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"frontend-runtime\",\n  \"domain_id\": \"software-engineering-architecture\",\n  \"subdomain_id\": \"frontend-platform\",\n  \"title\": \"前端平台边界\",\n  \"knowledge_type\": \"term\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-frontend\",\n    \"audit-frontend\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"frontend-runtime\",\n      \"name\": \"前端平台边界\",\n      \"plain_language\": \"把组件、构建、运行时、发布和回滚能力作为平台契约。\",\n      \"when_to_use\": \"后端或平台方案需要拆解质量属性时\",\n      \"parameters\": [\n        \"component API\",\n        \"build\",\n        \"runtime\",\n        \"release\",\n        \"rollback\"\n      ],\n      \"related\": [\n        \"high-availability\",\n        \"capacity-model\",\n        \"scaling-strategies\",\n        \"observability-contract\",\n        \"idempotency-contract\"\n      ],\n      \"constraints\": [\n        \"不要把质量属性当作无边界承诺\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/software-engineering/idempotency-contract.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"idempotency-contract\",\n  \"domain_id\": \"software-engineering-architecture\",\n  \"subdomain_id\": \"idempotency\",\n  \"title\": \"幂等契约\",\n  \"knowledge_type\": \"term\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-idempotency\",\n    \"diagnose-duplicate\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"idempotency-contract\",\n      \"name\": \"幂等契约\",\n      \"plain_language\": \"用操作身份、同键重试、内容一致性、并发响应和结果关联定义重复处理。\",\n      \"when_to_use\": \"后端或平台方案需要拆解质量属性时\",\n      \"parameters\": [\n        \"operation key\",\n        \"retry\",\n        \"payload match\",\n        \"in-progress\",\n        \"result record\"\n      ],\n      \"related\": [\n        \"high-availability\",\n        \"capacity-model\",\n        \"scaling-strategies\",\n        \"observability-contract\",\n        \"idempotency-contract\"\n      ],\n      \"constraints\": [\n        \"不要把质量属性当作无边界承诺\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/software-engineering/observability-contract.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"observability-contract\",\n  \"domain_id\": \"software-engineering-architecture\",\n  \"subdomain_id\": \"observability\",\n  \"title\": \"可观测性契约\",\n  \"knowledge_type\": \"term\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"define-slo\",\n    \"debug-production\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"observability-contract\",\n      \"name\": \"可观测性契约\",\n      \"plain_language\": \"将 SLI/SLO、日志、指标、追踪、告警和故障演练绑定到服务目标。\",\n      \"when_to_use\": \"后端或平台方案需要拆解质量属性时\",\n      \"parameters\": [\n        \"SLI\",\n        \"SLO\",\n        \"logs\",\n        \"metrics\",\n        \"traces\",\n        \"alerts\"\n      ],\n      \"related\": [\n        \"high-availability\",\n        \"capacity-model\",\n        \"scaling-strategies\",\n        \"observability-contract\",\n        \"idempotency-contract\"\n      ],\n      \"constraints\": [\n        \"不要把质量属性当作无边界承诺\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/software-engineering/scaling-strategies.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"scaling-strategies\",\n  \"domain_id\": \"software-engineering-architecture\",\n  \"subdomain_id\": \"scalability\",\n  \"title\": \"扩展策略\",\n  \"knowledge_type\": \"term\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-scale\",\n    \"plan-migration\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"scaling-strategies\",\n      \"name\": \"扩展策略\",\n      \"plain_language\": \"按无状态实例、缓存、分片和异步队列拆解增长路径。\",\n      \"when_to_use\": \"后端或平台方案需要拆解质量属性时\",\n      \"parameters\": [\n        \"horizontal scaling\",\n        \"sharding\",\n        \"cache\",\n        \"async\"\n      ],\n      \"related\": [\n        \"high-availability\",\n        \"capacity-model\",\n        \"scaling-strategies\",\n        \"observability-contract\",\n        \"idempotency-contract\"\n      ],\n      \"constraints\": [\n        \"不要把质量属性当作无边界承诺\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/software-engineering/service-boundary.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"service-boundary\",\n  \"domain_id\": \"software-engineering-architecture\",\n  \"subdomain_id\": \"backend-architecture\",\n  \"title\": \"服务边界与状态\",\n  \"knowledge_type\": \"term\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-backend\",\n    \"review-backend\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"service-boundary\",\n      \"name\": \"服务边界与状态\",\n      \"plain_language\": \"把服务职责、同步/异步边界、状态归属和数据一致性写清楚。\",\n      \"when_to_use\": \"后端或平台方案需要拆解质量属性时\",\n      \"parameters\": [\n        \"service ownership\",\n        \"sync/async\",\n        \"state ownership\",\n        \"consistency\"\n      ],\n      \"related\": [\n        \"high-availability\",\n        \"capacity-model\",\n        \"scaling-strategies\",\n        \"observability-contract\",\n        \"idempotency-contract\"\n      ],\n      \"constraints\": [\n        \"不要把质量属性当作无边界承诺\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/tool-adapter/tool-parameters.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"tool-parameters\",\n  \"domain_id\": \"ai-aigc-meta-skills\",\n  \"subdomain_id\": \"tool-adapter\",\n  \"title\": \"工具参数适配\",\n  \"knowledge_type\": \"template\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"write-image-prompt\",\n    \"write-video-prompt\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"tool-parameters\",\n      \"name\": \"通用/Midjourney/SD 适配\",\n      \"plain_language\": \"把同一套提示词拆成通用正文、画幅参数和工具专用控制字段。\",\n      \"when_to_use\": \"需要在多个生图工具间复用提示词\",\n      \"parameters\": [\n        \"aspect_ratio\",\n        \"style\",\n        \"negative_prompt\",\n        \"controlnet\"\n      ],\n      \"related\": [\n        \"prompt-blocks\",\n        \"negative-constraints\"\n      ],\n      \"constraints\": [\n        \"工具参数是适配层，不改变核心语义\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/uiux.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"package_id\": \"uiux-core\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"title\": \"网页 UI/UX 需求澄清术语包\",\n  \"version\": \"0.1.0\",\n  \"status\": \"published\",\n  \"intents\": [\n    {\n      \"id\": \"design-page\",\n      \"action\": \"设计\",\n      \"object\": \"网页页面\"\n    },\n    {\n      \"id\": \"diagnose-usability\",\n      \"action\": \"排查\",\n      \"object\": \"页面使用问题\"\n    }\n  ],\n  \"dimensions\": [\n    {\n      \"id\": \"density\",\n      \"name\": \"信息密度\",\n      \"definition\": \"单位屏幕或版面承载的信息量、留白和层级节奏。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"typography\",\n      \"name\": \"字体与文字层级\",\n      \"definition\": \"字体家族、字重、字号、行高和标题正文层级的组合。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"contrast\",\n      \"name\": \"对比度方向\",\n      \"definition\": \"文字、背景、边界和重点元素之间的明暗与色彩区分。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"consistency\",\n      \"name\": \"组件一致性\",\n      \"definition\": \"按钮、表单、卡片、间距和状态反馈是否遵循统一规则。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"symptom\",\n      \"name\": \"使用现象\",\n      \"definition\": \"用户观察到的具体操作困难或视觉问题。\",\n      \"value_type\": \"free_text\"\n    }\n  ],\n  \"terms\": [\n    {\n      \"id\": \"density-focused\",\n      \"term\": \"高密度信息布局\",\n      \"plain_language\": \"同一屏展示更多有效信息，减少装饰性留白。\",\n      \"benefit\": \"适合后台、数据和效率型页面。\",\n      \"cost\": \"信息拥挤时阅读压力更高。\",\n      \"dimension_id\": \"density\"\n    },\n    {\n      \"id\": \"density-balanced\",\n      \"term\": \"平衡型信息布局\",\n      \"plain_language\": \"重点内容清楚，信息量和留白保持中等。\",\n      \"benefit\": \"适合多数产品页面，取舍较均衡。\",\n      \"cost\": \"个性和视觉冲击较弱。\",\n      \"dimension_id\": \"density\"\n    },\n    {\n      \"id\": \"density-breathing\",\n      \"term\": \"留白呼吸型布局\",\n      \"plain_language\": \"减少同屏信息，让内容之间有明显空间。\",\n      \"benefit\": \"更轻松、更强调单项内容。\",\n      \"cost\": \"用户需要更多滚动或跳转。\",\n      \"dimension_id\": \"density\"\n    },\n    {\n      \"id\": \"type-song\",\n      \"term\": \"宋体正文层级\",\n      \"plain_language\": \"使用宋体或同类衬线字体组织中文正文和标题层级。\",\n      \"benefit\": \"更有编辑感和传统阅读气质。\",\n      \"cost\": \"小字号和复杂终端上可能需要额外可读性检查。\",\n      \"dimension_id\": \"typography\"\n    },\n    {\n      \"id\": \"type-sans\",\n      \"term\": \"无衬线字体层级\",\n      \"plain_language\": \"使用无衬线字体建立清晰、现代的文字层级。\",\n      \"benefit\": \"屏幕阅读和界面扫描通常更直接。\",\n      \"cost\": \"文化和编辑气质较弱。\",\n      \"dimension_id\": \"typography\"\n    },\n    {\n      \"id\": \"contrast-high\",\n      \"term\": \"高对比度\",\n      \"plain_language\": \"提高文字、背景和重点控件的明暗区分。\",\n      \"benefit\": \"重点更容易被发现，适合信息复杂页面。\",\n      \"cost\": \"色彩更强，柔和感会降低。\",\n      \"dimension_id\": \"contrast\"\n    },\n    {\n      \"id\": \"contrast-soft\",\n      \"term\": \"柔和对比度\",\n      \"plain_language\": \"降低明暗和色彩冲突，让整体更柔和。\",\n      \"benefit\": \"视觉压力较低，适合内容展示。\",\n      \"cost\": \"弱化后可能影响信息分级。\",\n      \"dimension_id\": \"contrast\"\n    },\n    {\n      \"id\": \"consistency-system\",\n      \"term\": \"统一组件规则\",\n      \"plain_language\": \"按钮、卡片、间距、状态和交互反馈使用同一套规则。\",\n      \"benefit\": \"多页面体验更稳定，后续维护成本更低。\",\n      \"cost\": \"前期需要建立并遵守设计系统。\",\n      \"dimension_id\": \"consistency\"\n    },\n    {\n      \"id\": \"consistency-expressive\",\n      \"term\": \"局部表达变化\",\n      \"plain_language\": \"允许重点页面或品牌区域使用有限的组件变化。\",\n      \"benefit\": \"更有个性，适合品牌展示页。\",\n      \"cost\": \"跨页面学习成本和维护复杂度上升。\",\n      \"dimension_id\": \"consistency\"\n    }\n  ],\n  \"mappings\": [\n    {\n      \"expression\": \"有质感\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"design-page\"\n      ],\n      \"dimension_ids\": [\n        \"density\",\n        \"typography\",\n        \"contrast\",\n        \"consistency\"\n      ],\n      \"reason\": \"需要先选择信息节奏、字体、对比度和组件规则。\"\n    }\n  ]\n}\n",
    "terms/video-prompt/video-direction.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"video-direction\",\n  \"domain_id\": \"ai-aigc-meta-skills\",\n  \"subdomain_id\": \"video-prompt\",\n  \"title\": \"视频镜头与运动描述\",\n  \"knowledge_type\": \"template\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"write-video-prompt\",\n    \"audit-video-prompt\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"video-direction\",\n      \"name\": \"镜头/主体运动/声音三层描述\",\n      \"plain_language\": \"视频提示词至少拆成景别、镜头运动、主体动作、节奏和声音。\",\n      \"when_to_use\": \"文生视频和分镜生成\",\n      \"parameters\": [\n        \"shot\",\n        \"camera_motion\",\n        \"subject_motion\",\n        \"tempo\",\n        \"sound\"\n      ],\n      \"related\": [\n        \"camera-language\",\n        \"motion-language\"\n      ],\n      \"constraints\": [\n        \"不要只写电影感而不说明可观察的镜头行为\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/visual-effects/cover-color-ambient-glow.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"cover-color-ambient-glow\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"visual-effects\",\n  \"title\": \"封面取色氛围光\",\n  \"knowledge_type\": \"technique\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-visual-effect\",\n    \"implement-visual-effect\",\n    \"audit-performance\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"cover-color-ambient-glow\",\n      \"name\": \"封面取色氛围光\",\n      \"plain_language\": \"从封面图提取主色生成外围柔光，换图时用连续插值过渡而不是颜色突变。\",\n      \"when_to_use\": \"需要有视觉表现但必须同时控制 GPU、移动端和减少动态成本\",\n      \"parameters\": [\n        \"Canvas/ColorThief 取色\",\n        \"radial-gradient\",\n        \"CSS variables\",\n        \"颜色插值\"\n      ],\n      \"related\": [\n        \"performance-budget\",\n        \"progressive-degradation\",\n        \"reduced-motion\"\n      ],\n      \"constraints\": [\n        \"动效必须可中断\",\n        \"优先 transform/opacity\",\n        \"不得以视觉效果掩盖可读性\"\n      ],\n      \"aliases\": [],\n      \"performance_budget\": [\n        \"采样结果需要做饱和度和亮度限幅\",\n        \"柔光不能降低正文对比度\"\n      ],\n      \"fallback\": [\n        \"取色失败时回退到主题色\",\n        \"设备性能不足时只保留静态渐变\"\n      ],\n      \"mobile_degradation\": [\n        \"移动端降低光晕半径和不透明度\",\n        \"图片切换只更新 CSS 变量\"\n      ],\n      \"reduced_motion\": [\n        \"减少动态时保留最终主色，取消颜色过渡\"\n      ],\n      \"acceptance\": [\n        \"滚动或拖拽保持 60fps 目标\",\n        \"降级后主任务仍可完成\",\n        \"视觉层不影响文本对比度\"\n      ]\n    }\n  ]\n}\n",
    "terms/visual-effects/cylindrical-list.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"cylindrical-list\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"visual-effects\",\n  \"title\": \"圆柱卷收列表\",\n  \"knowledge_type\": \"technique\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-visual-effect\",\n    \"implement-visual-effect\",\n    \"audit-performance\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"cylindrical-list\",\n      \"name\": \"圆柱卷收列表\",\n      \"plain_language\": \"根据列表项距视区中心的距离插值旋转、缩放、亮度和透明度，让中心项突出、边缘项自然卷入。\",\n      \"when_to_use\": \"需要有视觉表现但必须同时控制 GPU、移动端和减少动态成本\",\n      \"parameters\": [\n        \"rotateX/rotateY\",\n        \"scale\",\n        \"opacity\",\n        \"中心距离\",\n        \"scroll snap\"\n      ],\n      \"related\": [\n        \"performance-budget\",\n        \"progressive-degradation\",\n        \"reduced-motion\"\n      ],\n      \"constraints\": [\n        \"动效必须可中断\",\n        \"优先 transform/opacity\",\n        \"不得以视觉效果掩盖可读性\"\n      ],\n      \"aliases\": [],\n      \"performance_budget\": [\n        \"中心项必须保持清晰可读\",\n        \"旋转角度随距离连续变化\",\n        \"滚动停止后再交给 snap 接管\"\n      ],\n      \"fallback\": [\n        \"不支持 3D 时退化为缩放和透明度\",\n        \"低端设备关闭实时滤镜\"\n      ],\n      \"mobile_degradation\": [\n        \"移动端限制透视深度和可见项数量\",\n        \"虚拟列表避免为不可见项计算变换\"\n      ],\n      \"reduced_motion\": [\n        \"减少动态时保留中心突出，不播放卷收路径\"\n      ],\n      \"acceptance\": [\n        \"滚动或拖拽保持 60fps 目标\",\n        \"降级后主任务仍可完成\",\n        \"视觉层不影响文本对比度\"\n      ]\n    }\n  ]\n}\n",
    "terms/visual-effects/depth-layer-scroll.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"depth-layer-scroll\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"visual-effects\",\n  \"title\": \"景深分层滚动\",\n  \"knowledge_type\": \"technique\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-visual-effect\",\n    \"implement-visual-effect\",\n    \"audit-performance\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"depth-layer-scroll\",\n      \"name\": \"景深分层滚动\",\n      \"plain_language\": \"把内容拆为前、中、后三层，按滚动进度驱动不同速度、模糊和亮度，形成可控景深。\",\n      \"when_to_use\": \"需要有视觉表现但必须同时控制 GPU、移动端和减少动态成本\",\n      \"parameters\": [\n        \"scroll progress\",\n        \"translateY\",\n        \"blur/brightness\",\n        \"lerp\"\n      ],\n      \"related\": [\n        \"performance-budget\",\n        \"progressive-degradation\",\n        \"reduced-motion\"\n      ],\n      \"constraints\": [\n        \"动效必须可中断\",\n        \"优先 transform/opacity\",\n        \"不得以视觉效果掩盖可读性\"\n      ],\n      \"aliases\": [],\n      \"performance_budget\": [\n        \"后层速度更慢且更模糊\",\n        \"前层速度更快且更清晰\",\n        \"只动画 transform 和 opacity\"\n      ],\n      \"fallback\": [\n        \"不支持滤镜时只保留位移层级\",\n        \"滚动性能不足时关闭实时 blur\"\n      ],\n      \"mobile_degradation\": [\n        \"移动端减少层数至两层\",\n        \"使用 requestAnimationFrame 合并滚动采样\"\n      ],\n      \"reduced_motion\": [\n        \"减少动态时取消视差和模糊变化，保留静态层级\"\n      ],\n      \"acceptance\": [\n        \"滚动或拖拽保持 60fps 目标\",\n        \"降级后主任务仍可完成\",\n        \"视觉层不影响文本对比度\"\n      ]\n    }\n  ]\n}\n",
    "terms/visual-effects/liquid-adhesion-drag.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"liquid-adhesion-drag\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"visual-effects\",\n  \"title\": \"液滴粘连拖拽\",\n  \"knowledge_type\": \"technique\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-visual-effect\",\n    \"implement-visual-effect\",\n    \"audit-performance\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"liquid-adhesion-drag\",\n      \"name\": \"液滴粘连拖拽\",\n      \"plain_language\": \"拖动元素与原位之间生成液态粘连连接，距离增大时颈部收缩，超过阈值后断开并弹性回圆。\",\n      \"when_to_use\": \"需要有视觉表现但必须同时控制 GPU、移动端和减少动态成本\",\n      \"parameters\": [\n        \"SVG path/metaball\",\n        \"Canvas\",\n        \"贝塞尔曲线\",\n        \"spring\"\n      ],\n      \"related\": [\n        \"performance-budget\",\n        \"progressive-degradation\",\n        \"reduced-motion\"\n      ],\n      \"constraints\": [\n        \"动效必须可中断\",\n        \"优先 transform/opacity\",\n        \"不得以视觉效果掩盖可读性\"\n      ],\n      \"aliases\": [],\n      \"performance_budget\": [\n        \"粘连距离必须有上限\",\n        \"断裂阈值要有迟滞避免抖动\",\n        \"断裂后两端分别回弹\"\n      ],\n      \"fallback\": [\n        \"不支持 SVG/Canvas 时退化为连接线或无粘连拖拽\",\n        \"高负载时降低采样频率\"\n      ],\n      \"mobile_degradation\": [\n        \"移动端减少路径采样点\",\n        \"拖动期间阻止页面滚动但允许取消\"\n      ],\n      \"reduced_motion\": [\n        \"减少动态时取消粘连形变，保留拖拽和命中结果\"\n      ],\n      \"acceptance\": [\n        \"滚动或拖拽保持 60fps 目标\",\n        \"降级后主任务仍可完成\",\n        \"视觉层不影响文本对比度\"\n      ]\n    }\n  ]\n}\n",
    "terms/visual-effects/liquid-glass-bar.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"liquid-glass-bar\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"visual-effects\",\n  \"title\": \"液态玻璃栏\",\n  \"knowledge_type\": \"technique\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-visual-effect\",\n    \"implement-visual-effect\",\n    \"audit-performance\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"liquid-glass-bar\",\n      \"name\": \"液态玻璃栏\",\n      \"plain_language\": \"固定导航使用背景模糊、轻微折射和随滚动位移的高光，底色与文字对比度随背景亮度平滑调整。\",\n      \"when_to_use\": \"需要有视觉表现但必须同时控制 GPU、移动端和减少动态成本\",\n      \"parameters\": [\n        \"backdrop-filter\",\n        \"SVG displacement\",\n        \"高光层\",\n        \"亮度采样\",\n        \"scroll-driven animation\"\n      ],\n      \"related\": [\n        \"performance-budget\",\n        \"progressive-degradation\",\n        \"reduced-motion\"\n      ],\n      \"constraints\": [\n        \"动效必须可中断\",\n        \"优先 transform/opacity\",\n        \"不得以视觉效果掩盖可读性\"\n      ],\n      \"aliases\": [],\n      \"performance_budget\": [\n        \"桌面端优先使用 GPU 合成\",\n        \"高光和折射必须限制在导航区域\",\n        \"文字对比度持续满足可读性\"\n      ],\n      \"fallback\": [\n        \"不支持 backdrop-filter 时退化为不透明底色\",\n        \"低端设备关闭折射只保留模糊或纯色\"\n      ],\n      \"mobile_degradation\": [\n        \"移动端降低模糊半径\",\n        \"滚动中避免逐帧读取布局\"\n      ],\n      \"reduced_motion\": [\n        \"prefers-reduced-motion 下停用高光流动，保留静态玻璃层\"\n      ],\n      \"acceptance\": [\n        \"滚动或拖拽保持 60fps 目标\",\n        \"降级后主任务仍可完成\",\n        \"视觉层不影响文本对比度\"\n      ]\n    }\n  ]\n}\n",
    "terms/visual-layout/composition-patterns.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"composition-patterns\",\n  \"domain_id\": \"digital-product-uiux\",\n  \"subdomain_id\": \"visual-layout\",\n  \"title\": \"高级布局六式\",\n  \"knowledge_type\": \"pattern\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"design-layout\",\n    \"audit-layout\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"composition-patterns\",\n      \"name\": \"卡片错位/大图主导/非对称/层叠/留白/破格出血\",\n      \"plain_language\": \"用比例、层级和安全区建立页面性格；每次只让少数元素破格。\",\n      \"when_to_use\": \"首屏、活动页、详情页和内容信息流\",\n      \"parameters\": [\n        \"错位按 8/12/16px 节奏\",\n        \"主图可占半屏或出血\",\n        \"使用 7:3 或 8:2 非对称\",\n        \"只破一处网格，内容留在安全区\"\n      ],\n      \"related\": [\n        \"layout-patterns\",\n        \"design-tokens\"\n      ],\n      \"constraints\": [\n        \"错位无规律会像未对齐\",\n        \"出血过多会削弱秩序\",\n        \"留白必须仍有视觉焦点\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/workplace.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"package_id\": \"workplace-language\",\n  \"domain_id\": \"workplace-communication\",\n  \"title\": \"职场模糊表达与专业化解释术语包\",\n  \"version\": \"0.1.0\",\n  \"status\": \"published\",\n  \"intents\": [\n    {\n      \"id\": \"clarify-workplace-language\",\n      \"action\": \"解释\",\n      \"object\": \"职场模糊表达\"\n    },\n    {\n      \"id\": \"rewrite-workplace-request\",\n      \"action\": \"改写\",\n      \"object\": \"职场需求\"\n    }\n  ],\n  \"dimensions\": [\n    {\n      \"id\": \"meaning\",\n      \"name\": \"实际含义\",\n      \"definition\": \"这句话真正要求完成的事情。\",\n      \"value_type\": \"selection\"\n    },\n    {\n      \"id\": \"execution\",\n      \"name\": \"执行要求\",\n      \"definition\": \"负责人、动作、指标、期限和验收方式。\",\n      \"value_type\": \"selection\"\n    }\n  ],\n  \"terms\": [\n    {\n      \"id\": \"work-1\",\n      \"term\": \"赋能\",\n      \"plain_language\": \"提供资源、权限或能力支持\",\n      \"benefit\": \"明确需要谁提供什么资源和验收结果\",\n      \"cost\": \"减少空泛表达\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-2\",\n      \"term\": \"抓手\",\n      \"plain_language\": \"可执行的具体动作或机制\",\n      \"benefit\": \"把目标落成一个能负责和验收的动作\",\n      \"cost\": \"便于推进\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-3\",\n      \"term\": \"闭环\",\n      \"plain_language\": \"从目标、执行、反馈到复盘形成完整流程\",\n      \"benefit\": \"明确输入、负责人、结果和反馈回路\",\n      \"cost\": \"避免只做半段\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-4\",\n      \"term\": \"沉淀\",\n      \"plain_language\": \"把一次经验整理成可复用资产\",\n      \"benefit\": \"输出文档、模板、组件或规则\",\n      \"cost\": \"降低重复劳动\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-5\",\n      \"term\": \"对齐\",\n      \"plain_language\": \"让相关人对目标、口径和边界达成一致\",\n      \"benefit\": \"记录决策、负责人和截止时间\",\n      \"cost\": \"减少返工\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-6\",\n      \"term\": \"打通\",\n      \"plain_language\": \"消除流程、系统或团队之间的断点\",\n      \"benefit\": \"明确接口、数据流和责任交接\",\n      \"cost\": \"减少手工搬运\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-7\",\n      \"term\": \"落地\",\n      \"plain_language\": \"把方案变成实际执行结果\",\n      \"benefit\": \"补齐负责人、资源、时间和验收标准\",\n      \"cost\": \"让计划可执行\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-8\",\n      \"term\": \"复盘\",\n      \"plain_language\": \"根据结果和证据分析得失并改进\",\n      \"benefit\": \"区分事实、原因、行动项和负责人\",\n      \"cost\": \"持续改进有依据\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-9\",\n      \"term\": \"迭代\",\n      \"plain_language\": \"基于反馈逐步改进版本\",\n      \"benefit\": \"明确本轮目标、变更范围和退出条件\",\n      \"cost\": \"控制一次性变更风险\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-10\",\n      \"term\": \"颗粒度\",\n      \"plain_language\": \"信息或任务拆分的细致程度\",\n      \"benefit\": \"把任务拆到可估时、可负责、可验收\",\n      \"cost\": \"方便协作和排期\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-11\",\n      \"term\": \"优先级\",\n      \"plain_language\": \"不同事项的先后顺序\",\n      \"benefit\": \"按价值、成本、风险和依赖排序\",\n      \"cost\": \"资源使用更清楚\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-12\",\n      \"term\": \"资源倾斜\",\n      \"plain_language\": \"把更多人力、预算或时间给重点事项\",\n      \"benefit\": \"写明投入量、期限和预期收益\",\n      \"cost\": \"重点更容易突破\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-13\",\n      \"term\": \"降本增效\",\n      \"plain_language\": \"减少投入并提高产出\",\n      \"benefit\": \"分别列出成本指标、产出指标和基线\",\n      \"cost\": \"避免口号化\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-14\",\n      \"term\": \"结果导向\",\n      \"plain_language\": \"用可观察结果而非忙碌程度评价工作\",\n      \"benefit\": \"明确结果指标和验收证据\",\n      \"cost\": \"评价更直接\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-15\",\n      \"term\": \"快速迭代\",\n      \"plain_language\": \"缩短反馈周期，小范围连续试验\",\n      \"benefit\": \"限定试验范围、周期和停止条件\",\n      \"cost\": \"更快获得反馈\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-16\",\n      \"term\": \"协同\",\n      \"plain_language\": \"多个角色共同完成一个结果\",\n      \"benefit\": \"明确接口、依赖和单一责任人\",\n      \"cost\": \"减少职责空白\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-17\",\n      \"term\": \"兜底\",\n      \"plain_language\": \"为失败、异常或资源不足准备替代路径\",\n      \"benefit\": \"定义触发条件、备用方案和升级人\",\n      \"cost\": \"降低中断影响\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-18\",\n      \"term\": \"可控\",\n      \"plain_language\": \"风险、范围或结果处于可管理状态\",\n      \"benefit\": \"写明边界、阈值、监控和处置动作\",\n      \"cost\": \"便于管理风险\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-19\",\n      \"term\": \"心智\",\n      \"plain_language\": \"用户对品牌、产品或概念形成的稳定认知\",\n      \"benefit\": \"用认知对象和可观察行为描述\",\n      \"cost\": \"便于设计传播目标\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-20\",\n      \"term\": \"场景\",\n      \"plain_language\": \"需求发生的具体人、时、地和任务条件\",\n      \"benefit\": \"补充触发、用户、任务和限制\",\n      \"cost\": \"方案更贴近真实使用\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-21\",\n      \"term\": \"链路\",\n      \"plain_language\": \"从触达、操作到结果的连续过程\",\n      \"benefit\": \"画出节点、转化和流失位置\",\n      \"cost\": \"便于定位问题\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-22\",\n      \"term\": \"水位\",\n      \"plain_language\": \"团队或项目当前能力、进度或风险状态\",\n      \"benefit\": \"用指标和基线替代感觉\",\n      \"cost\": \"便于比较变化\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-23\",\n      \"term\": \"打法\",\n      \"plain_language\": \"在特定目标和场景下反复验证过的做法\",\n      \"benefit\": \"说明适用条件、步骤和证据\",\n      \"cost\": \"便于复用\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-24\",\n      \"term\": \"破冰\",\n      \"plain_language\": \"降低首次沟通或合作的进入门槛\",\n      \"benefit\": \"设计开场信息、共同点和下一步动作\",\n      \"cost\": \"提高开始沟通的成功率\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-25\",\n      \"term\": \"补位\",\n      \"plain_language\": \"承担原职责之外但影响结果的缺口\",\n      \"benefit\": \"明确缺口、临时负责人和交接时间\",\n      \"cost\": \"避免工作无人负责\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-26\",\n      \"term\": \"收口\",\n      \"plain_language\": \"结束讨论并形成明确决策\",\n      \"benefit\": \"记录结论、未决项、负责人和时间\",\n      \"cost\": \"减少反复讨论\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-27\",\n      \"term\": \"共识\",\n      \"plain_language\": \"相关参与者对目标和行动达成可追踪的一致\",\n      \"benefit\": \"记录谁同意什么、不同意什么\",\n      \"cost\": \"方便执行\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-28\",\n      \"term\": \"杠杆\",\n      \"plain_language\": \"用较小投入带来较大影响的关键因素\",\n      \"benefit\": \"说明投入、作用机制和验证指标\",\n      \"cost\": \"帮助集中资源\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-29\",\n      \"term\": \"方法论\",\n      \"plain_language\": \"可重复使用的问题解决框架\",\n      \"benefit\": \"写出步骤、适用范围和失败条件\",\n      \"cost\": \"便于培训和复用\",\n      \"dimension_id\": \"meaning\"\n    },\n    {\n      \"id\": \"work-30\",\n      \"term\": \"护城河\",\n      \"plain_language\": \"难以被竞争者复制的持续优势\",\n      \"benefit\": \"说明优势来源、持续机制和证据\",\n      \"cost\": \"帮助讨论长期竞争力\",\n      \"dimension_id\": \"meaning\"\n    }\n  ],\n  \"mappings\": [\n    {\n      \"expression\": \"专业一点/推进一下/做好闭环\",\n      \"level\": \"L3\",\n      \"intent_ids\": [\n        \"clarify-workplace-language\",\n        \"rewrite-workplace-request\"\n      ],\n      \"dimension_ids\": [\n        \"meaning\",\n        \"execution\"\n      ],\n      \"reason\": \"把抽象职场表达转换为具体动作、责任、指标和验收。\"\n    }\n  ]\n}\n",
    "terms/workplace/action-item.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"action-item\",\n  \"domain_id\": \"workplace-communication\",\n  \"subdomain_id\": \"execution-language\",\n  \"title\": \"执行项\",\n  \"knowledge_type\": \"term\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"write-action\",\n    \"review-status\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"action-item\",\n      \"name\": \"执行项\",\n      \"plain_language\": \"每个执行项写清负责人、下一步、截止时间和完成证据。\",\n      \"when_to_use\": \"用户说出职场模糊表达或需要改写协作要求时\",\n      \"parameters\": [\n        \"owner\",\n        \"next step\",\n        \"due date\",\n        \"evidence\"\n      ],\n      \"related\": [\n        \"information-hierarchy\",\n        \"goal-metric\"\n      ],\n      \"constraints\": [\n        \"不替用户猜测未提供的事实\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/workplace/dependency-alignment.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"dependency-alignment\",\n  \"domain_id\": \"workplace-communication\",\n  \"subdomain_id\": \"project-collaboration\",\n  \"title\": \"项目依赖对齐\",\n  \"knowledge_type\": \"term\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"align-collaboration\",\n    \"resolve-dependency\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"dependency-alignment\",\n      \"name\": \"项目依赖对齐\",\n      \"plain_language\": \"明确依赖方、输入、输出、阻塞风险和升级路径。\",\n      \"when_to_use\": \"用户说出职场模糊表达或需要改写协作要求时\",\n      \"parameters\": [\n        \"依赖方\",\n        \"输入\",\n        \"输出\",\n        \"截止时间\",\n        \"升级路径\"\n      ],\n      \"related\": [\n        \"information-hierarchy\",\n        \"goal-metric\"\n      ],\n      \"constraints\": [\n        \"不替用户猜测未提供的事实\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/workplace/goal-metric.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"goal-metric\",\n  \"domain_id\": \"workplace-communication\",\n  \"subdomain_id\": \"goal-alignment\",\n  \"title\": \"目标与指标\",\n  \"knowledge_type\": \"term\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"define-goal\",\n    \"review-priority\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"goal-metric\",\n      \"name\": \"目标与指标\",\n      \"plain_language\": \"把方向性目标拆成可观察结果、指标口径、范围和优先级。\",\n      \"when_to_use\": \"用户说出职场模糊表达或需要改写协作要求时\",\n      \"parameters\": [\n        \"目标\",\n        \"指标\",\n        \"口径\",\n        \"范围\",\n        \"优先级\"\n      ],\n      \"related\": [\n        \"information-hierarchy\",\n        \"goal-metric\"\n      ],\n      \"constraints\": [\n        \"不替用户猜测未提供的事实\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/workplace/jargon-translation.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"jargon-translation\",\n  \"domain_id\": \"workplace-communication\",\n  \"subdomain_id\": \"vague-expression\",\n  \"title\": \"职场黑话翻译\",\n  \"knowledge_type\": \"term\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"clarify-vague\",\n    \"rewrite-actionable\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"jargon-translation\",\n      \"name\": \"职场黑话翻译\",\n      \"plain_language\": \"把“拉齐、抓手、闭环、赋能”等模糊词翻译为对象、动作、负责人和结果。\",\n      \"when_to_use\": \"用户说出职场模糊表达或需要改写协作要求时\",\n      \"parameters\": [\n        \"原句\",\n        \"真实对象\",\n        \"动作\",\n        \"负责人\",\n        \"验收标准\"\n      ],\n      \"related\": [\n        \"information-hierarchy\",\n        \"goal-metric\"\n      ],\n      \"constraints\": [\n        \"不替用户猜测未提供的事实\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n",
    "terms/workplace/management-mechanism.json": "{\n  \"schema_version\": \"1.0.0\",\n  \"leaf_id\": \"management-mechanism\",\n  \"domain_id\": \"workplace-communication\",\n  \"subdomain_id\": \"management-terms\",\n  \"title\": \"管理机制\",\n  \"knowledge_type\": \"term\",\n  \"scope\": \"general\",\n  \"status\": \"published\",\n  \"intent_ids\": [\n    \"explain-term\",\n    \"translate-jargon\"\n  ],\n  \"entries\": [\n    {\n      \"id\": \"management-mechanism\",\n      \"name\": \"管理机制\",\n      \"plain_language\": \"把机制、复盘、资源配置和组织动作落到可观察的流程。\",\n      \"when_to_use\": \"用户说出职场模糊表达或需要改写协作要求时\",\n      \"parameters\": [\n        \"机制\",\n        \"触发条件\",\n        \"参与者\",\n        \"输出\",\n        \"复盘\"\n      ],\n      \"related\": [\n        \"information-hierarchy\",\n        \"goal-metric\"\n      ],\n      \"constraints\": [\n        \"不替用户猜测未提供的事实\"\n      ],\n      \"aliases\": []\n    }\n  ]\n}\n"
  }
}
