create-yss-spec 2.1.11 → 2.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/template/.agents/skills/high-fidelity-html-prototype/SKILL.md +1 -18
  4. package/template/.agents/skills/llm-wiki/SKILL.md +60 -0
  5. package/template/.agents/skills/llm-wiki/assets/CLAUDE.md.template +26 -0
  6. package/template/.agents/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/CLAUDE.md +3 -0
  7. package/template/.agents/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/index.md +5 -0
  8. package/template/.agents/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/log.md +1 -0
  9. package/template/.agents/skills/llm-wiki/assets/fixtures/broken-wiki/wiki//345/255/230/345/234/250/347/232/204/351/241/265.md +7 -0
  10. package/template/.agents/skills/llm-wiki/references/compile.md +126 -0
  11. package/template/.agents/skills/llm-wiki/references/discover.md +41 -0
  12. package/template/.agents/skills/llm-wiki/references/ingest.md +36 -0
  13. package/template/.agents/skills/llm-wiki/references/lint.md +54 -0
  14. package/template/.agents/skills/llm-wiki/references/query.md +21 -0
  15. package/template/.agents/skills/llm-wiki/references/schema.md +45 -0
  16. package/template/.agents/skills/llm-wiki/references/writing.md +35 -0
  17. package/template/.agents/skills/llm-wiki/scripts/advise.mjs +196 -0
  18. package/template/.agents/skills/llm-wiki/scripts/advise.test.mjs +91 -0
  19. package/template/.agents/skills/llm-wiki/scripts/extract.mjs +55 -0
  20. package/template/.agents/skills/llm-wiki/scripts/extract.test.mjs +34 -0
  21. package/template/.agents/skills/llm-wiki/scripts/inventory.mjs +174 -0
  22. package/template/.agents/skills/llm-wiki/scripts/inventory.test.mjs +98 -0
  23. package/template/.agents/skills/llm-wiki/scripts/lint-wikilinks.mjs +177 -0
  24. package/template/.agents/skills/llm-wiki/scripts/lint-wikilinks.test.mjs +212 -0
  25. package/template/.agents/skills/yss-antd-design/SKILL.md +34 -0
  26. package/template/.agents/skills/yss-antd-design/references/boundaries.md +30 -0
  27. package/template/.agents/skills/yss-antd-design/references/cli-matrix.md +38 -0
  28. package/template/.agents/skills/yss-antd-design/references/evidence.md +26 -0
  29. package/template/.agents/skills/yss-antd-design/scripts/validate-frontmatter.mjs +46 -0
  30. package/template/.agents/skills/yss-antd-design/scripts/validate-frontmatter.test.mjs +27 -0
  31. package/template/.agents/skills/yss-design-system/SKILL.md +9 -5
  32. package/template/.agents/skills/yss-design-system/references/design-qa-theme.md +64 -0
  33. package/template/.agents/skills/yss-design-system/references/design-system.md +20 -12
  34. package/template/.agents/skills/yss-product-lifecycle/SKILL.md +1 -1
  35. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +1 -1
  36. package/template/.agents/skills/yss-prototype-stage/SKILL.md +3 -1
  37. package/template/.agents/skills/yss-ui/SKILL.md +1 -1
  38. package/template/.claude/skills/high-fidelity-html-prototype/SKILL.md +1 -18
  39. package/template/.claude/skills/llm-wiki/SKILL.md +60 -0
  40. package/template/.claude/skills/llm-wiki/assets/CLAUDE.md.template +26 -0
  41. package/template/.claude/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/CLAUDE.md +3 -0
  42. package/template/.claude/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/index.md +5 -0
  43. package/template/.claude/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/log.md +1 -0
  44. package/template/.claude/skills/llm-wiki/assets/fixtures/broken-wiki/wiki//345/255/230/345/234/250/347/232/204/351/241/265.md +7 -0
  45. package/template/.claude/skills/llm-wiki/references/compile.md +126 -0
  46. package/template/.claude/skills/llm-wiki/references/discover.md +41 -0
  47. package/template/.claude/skills/llm-wiki/references/ingest.md +36 -0
  48. package/template/.claude/skills/llm-wiki/references/lint.md +54 -0
  49. package/template/.claude/skills/llm-wiki/references/query.md +21 -0
  50. package/template/.claude/skills/llm-wiki/references/schema.md +45 -0
  51. package/template/.claude/skills/llm-wiki/references/writing.md +35 -0
  52. package/template/.claude/skills/llm-wiki/scripts/advise.mjs +196 -0
  53. package/template/.claude/skills/llm-wiki/scripts/advise.test.mjs +91 -0
  54. package/template/.claude/skills/llm-wiki/scripts/extract.mjs +55 -0
  55. package/template/.claude/skills/llm-wiki/scripts/extract.test.mjs +34 -0
  56. package/template/.claude/skills/llm-wiki/scripts/inventory.mjs +174 -0
  57. package/template/.claude/skills/llm-wiki/scripts/inventory.test.mjs +98 -0
  58. package/template/.claude/skills/llm-wiki/scripts/lint-wikilinks.mjs +177 -0
  59. package/template/.claude/skills/llm-wiki/scripts/lint-wikilinks.test.mjs +212 -0
  60. package/template/.claude/skills/yss-antd-design/SKILL.md +34 -0
  61. package/template/.claude/skills/yss-antd-design/references/boundaries.md +30 -0
  62. package/template/.claude/skills/yss-antd-design/references/cli-matrix.md +38 -0
  63. package/template/.claude/skills/yss-antd-design/references/evidence.md +26 -0
  64. package/template/.claude/skills/yss-antd-design/scripts/validate-frontmatter.mjs +46 -0
  65. package/template/.claude/skills/yss-antd-design/scripts/validate-frontmatter.test.mjs +27 -0
  66. package/template/.claude/skills/yss-design-system/SKILL.md +9 -5
  67. package/template/.claude/skills/yss-design-system/references/design-qa-theme.md +64 -0
  68. package/template/.claude/skills/yss-design-system/references/design-system.md +20 -12
  69. package/template/.claude/skills/yss-product-lifecycle/SKILL.md +1 -1
  70. package/template/.claude/skills/yss-product-lifecycle/references/orchestration-contract.yaml +1 -1
  71. package/template/.claude/skills/yss-prototype-stage/SKILL.md +3 -1
  72. package/template/.claude/skills/yss-ui/SKILL.md +1 -1
  73. package/template/.codex/skills/high-fidelity-html-prototype/SKILL.md +1 -18
  74. package/template/.codex/skills/llm-wiki/SKILL.md +60 -0
  75. package/template/.codex/skills/llm-wiki/assets/CLAUDE.md.template +26 -0
  76. package/template/.codex/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/CLAUDE.md +3 -0
  77. package/template/.codex/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/index.md +5 -0
  78. package/template/.codex/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/log.md +1 -0
  79. package/template/.codex/skills/llm-wiki/assets/fixtures/broken-wiki/wiki//345/255/230/345/234/250/347/232/204/351/241/265.md +7 -0
  80. package/template/.codex/skills/llm-wiki/references/compile.md +126 -0
  81. package/template/.codex/skills/llm-wiki/references/discover.md +41 -0
  82. package/template/.codex/skills/llm-wiki/references/ingest.md +36 -0
  83. package/template/.codex/skills/llm-wiki/references/lint.md +54 -0
  84. package/template/.codex/skills/llm-wiki/references/query.md +21 -0
  85. package/template/.codex/skills/llm-wiki/references/schema.md +45 -0
  86. package/template/.codex/skills/llm-wiki/references/writing.md +35 -0
  87. package/template/.codex/skills/llm-wiki/scripts/advise.mjs +196 -0
  88. package/template/.codex/skills/llm-wiki/scripts/advise.test.mjs +91 -0
  89. package/template/.codex/skills/llm-wiki/scripts/extract.mjs +55 -0
  90. package/template/.codex/skills/llm-wiki/scripts/extract.test.mjs +34 -0
  91. package/template/.codex/skills/llm-wiki/scripts/inventory.mjs +174 -0
  92. package/template/.codex/skills/llm-wiki/scripts/inventory.test.mjs +98 -0
  93. package/template/.codex/skills/llm-wiki/scripts/lint-wikilinks.mjs +177 -0
  94. package/template/.codex/skills/llm-wiki/scripts/lint-wikilinks.test.mjs +212 -0
  95. package/template/.codex/skills/yss-antd-design/SKILL.md +34 -0
  96. package/template/.codex/skills/yss-antd-design/references/boundaries.md +30 -0
  97. package/template/.codex/skills/yss-antd-design/references/cli-matrix.md +38 -0
  98. package/template/.codex/skills/yss-antd-design/references/evidence.md +26 -0
  99. package/template/.codex/skills/yss-antd-design/scripts/validate-frontmatter.mjs +46 -0
  100. package/template/.codex/skills/yss-antd-design/scripts/validate-frontmatter.test.mjs +27 -0
  101. package/template/.codex/skills/yss-design-system/SKILL.md +9 -5
  102. package/template/.codex/skills/yss-design-system/references/design-qa-theme.md +64 -0
  103. package/template/.codex/skills/yss-design-system/references/design-system.md +20 -12
  104. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +1 -1
  105. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +1 -1
  106. package/template/.codex/skills/yss-prototype-stage/SKILL.md +3 -1
  107. package/template/.codex/skills/yss-ui/SKILL.md +1 -1
  108. package/template/.cursor/skills/high-fidelity-html-prototype/SKILL.md +1 -18
  109. package/template/.cursor/skills/llm-wiki/SKILL.md +60 -0
  110. package/template/.cursor/skills/llm-wiki/assets/CLAUDE.md.template +26 -0
  111. package/template/.cursor/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/CLAUDE.md +3 -0
  112. package/template/.cursor/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/index.md +5 -0
  113. package/template/.cursor/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/log.md +1 -0
  114. package/template/.cursor/skills/llm-wiki/assets/fixtures/broken-wiki/wiki//345/255/230/345/234/250/347/232/204/351/241/265.md +7 -0
  115. package/template/.cursor/skills/llm-wiki/references/compile.md +126 -0
  116. package/template/.cursor/skills/llm-wiki/references/discover.md +41 -0
  117. package/template/.cursor/skills/llm-wiki/references/ingest.md +36 -0
  118. package/template/.cursor/skills/llm-wiki/references/lint.md +54 -0
  119. package/template/.cursor/skills/llm-wiki/references/query.md +21 -0
  120. package/template/.cursor/skills/llm-wiki/references/schema.md +45 -0
  121. package/template/.cursor/skills/llm-wiki/references/writing.md +35 -0
  122. package/template/.cursor/skills/llm-wiki/scripts/advise.mjs +196 -0
  123. package/template/.cursor/skills/llm-wiki/scripts/advise.test.mjs +91 -0
  124. package/template/.cursor/skills/llm-wiki/scripts/extract.mjs +55 -0
  125. package/template/.cursor/skills/llm-wiki/scripts/extract.test.mjs +34 -0
  126. package/template/.cursor/skills/llm-wiki/scripts/inventory.mjs +174 -0
  127. package/template/.cursor/skills/llm-wiki/scripts/inventory.test.mjs +98 -0
  128. package/template/.cursor/skills/llm-wiki/scripts/lint-wikilinks.mjs +177 -0
  129. package/template/.cursor/skills/llm-wiki/scripts/lint-wikilinks.test.mjs +212 -0
  130. package/template/.cursor/skills/yss-antd-design/SKILL.md +34 -0
  131. package/template/.cursor/skills/yss-antd-design/references/boundaries.md +30 -0
  132. package/template/.cursor/skills/yss-antd-design/references/cli-matrix.md +38 -0
  133. package/template/.cursor/skills/yss-antd-design/references/evidence.md +26 -0
  134. package/template/.cursor/skills/yss-antd-design/scripts/validate-frontmatter.mjs +46 -0
  135. package/template/.cursor/skills/yss-antd-design/scripts/validate-frontmatter.test.mjs +27 -0
  136. package/template/.cursor/skills/yss-design-system/SKILL.md +9 -5
  137. package/template/.cursor/skills/yss-design-system/references/design-qa-theme.md +64 -0
  138. package/template/.cursor/skills/yss-design-system/references/design-system.md +20 -12
  139. package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +1 -1
  140. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +1 -1
  141. package/template/.cursor/skills/yss-prototype-stage/SKILL.md +3 -1
  142. package/template/.cursor/skills/yss-ui/SKILL.md +1 -1
  143. package/template/.hermes/skills/high-fidelity-html-prototype/SKILL.md +1 -18
  144. package/template/.hermes/skills/llm-wiki/SKILL.md +60 -0
  145. package/template/.hermes/skills/llm-wiki/assets/CLAUDE.md.template +26 -0
  146. package/template/.hermes/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/CLAUDE.md +3 -0
  147. package/template/.hermes/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/index.md +5 -0
  148. package/template/.hermes/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/log.md +1 -0
  149. package/template/.hermes/skills/llm-wiki/assets/fixtures/broken-wiki/wiki//345/255/230/345/234/250/347/232/204/351/241/265.md +7 -0
  150. package/template/.hermes/skills/llm-wiki/references/compile.md +126 -0
  151. package/template/.hermes/skills/llm-wiki/references/discover.md +41 -0
  152. package/template/.hermes/skills/llm-wiki/references/ingest.md +36 -0
  153. package/template/.hermes/skills/llm-wiki/references/lint.md +54 -0
  154. package/template/.hermes/skills/llm-wiki/references/query.md +21 -0
  155. package/template/.hermes/skills/llm-wiki/references/schema.md +45 -0
  156. package/template/.hermes/skills/llm-wiki/references/writing.md +35 -0
  157. package/template/.hermes/skills/llm-wiki/scripts/advise.mjs +196 -0
  158. package/template/.hermes/skills/llm-wiki/scripts/advise.test.mjs +91 -0
  159. package/template/.hermes/skills/llm-wiki/scripts/extract.mjs +55 -0
  160. package/template/.hermes/skills/llm-wiki/scripts/extract.test.mjs +34 -0
  161. package/template/.hermes/skills/llm-wiki/scripts/inventory.mjs +174 -0
  162. package/template/.hermes/skills/llm-wiki/scripts/inventory.test.mjs +98 -0
  163. package/template/.hermes/skills/llm-wiki/scripts/lint-wikilinks.mjs +177 -0
  164. package/template/.hermes/skills/llm-wiki/scripts/lint-wikilinks.test.mjs +212 -0
  165. package/template/.hermes/skills/yss-antd-design/SKILL.md +34 -0
  166. package/template/.hermes/skills/yss-antd-design/references/boundaries.md +30 -0
  167. package/template/.hermes/skills/yss-antd-design/references/cli-matrix.md +38 -0
  168. package/template/.hermes/skills/yss-antd-design/references/evidence.md +26 -0
  169. package/template/.hermes/skills/yss-antd-design/scripts/validate-frontmatter.mjs +46 -0
  170. package/template/.hermes/skills/yss-antd-design/scripts/validate-frontmatter.test.mjs +27 -0
  171. package/template/.hermes/skills/yss-design-system/SKILL.md +9 -5
  172. package/template/.hermes/skills/yss-design-system/references/design-qa-theme.md +64 -0
  173. package/template/.hermes/skills/yss-design-system/references/design-system.md +20 -12
  174. package/template/.hermes/skills/yss-product-lifecycle/SKILL.md +1 -1
  175. package/template/.hermes/skills/yss-product-lifecycle/references/orchestration-contract.yaml +1 -1
  176. package/template/.hermes/skills/yss-prototype-stage/SKILL.md +3 -1
  177. package/template/.hermes/skills/yss-ui/SKILL.md +1 -1
  178. package/template/.pi/skills/high-fidelity-html-prototype/SKILL.md +1 -18
  179. package/template/.pi/skills/llm-wiki/SKILL.md +60 -0
  180. package/template/.pi/skills/llm-wiki/assets/CLAUDE.md.template +26 -0
  181. package/template/.pi/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/CLAUDE.md +3 -0
  182. package/template/.pi/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/index.md +5 -0
  183. package/template/.pi/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/log.md +1 -0
  184. package/template/.pi/skills/llm-wiki/assets/fixtures/broken-wiki/wiki//345/255/230/345/234/250/347/232/204/351/241/265.md +7 -0
  185. package/template/.pi/skills/llm-wiki/references/compile.md +126 -0
  186. package/template/.pi/skills/llm-wiki/references/discover.md +41 -0
  187. package/template/.pi/skills/llm-wiki/references/ingest.md +36 -0
  188. package/template/.pi/skills/llm-wiki/references/lint.md +54 -0
  189. package/template/.pi/skills/llm-wiki/references/query.md +21 -0
  190. package/template/.pi/skills/llm-wiki/references/schema.md +45 -0
  191. package/template/.pi/skills/llm-wiki/references/writing.md +35 -0
  192. package/template/.pi/skills/llm-wiki/scripts/advise.mjs +196 -0
  193. package/template/.pi/skills/llm-wiki/scripts/advise.test.mjs +91 -0
  194. package/template/.pi/skills/llm-wiki/scripts/extract.mjs +55 -0
  195. package/template/.pi/skills/llm-wiki/scripts/extract.test.mjs +34 -0
  196. package/template/.pi/skills/llm-wiki/scripts/inventory.mjs +174 -0
  197. package/template/.pi/skills/llm-wiki/scripts/inventory.test.mjs +98 -0
  198. package/template/.pi/skills/llm-wiki/scripts/lint-wikilinks.mjs +177 -0
  199. package/template/.pi/skills/llm-wiki/scripts/lint-wikilinks.test.mjs +212 -0
  200. package/template/.pi/skills/yss-antd-design/SKILL.md +34 -0
  201. package/template/.pi/skills/yss-antd-design/references/boundaries.md +30 -0
  202. package/template/.pi/skills/yss-antd-design/references/cli-matrix.md +38 -0
  203. package/template/.pi/skills/yss-antd-design/references/evidence.md +26 -0
  204. package/template/.pi/skills/yss-antd-design/scripts/validate-frontmatter.mjs +46 -0
  205. package/template/.pi/skills/yss-antd-design/scripts/validate-frontmatter.test.mjs +27 -0
  206. package/template/.pi/skills/yss-design-system/SKILL.md +9 -5
  207. package/template/.pi/skills/yss-design-system/references/design-qa-theme.md +64 -0
  208. package/template/.pi/skills/yss-design-system/references/design-system.md +20 -12
  209. package/template/.pi/skills/yss-product-lifecycle/SKILL.md +1 -1
  210. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +1 -1
  211. package/template/.pi/skills/yss-prototype-stage/SKILL.md +3 -1
  212. package/template/.pi/skills/yss-ui/SKILL.md +1 -1
  213. package/template/.qoder/skills/high-fidelity-html-prototype/SKILL.md +1 -18
  214. package/template/.qoder/skills/llm-wiki/SKILL.md +60 -0
  215. package/template/.qoder/skills/llm-wiki/assets/CLAUDE.md.template +26 -0
  216. package/template/.qoder/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/CLAUDE.md +3 -0
  217. package/template/.qoder/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/index.md +5 -0
  218. package/template/.qoder/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/log.md +1 -0
  219. package/template/.qoder/skills/llm-wiki/assets/fixtures/broken-wiki/wiki//345/255/230/345/234/250/347/232/204/351/241/265.md +7 -0
  220. package/template/.qoder/skills/llm-wiki/references/compile.md +126 -0
  221. package/template/.qoder/skills/llm-wiki/references/discover.md +41 -0
  222. package/template/.qoder/skills/llm-wiki/references/ingest.md +36 -0
  223. package/template/.qoder/skills/llm-wiki/references/lint.md +54 -0
  224. package/template/.qoder/skills/llm-wiki/references/query.md +21 -0
  225. package/template/.qoder/skills/llm-wiki/references/schema.md +45 -0
  226. package/template/.qoder/skills/llm-wiki/references/writing.md +35 -0
  227. package/template/.qoder/skills/llm-wiki/scripts/advise.mjs +196 -0
  228. package/template/.qoder/skills/llm-wiki/scripts/advise.test.mjs +91 -0
  229. package/template/.qoder/skills/llm-wiki/scripts/extract.mjs +55 -0
  230. package/template/.qoder/skills/llm-wiki/scripts/extract.test.mjs +34 -0
  231. package/template/.qoder/skills/llm-wiki/scripts/inventory.mjs +174 -0
  232. package/template/.qoder/skills/llm-wiki/scripts/inventory.test.mjs +98 -0
  233. package/template/.qoder/skills/llm-wiki/scripts/lint-wikilinks.mjs +177 -0
  234. package/template/.qoder/skills/llm-wiki/scripts/lint-wikilinks.test.mjs +212 -0
  235. package/template/.qoder/skills/yss-antd-design/SKILL.md +34 -0
  236. package/template/.qoder/skills/yss-antd-design/references/boundaries.md +30 -0
  237. package/template/.qoder/skills/yss-antd-design/references/cli-matrix.md +38 -0
  238. package/template/.qoder/skills/yss-antd-design/references/evidence.md +26 -0
  239. package/template/.qoder/skills/yss-antd-design/scripts/validate-frontmatter.mjs +46 -0
  240. package/template/.qoder/skills/yss-antd-design/scripts/validate-frontmatter.test.mjs +27 -0
  241. package/template/.qoder/skills/yss-design-system/SKILL.md +9 -5
  242. package/template/.qoder/skills/yss-design-system/references/design-qa-theme.md +64 -0
  243. package/template/.qoder/skills/yss-design-system/references/design-system.md +20 -12
  244. package/template/.qoder/skills/yss-product-lifecycle/SKILL.md +1 -1
  245. package/template/.qoder/skills/yss-product-lifecycle/references/orchestration-contract.yaml +1 -1
  246. package/template/.qoder/skills/yss-prototype-stage/SKILL.md +3 -1
  247. package/template/.qoder/skills/yss-ui/SKILL.md +1 -1
  248. package/template/.trae/skills/high-fidelity-html-prototype/SKILL.md +1 -18
  249. package/template/.trae/skills/llm-wiki/SKILL.md +60 -0
  250. package/template/.trae/skills/llm-wiki/assets/CLAUDE.md.template +26 -0
  251. package/template/.trae/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/CLAUDE.md +3 -0
  252. package/template/.trae/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/index.md +5 -0
  253. package/template/.trae/skills/llm-wiki/assets/fixtures/broken-wiki/wiki/log.md +1 -0
  254. package/template/.trae/skills/llm-wiki/assets/fixtures/broken-wiki/wiki//345/255/230/345/234/250/347/232/204/351/241/265.md +7 -0
  255. package/template/.trae/skills/llm-wiki/references/compile.md +126 -0
  256. package/template/.trae/skills/llm-wiki/references/discover.md +41 -0
  257. package/template/.trae/skills/llm-wiki/references/ingest.md +36 -0
  258. package/template/.trae/skills/llm-wiki/references/lint.md +54 -0
  259. package/template/.trae/skills/llm-wiki/references/query.md +21 -0
  260. package/template/.trae/skills/llm-wiki/references/schema.md +45 -0
  261. package/template/.trae/skills/llm-wiki/references/writing.md +35 -0
  262. package/template/.trae/skills/llm-wiki/scripts/advise.mjs +196 -0
  263. package/template/.trae/skills/llm-wiki/scripts/advise.test.mjs +91 -0
  264. package/template/.trae/skills/llm-wiki/scripts/extract.mjs +55 -0
  265. package/template/.trae/skills/llm-wiki/scripts/extract.test.mjs +34 -0
  266. package/template/.trae/skills/llm-wiki/scripts/inventory.mjs +174 -0
  267. package/template/.trae/skills/llm-wiki/scripts/inventory.test.mjs +98 -0
  268. package/template/.trae/skills/llm-wiki/scripts/lint-wikilinks.mjs +177 -0
  269. package/template/.trae/skills/llm-wiki/scripts/lint-wikilinks.test.mjs +212 -0
  270. package/template/.trae/skills/yss-antd-design/SKILL.md +34 -0
  271. package/template/.trae/skills/yss-antd-design/references/boundaries.md +30 -0
  272. package/template/.trae/skills/yss-antd-design/references/cli-matrix.md +38 -0
  273. package/template/.trae/skills/yss-antd-design/references/evidence.md +26 -0
  274. package/template/.trae/skills/yss-antd-design/scripts/validate-frontmatter.mjs +46 -0
  275. package/template/.trae/skills/yss-antd-design/scripts/validate-frontmatter.test.mjs +27 -0
  276. package/template/.trae/skills/yss-design-system/SKILL.md +9 -5
  277. package/template/.trae/skills/yss-design-system/references/design-qa-theme.md +64 -0
  278. package/template/.trae/skills/yss-design-system/references/design-system.md +20 -12
  279. package/template/.trae/skills/yss-product-lifecycle/SKILL.md +1 -1
  280. package/template/.trae/skills/yss-product-lifecycle/references/orchestration-contract.yaml +1 -1
  281. package/template/.trae/skills/yss-prototype-stage/SKILL.md +3 -1
  282. package/template/.trae/skills/yss-ui/SKILL.md +1 -1
  283. package/template/AGENTS.md +5 -3
  284. package/template/CLAUDE.md +13 -0
  285. package/template/CONTEXT.md +75 -65
  286. package/template/docs/agents/domain.md +4 -3
  287. package/template/docs/agents/yss-skill-registry.yaml +12 -0
  288. package/template/docs/design/README.md +5 -5
  289. package/template/docs/design/design.md +94 -29
  290. package/template/docs/design/templates/prototype-evidence-template.yaml +12 -1
  291. package/template/docs/design/tokens/theme.json +16 -9
  292. package/template/docs/design/tokens/tokens.compact.json +35 -32
  293. package/template/docs/design/tokens/tokens.dark.json +5 -5
  294. package/template/docs/design/tokens/tokens.default.json +41 -32
  295. package/template/docs/design/tokens/variables.css +62 -37
  296. package/template/docs/design/tokens/variables.dark.css +5 -5
  297. package/template/docs/process/implementation-repo-integration.md +9 -0
  298. package/template/docs/templates/requirement-freeze-template.md +1 -1
  299. package/template/docs/templates/review-report-template.md +1 -0
  300. package/template/docs/templates/spec-template.md +1 -1
  301. package/template/docs/templates/vertical-slice-ticket-template.md +1 -1
  302. package/template/docs/user-guide//344/272/247/345/223/201/347/224/237/345/221/275/345/221/250/346/234/237/345/267/245/344/275/234/346/265/201.md +10 -10
  303. package/template/docs/user-guide//344/272/247/345/223/201/347/240/224/345/217/221/345/205/250/347/224/237/345/221/275/345/221/250/346/234/237/346/234/200/344/275/263/345/256/236/350/267/265.md +7 -7
  304. package/template/docs/user-guide//347/224/237/345/221/275/345/221/250/346/234/237/346/234/200/344/275/263/345/256/236/350/267/265.md +5 -5
  305. package/template/docs/user-guide//351/234/200/346/261/202/346/276/204/346/270/205/346/214/207/345/215/227.md +6 -7
  306. package/template/docs/user-guide//351/234/200/346/261/202/346/276/204/346/270/205/346/234/200/344/275/263/345/256/236/350/267/265.md +3 -3
  307. package/template/skills-lock.json +37 -5
  308. package/template/wiki/.wiki-manifest.json +390 -0
  309. package/template/wiki/raw/AGENTS.md +43 -62
  310. package/template/wiki/raw/CONTEXT.md +76 -42
  311. package/template/wiki/raw/README.md +4 -1
  312. package/template/wiki/raw/create-yss-spec-repository-mode-contract.md +95 -0
  313. package/template/wiki/raw/harness-process-tailoring.md +64 -0
  314. package/template/wiki/raw/implementation-repo-integration.md +62 -0
  315. package/template/wiki/raw/issue-tracker.md +135 -0
  316. package/template/wiki/raw/lifecycle-registry.yaml +369 -0
  317. package/template/wiki/raw/maintenance-intensity.yaml +25 -0
  318. package/template/wiki/raw/skills-lock-names.md +93 -0
  319. package/template/wiki/raw/skills-maintenance.md +90 -0
  320. package/template/wiki/raw/spec-template.md +4 -5
  321. package/template/wiki/raw/triage-labels.md +15 -0
  322. package/template/wiki/raw/vertical-slice-ticket-template.md +15 -9
  323. package/template/wiki/raw/yss-skill-registry.yaml +510 -0
  324. package/template/wiki/wiki/Agent/345/205/245/345/217/243/350/247/204/345/210/231.md +17 -5
  325. package/template/wiki/wiki/CLAUDE.md +15 -11
  326. package/template/wiki/wiki/Fresh/351/252/214/350/257/201/344/270/216/347/213/254/347/253/213/345/256/241/346/237/245.md +15 -5
  327. package/template/wiki/wiki/LLM Wiki.md +30 -0
  328. package/template/wiki/wiki/Matt/346/212/200/350/203/275/344/275/223/347/263/273.md +17 -5
  329. package/template/wiki/wiki/OpenAPI/345/245/221/347/272/246.md +16 -5
  330. package/template/wiki/wiki/SpecDelta.md +15 -5
  331. package/template/wiki/wiki/Spec/345/237/272/347/272/277.md +18 -5
  332. package/template/wiki/wiki/Ticket/344/270/216/346/265/201/347/250/213/347/212/266/346/200/201.md +17 -5
  333. package/template/wiki/wiki/YSS/345/267/245/347/250/213/346/212/200/350/203/275/344/275/223/347/263/273.md +19 -5
  334. package/template/wiki/wiki/YSS/350/267/257/347/224/261/344/270/216/345/220/210/345/220/214/347/274/226/350/257/221.md +16 -5
  335. package/template/wiki/wiki/concept-table.md +9 -0
  336. package/template/wiki/wiki/index.md +12 -11
  337. package/template/wiki/wiki/log.md +34 -0
  338. package/template/wiki/wiki//344/272/247/345/223/201/347/240/224/345/217/221/347/224/237/345/221/275/345/221/250/346/234/237.md +15 -4
  339. package/template/wiki/wiki//344/272/247/345/223/201/350/256/276/350/256/241/345/275/261/345/223/215/344/270/216/345/216/237/345/236/213.md +14 -4
  340. package/template/wiki/wiki//344/273/223/345/272/223/350/272/253/344/273/275/344/270/216/350/267/257/347/224/261.md +15 -4
  341. package/template/wiki/wiki//345/210/207/347/211/207/345/256/236/347/216/260/345/220/210/345/220/214.md +17 -5
  342. package/template/wiki/wiki//345/236/202/347/233/264/345/210/207/347/211/207Ticket.md +19 -5
  343. package/template/wiki/wiki//345/244/215/347/233/230/344/270/216/346/235/203/345/250/201/350/265/204/344/272/247/344/277/256/350/256/242.md +15 -4
  344. package/template/wiki/wiki//345/256/236/347/216/260/344/273/223/345/272/223/344/270/216/350/267/250/344/273/223/345/272/223/345/245/221/347/272/246.md +17 -4
  345. package/template/wiki/wiki//345/275/261/345/223/215/351/235/242/345/210/206/350/257/212/344/270/216/346/265/201/347/250/213/350/243/201/345/211/252.md +15 -4
  346. package/template/wiki/wiki//346/212/200/350/203/275/346/212/225/345/275/261/344/270/216/351/224/201/345/256/232.md +18 -4
  347. package/template/wiki/wiki//346/235/241/344/273/266/345/274/272/345/210/266/351/227/250/347/246/201.md +13 -4
  348. package/template/wiki/wiki//346/250/241/346/235/277/345/217/221/345/270/203/351/227/250/347/246/201/344/270/216/351/252/214/350/257/201.md +17 -4
  349. package/template/wiki/wiki//346/250/241/346/235/277/346/200/273/350/247/210.md +16 -5
  350. package/template/wiki/wiki//346/250/241/346/235/277/347/273/264/346/212/244/346/265/201/347/250/213.md +14 -4
  351. package/template/yss-public-skills.json +2 -0
  352. package/template.snapshot.json +4 -4
  353. package/template/wiki/raw/create-yss-spec-contract.md +0 -59
  354. package/template/wiki/raw/skills-lock.json +0 -1379
@@ -0,0 +1,27 @@
1
+ import assert from "node:assert/strict";
2
+ import test from "node:test";
3
+ import { validateFrontmatter, validateSetupBan } from "./validate-frontmatter.mjs";
4
+
5
+ const valid = `---
6
+ name: yss-antd-design
7
+ description: Use when 原型设计。不用于前端代码落地(改用 yss-ui)、安装官方 antd skill,或替代 yss-prototype-stage。
8
+ ---
9
+
10
+ # body
11
+ - 禁止 \`antd setup\`、\`npx skills add ant-design/ant-design-cli\`
12
+ `;
13
+
14
+ test("accepts the required skill frontmatter", () => {
15
+ assert.equal(validateFrontmatter(valid), "yss-antd-design");
16
+ });
17
+
18
+ test("rejects missing exclusion branches in description", () => {
19
+ assert.throws(
20
+ () => validateFrontmatter("---\nname: yss-antd-design\ndescription: Use when querying antd.\n---\n"),
21
+ /exclude frontend landing/
22
+ );
23
+ });
24
+
25
+ test("rejects a skill that does not forbid official setup", () => {
26
+ assert.throws(() => validateSetupBan("# no setup ban"), /forbid antd setup/);
27
+ });
@@ -13,7 +13,9 @@ description: Use when YSS 产品设计系统与 Ant Design 企业级 UI 风格
13
13
  - 项目 token 快照:`docs/design/tokens/theme.json`、`docs/design/tokens/tokens.default.json`、`docs/design/tokens/tokens.dark.json`、`docs/design/tokens/tokens.compact.json`、`docs/design/tokens/variables.css`、`docs/design/tokens/variables.dark.css`。
14
14
  - 本技能执行清单:`references/design-system.md`,用于 Agent 执行和评审,不替代 `docs/design/design.md`。
15
15
  - 历史输入包:`/Users/zhudaoming/Downloads/Product-Design-System`,只用于追溯首次引入来源,不作为后续工程依赖。
16
- - 原型阶段合同:`yss-prototype-stage`,用于统一跨 Agent 的原型资产、AntD 事实和浏览器验证证据。
16
+ - 默认亮色覆盖:项目 Ant Design 5 Less / `:root` 变量已裁定进 `docs/design/design.md` 与 token 快照;原始 Less 不是实现语言。
17
+ - Codex `$design-qa` 项目对照:`references/design-qa-theme.md`,不替代官方 `design-qa` 流程,也不改上游插件正文。
18
+ - 原型阶段合同:`yss-prototype-stage`,用于统一跨 Agent 的原型资产和浏览器验证证据。AntD 事实由 `yss-antd-design` 提供,且只用于原型设计构建。
17
19
 
18
20
  如果只需要快速判断,先读本文件。若要写 UI 规范、实现页面、评审设计或调整 token,必须读项目内 `docs/design/design.md`;若要执行评审或实现检查,再读 `references/design-system.md`。
19
21
 
@@ -29,10 +31,11 @@ description: Use when YSS 产品设计系统与 Ant Design 企业级 UI 风格
29
31
  ## 核心基线
30
32
 
31
33
  - UI 定位:中后台、数据密集、表单密集、流程密集、可扫描、低装饰。
32
- - 主色:`#1677ff`,用于主操作、链接、焦点、选中态和激活导航。
33
- - 默认字号:14px;主要字重:400 / 600。
34
- - 默认控件高度:32px。
34
+ - 主色:`#3371ff`(`--primary-color` / `--brand-color-primary`),用于主操作、链接、焦点、选中态和激活导航。
35
+ - 默认字号:14px;主要字重:400 / 600;字体栈为系统字体,不强制 `Inter`。
36
+ - 默认控件高度:32px;默认圆角 6px。
35
37
  - 间距:4px 网格,优先使用 token,不写任意 magic number。
38
+ - 运行时换肤:短名 CSS 变量必须指向 `--brand-*`,不要再维护第二套色值。
36
39
  - 表面层级:页面背景、内容容器、浮层三层模型。
37
40
  - 组件语言:优先 Ant Design / YSS UI 语义,不自造同类控件。
38
41
  - 状态完整性:loading、empty、error、readonly、disabled、no-permission、conflict、success 必须在设计或实现中可解释。
@@ -84,7 +87,8 @@ description: Use when YSS 产品设计系统与 Ant Design 企业级 UI 风格
84
87
  | 前端页面实现 | `yss-ui` / `yss-page-module-development` |
85
88
  | 表单 schema | `yss-formily` |
86
89
  | YTable / YTree / 高度自适应 | `yss-components` / `yss-use-table-height` / `yss-use-tree-height` |
87
- | Ant Design v6 组件 / token / demo 查询 | 官方 `@ant-design/cli` / `https://ant.design/docs/react/for-agents` |
90
+ | 原型阶段的 Ant Design v6 组件 / token / demo 查询 | `yss-antd-design`(只用于原型设计构建;前端落地改用 `yss-ui`) |
91
+ | Codex 原型交接前的视觉 QA | `design-qa`;token / 字体对照读 `references/design-qa-theme.md`,以项目覆盖为准 |
88
92
  | API 契约 / 接入 | `yss-openapi-governance` / `api-integration` |
89
93
 
90
94
  ## 更新设计系统
@@ -0,0 +1,64 @@
1
+ # Design QA 项目主题对照
2
+
3
+ 本文件给 Codex `$design-qa` 使用。官方 `design-qa` skill 仍负责截图对比流程和 `final result: passed|blocked`;本文件只提供项目视觉真相,不改上游插件正文。
4
+
5
+ ## Source visual truth
6
+
7
+ - 规范:`docs/design/design.md`
8
+ - Token:`docs/design/tokens/theme.json`、`docs/design/tokens/tokens.default.json`、`docs/design/tokens/variables.css`
9
+ - 实现截图:当前原型或页面在同一 viewport / 主题 / 状态下的渲染
10
+
11
+ 官方 `https://ant.design/design.md` 只是上游默认。项目覆盖与官方不同时,以项目覆盖为准。
12
+
13
+ ## 必查 fidelity surface(项目覆盖)
14
+
15
+ ### Colors and visual tokens
16
+
17
+ | 角色 | 必须对照 | 记为 P1 token drift |
18
+ | --- | --- | --- |
19
+ | 主色 | `#3371ff` | `#1677ff` 或 `#3177ff` 当默认主色 |
20
+ | 主色 hover / active | `#4096ff` / `#0958d9` | 用算法重算替代 `:root` 显式值且未记录 |
21
+ | 错误色 | `#f5222d` | 官方 `#ff4d4f` 当默认错误色 |
22
+ | 成功 / 警告 | `#52c41a` / `#faad14` | 改成非功能色装饰 |
23
+ | 页面背景 | `#f0f2f5` | `#f5f5f5` 或其它灰底当默认 layout |
24
+ | 容器 / 浮层 | `#ffffff` | 用卡片阴影堆叠替代表面层级 |
25
+ | 主文本 / 次文本 | `rgba(0, 0, 0, 0.88)` / `rgba(0, 0, 0, 0.65)` | `#2e2e2e` / `#646464` 当默认文本 |
26
+ | 边框 / 分割线 | `#d9d9d9` / `#f0f0f0` | `#dbdbdb` / `#f1f1f1` 当默认边框 |
27
+ | 运行时变量 | `--primary-color` 指向 `--brand-color-primary` | 页面另写一套 Less 色值 |
28
+
29
+ `blue` 预设色板里的 `#1677ff` 不是品牌主色,不要据此判定主色漂移。
30
+
31
+ ### Fonts and typography
32
+
33
+ | 角色 | 必须对照 | 记为 P1 token drift |
34
+ | --- | --- | --- |
35
+ | 默认正文字号 | 14px | 16px 营销字号当正文 |
36
+ | 默认控件高度 | 32px | 明显偏离 32px 且未走 compact algorithm |
37
+ | 字体栈 | 系统栈(`-apple-system, BlinkMacSystemFont, "Segoe UI", ...`) | 强制 `Inter` 或其它未登记品牌字体 |
38
+ | 字重 | 400 / 600 | 用 700+ 表达选中或激活 |
39
+
40
+ ### Spacing and layout rhythm
41
+
42
+ | 角色 | 必须对照 | 记为 P1 token drift |
43
+ | --- | --- | --- |
44
+ | 圆角 | 小控件 4px、默认 6px、容器 8px | 历史品牌 8px / 10px,或 Less 前半 4px 当全局默认 |
45
+ | 间距网格 | 4 / 8 / 12 / 16 / 20 / 24 / 32 / 48 | 任意 magic number 撑开中后台密度 |
46
+ | 顶栏 / 侧栏 | 顶栏 64px,深色侧栏 `#001529` | 未说明就改成营销式顶栏 |
47
+
48
+ ### Image quality and copy
49
+
50
+ 沿用官方 `design-qa` 规则。本主题不引入插画、logo 或营销文案;出现这类素材时按官方 rubric 记 finding,并同时记为偏离中后台定位。
51
+
52
+ ## 判定
53
+
54
+ - 仍用官方 `#1677ff`、强制 `Inter` 或 8px 品牌圆角作为默认主题:P1。
55
+ - 只改局部组件、且 `prototype-evidence.yaml` 的 `theme_override` 已记录:按官方 severity 评估,不自动升 P1。
56
+ - 暗色模式:本轮未重派生完整暗色色板;暗色对照前若缺少新的 algorithm 派生证据,`final result: blocked`,写明 blocker。
57
+
58
+ ## 报告要求
59
+
60
+ `design-qa.md` 必须写明:
61
+
62
+ - source visual truth path:`docs/design/design.md` 与对应 token 文件
63
+ - 已按本清单核对 Colors/tokens 与 Fonts/typography
64
+ - 与官方默认的差异是否被接受为项目覆盖
@@ -39,22 +39,22 @@
39
39
 
40
40
  | Token | 值 | 用途 |
41
41
  | --- | --- | --- |
42
- | `colorPrimary` | `#1677ff` | 主操作、链接、焦点、选中态 |
42
+ | `colorPrimary` | `#3371ff` | 主操作、链接、焦点、选中态 |
43
43
  | `colorPrimaryHover` | `#4096ff` | 主色 hover |
44
44
  | `colorPrimaryActive` | `#0958d9` | 主色 active |
45
45
  | `colorSuccess` | `#52c41a` | 成功状态 |
46
46
  | `colorWarning` | `#faad14` | 警告状态 |
47
- | `colorError` | `#ff4d4f` | 错误状态 |
48
- | `colorInfo` | `#1677ff` | 信息提示 |
49
- | `colorBgLayout` | `#f5f5f5` | 页面背景 |
47
+ | `colorError` | `#f5222d` | 错误状态 |
48
+ | `colorInfo` | `#3371ff` | 信息提示 |
49
+ | `colorBgLayout` | `#f0f2f5` | 页面背景 |
50
50
  | `colorBgContainer` | `#ffffff` | 内容容器 |
51
51
  | `colorBgElevated` | `#ffffff` | 浮层容器 |
52
- | `colorText` | `#2e2e2e` | 主文本 |
53
- | `colorTextSecondary` | `#646464` | 次级文本 |
54
- | `colorTextTertiary` | `#949494` | 弱说明 |
55
- | `colorTextQuaternary` | `#c4c4c4` | placeholder / disabled |
56
- | `colorBorder` | `#dbdbdb` | 主边框 |
57
- | `colorBorderSecondary` | `#f1f1f1` | 次级分割线 |
52
+ | `colorText` | `rgba(0, 0, 0, 0.88)` | 主文本 |
53
+ | `colorTextSecondary` | `rgba(0, 0, 0, 0.65)` | 次级文本 |
54
+ | `colorTextTertiary` | `#8c8c8c` | 弱说明 |
55
+ | `colorTextQuaternary` | `#bfbfbf` | placeholder / disabled |
56
+ | `colorBorder` | `#d9d9d9` | 主边框 |
57
+ | `colorBorderSecondary` | `#f0f0f0` | 次级分割线 |
58
58
 
59
59
  颜色规则:
60
60
 
@@ -63,7 +63,10 @@
63
63
  - 预设色板只用于 Tag、图表、分类可视化,不用于重新定义主操作。
64
64
  - 不硬编码白色、灰色、状态色;优先引用 token、CSS variables 或 Ant Design theme。
65
65
  - semantic token 优先于色值:页面先声明背景、容器、浮层、文本、边框、状态等角色,再映射到具体 token。
66
+ - 运行时短名 `--primary-color`、`--text-color`、`--bg-color` 必须指向 `--brand-*`,不要再维护第二套色值。
67
+ - `blue` 等预设色板可以仍含官方 `#1677ff`;色板预设 ≠ 品牌主色。
66
68
  - accessibility contrast 不足时,通过 `ConfigProvider` 的 seed token 或组件 token 调整;不要为单个页面制造不可复用的深浅色例外。
69
+ - Codex `$design-qa` 的 token / 字体对照读 `references/design-qa-theme.md`。
67
70
 
68
71
  ### 排版
69
72
 
@@ -81,6 +84,7 @@
81
84
 
82
85
  - UI 默认正文 14px。
83
86
  - UI 字重优先 400 / 600。
87
+ - 字体栈使用系统字体,不强制 `Inter`。
84
88
  - 不用 700+ 粗体表达选中或激活状态。
85
89
  - 选中状态优先使用颜色、边框、下划线、背景表达。
86
90
 
@@ -93,8 +97,12 @@
93
97
  | 小控件高度 | 24px |
94
98
  | 大控件高度 | 40px |
95
99
  | 默认字号 | 14px |
96
- | 当前品牌默认圆角 | 8px |
97
- | 大容器 / 浮层圆角 | 10px |
100
+ | 字体栈 | 系统栈,不强制 `Inter` |
101
+ | 小控件圆角 | 4px |
102
+ | 默认控件圆角 | 6px |
103
+ | 大容器 / 浮层圆角 | 8px |
104
+ | 顶栏高度 | 64px |
105
+ | 深色侧栏 | `#001529` |
98
106
 
99
107
  执行规则:
100
108
 
@@ -29,7 +29,7 @@ Matt 的 `grill-with-docs`、`to-spec`、`to-tickets`、`implement` 等保留为
29
29
  | 入口分诊 | 身份、影响面、最近可信阶段 | `yss-product-lifecycle` | `yss-project.yaml` 合法且影响面可解释 |
30
30
  | 机会调研/需求分析 | Discovery、用户/MVP/非目标/成功标准、测试 seam | `work-unit.discovery-opportunity` + `work-unit.discovery-requirements`;市场/竞品事实用 `competitive-intelligence`,技术/标准事实用 `research`;`grill-with-docs` 为兼容入口 | 未决事实已 research 或 handoff,用户确认,无 runnable blocker |
31
31
  | Spec/功能架构 | Spec、产品总体设计、功能架构;必要时 Spec Delta | 原生 `work-unit.spec-synthesis`;`to-spec` 为兼容入口 | 初稿先为 `ready-for-human`;只有 Spec baseline 人工批准后资产才为 `approved` 并进入下游 |
32
- | 原型设计 | 交互说明、低保真、状态矩阵、高保真 HTML、评审记录 | `yss-design-system` → `yss-prototype-stage` → Codex `product-design:index`(非 Codex 交付等价合同) | `gate.prototype-reviewed`、`gate.prototype-verified`、`gate.user-confirmation` 均有证据 |
32
+ | 原型设计 | 交互说明、低保真、状态矩阵、高保真 HTML、评审记录 | `yss-design-system` → `yss-prototype-stage` → `yss-antd-design`(仅原型事实)→ Codex `product-design:index`(非 Codex 交付等价合同)。前端落地改用 `yss-ui` | `gate.prototype-reviewed`、`gate.prototype-verified`、`gate.user-confirmation` 均有证据 |
33
33
  | 技术分析 | OpenAPI Draft/Freeze、数据架构、工程基线、架构审查 | `yss-openapi-governance` / `yss-openapi-draft-review`、`codebase-design`、`implementation-repo-onboarding`、`yss-router` | API/架构契约冻结;无 API 影响有明确记录;脚手架策略满足 |
34
34
  | Ticket 正式化 | 功能父 Ticket、垂直切片、Slice Implementation Contract | 原生 `work-unit.ticket-decomposition`;`to-tickets` 为兼容入口;生命周期复算 | 依赖、验收、测试 seam 可执行;合同已批准、持久化且为当前版本 |
35
35
  | 技术实现 | 前端/后端代码、TDD 证据、YSS Skill Execution Result | 原生 `work-unit.slice-implementation`;`implement` 为兼容入口;前端按 `yss-ui` + `yss-page-module-development`,后端按 `yss-router` 最小闭包,业务行为统一 `tdd` | 只写允许路径;业务行为用 `behavior-tdd`;UI 影响必须有还原计划 |
@@ -138,7 +138,7 @@ work_unit_routes:
138
138
  human_gate: spec-baseline
139
139
  work-unit.prototype-design:
140
140
  native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
141
- skills: [yss-design-system, yss-prototype-stage, product-design:index]
141
+ skills: [yss-design-system, yss-prototype-stage, yss-antd-design, product-design:index]
142
142
  human_gate: prototype-confirmation
143
143
  work-unit.technical-analysis:
144
144
  native: {source: yss-product-lifecycle, skill: yss-product-lifecycle, invocation_mode: model-invoked}
@@ -25,7 +25,9 @@ description: Use when a YSS feature has product-design impact on a primary flow,
25
25
 
26
26
  优先级固定为:官方 `design.md` 的上游默认 → `docs/design/design.md` 与项目 token 的 `project_design` 项目覆盖 → 当前功能的语义组件映射。不得用上游默认覆盖项目 token。
27
27
 
28
- 使用官方 `antd` skill / CLI 查询事实,始终用 `--format json`,并记录实际 `antd`、CLI 和目标组件版本。至少保存 `antd design.md`、已选组件的 `info`/`demo`/`token`/`semantic` 查询和 `antd lint` 结果;目标版本存在时,将同一 `<target_antd_version>` 传给版本敏感查询,禁止在模板中固化某个 CLI 或组件版本。
28
+ Codex `$design-qa` 仍走官方对比流程;Colors/tokens 与 Fonts/typography 必须以项目覆盖为 source visual truth。对照清单见 `yss-design-system/references/design-qa-theme.md`。仍用官方 `#1677ff`、强制 `Inter` 或历史 8px 品牌圆角当默认主题,视为项目覆盖漂移。
29
+
30
+ Ant Design v6 事实由 `yss-antd-design` 查询并回写证据,不要并列调用官方 `antd` skill,也不要在前端代码落地时继续使用它。进入实现后改走 `yss-ui`。
29
31
 
30
32
  ## 验证与回流
31
33
 
@@ -30,7 +30,7 @@ pnpm why vue @yss-ui/components @yss-ui/hooks ant-design-vue vxe-table
30
30
 
31
31
  记录实际版本、lockfile、验证命令和环境阻塞。完整策略见 `references/antdv-compatibility.md`。
32
32
 
33
- 产品设计使用的 Ant Design v6 视觉/token 语义,不等于 Vue 生产实现 API。生产代码必须使用项目安装的 Ant Design Vue 4.x API,禁止复制 React hook、props 或组件写法。
33
+ 产品设计使用的 Ant Design v6 视觉/token 语义,不等于 Vue 生产实现 API。生产代码必须使用项目安装的 Ant Design Vue 4.x API,禁止复制 React hook、props 或组件写法。`yss-antd-design` 与 `@ant-design/cli` 只用于原型设计构建,进入本技能后不得再调用。
34
34
 
35
35
  ## 3. 组件选型门禁
36
36
 
@@ -24,24 +24,7 @@ If low-fidelity `prototype-review` is blocked or missing, stop and return to `ys
24
24
 
25
25
  ## Ant Design Official Agent Baseline
26
26
 
27
- Use the official Ant Design agent guidance as the fact baseline through `yss-prototype-stage`:
28
-
29
- - Read or reference `https://ant.design/docs/react/for-agents` when the task starts.
30
- - Use `@ant-design/cli` before choosing unfamiliar components, props, tokens, or migration-sensitive APIs.
31
- - Prefer direct CLI subcommands because `--help` may fail in some Node environments while subcommands still work.
32
-
33
- Record the installed CLI version and the target AntD version in `prototype-evidence.yaml`. Use `--format json`; pass the recorded target version to version-sensitive queries:
34
-
35
- ```bash
36
- antd design.md --format json
37
- antd info Button --version <target_antd_version> --format json
38
- antd token Button --version <target_antd_version> --format json
39
- antd demo Select basic --version <target_antd_version> --format json
40
- antd semantic Button --version <target_antd_version> --format json
41
- antd lint <prototype-path> --format json
42
- ```
43
-
44
- Use the project-selected version when one exists; otherwise record the CLI's actual default version before making version-sensitive decisions. Record every queried component in the evidence manifest.
27
+ Ant Design v6 事实由 `yss-antd-design` 执行并回写 `prototype-evidence.yaml`。本兼容入口不并列调用官方 `antd` skill,也不在前端代码落地时使用;实现改走 `yss-ui`。
45
28
 
46
29
  ## Core Rules
47
30
 
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: llm-wiki
3
+ description: >
4
+ Compile and maintain a Karpathy-pattern LLM wiki (raw + wiki + schema) with
5
+ init, incremental refresh, global rebuild, lint, and narrow ingest. Use when
6
+ the user wants a local knowledge wiki, incremental wiki refresh, wiki rebuild,
7
+ compiling a named research note into the wiki, `/llm-wiki`, or an answer from
8
+ an existing wiki.
9
+ ---
10
+
11
+ # llm-wiki
12
+
13
+ Compile a persistent wiki from live documents and code. The wiki is the IR; live sources are the truth. Read [schema](references/schema.md), then the matching mode file.
14
+
15
+ One-off notes are out of scope. Use this skill to compile or lint a persistent wiki (`raw/` + `wiki/` + `.wiki-manifest.json`), or to answer from an existing wiki per [query.md](references/query.md).
16
+
17
+ ## Mode
18
+
19
+ | User intent | Mode | Completion |
20
+ |---|---|---|
21
+ | 从零构建知识库 | `init` | 三层目录 + schema + index + log + 文章 + `.wiki-manifest.json`,lint 退出 0 |
22
+ | 源变了,更新受影响页 | `refresh` | 只改漂移命中的文章;human-owned 不改;lint 0;log 有 REFRESH |
23
+ | 全局按新源重编译 | `rebuild` | raw 对齐 live;稳定 ID 与 human-owned 保留;LLM 页全量重写;lint 0;log 有 REBUILD |
24
+ | 健康检查 | `lint` | 结构脚本 exit 0 + 已跑 advise 并报告条数;对变更页做 live 源抽查 |
25
+ | 把点名外源或已落盘 research 笔记编进 wiki | `ingest` | raw 登记 + manifest 源 + 四态候选经确认后写页;lint 0;log 有 `INGEST` |
26
+
27
+ Ambiguous → ask. Existing wiki + "构建" → ask refresh vs rebuild, do not init over it.
28
+
29
+ Query is not a mode. Follow [query.md](references/query.md). Query never writes and never ingests.
30
+
31
+ ## Layout
32
+
33
+ ```
34
+ <wiki-root>/
35
+ raw/ # immutable copies + labelled extracts
36
+ wiki/ # articles + index.md + log.md + CLAUDE.md
37
+ .wiki-manifest.json # compile graph (sources ↔ articles)
38
+ ```
39
+
40
+ Scripts live in this skill's `scripts/` directory (the folder that contains this `SKILL.md`). Run them from the repo root so `--wiki` / `--repo` resolve correctly:
41
+
42
+ ```bash
43
+ node <skill-root>/scripts/inventory.mjs hash --wiki <wiki-root>
44
+ node <skill-root>/scripts/inventory.mjs status --wiki <wiki-root>
45
+ node <skill-root>/scripts/lint-wikilinks.mjs <wiki-root>
46
+ node <skill-root>/scripts/advise.mjs <wiki-root>
47
+ node <skill-root>/scripts/extract.mjs skill-names --in <live-lock.json> --out <wiki-root>/<rawPath>
48
+ ```
49
+
50
+ `status` is a stable alias of `drift`. `<skill-root>` is the canonical skill directory or a projection that points at it. Do not hard-code `.agents/skills/llm-wiki`.
51
+
52
+ ## Steps
53
+
54
+ 1. Detect: `wiki/index.md` + `CLAUDE.md` (or `AGENTS.md`) means a wiki exists.
55
+ 2. If the user is asking a repository question, load [query.md](references/query.md) and stop. Do not lint, ingest, or append `log.md`.
56
+ 3. Load the mode algorithm: [compile.md](references/compile.md) for init/refresh/rebuild, [ingest.md](references/ingest.md) for ingest. For init/rebuild corpus choice, load [discover.md](discover.md). For writing, load [writing.md](references/writing.md). For checks, load [lint.md](references/lint.md).
57
+ 4. **Fact order:** called code > table comments / config defaults > stale raw copies. After writing, re-read live sources for a sample of claims (`N = min(5, changed pages)`).
58
+ 5. Run structural lint and advise. Append `log.md`. Stop.
59
+
60
+ `refresh` without a manifest: stop. Rebuild, or reconstruct the manifest from existing「来源」sections — do not guess `sourceIds`.
@@ -0,0 +1,26 @@
1
+ # CLAUDE.md — Wiki schema
2
+
3
+ 本文档是本 wiki 的 schema(结构契约)。正文语言遵循宿主项目的文档语言规则;英文专有名词、类名、枚举值、表名与 API 路径保持原样。
4
+
5
+ ## 三层结构
6
+
7
+ - **`raw/`** — 不可变原始源。从 live 文档拷贝,或从 live 源提取且标明出处的派生摘要。只读,不靠改 raw 来「修正」事实。
8
+ - **文章(`wiki/*.md`)** — LLM 生成的知识文章。文件名(不含 `.md`)即文章 ID,必须全局唯一。使用 `[[wikilink]]` 互引。
9
+ - **`index.md`** — 内容目录。`##` 节标题定义分类;节下列出该分类下的 `[[wikilink]]`。
10
+
11
+ ## 文章写作约定
12
+
13
+ - 首行为 `# H1`,随后紧跟首段摘要。
14
+ - 正文使用 `[[目标文章名]]`;目标必须是本 wiki 内存在的文章文件名(不含 `.md`)。
15
+ - 论断必须能追溯到 `raw/` 或 live 代码路径。文末使用 `## 来源`。
16
+ - 分类归属由 `index.md` 决定。
17
+ - 可选 frontmatter:`human-owned: true` 时 refresh / rebuild 不得重写正文。
18
+ - 仅当多个来源冲突,或 live 与旧 raw 不一致时写可选 `## Status`(`Disputed` / `Outdated`)。单一 live 正确则不写。
19
+
20
+ ## 基础设施文件
21
+
22
+ `index.md`、`log.md`、`CLAUDE.md`、`AGENTS.md`、`soul.md`、`concept-table.md` 为基础设施文件,不视为文章。
23
+
24
+ ## 操作日志
25
+
26
+ `log.md` 只追加。格式:`## [YYYY-MM-DD] OPERATION | 描述`(CREATE / UPDATE / LINK / FIX / REFRESH / REBUILD / RETIRE / LINT / INGEST)。
@@ -0,0 +1,3 @@
1
+ # CLAUDE.md
2
+
3
+ fixture schema
@@ -0,0 +1,5 @@
1
+ # broken fixture
2
+
3
+ ## 分类
4
+
5
+ - [[存在的页]]
@@ -0,0 +1,7 @@
1
+ # 存在的页
2
+
3
+ 摘要。引用了 [[不存在的页]]。
4
+
5
+ ## 来源
6
+
7
+ - fixture
@@ -0,0 +1,126 @@
1
+ # Compile modes
2
+
3
+ Manifest schema is the incremental-compile graph. The agent fills `id`, `kind`, `livePath`, `rawPath`, `role`, `extract` (derived only), `articles`. Scripts fill `sha256`, `compiledAt`, `gitCommit`.
4
+
5
+ ## Manifest
6
+
7
+ Path: `<wiki-root>/.wiki-manifest.json`
8
+
9
+ ```json
10
+ {
11
+ "schemaVersion": 1,
12
+ "wikiRoot": "wiki/example",
13
+ "compiledAt": "ISO-8601",
14
+ "gitCommit": "hex or empty",
15
+ "profile": "mixed",
16
+ "sources": [
17
+ {
18
+ "id": "schema.sql",
19
+ "kind": "document",
20
+ "livePath": "apps/.../schema.sql",
21
+ "rawPath": "raw/schema.sql",
22
+ "sha256": "...",
23
+ "role": "copy"
24
+ },
25
+ {
26
+ "id": "skills-lock.json",
27
+ "kind": "derived",
28
+ "livePath": "skills-lock.json",
29
+ "rawPath": "raw/skills-lock-names.md",
30
+ "role": "extract",
31
+ "extract": { "kind": "skill-names" }
32
+ }
33
+ ],
34
+ "articles": [
35
+ {
36
+ "id": "连接器管理",
37
+ "file": "wiki/连接器管理.md",
38
+ "sourceIds": ["schema.sql"],
39
+ "humanOwned": false
40
+ }
41
+ ]
42
+ }
43
+ ```
44
+
45
+ `profile`: `mixed` (docs + code), `documents`, `code`.
46
+
47
+ Source kinds:
48
+
49
+ | kind | raw | when it drifts |
50
+ |---|---|---|
51
+ | `document` | copy of `livePath` | sync raw, rewrite articles that list this `id` |
52
+ | `derived` | extract from `livePath` | re-run extract, rewrite dependents |
53
+ | `code-surface` | none (`rawPath` null) | rewrite dependents; do not copy source into raw |
54
+
55
+ `livePath` is repo-relative. `rawPath` is wiki-root-relative. `file` is wiki-root-relative.
56
+
57
+ Article id = basename of `file` without `.md`. Renames are explicit `LINK` / `RETIRE`, never a silent refresh side effect.
58
+
59
+ ## Derived extracts
60
+
61
+ Every `kind: derived` source must set `extract.kind` to one of `skill-names`, `heading-list`, or `prose-note`. Refresh and rebuild re-run that recipe into `rawPath`. Do not copy the live file in full.
62
+
63
+ Shared rules:
64
+
65
+ 1. Input is `livePath` (or the live files the recipe names).
66
+ 2. Output is `rawPath` only.
67
+ 3. Sort or section order must be stable and documented for that kind.
68
+ 4. The extract must be smaller than the live input and must not include secrets, hashes, or lock metadata unless the recipe says those names are the payload.
69
+ 5. Replay the same recipe on drift; do not hand-edit raw to "fix" names.
70
+
71
+ | `extract.kind` | Replay |
72
+ |---|---|
73
+ | `skill-names` | `extract.mjs skill-names --in <livePath> --out <wiki-root>/<rawPath>`. Lists `skills.shared` and `skills.platform` keys, `localeCompare` sorted. No hashes or paths. |
74
+ | `heading-list` | Agent: list headings from the live file in document order, verbatim. No body copy. No script in this skill. |
75
+ | `prose-note` | Agent: short labelled note that cites the live inputs. Stable section order. No full-file copy. No script in this skill. |
76
+
77
+ ## init
78
+
79
+ Done when the target is a detectable Karpathy wiki and lint exits 0.
80
+
81
+ 1. If `wiki/index.md` already exists: ask refresh vs rebuild. Do not init over it.
82
+ 2. Ask: wiki path, corpus roots, coverage, and body language (follow the host project's document-language rule). See [discover.md](discover.md).
83
+ 3. Discover corpus with the [discover.md](discover.md) checklist. Do not ingest `docs/` wholesale.
84
+ 4. Write raw copies/extracts. Write manifest source list. Run `inventory.mjs hash`.
85
+ 5. Write `wiki/CLAUDE.md` from the template, adapted to this corpus — do not hard-code a previous product name.
86
+ 6. Write `index.md` categories first, then articles. Categories are index `##` headings.
87
+ 7. Orchestrator writes hub pages. Other pages go to subagents with disjoint file lists ([writing.md](writing.md)).
88
+ 8. Lint. Sample live-source facts. Append `log.md` `CREATE`.
89
+
90
+ ## refresh
91
+
92
+ Done when only drift-hit articles change, human-owned pages are untouched, lint exits 0, and log has a structured `REFRESH`.
93
+
94
+ 1. No manifest → stop. Rebuild, or rebuild the manifest from existing「来源」sections. Do not invent `sourceIds`.
95
+ 2. `inventory.mjs status` (alias of `drift`) against every `livePath`. Pass each Agent-listed new file as `--candidate <livePath>`. Do not scan the tree. Read the JSON keys `changed`, `missing`, `unchanged`, `articles`, `unmapped`, `humanOwned`. Non-empty `changed` or `missing` is stale. Exit `0` with that JSON is normal, not a failure. Exit `2` is a script error.
96
+ 3. Impact set = `articles`. Rewrite those pages except `humanOwned` (wikilinks only).
97
+ 4. For `document` / `derived`: update raw first (derived: re-run `extract`), then rewrite hit articles.
98
+ 5. Each `unmapped` live path must get one triage: `New` / `Update` / `Disputed` / `No material`. Do not create pages silently. `No material` appends log only.
99
+ 6. Deleted sources → mark missing in citing articles; do not delete pages silently.
100
+ 7. Unhit articles: zero bytes changed.
101
+ 8. Rewrite is not "rewrite the whole wiki and call it refresh".
102
+ 9. Lint. Sample facts on hit pages. Append `REFRESH` with machine-readable fields:
103
+
104
+ ```
105
+ ## [YYYY-MM-DD] REFRESH | <summary>
106
+ - changed: <sourceId>, ...
107
+ - missing: <sourceId>, ...
108
+ - articles: <articleId>, ...
109
+ - unmapped: <livePath> (New|Update|Disputed|No material)
110
+ ```
111
+
112
+ Omit an empty `changed` / `missing` / `articles` line. Repeat `unmapped` once per candidate. `status` / `drift` never fail just because those arrays are non-empty.
113
+
114
+ ## rebuild
115
+
116
+ Done when raw matches live, LLM-owned pages are rewritten, stable ids and human-owned pages remain, lint exits 0, and log has `REBUILD`.
117
+
118
+ 1. Rediscover corpus with [discover.md](discover.md). Do not trust the old source list as complete.
119
+ 2. Recopy / re-extract raw.
120
+ 3. Keep article ids that still earn a page. Retired ids: `RETIRE` in log, drop from index.
121
+ 4. `humanOwned: true` (frontmatter or manifest): fix wikilinks only.
122
+ 5. Rewrite remaining articles. Rebuild index (categories may evolve).
123
+ 6. Replace manifest via `inventory.mjs hash`.
124
+ 7. Full lint + sample + `REBUILD`.
125
+
126
+ rebuild is not `rm -rf wiki`. Stable ids keep old `[[wikilink]]` and external links valid.
@@ -0,0 +1,41 @@
1
+ # Discover corpus
2
+
3
+ Discovery is an Agent checklist, not a scanner. Use it for `init` and `rebuild`. Confirm the answers, then write sources. Do not silently ingest every markdown file.
4
+
5
+ ## Ask first
6
+
7
+ 1. Wiki path (`<wiki-root>`).
8
+ 2. Corpus roots the user wants covered.
9
+ 3. Coverage: `core` (authoritative process / contract files) or `full` (core plus extra docs the user names).
10
+ 4. Body language: follow the host project's document-language rule.
11
+
12
+ If any answer is missing, ask. Do not guess from directory names or Git remotes.
13
+
14
+ ## Default include (core)
15
+
16
+ Unless the user replaces this list with the host's single source-of-truth table:
17
+
18
+ - Root authoritative files (for example `README`, `AGENTS`, `CONTEXT`, repository-identity manifest)
19
+ - `docs/adr/`
20
+ - `docs/process/`
21
+ - `docs/agents/`
22
+ - `docs/templates/`
23
+ - Frozen contracts the user names
24
+
25
+ `full` adds only roots the user listed. It is not "everything under `docs/`".
26
+
27
+ ## Default exclude
28
+
29
+ - `docs/reviews/`
30
+ - `docs/.scratch/`
31
+ - Agent projection directories (copies or symlinks of shared skills)
32
+ - `node_modules`
33
+ - Whole lock files (`package-lock.json`, `pnpm-lock.yaml`, `skills-lock.json` as a document). A lock may appear only as `kind: derived` with an `extract` recipe.
34
+
35
+ ## Threshold
36
+
37
+ If the candidate `document` count would exceed 40, list the candidates and stop. Do not write `raw/`, articles, or the manifest until the user confirms the list.
38
+
39
+ ## After the list is confirmed
40
+
41
+ Write raw copies or extracts, then fill manifest `sources` per [compile.md](compile.md). Derived sources need `extract`. Code surfaces are not copies.
@@ -0,0 +1,36 @@
1
+ # Ingest
2
+
3
+ Ingest is a compile mode. It adds a user-named external source or an already-written research note to the wiki. It does not replace `refresh`.
4
+
5
+ Query must not ingest. Mapped live sources that changed go to `refresh`.
6
+
7
+ ## Allowed inputs
8
+
9
+ - A URL, paste, or file outside the repo that the user named in this turn.
10
+ - An already-written research note on disk (for example under the host's research archive). One-off fact gathering still belongs to the host's research skill; ingest only compiles a note that already exists.
11
+
12
+ Forbidden inputs: `docs/reviews/`, `docs/.scratch/`, agent projection directories, lock files as documents, and any live authoritative file that is already a manifest `livePath`.
13
+
14
+ Do not treat a web search as this skill's `refresh`. Confirm new web material as a named input first.
15
+
16
+ ## Done when
17
+
18
+ `raw/` has the copy or labelled extract, the manifest lists the source, triage is recorded, confirmed pages are written (or none if the user declined), structural lint exits 0, advise has been run, and `log.md` has `INGEST`.
19
+
20
+ ## Steps
21
+
22
+ 1. Detect the wiki. No `wiki/index.md` → suggest `init`. Stop.
23
+ 2. If the path is already a manifest `livePath` → stop and use `refresh`.
24
+ 3. Write `raw/` as a copy or a labelled extract. Do not invent `extract.kind` values. Do not edit live authoritative files.
25
+ 4. Add a manifest source (`kind: document` or `derived`) with `livePath` (repo-relative when the file is in-repo; otherwise leave a labelled extract and record the origin in the extract header). Do not create a second config file (`inbox.md`, YAML sidecars). The pending queue is the new source plus the log.
26
+ 5. Run `inventory.mjs status --wiki <wiki-root> --candidate <livePath>` if the input is in-repo. Assign each unmapped path or new source one triage: `New` / `Update` / `Disputed` / `No material`.
27
+ 6. Show the candidate article list. **Stop until the user confirms.** Unconfirmed ingest changes zero article bytes. `No material` writes log only.
28
+ 7. After confirmation: write or update only the confirmed pages. Use `## Status` when triage is `Disputed`. Follow [writing.md](writing.md).
29
+ 8. `inventory.mjs hash`. Structural lint. Advise (report counts). Sample live/raw facts on changed pages. Append:
30
+
31
+ ```
32
+ ## [YYYY-MM-DD] INGEST | <summary>
33
+ - source: <sourceId>
34
+ - disposition: New|Update|Disputed|No material
35
+ - articles: <articleId>, ...
36
+ ```
@@ -0,0 +1,54 @@
1
+ # Lint
2
+
3
+ From the repo root, run this skill's scripts (resolve `<skill-root>` from the directory that contains `SKILL.md`):
4
+
5
+ ```bash
6
+ node <skill-root>/scripts/lint-wikilinks.mjs <wiki-root>
7
+ node <skill-root>/scripts/advise.mjs <wiki-root>
8
+ ```
9
+
10
+ `lint-wikilinks.mjs` exit 0 only when every structural check below passes. `advise.mjs` always prints JSON and exits `0` when the report is valid (exit `2` is a script error). Advise never fails lint and never auto-fixes.
11
+
12
+ ## Script checks
13
+
14
+ - Every `[[target]]` in articles and `index.md` resolves to `wiki/target.md` (infrastructure filenames are not valid article targets). Cross-path targets such as `[[../other]]` fail; they are not ignored.
15
+ - Every article H1 equals the article id (filename without `.md`).
16
+ - Every `[[wikilink]]` in `index.md` exists on disk.
17
+ - Every article file appears in `index.md`. Orphans fail.
18
+ - Every article has a `## 来源` heading.
19
+ - Infrastructure files are not articles: `index.md`, `log.md`, `CLAUDE.md`, `AGENTS.md`, `soul.md`, `concept-table.md`.
20
+ - Missing `## Status` is not a failure.
21
+ - If `.wiki-manifest.json` exists:
22
+ - each `articles[].file` exists; each `sources[].livePath` exists when set; `sha256` mismatch is stale (fail)
23
+ - every non-infrastructure `wiki/*.md` appears in `articles[]`
24
+ - each `articles[].id` equals the basename of `file` without `.md`
25
+ - each `sourceIds[]` exists in `sources[].id`
26
+ - `profile === "documents"` forbids `kind: code-surface`
27
+ - `kind: document|derived` requires a `rawPath` whose file exists; `code-surface` requires `rawPath == null`
28
+ - `kind: derived` requires `extract.kind` in `skill-names` | `heading-list` | `prose-note`
29
+
30
+ `STALE HASH` during lint means the wiki is being claimed healthy while live files drifted. That is separate from `inventory.mjs status`, which reports the same drift with exit `0`.
31
+
32
+ ## Advise (do not repair)
33
+
34
+ After the structural script, run `advise.mjs` and report the counts. JSON keys:
35
+
36
+ - `oneWayLinks`: article A → B and B has no link back to A. `index.md` links do not count as backlinks.
37
+ - `missingTermPages`: backtick identifiers, `**bold**` phrases, or `##` headings that appear at least twice and are not an article id.
38
+ - `unreferencedRaws`: manifest `rawPath` values not cited in any article `## 来源`.
39
+ - `suspects`: high-signal literals (number+suffix such as `42K`, ISO dates, quoted strings of length ≥ 12) in the article body that do not appear in the cited live/raw files.
40
+
41
+ Do not create pages. Do not rewrite numbers. Do not promote `suspects` to lint exit 1.
42
+
43
+ ## Agent checks (after scripts)
44
+
45
+ From changed pages, sample `N = min(5, changed page count)` claims against **live** files, not against the wiki text just written.
46
+
47
+ Look for: enum members, HTTP statuses, "persisted vs in-memory", hardcoded vs configured values, freeze coverage vs extra controllers. Advise cannot replace this pass.
48
+
49
+ ## Repair
50
+
51
+ - Broken wikilink: add the page, retarget, or remove the link. Do not leave dangling `[[...]]`.
52
+ - Stale hash: run refresh on that source, or `inventory.mjs hash` after a deliberate raw sync.
53
+ - Missing manifest on an otherwise valid wiki: reconstruct from「来源」or rebuild. Do not invent mappings.
54
+ - Advise findings: report only, unless the user asked to act on a specific item.