@1aboveio/skills 0.0.0-stage → 1.0.0

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 (633) hide show
  1. package/README.md +30 -2
  2. package/bin/cli.mjs +14 -0
  3. package/bin/select-core.mjs +172 -0
  4. package/package.json +146 -4
  5. package/skills/app-dev/airflow/LICENSE +3 -0
  6. package/skills/app-dev/airflow/SKILL.md +199 -0
  7. package/skills/app-dev/airflow/release-check.mjs +93 -0
  8. package/skills/app-dev/android-foundation/LICENSE +3 -0
  9. package/skills/app-dev/android-foundation/SKILL.md +192 -0
  10. package/skills/app-dev/android-foundation/assets/android-ci-job.yml +217 -0
  11. package/skills/app-dev/android-foundation/references/ci.md +87 -0
  12. package/skills/app-dev/android-foundation/references/gotchas.md +221 -0
  13. package/skills/app-dev/android-foundation/references/setup.md +164 -0
  14. package/skills/app-dev/android-foundation/release-check.mjs +93 -0
  15. package/skills/app-dev/android-foundation/scripts/device-run.sh +176 -0
  16. package/skills/app-dev/android-foundation/scripts/device-run.test.mjs +172 -0
  17. package/skills/app-dev/app-debug/LICENSE +3 -0
  18. package/skills/app-dev/app-debug/SKILL.md +110 -0
  19. package/skills/app-dev/app-debug/references/common-errors.md +128 -0
  20. package/skills/app-dev/app-debug/release-check.mjs +93 -0
  21. package/skills/app-dev/better-auth/LICENSE +3 -0
  22. package/skills/app-dev/better-auth/SKILL.md +598 -0
  23. package/skills/app-dev/better-auth/references/feishu-api.md +270 -0
  24. package/skills/app-dev/better-auth/release-check.mjs +93 -0
  25. package/skills/app-dev/data-catalog/LICENSE +3 -0
  26. package/skills/app-dev/data-catalog/SKILL.md +204 -0
  27. package/skills/app-dev/data-catalog/agents/openai.yaml +3 -0
  28. package/skills/app-dev/data-catalog/references/data-catalog-conventions.md +75 -0
  29. package/skills/app-dev/data-catalog/references/field-definitions.md +116 -0
  30. package/skills/app-dev/data-catalog/references/format.md +121 -0
  31. package/skills/app-dev/data-catalog/release-check.mjs +93 -0
  32. package/skills/app-dev/data-catalog/scripts/data-catalog.test.mjs +36 -0
  33. package/skills/app-dev/data-catalog/scripts/data_catalog.py +1392 -0
  34. package/skills/app-dev/data-catalog/scripts/persist-conventions-core.mjs +117 -0
  35. package/skills/app-dev/data-catalog/scripts/persist-conventions.mjs +17 -0
  36. package/skills/app-dev/data-catalog/scripts/test_data_catalog.py +571 -0
  37. package/skills/app-dev/ios-foundation/LICENSE +3 -0
  38. package/skills/app-dev/ios-foundation/SKILL.md +184 -0
  39. package/skills/app-dev/ios-foundation/references/setup.md +243 -0
  40. package/skills/app-dev/ios-foundation/release-check.mjs +93 -0
  41. package/skills/app-dev/monorepo/LICENSE +3 -0
  42. package/skills/app-dev/monorepo/SKILL.md +462 -0
  43. package/skills/app-dev/monorepo/release-check.mjs +93 -0
  44. package/skills/app-dev/nextjs-fullstack/LICENSE +3 -0
  45. package/skills/app-dev/nextjs-fullstack/SKILL.md +211 -0
  46. package/skills/app-dev/nextjs-fullstack/conventions.md +318 -0
  47. package/skills/app-dev/nextjs-fullstack/frontend-conventions.md +61 -0
  48. package/skills/app-dev/nextjs-fullstack/nextjs16.md +287 -0
  49. package/skills/app-dev/nextjs-fullstack/release-check.mjs +93 -0
  50. package/skills/app-dev/nextjs-fullstack/server-actions.md +409 -0
  51. package/skills/app-dev/prisma-setup/LICENSE +3 -0
  52. package/skills/app-dev/prisma-setup/SKILL.md +181 -0
  53. package/skills/app-dev/prisma-setup/nextjs.md +258 -0
  54. package/skills/app-dev/prisma-setup/release-check.mjs +93 -0
  55. package/skills/app-dev/prisma-setup/turborepo.md +301 -0
  56. package/skills/app-dev/pyspark/LICENSE +3 -0
  57. package/skills/app-dev/pyspark/SKILL.md +127 -0
  58. package/skills/app-dev/pyspark/assets/templates/etl.py +748 -0
  59. package/skills/app-dev/pyspark/assets/templates/utils/__init__.py +1 -0
  60. package/skills/app-dev/pyspark/assets/templates/utils/hudi_metadata.py +14 -0
  61. package/skills/app-dev/pyspark/references/diagnosis-and-profiling.md +169 -0
  62. package/skills/app-dev/pyspark/references/etl-contract.md +129 -0
  63. package/skills/app-dev/pyspark/references/production-validation.md +131 -0
  64. package/skills/app-dev/pyspark/references/reconciliation.md +38 -0
  65. package/skills/app-dev/pyspark/references/transformation-design.md +190 -0
  66. package/skills/app-dev/pyspark/references/velocity-feature-calculation.md +193 -0
  67. package/skills/app-dev/pyspark/release-check.mjs +93 -0
  68. package/skills/app-dev/pyspark/scripts/spark_eventlog_summary.py +223 -0
  69. package/skills/app-dev/python-backend/LICENSE +3 -0
  70. package/skills/app-dev/python-backend/SKILL.md +325 -0
  71. package/skills/app-dev/python-backend/assets/uv-install.sh +48 -0
  72. package/skills/app-dev/python-backend/references/uv-installs.md +83 -0
  73. package/skills/app-dev/python-backend/release-check.mjs +93 -0
  74. package/skills/app-dev/shadcn/LICENSE +3 -0
  75. package/skills/app-dev/shadcn/SKILL.md +120 -0
  76. package/skills/app-dev/shadcn/assets/shadcn-small.png +0 -0
  77. package/skills/app-dev/shadcn/assets/shadcn.png +0 -0
  78. package/skills/app-dev/shadcn/cli.md +411 -0
  79. package/skills/app-dev/shadcn/customization.md +224 -0
  80. package/skills/app-dev/shadcn/mcp.md +101 -0
  81. package/skills/app-dev/shadcn/release-check.mjs +93 -0
  82. package/skills/app-dev/shadcn/rules/base-vs-radix.md +323 -0
  83. package/skills/app-dev/shadcn/rules/component-selection.md +67 -0
  84. package/skills/app-dev/shadcn/rules/composition.md +195 -0
  85. package/skills/app-dev/shadcn/rules/data-table.md +201 -0
  86. package/skills/app-dev/shadcn/rules/forms.md +255 -0
  87. package/skills/app-dev/shadcn/rules/icons.md +103 -0
  88. package/skills/app-dev/shadcn/rules/styling.md +167 -0
  89. package/skills/app-dev/zod-v4/LICENSE +3 -0
  90. package/skills/app-dev/zod-v4/SKILL.md +286 -0
  91. package/skills/app-dev/zod-v4/release-check.mjs +93 -0
  92. package/skills/cicd/cloud-build/LICENSE +3 -0
  93. package/skills/cicd/cloud-build/SKILL.md +707 -0
  94. package/skills/cicd/cloud-build/release-check.mjs +93 -0
  95. package/skills/cicd/cloud-debug/LICENSE +3 -0
  96. package/skills/cicd/cloud-debug/SKILL.md +315 -0
  97. package/skills/cicd/cloud-debug/references/build-failures.md +238 -0
  98. package/skills/cicd/cloud-debug/references/deploy-failures.md +376 -0
  99. package/skills/cicd/cloud-debug/references/pipeline-failures.md +378 -0
  100. package/skills/cicd/cloud-debug/release-check.mjs +93 -0
  101. package/skills/cicd/cloud-deploy/LICENSE +3 -0
  102. package/skills/cicd/cloud-deploy/SKILL.md +230 -0
  103. package/skills/cicd/cloud-deploy/references/config-templates.md +257 -0
  104. package/skills/cicd/cloud-deploy/release-check.mjs +93 -0
  105. package/skills/cicd/docker/LICENSE +3 -0
  106. package/skills/cicd/docker/SKILL.md +151 -0
  107. package/skills/cicd/docker/release-check.mjs +93 -0
  108. package/skills/cicd/github-actions/LICENSE +3 -0
  109. package/skills/cicd/github-actions/SKILL.md +111 -0
  110. package/skills/cicd/github-actions/references/audit-profile-optimize.md +150 -0
  111. package/skills/cicd/github-actions/references/ci-case-studies.md +141 -0
  112. package/skills/cicd/github-actions/references/conditional-ci.md +214 -0
  113. package/skills/cicd/github-actions/references/debugging.md +13 -0
  114. package/skills/cicd/github-actions/references/pipeline.md +87 -0
  115. package/skills/cicd/github-actions/references/post-deploy-and-publishing.md +33 -0
  116. package/skills/cicd/github-actions/references/runners.md +253 -0
  117. package/skills/cicd/github-actions/references/security.md +29 -0
  118. package/skills/cicd/github-actions/references/speed-and-audit.md +115 -0
  119. package/skills/cicd/github-actions/references/two-pass-reading.md +92 -0
  120. package/skills/cicd/github-actions/release-check.mjs +93 -0
  121. package/skills/cicd/github-actions/scripts/ci-run-audit-core.mjs +612 -0
  122. package/skills/cicd/github-actions/scripts/ci-run-audit.mjs +4 -0
  123. package/skills/cicd/github-actions/scripts/ci-run-audit.test.mjs +637 -0
  124. package/skills/cicd/github-flow/LICENSE +3 -0
  125. package/skills/cicd/github-flow/SKILL.md +123 -0
  126. package/skills/cicd/github-flow/references/ci-conventions.md +14 -0
  127. package/skills/cicd/github-flow/release-check.mjs +93 -0
  128. package/skills/cicd/github-flow/scripts/flow-core.mjs +105 -0
  129. package/skills/cicd/github-flow/scripts/flow.mjs +81 -0
  130. package/skills/cicd/github-flow/scripts/flow.test.mjs +114 -0
  131. package/skills/cicd/github-flow/scripts/persist-conventions-core.mjs +117 -0
  132. package/skills/cicd/github-flow/scripts/persist-conventions.mjs +49 -0
  133. package/skills/cicd/github-flow/scripts/persist-conventions.test.mjs +108 -0
  134. package/skills/cicd/google-cloud/LICENSE +3 -0
  135. package/skills/cicd/google-cloud/SKILL.md +119 -0
  136. package/skills/cicd/google-cloud/references/gcs.md +469 -0
  137. package/skills/cicd/google-cloud/references/iam.md +451 -0
  138. package/skills/cicd/google-cloud/references/project.md +349 -0
  139. package/skills/cicd/google-cloud/references/secrets.md +336 -0
  140. package/skills/cicd/google-cloud/references/vpc.md +312 -0
  141. package/skills/cicd/google-cloud/release-check.mjs +93 -0
  142. package/skills/cicd/google-cloud/scripts/create-sa.sh +36 -0
  143. package/skills/cicd/google-cloud/scripts/gcp-config.sh +31 -0
  144. package/skills/cicd/google-cloud/scripts/grant-iap.sh +41 -0
  145. package/skills/cicd/google-cloud/scripts/setup-secrets.sh +48 -0
  146. package/skills/cicd/mergify/LICENSE +3 -0
  147. package/skills/cicd/mergify/SKILL.md +102 -0
  148. package/skills/cicd/mergify/assets/templates/mergify.yml +215 -0
  149. package/skills/cicd/mergify/assets/templates/ruleset.json +46 -0
  150. package/skills/cicd/mergify/references/branch-protection.md +282 -0
  151. package/skills/cicd/mergify/references/configuration.md +274 -0
  152. package/skills/cicd/mergify/references/diagnosis.md +109 -0
  153. package/skills/cicd/mergify/references/stacks.md +84 -0
  154. package/skills/cicd/mergify/references/traps.md +119 -0
  155. package/skills/cicd/mergify/references/watch-contract.md +274 -0
  156. package/skills/cicd/mergify/release-check.mjs +93 -0
  157. package/skills/cicd/mergify/scripts/audit-core.mjs +208 -0
  158. package/skills/cicd/mergify/scripts/audit.mjs +4 -0
  159. package/skills/cicd/mergify/scripts/audit.test.mjs +201 -0
  160. package/skills/cicd/mergify/scripts/entrypoints.test.mjs +106 -0
  161. package/skills/cicd/mergify/scripts/pr-620-mergify-comments.fixture.json +30 -0
  162. package/skills/cicd/mergify/scripts/stack-push-core.mjs +258 -0
  163. package/skills/cicd/mergify/scripts/stack-push.mjs +4 -0
  164. package/skills/cicd/mergify/scripts/stack-push.test.mjs +233 -0
  165. package/skills/cicd/mergify/scripts/watch-pr-delivery-core.mjs +1065 -0
  166. package/skills/cicd/mergify/scripts/watch-pr-delivery.mjs +4 -0
  167. package/skills/cicd/mergify/scripts/watch-pr-delivery.test.mjs +1826 -0
  168. package/skills/cicd/podman/LICENSE +3 -0
  169. package/skills/cicd/podman/SKILL.md +71 -0
  170. package/skills/cicd/podman/agents/openai.yaml +4 -0
  171. package/skills/cicd/podman/assets/templates/podman-compose-socket-directory.yml +6 -0
  172. package/skills/cicd/podman/assets/templates/podman-service-override.conf +3 -0
  173. package/skills/cicd/podman/references/compose-compatibility.md +70 -0
  174. package/skills/cicd/podman/references/networking-and-ports.md +74 -0
  175. package/skills/cicd/podman/references/rootless-services-and-sockets.md +156 -0
  176. package/skills/cicd/podman/references/troubleshooting.md +98 -0
  177. package/skills/cicd/podman/release-check.mjs +93 -0
  178. package/skills/content/article-review/LICENSE +3 -0
  179. package/skills/content/article-review/SKILL.md +66 -0
  180. package/skills/content/article-review/references/report-format.md +68 -0
  181. package/skills/content/article-review/references/template-guide.md +79 -0
  182. package/skills/content/article-review/references/template-wechat-payments.md +125 -0
  183. package/skills/content/article-review/release-check.mjs +93 -0
  184. package/skills/content/article-to-image/LICENSE +3 -0
  185. package/skills/content/article-to-image/SKILL.md +91 -0
  186. package/skills/content/article-to-image/references/formats.md +53 -0
  187. package/skills/content/article-to-image/release-check.mjs +93 -0
  188. package/skills/content/flowchart-svg/LICENSE +3 -0
  189. package/skills/content/flowchart-svg/SKILL.md +43 -0
  190. package/skills/content/flowchart-svg/release-check.mjs +93 -0
  191. package/skills/content/flowchart-svg/scripts/export_png.sh +8 -0
  192. package/skills/content/image-gen/LICENSE +3 -0
  193. package/skills/content/image-gen/SKILL.md +192 -0
  194. package/skills/content/image-gen/release-check.mjs +93 -0
  195. package/skills/content/image-gen/scripts/credentials.mjs +217 -0
  196. package/skills/content/image-gen/scripts/credentials.test.mjs +212 -0
  197. package/skills/content/image-gen/scripts/generate.mjs +240 -0
  198. package/skills/content/image-gen/scripts/options.mjs +293 -0
  199. package/skills/content/image-gen/scripts/options.test.mjs +245 -0
  200. package/skills/content/mermaid/LICENSE +3 -0
  201. package/skills/content/mermaid/SKILL.md +635 -0
  202. package/skills/content/mermaid/release-check.mjs +93 -0
  203. package/skills/content/wechat-article-writer/LICENSE +3 -0
  204. package/skills/content/wechat-article-writer/SKILL.md +92 -0
  205. package/skills/content/wechat-article-writer/references/style-selector.md +133 -0
  206. package/skills/content/wechat-article-writer/references/writing-rules.md +152 -0
  207. package/skills/content/wechat-article-writer/release-check.mjs +93 -0
  208. package/skills/content/wechat-article-writer/templates/wechat-comparison.md +52 -0
  209. package/skills/content/wechat-article-writer/templates/wechat-howto.md +51 -0
  210. package/skills/content/wechat-article-writer/templates/wechat-insight.md +50 -0
  211. package/skills/content/wechat-article-writer/templates/wechat-pitfall.md +52 -0
  212. package/skills/content/wechat-publisher/LICENSE +3 -0
  213. package/skills/content/wechat-publisher/SKILL.md +171 -0
  214. package/skills/content/wechat-publisher/references/api.md +105 -0
  215. package/skills/content/wechat-publisher/references/layout-rules.md +57 -0
  216. package/skills/content/wechat-publisher/references/wechat-safe-template.html +86 -0
  217. package/skills/content/wechat-publisher/release-check.mjs +93 -0
  218. package/skills/content/wechat-publisher/scripts/md_to_wechat_html.py +194 -0
  219. package/skills/content/wechat-publisher/scripts/publish.py +239 -0
  220. package/skills/content/wechat-search/LICENSE +3 -0
  221. package/skills/content/wechat-search/SKILL.md +211 -0
  222. package/skills/content/wechat-search/release-check.mjs +93 -0
  223. package/skills/content/wechat-search/scripts/start-chrome.sh +83 -0
  224. package/skills/content/xai-search/LICENSE +3 -0
  225. package/skills/content/xai-search/SKILL.md +79 -0
  226. package/skills/content/xai-search/release-check.mjs +93 -0
  227. package/skills/content/xai-search/scripts/xai_search.sh +187 -0
  228. package/skills/content/xai-search/tests/smoke_test.sh +36 -0
  229. package/skills/core/distill-writing/LICENSE +3 -0
  230. package/skills/core/distill-writing/SKILL.md +74 -0
  231. package/skills/core/distill-writing/references/extraction.md +95 -0
  232. package/skills/core/distill-writing/references/updating.md +46 -0
  233. package/skills/core/distill-writing/release-check.mjs +93 -0
  234. package/skills/core/doc-to-md/LICENSE +3 -0
  235. package/skills/core/doc-to-md/SKILL.md +78 -0
  236. package/skills/core/doc-to-md/release-check.mjs +93 -0
  237. package/skills/core/doc-to-md/scripts/convert.py +157 -0
  238. package/skills/core/editorial-review/LICENSE +3 -0
  239. package/skills/core/editorial-review/SKILL.md +79 -0
  240. package/skills/core/editorial-review/references/checklist.md +94 -0
  241. package/skills/core/editorial-review/release-check.mjs +93 -0
  242. package/skills/core/house-style/LICENSE +3 -0
  243. package/skills/core/house-style/SKILL.md +33 -0
  244. package/skills/core/house-style/references/defaults.md +66 -0
  245. package/skills/core/house-style/references/rules.md +267 -0
  246. package/skills/core/house-style/references/sources.md +27 -0
  247. package/skills/core/house-style/references/style-en.md +131 -0
  248. package/skills/core/house-style/references/style-zh.md +141 -0
  249. package/skills/core/house-style/references/terminology-zh.md +223 -0
  250. package/skills/core/house-style/release-check.mjs +93 -0
  251. package/skills/core/house-style/templates/brd.md +103 -0
  252. package/skills/core/house-style/templates/commercial-proposal.md +93 -0
  253. package/skills/core/house-style/templates/compliance-policy.md +109 -0
  254. package/skills/core/house-style/templates/gap-analysis.md +105 -0
  255. package/skills/core/house-style/templates/general.md +63 -0
  256. package/skills/core/house-style/templates/integration-guide.md +98 -0
  257. package/skills/core/house-style/templates/prd.md +81 -0
  258. package/skills/core/house-style/templates/risk-operations-procedure.md +94 -0
  259. package/skills/core/house-style/templates/technical-spec.md +96 -0
  260. package/skills/core/polish-cn/LICENSE +3 -0
  261. package/skills/core/polish-cn/SKILL.md +102 -0
  262. package/skills/core/polish-cn/references/brief.md +93 -0
  263. package/skills/core/polish-cn/references/models.md +76 -0
  264. package/skills/core/polish-cn/release-check.mjs +93 -0
  265. package/skills/core/polish-cn/scripts/polish-cn.test.mjs +244 -0
  266. package/skills/core/polish-cn/scripts/polish_blocks.py +489 -0
  267. package/skills/core/reg-parser/LICENSE +3 -0
  268. package/skills/core/reg-parser/SKILL.md +212 -0
  269. package/skills/core/reg-parser/references/checklist-schema.md +223 -0
  270. package/skills/core/reg-parser/references/checklists/hk-amlo-checklist.json +1306 -0
  271. package/skills/core/reg-parser/references/checklists/hk-amlo-checklist.md +469 -0
  272. package/skills/core/reg-parser/references/checklists/hk-fi-corporate-onboarding-cdd-checklist.json +634 -0
  273. package/skills/core/reg-parser/references/checklists/hk-fi-corporate-onboarding-cdd-checklist.md +233 -0
  274. package/skills/core/reg-parser/references/checklists/hk-mso-guideline-checklist.json +2194 -0
  275. package/skills/core/reg-parser/references/checklists/hk-mso-guideline-checklist.md +771 -0
  276. package/skills/core/reg-parser/references/checklists/kyc-aml-checklist.md +258 -0
  277. package/skills/core/reg-parser/references/checklists/visa-vars-checklist.md +1058 -0
  278. package/skills/core/reg-parser/references/mandates/hk-amlo-cap615.md +389 -0
  279. package/skills/core/reg-parser/references/mandates/visa-vars.md +205 -0
  280. package/skills/core/reg-parser/release-check.mjs +93 -0
  281. package/skills/core/reg-parser/scripts/compare_checklist.py +230 -0
  282. package/skills/core/reg-parser/scripts/dump_checklist.py +361 -0
  283. package/skills/core/reg-parser/scripts/preprocess-mandate.sh +187 -0
  284. package/skills/core/reg-parser/scripts/reg-parser.test.mjs +165 -0
  285. package/skills/core/reg-parser/scripts/test_quarantine.sh +105 -0
  286. package/skills/core/reg-parser/scripts/validate_checklist.py +563 -0
  287. package/skills/core/reg-parser/scripts/validate_mandate.py +273 -0
  288. package/skills/core/terminology/LICENSE +3 -0
  289. package/skills/core/terminology/SKILL.md +62 -0
  290. package/skills/core/terminology/references/format.md +50 -0
  291. package/skills/core/terminology/references/init.md +32 -0
  292. package/skills/core/terminology/release-check.mjs +93 -0
  293. package/skills/core/write-doc/LICENSE +3 -0
  294. package/skills/core/write-doc/SKILL.md +141 -0
  295. package/skills/core/write-doc/references/bilingual.md +60 -0
  296. package/skills/core/write-doc/release-check.mjs +93 -0
  297. package/skills/engineering/better-review/LICENSE +3 -0
  298. package/skills/engineering/better-review/SKILL.md +249 -0
  299. package/skills/engineering/better-review/agents/openai.yaml +9 -0
  300. package/skills/engineering/better-review/references/domain-hazards.md +53 -0
  301. package/skills/engineering/better-review/references/passes.md +147 -0
  302. package/skills/engineering/better-review/references/result.md +151 -0
  303. package/skills/engineering/better-review/release-check.mjs +93 -0
  304. package/skills/engineering/better-review/scripts/pr-context.mjs +212 -0
  305. package/skills/engineering/better-review/scripts/pr-context.test.mjs +168 -0
  306. package/skills/engineering/better-review/scripts/rereview-scope.mjs +503 -0
  307. package/skills/engineering/better-review/scripts/rereview-scope.test.mjs +587 -0
  308. package/skills/engineering/better-review/scripts/scan-diff.mjs +365 -0
  309. package/skills/engineering/better-review/scripts/scan-diff.test.mjs +414 -0
  310. package/skills/engineering/better-review/scripts/vendor-sync.test.mjs +96 -0
  311. package/skills/engineering/e2e-test/LICENSE +3 -0
  312. package/skills/engineering/e2e-test/SKILL.md +98 -0
  313. package/skills/engineering/e2e-test/assets/ci-gates.cloudbuild.yaml +24 -0
  314. package/skills/engineering/e2e-test/references/authoring/auth-flows.md +159 -0
  315. package/skills/engineering/e2e-test/references/authoring/playwright-config.md +73 -0
  316. package/skills/engineering/e2e-test/references/authoring/playwright-patterns.md +144 -0
  317. package/skills/engineering/e2e-test/references/ci-integration.md +25 -0
  318. package/skills/engineering/e2e-test/references/ci-playwright-container.md +290 -0
  319. package/skills/engineering/e2e-test/references/presentation-sweep.md +104 -0
  320. package/skills/engineering/e2e-test/references/reviewing.md +41 -0
  321. package/skills/engineering/e2e-test/references/route-manifest.md +51 -0
  322. package/skills/engineering/e2e-test/release-check.mjs +93 -0
  323. package/skills/engineering/e2e-test/scripts/detect-routes-nextjs.mjs +200 -0
  324. package/skills/engineering/e2e-test/scripts/presentation-checks.mjs +171 -0
  325. package/skills/engineering/e2e-test/scripts/presentation-checks.test.mjs +106 -0
  326. package/skills/engineering/e2e-test/scripts/presentation-perceivability.mjs +179 -0
  327. package/skills/engineering/e2e-test/scripts/presentation-perceivability.test.mjs +117 -0
  328. package/skills/engineering/e2e-test/scripts/presentation-reachability.mjs +154 -0
  329. package/skills/engineering/e2e-test/scripts/presentation-reachability.test.mjs +69 -0
  330. package/skills/engineering/e2e-test/scripts/presentation-render-health.mjs +141 -0
  331. package/skills/engineering/e2e-test/scripts/presentation-render-health.test.mjs +98 -0
  332. package/skills/engineering/e2e-test/scripts/presentation-sweep.mjs +147 -0
  333. package/skills/engineering/e2e-test/scripts/presentation-sweep.test.mjs +71 -0
  334. package/skills/engineering/e2e-test/scripts/presentation-temporal.mjs +127 -0
  335. package/skills/engineering/e2e-test/scripts/presentation-temporal.test.mjs +59 -0
  336. package/skills/engineering/e2e-test/scripts/project-route-manifest.mjs +82 -0
  337. package/skills/engineering/e2e-test/scripts/project-route-manifest.test.mjs +76 -0
  338. package/skills/engineering/e2e-test/scripts/validate-manifest.mjs +106 -0
  339. package/skills/engineering/engineering-runtime/LICENSE +3 -0
  340. package/skills/engineering/engineering-runtime/SKILL.md +11 -0
  341. package/skills/engineering/engineering-runtime/agents/openai.yaml +6 -0
  342. package/skills/engineering/engineering-runtime/coherence/workflow.json +597 -0
  343. package/skills/engineering/engineering-runtime/engineering-runtime.test.mjs +68 -0
  344. package/skills/engineering/engineering-runtime/release-check.mjs +93 -0
  345. package/skills/engineering/engineering-runtime/scripts/exact-head-artifact.mjs +131 -0
  346. package/skills/engineering/engineering-runtime/scripts/head-check-set.mjs +398 -0
  347. package/skills/engineering/engineering-runtime/scripts/invocation-policy.mjs +187 -0
  348. package/skills/engineering/engineering-runtime/scripts/invocation-policy.test.mjs +95 -0
  349. package/skills/engineering/engineering-runtime/scripts/main-module.mjs +79 -0
  350. package/skills/engineering/engineering-runtime/scripts/main-module.test.mjs +288 -0
  351. package/skills/engineering/engineering-runtime/scripts/mergify-yaml.mjs +11 -0
  352. package/skills/engineering/engineering-runtime/scripts/package-lock.json +43 -0
  353. package/skills/engineering/engineering-runtime/scripts/package.json +10 -0
  354. package/skills/engineering/engineering-runtime/scripts/required-check-plan.mjs +223 -0
  355. package/skills/engineering/engineering-runtime/scripts/required-check-plan.test.mjs +96 -0
  356. package/skills/engineering/engineering-runtime/scripts/review-completion.mjs +56 -0
  357. package/skills/engineering/engineering-runtime/scripts/workflow-coherence.mjs +595 -0
  358. package/skills/engineering/engineering-runtime/scripts/workflow-policy.mjs +189 -0
  359. package/skills/engineering/engineering-runtime/scripts/yaml-mapping.mjs +18 -0
  360. package/skills/engineering/ensure-coverage/LICENSE +3 -0
  361. package/skills/engineering/ensure-coverage/SKILL.md +129 -0
  362. package/skills/engineering/ensure-coverage/references/breadth/coverage-ledger.md +92 -0
  363. package/skills/engineering/ensure-coverage/references/breadth/inventory-contract.md +85 -0
  364. package/skills/engineering/ensure-coverage/references/breadth/surface-baseline.md +44 -0
  365. package/skills/engineering/ensure-coverage/references/breadth/surface-discovery.md +16 -0
  366. package/skills/engineering/ensure-coverage/references/depth/characterization.md +68 -0
  367. package/skills/engineering/ensure-coverage/references/depth/coverage.config.example.json +19 -0
  368. package/skills/engineering/ensure-coverage/references/depth/grading.md +35 -0
  369. package/skills/engineering/ensure-coverage/references/depth/mock-policy.md +57 -0
  370. package/skills/engineering/ensure-coverage/references/depth/test-smells.md +39 -0
  371. package/skills/engineering/ensure-coverage/references/enforcement/ci-contract.md +44 -0
  372. package/skills/engineering/ensure-coverage/references/examples/coverage-ledger.md +110 -0
  373. package/skills/engineering/ensure-coverage/references/examples/refund-flow.md +35 -0
  374. package/skills/engineering/ensure-coverage/references/presentation/axis.md +64 -0
  375. package/skills/engineering/ensure-coverage/references/process/audit-mode.md +27 -0
  376. package/skills/engineering/ensure-coverage/references/process/output-template.md +139 -0
  377. package/skills/engineering/ensure-coverage/references/process/test-strategy.md +56 -0
  378. package/skills/engineering/ensure-coverage/release-check.mjs +93 -0
  379. package/skills/engineering/ensure-coverage/schemas/coverage-config.schema.json +67 -0
  380. package/skills/engineering/ensure-coverage/schemas/coverage-file.schema.json +140 -0
  381. package/skills/engineering/ensure-coverage/scripts/README.md +99 -0
  382. package/skills/engineering/ensure-coverage/scripts/adapters/nextjs-inventory.mjs +182 -0
  383. package/skills/engineering/ensure-coverage/scripts/adapters/nextjs-inventory.test.mjs +96 -0
  384. package/skills/engineering/ensure-coverage/scripts/check-quarantine-expiry.mjs +105 -0
  385. package/skills/engineering/ensure-coverage/scripts/check-quarantine-expiry.test.mjs +47 -0
  386. package/skills/engineering/ensure-coverage/scripts/ci-audit.mjs +137 -0
  387. package/skills/engineering/ensure-coverage/scripts/ci-audit.test.mjs +86 -0
  388. package/skills/engineering/ensure-coverage/scripts/coverage-ledger.mjs +674 -0
  389. package/skills/engineering/ensure-coverage/scripts/coverage-ledger.test.mjs +447 -0
  390. package/skills/engineering/ensure-coverage/scripts/design-parity.mjs +591 -0
  391. package/skills/engineering/ensure-coverage/scripts/design-parity.test.mjs +552 -0
  392. package/skills/engineering/ensure-coverage/scripts/lint-tests.mjs +282 -0
  393. package/skills/engineering/ensure-coverage/scripts/lint-tests.test.mjs +289 -0
  394. package/skills/engineering/ensure-coverage/scripts/mock-policy-config.mjs +176 -0
  395. package/skills/engineering/ensure-coverage/scripts/mock-policy-config.test.mjs +119 -0
  396. package/skills/engineering/ensure-coverage/scripts/package.json +19 -0
  397. package/skills/engineering/golden-path/LICENSE +3 -0
  398. package/skills/engineering/golden-path/SKILL.md +230 -0
  399. package/skills/engineering/golden-path/agents/openai.yaml +3 -0
  400. package/skills/engineering/golden-path/assets/golden-paths.example.json +57 -0
  401. package/skills/engineering/golden-path/references/contract.md +239 -0
  402. package/skills/engineering/golden-path/references/migration.md +111 -0
  403. package/skills/engineering/golden-path/release-check.mjs +93 -0
  404. package/skills/engineering/golden-path/scripts/golden-path-core.mjs +1779 -0
  405. package/skills/engineering/golden-path/scripts/golden-path.mjs +6 -0
  406. package/skills/engineering/golden-path/scripts/golden-path.test.mjs +1457 -0
  407. package/skills/engineering/harness-runtime/LICENSE +3 -0
  408. package/skills/engineering/harness-runtime/SKILL.md +19 -0
  409. package/skills/engineering/harness-runtime/agents/openai.yaml +6 -0
  410. package/skills/engineering/harness-runtime/bin/discover-models.mjs +4 -0
  411. package/skills/engineering/harness-runtime/bin/model-catalog.mjs +4 -0
  412. package/skills/engineering/harness-runtime/contracts.md +15 -0
  413. package/skills/engineering/harness-runtime/discover-models.mjs +392 -0
  414. package/skills/engineering/harness-runtime/discover-models.test.mjs +363 -0
  415. package/skills/engineering/harness-runtime/fixtures/native-question-schemas.json +33 -0
  416. package/skills/engineering/harness-runtime/fixtures/question-responses.json +54 -0
  417. package/skills/engineering/harness-runtime/harness-runtime.test.mjs +967 -0
  418. package/skills/engineering/harness-runtime/index.mjs +767 -0
  419. package/skills/engineering/harness-runtime/model-catalog-seed.test.mjs +829 -0
  420. package/skills/engineering/harness-runtime/model-catalog.mjs +787 -0
  421. package/skills/engineering/harness-runtime/model-catalog.test.mjs +366 -0
  422. package/skills/engineering/harness-runtime/native-question-contracts.md +37 -0
  423. package/skills/engineering/harness-runtime/references/model-catalog-seed.json +408 -0
  424. package/skills/engineering/harness-runtime/references/model-catalog.md +57 -0
  425. package/skills/engineering/harness-runtime/release-check.mjs +93 -0
  426. package/skills/engineering/resolve-issues/LICENSE +3 -0
  427. package/skills/engineering/resolve-issues/SKILL.md +250 -0
  428. package/skills/engineering/resolve-issues/agents/openai.yaml +9 -0
  429. package/skills/engineering/resolve-issues/plugin-hooks.json +17 -0
  430. package/skills/engineering/resolve-issues/references/canary.md +28 -0
  431. package/skills/engineering/resolve-issues/references/ci.md +105 -0
  432. package/skills/engineering/resolve-issues/references/done.md +25 -0
  433. package/skills/engineering/resolve-issues/references/dropbox.md +90 -0
  434. package/skills/engineering/resolve-issues/references/expire.md +318 -0
  435. package/skills/engineering/resolve-issues/references/exploration.md +202 -0
  436. package/skills/engineering/resolve-issues/references/implementation.md +303 -0
  437. package/skills/engineering/resolve-issues/references/preflight.md +445 -0
  438. package/skills/engineering/resolve-issues/references/review.md +228 -0
  439. package/skills/engineering/resolve-issues/references/shared-modules.md +44 -0
  440. package/skills/engineering/resolve-issues/references/task-plan.md +264 -0
  441. package/skills/engineering/resolve-issues/release-check.mjs +93 -0
  442. package/skills/engineering/resolve-issues/scripts/cleanup-runs.mjs +364 -0
  443. package/skills/engineering/resolve-issues/scripts/cleanup-runs.test.mjs +280 -0
  444. package/skills/engineering/resolve-issues/scripts/discover-models.mjs +9 -0
  445. package/skills/engineering/resolve-issues/scripts/dropbox.mjs +473 -0
  446. package/skills/engineering/resolve-issues/scripts/dropbox.test.mjs +346 -0
  447. package/skills/engineering/resolve-issues/scripts/findings-reuse.mjs +98 -0
  448. package/skills/engineering/resolve-issues/scripts/findings-reuse.test.mjs +88 -0
  449. package/skills/engineering/resolve-issues/scripts/github-reviews.mjs +384 -0
  450. package/skills/engineering/resolve-issues/scripts/github-reviews.test.mjs +264 -0
  451. package/skills/engineering/resolve-issues/scripts/install-hooks.mjs +135 -0
  452. package/skills/engineering/resolve-issues/scripts/install-hooks.test.mjs +79 -0
  453. package/skills/engineering/resolve-issues/scripts/issue-tree.mjs +162 -0
  454. package/skills/engineering/resolve-issues/scripts/issue-tree.test.mjs +107 -0
  455. package/skills/engineering/resolve-issues/scripts/manual-invocation.test.mjs +14 -0
  456. package/skills/engineering/resolve-issues/scripts/model-catalog.mjs +9 -0
  457. package/skills/engineering/resolve-issues/scripts/next-actions-capacity.test.mjs +149 -0
  458. package/skills/engineering/resolve-issues/scripts/next-actions.mjs +856 -0
  459. package/skills/engineering/resolve-issues/scripts/next-actions.test.mjs +915 -0
  460. package/skills/engineering/resolve-issues/scripts/plan-sync.mjs +269 -0
  461. package/skills/engineering/resolve-issues/scripts/plan-sync.test.mjs +156 -0
  462. package/skills/engineering/resolve-issues/scripts/preflight-models.mjs +736 -0
  463. package/skills/engineering/resolve-issues/scripts/preflight-models.test.mjs +448 -0
  464. package/skills/engineering/resolve-issues/scripts/ready-check.mjs +185 -0
  465. package/skills/engineering/resolve-issues/scripts/ready-check.test.mjs +217 -0
  466. package/skills/engineering/resolve-issues/scripts/rehydrate.mjs +98 -0
  467. package/skills/engineering/resolve-issues/scripts/rehydrate.test.mjs +91 -0
  468. package/skills/engineering/resolve-issues/scripts/review-verdict.mjs +509 -0
  469. package/skills/engineering/resolve-issues/scripts/review-verdict.test.mjs +1060 -0
  470. package/skills/engineering/resolve-issues/scripts/size-check.mjs +492 -0
  471. package/skills/engineering/resolve-issues/scripts/size-check.test.mjs +458 -0
  472. package/skills/engineering/resolve-release/LICENSE +3 -0
  473. package/skills/engineering/resolve-release/SKILL.md +215 -0
  474. package/skills/engineering/resolve-release/agents/openai.yaml +8 -0
  475. package/skills/engineering/resolve-release/flows/cloud-run-canary.md +13 -0
  476. package/skills/engineering/resolve-release/flows/cloud-run.md +7 -0
  477. package/skills/engineering/resolve-release/flows/root-tag-npm.md +13 -0
  478. package/skills/engineering/resolve-release/flows/workspace-npm.md +22 -0
  479. package/skills/engineering/resolve-release/references/canary.md +51 -0
  480. package/skills/engineering/resolve-release/references/candidate.md +41 -0
  481. package/skills/engineering/resolve-release/references/cut.md +131 -0
  482. package/skills/engineering/resolve-release/references/dark-launch.md +66 -0
  483. package/skills/engineering/resolve-release/references/flows.md +150 -0
  484. package/skills/engineering/resolve-release/references/preflight.md +154 -0
  485. package/skills/engineering/resolve-release/references/prepared-metadata.md +260 -0
  486. package/skills/engineering/resolve-release/references/promotion.md +82 -0
  487. package/skills/engineering/resolve-release/references/publish.md +232 -0
  488. package/skills/engineering/resolve-release/references/workspace-npm.md +103 -0
  489. package/skills/engineering/resolve-release/release-check.mjs +93 -0
  490. package/skills/engineering/resolve-release/scripts/apply.mjs +212 -0
  491. package/skills/engineering/resolve-release/scripts/apply.test.mjs +99 -0
  492. package/skills/engineering/resolve-release/scripts/dark-flags.mjs +134 -0
  493. package/skills/engineering/resolve-release/scripts/dark-flags.test.mjs +100 -0
  494. package/skills/engineering/resolve-release/scripts/flow.mjs +500 -0
  495. package/skills/engineering/resolve-release/scripts/flow.test.mjs +340 -0
  496. package/skills/engineering/resolve-release/scripts/green-head.mjs +231 -0
  497. package/skills/engineering/resolve-release/scripts/green-head.test.mjs +101 -0
  498. package/skills/engineering/resolve-release/scripts/npm-version-absence.mjs +138 -0
  499. package/skills/engineering/resolve-release/scripts/npm-version-absence.test.mjs +426 -0
  500. package/skills/engineering/resolve-release/scripts/plan-npm.test.mjs +659 -0
  501. package/skills/engineering/resolve-release/scripts/plan-toml-boundary.test.mjs +317 -0
  502. package/skills/engineering/resolve-release/scripts/plan-uv.test.mjs +291 -0
  503. package/skills/engineering/resolve-release/scripts/plan.mjs +806 -0
  504. package/skills/engineering/resolve-release/scripts/plan.test.mjs +428 -0
  505. package/skills/engineering/rush-issues/LICENSE +3 -0
  506. package/skills/engineering/rush-issues/SKILL.md +58 -0
  507. package/skills/engineering/rush-issues/agents/openai.yaml +8 -0
  508. package/skills/engineering/rush-issues/rehydrate.mjs +10 -0
  509. package/skills/engineering/rush-issues/release-check.mjs +93 -0
  510. package/skills/engineering/rush-release/LICENSE +3 -0
  511. package/skills/engineering/rush-release/SKILL.md +35 -0
  512. package/skills/engineering/rush-release/agents/openai.yaml +8 -0
  513. package/skills/engineering/rush-release/release-check.mjs +93 -0
  514. package/skills/engineering/test-quality/LICENSE +3 -0
  515. package/skills/engineering/test-quality/SKILL.md +79 -0
  516. package/skills/engineering/test-quality/references/audit.md +80 -0
  517. package/skills/engineering/test-quality/references/lint.md +24 -0
  518. package/skills/engineering/test-quality/references/principles.md +143 -0
  519. package/skills/engineering/test-quality/references/testing-conventions.md +9 -0
  520. package/skills/engineering/test-quality/release-check.mjs +93 -0
  521. package/skills/engineering/test-quality/scripts/lint-tests.mjs +574 -0
  522. package/skills/engineering/test-quality/scripts/lint-tests.test.mjs +591 -0
  523. package/skills/engineering/test-quality/scripts/mock-policy-config.mjs +176 -0
  524. package/skills/engineering/test-quality/scripts/mock-policy-config.test.mjs +119 -0
  525. package/skills/engineering/test-quality/scripts/persist-conventions-core.mjs +117 -0
  526. package/skills/engineering/test-quality/scripts/persist-conventions.mjs +17 -0
  527. package/skills/engineering/test-quality/scripts/persist-conventions.test.mjs +104 -0
  528. package/skills/risk-compliance/compliance-audit/LICENSE +3 -0
  529. package/skills/risk-compliance/compliance-audit/SKILL.md +439 -0
  530. package/skills/risk-compliance/compliance-audit/references/findings-schema.md +293 -0
  531. package/skills/risk-compliance/compliance-audit/references/normalization-rules.md +45 -0
  532. package/skills/risk-compliance/compliance-audit/references/vars-checklist.md +1068 -0
  533. package/skills/risk-compliance/compliance-audit/references/vars-findings-schema.md +398 -0
  534. package/skills/risk-compliance/compliance-audit/release-check.mjs +93 -0
  535. package/skills/risk-compliance/compliance-audit/scripts/compliance-audit.test.mjs +14 -0
  536. package/skills/risk-compliance/compliance-audit/scripts/export_tracker_xlsx.py +221 -0
  537. package/skills/risk-compliance/compliance-audit/scripts/reconcile_tracker.py +458 -0
  538. package/skills/risk-compliance/compliance-audit/scripts/test_export_tracker_xlsx.py +97 -0
  539. package/skills/risk-compliance/compliance-audit/scripts/test_validate_tracker.py +157 -0
  540. package/skills/risk-compliance/compliance-audit/scripts/validate_tracker.py +829 -0
  541. package/skills/risk-compliance/contract-compare/LICENSE +3 -0
  542. package/skills/risk-compliance/contract-compare/SKILL.md +199 -0
  543. package/skills/risk-compliance/contract-compare/references/comparison-dimensions.md +209 -0
  544. package/skills/risk-compliance/contract-compare/release-check.mjs +93 -0
  545. package/skills/risk-compliance/contract-review/LICENSE +3 -0
  546. package/skills/risk-compliance/contract-review/SKILL.md +240 -0
  547. package/skills/risk-compliance/contract-review/references/review-criteria.md +223 -0
  548. package/skills/risk-compliance/contract-review/release-check.mjs +93 -0
  549. package/skills/risk-compliance/doc-authenticity/LICENSE +3 -0
  550. package/skills/risk-compliance/doc-authenticity/SKILL.md +160 -0
  551. package/skills/risk-compliance/doc-authenticity/agents/openai.yaml +8 -0
  552. package/skills/risk-compliance/doc-authenticity/manual-invocation.test.mjs +12 -0
  553. package/skills/risk-compliance/doc-authenticity/references/agreement.md +66 -0
  554. package/skills/risk-compliance/doc-authenticity/references/bank-statement.md +150 -0
  555. package/skills/risk-compliance/doc-authenticity/references/forensic-signals.md +157 -0
  556. package/skills/risk-compliance/doc-authenticity/references/image-signals.md +114 -0
  557. package/skills/risk-compliance/doc-authenticity/references/invoice.md +66 -0
  558. package/skills/risk-compliance/doc-authenticity/references/issuer-profiles.md +86 -0
  559. package/skills/risk-compliance/doc-authenticity/references/verdict-and-report.md +95 -0
  560. package/skills/risk-compliance/doc-authenticity/references/verdict.schema.json +81 -0
  561. package/skills/risk-compliance/doc-authenticity/release-check.mjs +93 -0
  562. package/skills/risk-compliance/doc-authenticity/scripts/image_forensics.py +294 -0
  563. package/skills/risk-compliance/doc-authenticity/scripts/pdf_forensics.py +401 -0
  564. package/skills/risk-compliance/doc-authenticity/scripts/validate_codes.py +224 -0
  565. package/skills/risk-compliance/doc-authenticity/scripts/validate_verdict.py +308 -0
  566. package/skills/risk-compliance/doc-authenticity/scripts/validate_verdict.test.mjs +212 -0
  567. package/skills/risk-compliance/fraud-analysis/LICENSE +3 -0
  568. package/skills/risk-compliance/fraud-analysis/SKILL.md +114 -0
  569. package/skills/risk-compliance/fraud-analysis/references/archetypes/authorized-payment-scam.md +41 -0
  570. package/skills/risk-compliance/fraud-analysis/references/archetypes/first-party-fraud.md +44 -0
  571. package/skills/risk-compliance/fraud-analysis/references/archetypes/third-party-fraud.md +27 -0
  572. package/skills/risk-compliance/fraud-analysis/references/contexts/bank-transfer.md +24 -0
  573. package/skills/risk-compliance/fraud-analysis/references/contexts/card-payment.md +30 -0
  574. package/skills/risk-compliance/fraud-analysis/references/contexts/payment-collection.md +20 -0
  575. package/skills/risk-compliance/fraud-analysis/references/contexts/payout.md +20 -0
  576. package/skills/risk-compliance/fraud-analysis/references/feature-engineering.md +158 -0
  577. package/skills/risk-compliance/fraud-analysis/references/mechanisms/account-takeover.md +36 -0
  578. package/skills/risk-compliance/fraud-analysis/references/report-rationale.md +45 -0
  579. package/skills/risk-compliance/fraud-analysis/references/report-template.md +190 -0
  580. package/skills/risk-compliance/fraud-analysis/references/review-checklist.md +175 -0
  581. package/skills/risk-compliance/fraud-analysis/references/taxonomy.md +79 -0
  582. package/skills/risk-compliance/fraud-analysis/references/terminology.md +108 -0
  583. package/skills/risk-compliance/fraud-analysis/references/workflow.md +175 -0
  584. package/skills/risk-compliance/fraud-analysis/release-check.mjs +93 -0
  585. package/skills/risk-compliance/payment-analysis/LICENSE +3 -0
  586. package/skills/risk-compliance/payment-analysis/SKILL.md +180 -0
  587. package/skills/risk-compliance/payment-analysis/references/auth-rate-actions.md +30 -0
  588. package/skills/risk-compliance/payment-analysis/references/chargebacks.md +208 -0
  589. package/skills/risk-compliance/payment-analysis/references/chinese-polish.md +51 -0
  590. package/skills/risk-compliance/payment-analysis/references/event-layers.md +127 -0
  591. package/skills/risk-compliance/payment-analysis/references/fx.md +59 -0
  592. package/skills/risk-compliance/payment-analysis/references/journey.md +79 -0
  593. package/skills/risk-compliance/payment-analysis/references/metrics.md +67 -0
  594. package/skills/risk-compliance/payment-analysis/references/report-template.md +119 -0
  595. package/skills/risk-compliance/payment-analysis/references/terminology.md +95 -0
  596. package/skills/risk-compliance/payment-analysis/references/visualization.md +56 -0
  597. package/skills/risk-compliance/payment-analysis/release-check.mjs +93 -0
  598. package/skills/risk-compliance/report-writing/LICENSE +3 -0
  599. package/skills/risk-compliance/report-writing/SKILL.md +220 -0
  600. package/skills/risk-compliance/report-writing/references/audit-report-template.md +121 -0
  601. package/skills/risk-compliance/report-writing/references/external-assessment-template.md +167 -0
  602. package/skills/risk-compliance/report-writing/references/management-report-template.md +145 -0
  603. package/skills/risk-compliance/report-writing/references/vars-report-template.md +224 -0
  604. package/skills/risk-compliance/report-writing/release-check.mjs +93 -0
  605. package/skills/risk-compliance/similar-domain/LICENSE +3 -0
  606. package/skills/risk-compliance/similar-domain/SKILL.md +203 -0
  607. package/skills/risk-compliance/similar-domain/references/entities.md +67 -0
  608. package/skills/risk-compliance/similar-domain/references/fingerprints.md +134 -0
  609. package/skills/risk-compliance/similar-domain/references/pivots.md +82 -0
  610. package/skills/risk-compliance/similar-domain/references/report-template.md +93 -0
  611. package/skills/risk-compliance/similar-domain/references/scoring.md +130 -0
  612. package/skills/risk-compliance/similar-domain/references/terminology.md +41 -0
  613. package/skills/risk-compliance/similar-domain/references/workflow.md +85 -0
  614. package/skills/risk-compliance/similar-domain/release-check.mjs +93 -0
  615. package/skills/risk-compliance/tld-detection/LICENSE +3 -0
  616. package/skills/risk-compliance/tld-detection/SKILL.md +245 -0
  617. package/skills/risk-compliance/tld-detection/agents/openai.yaml +9 -0
  618. package/skills/risk-compliance/tld-detection/references/chinese-polish.md +55 -0
  619. package/skills/risk-compliance/tld-detection/references/clean.md +51 -0
  620. package/skills/risk-compliance/tld-detection/references/clustering.md +235 -0
  621. package/skills/risk-compliance/tld-detection/references/decision.md +189 -0
  622. package/skills/risk-compliance/tld-detection/references/fx-conversion.md +232 -0
  623. package/skills/risk-compliance/tld-detection/references/report-template.md +272 -0
  624. package/skills/risk-compliance/tld-detection/references/streams.md +141 -0
  625. package/skills/risk-compliance/tld-detection/references/terminology.md +95 -0
  626. package/skills/risk-compliance/tld-detection/references/workflow.md +95 -0
  627. package/skills/risk-compliance/tld-detection/release-check.mjs +93 -0
  628. package/skills/risk-compliance/tld-detection/scripts/detect_ladders.py +390 -0
  629. package/skills/risk-compliance/tld-detection/scripts/detect_ladders.test.mjs +14 -0
  630. package/skills/risk-compliance/tld-detection/scripts/detect_streams.py +650 -0
  631. package/skills/risk-compliance/tld-detection/scripts/detect_streams.test.mjs +14 -0
  632. package/skills/risk-compliance/tld-detection/tests/test_detect_ladders.py +134 -0
  633. package/skills/risk-compliance/tld-detection/tests/test_detect_streams.py +520 -0
@@ -0,0 +1,212 @@
1
+ ---
2
+ name: reg-parser
3
+ version: 1.1.0
4
+ description: "Parse regulatory/scheme documents into structured outputs: convert a regulation (AML, VARS, PCI-DSS, KYC, GDPR) into an audit-ready compliance checklist, or trace contract clauses to a mandate source. Suggest proactively when a regulation PDF accompanies a contract review or compliance task. NOT general summarization (doc-to-md), or writing the gap analysis or policy from the checklist (write-doc)."
5
+ release-version: 0.36.0
6
+ ---
7
+ **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
8
+ # reg-parser
9
+
10
+ Parse a regulatory or scheme document into one of two structured outputs:
11
+
12
+ - **Mode A — Clause Annotation Extract**: flat obligation list for contract review P10 origin tracing
13
+ - **Mode B — Compliance Checklist**: audit-ready checklist with IDs, severity, verification steps
14
+
15
+ ## Mode Inference
16
+
17
+ Infer mode from context — only ask if genuinely ambiguous:
18
+
19
+ | Context signals | Mode |
20
+ |-----------------|------|
21
+ | "contract", "clause", "review", "sign", "channel agreement", "is this clause required by…" | **A** |
22
+ | "audit", "checklist", "compliance", "are we compliant", "VARS checklist" | **B** |
23
+ | Ambiguous | Ask: "Do you want a clause annotation extract (for contract review) or a compliance checklist (for auditing)?" |
24
+
25
+ ---
26
+
27
+ ## Step 1: Convert document
28
+
29
+ Use the `doc-to-md` skill:
30
+
31
+ ```bash
32
+ python3 {doc-to-md baseDir}/scripts/convert.py /path/to/regulation.pdf ./reg-md/
33
+ ```
34
+
35
+ ---
36
+
37
+ ## Step 2: Extract obligations
38
+
39
+ Read the converted Markdown. Extract every **shall**, **must**, and mandatory requirement.
40
+ Ignore preamble, definitions, and non-binding guidance unless user requests them.
41
+
42
+ Group obligations by the document's section structure. For each obligation, capture:
43
+ - Section reference (`section <number>` or heading). Write clause references as `section 2(1)(a)`, never `§2(1)(a)`, even when the source uses §; a schedule, part or appendix is named as such (`Schedule 2 section 2(1)`, `Part 3 section 9`). Write ranges as `sections 4.8.1–4.8.20`, and expand `s.` / `Sch.` to `section` / `Schedule`.
44
+ - The obligation in plain language
45
+ - Who it applies to (regulator → licensed entity → downstream entity)
46
+
47
+ ---
48
+
49
+ ## Step 3A: Output — Clause Annotation Extract (Mode A)
50
+
51
+ Save to `{baseDir}/references/mandates/<slug>.md` (known sources) or `{baseDir}/references/mandates/adhoc-<slug>-<YYYYMMDD>.md` (ad-hoc).
52
+
53
+ ```bash
54
+ bash {baseDir}/scripts/preprocess-mandate.sh <converted-md> \
55
+ --source "<Source Name>" \
56
+ --out {baseDir}/references/mandates/<slug>.md
57
+ ```
58
+
59
+ The script refuses to overwrite a finished extract (one with no `Status: RAW` line). To refresh a built-in mandate, write a dated `adhoc-` file and merge by hand, or pass `--force` only when you mean to replace the curated file.
60
+
61
+ The script writes a template with a `Status: RAW` marker, an embedded raw-text dump, and HTML-comment scaffolding. After extraction, the final file must have the raw-text dump and all scaffolding comments removed, the `Status: RAW` line removed, and the four canonical sections filled in (use `_None_` if a section truly has no entries).
62
+
63
+ Output format:
64
+
65
+ ```markdown
66
+ # <Source Name> — Contract Obligation Extract
67
+
68
+ > **Source:** <full citation>
69
+ > **Jurisdiction:** <scope>
70
+ > **Version / Effective Date:** <…>
71
+
72
+ ## Mandatory Downstream Agreement Clauses
73
+ **section [ref] [title]**: [obligation in one sentence]
74
+
75
+ ## Prohibited Conduct
76
+ **section [ref]**: [prohibition]
77
+
78
+ ## Thresholds & Triggers
79
+ **section [ref] [metric]**: [value + consequence]
80
+
81
+ ## Audit & Oversight Rights
82
+ **section [ref]**: [right]
83
+
84
+ ## Notes
85
+ [Jurisdiction, effective date, version, caveats]
86
+ ```
87
+
88
+ After generating, validate:
89
+
90
+ ```bash
91
+ python3 {baseDir}/scripts/validate_mandate.py <mandate.md> [--source <converted-md>]
92
+ ```
93
+
94
+ The optional `--source` flag enables citation-existence warnings (each `section <ref>` in the extract is fuzzy-matched against the converted source). Fix errors and re-run until clean (exit 0); warnings are advisory.
95
+
96
+ **Downstream use:** contract-review Step 0b loads this file for P10 clause origin tracing.
97
+ Annotations: `[Mandated: <source> section <ref>]` / `[Permitted: <source> section <ref>]` / `[Counterparty-Added]`
98
+
99
+ ---
100
+
101
+ ## Step 3B: Output — Compliance Checklist (Mode B)
102
+
103
+ Read `{baseDir}/references/checklist-schema.md` for full schema before generating.
104
+
105
+ Save to `{baseDir}/references/checklists/<slug>-checklist.md`.
106
+
107
+ ### Pick an `id_scheme` first
108
+
109
+ | Scheme | Use for | Item ID example | Severity values |
110
+ |-------------------|-------------------------------------------------------------------------------------------|-------------------|-----------------------------|
111
+ | `cat` (default) | Obligation lists with no canonical source IDs (AMLD articles, GDPR articles, FATF Recs) | `CAT-01-001` | critical / major / minor |
112
+ | `source-native` | Control frameworks with native ID hierarchies (Visa VARS, PCI-DSS, COBIT) | `AACQ.C1.1` | mandatory / recommended |
113
+
114
+ Use `source-native` when the source already groups its requirements under canonical IDs you'd lose by re-numbering. Otherwise default to `cat`. Source-native checklists may add optional `Risk Domain`, `Risk Sub-Domain`, `Risk Statement`, and `Parent Control` fields per item to preserve source taxonomy.
115
+
116
+ Under source-native, prefix every Verification step with **(N)**, **(a)**, **(i)** matching the source's numbered Mandatory/Recommended Controls list — see checklist-schema.md "Verification step prefixes" for the convention, including three-level nesting. Preserve the source's nesting depth verbatim; flattening lettered/roman sub-bullets into a single comma-separated bullet destroys auditor traceability and is the most common failure mode of this skill. When in doubt, preserve. The canonical example is `references/checklists/visa-vars-checklist.md` — see entries like `ATPA.C1.1`, `ATPA.C1.2`, `ATPA.C8.1` for the expected nesting pattern.
117
+
118
+ ### Source-native specifics
119
+
120
+ **Severity rule.** Many control frameworks (e.g. VARS) split each control into a Mandatory Controls list and a Recommended Controls list. Set the item's `Severity`:
121
+ - `mandatory` if the source lists *any* Mandatory Controls under the control — even if Recommended Controls also exist
122
+ - `recommended` only when the source lists exclusively Recommended Controls
123
+
124
+ **Cross-archetype / cross-layer controls.** Some frameworks layer archetypes (e.g. VARS: ATPA-Acquirers inherit AACQ controls implicitly without restating them). Do not duplicate inherited items into the dependent archetype's category. Keep each control under the archetype where the source defines it; cross-references in the source's prose stand, and the audit consumer is expected to read parent archetypes too. If a control is genuinely re-stated by the source under a second archetype with different obligations, that's a new item under the second archetype's ID.
125
+
126
+ **Source-document defects.** Real regulation PDFs contain typos and TOC artefacts (e.g. `ATM.C3` for `AATM.C3`, "4.11" for "4.1.1"). Use the canonical form found in the body of the source; do not propagate the defect into the checklist. Note material corrections in the YAML `scope` field if they could affect interpretation.
127
+
128
+ Each obligation from Step 2 becomes one checklist item:
129
+
130
+ ```markdown
131
+ ### CAT-XX-NNN: [Requirement title] # cat scheme
132
+ ### AACQ.C1.1: [Requirement title] # source-native scheme
133
+
134
+ - **Requirement:** [plain-language obligation]
135
+ - **Source:** section [ref], [regulation]
136
+ - **Severity:** critical | major | minor # cat scheme
137
+ - **Severity:** mandatory | recommended # source-native scheme
138
+ - **Verification:**
139
+ - [ ] [Concrete observable step]
140
+ - [ ] [Another step]
141
+ - **Evidence:**
142
+ - [Document or record that proves compliance]
143
+ ```
144
+
145
+ After generating, validate:
146
+
147
+ ```bash
148
+ python3 {baseDir}/scripts/validate_checklist.py <checklist.md> [--source <converted-md>]
149
+ ```
150
+
151
+ Fix errors and re-run until clean (exit 0). Every field needs content, and Verification needs at least one `- [ ]` step.
152
+
153
+ The optional `--source` flag enables three semantic warnings (advisory, never block exit):
154
+ - **Citation existence** — each item's `Source:` field must contain a clause anchor (e.g. `13(1)(a)`) found in the source markdown as a whole reference. The regulation's own number (`Cap. 615`, `2015/849`) does not count, and a Source with no clause anchor is flagged.
155
+ - **Weak modal language** — Requirement contains `should`/`may`/`recommended` with no overriding `must`/`shall` anchor.
156
+ - **Verification independence** — Verification steps must not be a near-paraphrase of the Requirement (Jaccard > 0.5).
157
+
158
+ **Built-in reference checklists** (in `references/checklists/`):
159
+ - `kyc-aml-checklist.md` — KYC/AML (EU AMLD4/5), `cat` scheme
160
+ - `visa-vars-checklist.md` — Visa VARS Acquirer/TPA/HIR/ATM/Visa-Direct controls (45 items, 38 mandatory + 7 recommended), `source-native` scheme
161
+ - `hk-amlo-checklist.md` — Hong Kong AMLO (Cap. 615), with JSON
162
+ - `hk-mso-guideline-checklist.md` — CCE Guideline for Money Service Operators, with JSON
163
+ - `hk-fi-corporate-onboarding-cdd-checklist.md` — HK financial-institution corporate onboarding CDD, with JSON
164
+
165
+ **Built-in mandates** (in `references/mandates/`): `visa-vars.md`, `hk-amlo-cap615.md`.
166
+
167
+ ### JSON dump for downstream consumers
168
+
169
+ Markdown is the authored source of truth — humans read and review it, GitHub renders it, and authors edit it directly. Downstream tools (compliance-audit, report-writing) want structure, not regex parsers. Generate a JSON view of any checklist with:
170
+
171
+ ```bash
172
+ python3 {baseDir}/scripts/dump_checklist.py <checklist.md> --out <out.json>
173
+ ```
174
+
175
+ The JSON preserves the verification tree verbatim (each node has `prefix`, `text`, `children`), so consumers can iterate items, walk nested controls, and look up severity/evidence without re-parsing markdown. Treat the JSON as a build artifact — regenerate on every checklist change rather than hand-editing it.
176
+
177
+ **Downstream use:** compliance-audit skill loads the checklist (markdown for review, JSON for programmatic consumption) to drive the audit workflow.
178
+
179
+ ---
180
+
181
+ ## Known Source Slugs
182
+
183
+ | Source | Slug |
184
+ |--------|------|
185
+ | EU AML Directive 2015/849 (AMLD4/5) | `kyc-aml` |
186
+ | Visa VARS | `visa-vars` |
187
+ | HK AMLO (Cap. 615) | `hk-amlo` (mandate file `hk-amlo-cap615.md`) |
188
+ | HK MSO Guideline (CCE) | `hk-mso-guideline` |
189
+ | HK FI corporate onboarding CDD | `hk-fi-corporate-onboarding-cdd` |
190
+ | Mastercard SDP/MDRP | `mastercard-sdp` |
191
+ | PCI-DSS | `pci-dss` |
192
+ | UnionPay Agreement Rules | `unionpay-rules` |
193
+ | MAS Payment Services Act | `mas-psa` |
194
+ | FATF Recommendations | `fatf` |
195
+
196
+ Ad-hoc sources use `adhoc-<slug>-<YYYYMMDD>` — no permanent slug needed.
197
+
198
+ ---
199
+
200
+ ## Testing
201
+
202
+ End-to-end fixtures live in `references/tests/` (PDF input + ground-truth target). Because the test source overlaps with a built-in canonical checklist, an agent rerun must hide the canonical first, or it will copy it. Use the harness:
203
+
204
+ ```bash
205
+ bash {baseDir}/scripts/test_quarantine.sh setup <slug> # hide canonical
206
+ # ... run agent against references/tests/vars-source.pdf, write to a workspace path ...
207
+ python3 {baseDir}/scripts/validate_checklist.py <out.md> --source <converted-source.md>
208
+ python3 {baseDir}/scripts/compare_checklist.py <out.md> {baseDir}/references/tests/vars-checklist.md # counts item headings only
209
+ bash {baseDir}/scripts/test_quarantine.sh teardown <slug> # restore canonical
210
+ ```
211
+
212
+ See `references/tests/README.md` for the full protocol.
@@ -0,0 +1,223 @@
1
+ # Checklist Schema Reference
2
+
3
+ Full format specification for compliance checklists. Read this when creating or validating a checklist.
4
+
5
+ ## File Structure
6
+
7
+ A checklist is a single `.md` file with two sections: a YAML metadata block and requirement categories.
8
+
9
+ ## ID schemes
10
+
11
+ Two schemes are supported. Pick one per checklist via the `id_scheme` metadata field:
12
+
13
+ | Scheme | When to use |
14
+ |-----------------|-----------------------------------------------------------------------------------------------------|
15
+ | `cat` (default) | Obligation-list regulations where the source has no canonical control IDs (AMLD articles, GDPR articles, FATF Recommendations). The skill assigns synthetic `CAT-XX-NNN` IDs. |
16
+ | `source-native` | Control-framework documents where the source already defines its own hierarchy (Visa VARS `AACQ.C1.1`, PCI-DSS `Req. 3.2.1`, COBIT `APO13.01`). Native IDs are preserved verbatim. |
17
+
18
+ The two schemes differ only in: category/item heading regex, severity enum, and summary count fields. All other rules (required item fields, item-field syntax, citation/modal/Jaccard semantic checks) are identical.
19
+
20
+ ## Metadata Block
21
+
22
+ ````markdown
23
+ ```yaml
24
+ name: "Short Checklist Title"
25
+ regulation: "Full regulation name and number"
26
+ version: "1.0"
27
+ scope: "Brief description of what this checklist covers"
28
+ date: "YYYY-MM-DD"
29
+ id_scheme: "cat" # optional — "cat" (default) or "source-native"
30
+ extends: "path/to/base-checklist.md" # optional
31
+ summary:
32
+ categories: 5
33
+ total_items: 16
34
+ critical: 6
35
+ major: 7
36
+ minor: 3
37
+ ```
38
+ ````
39
+
40
+ For `id_scheme: source-native` the `summary` block uses `mandatory` and `recommended` instead of `critical`/`major`/`minor`:
41
+
42
+ ```yaml
43
+ id_scheme: "source-native"
44
+ summary:
45
+ categories: 5
46
+ total_items: 45
47
+ mandatory: 38
48
+ recommended: 7
49
+ ```
50
+
51
+ | Field | Required | Description |
52
+ |--------------|----------|-----------------------------------------------------|
53
+ | `name` | yes | Human-readable title |
54
+ | `regulation` | yes | Source regulation (e.g. "EU AML Directive 2015/849")|
55
+ | `version` | yes | Checklist version (semver recommended) |
56
+ | `scope` | yes | What the checklist covers |
57
+ | `date` | yes | Date of last revision (YYYY-MM-DD) |
58
+ | `id_scheme` | no | `cat` (default) or `source-native` |
59
+ | `extends` | no | Path to a base checklist, relative to this file |
60
+ | `summary` | yes | Scheme-dependent counts (see above) |
61
+
62
+ ## Categories
63
+
64
+ H2 heading with an ID prefix:
65
+
66
+ ```markdown
67
+ ## CAT-01: Customer Due Diligence # cat scheme
68
+ ## AACQ: Acquirer Controls # source-native scheme
69
+ ```
70
+
71
+ | Scheme | Category ID format |
72
+ |-----------------|-----------------------------------------------|
73
+ | `cat` | `CAT-` plus two digits (`CAT-01`, `CAT-02`) |
74
+ | `source-native` | Uppercase token of letters/digits (`AACQ`, `ATPA`, `PCIDSS`) |
75
+
76
+ Categories appear in logical audit order.
77
+
78
+ ## Checklist Items
79
+
80
+ H3 under their category. Item IDs must be unique within the file; the prefix before the first dot/dash must match an existing category ID.
81
+
82
+ ```markdown
83
+ ### CAT-01-001: Verify customer identity # cat scheme
84
+ ### AACQ.C1.1: Alignment Between Business Plans and Risk Policies # source-native
85
+ ```
86
+
87
+ | Scheme | Item ID format |
88
+ |-----------------|-------------------------------------------------------------------------------|
89
+ | `cat` | `<CAT-ID>-<SEQ>` — SEQ is zero-padded three digits (`CAT-01-001`) |
90
+ | `source-native` | `<CAT-ID>.<segment>(\.<segment>)+` — preserves source punctuation (`AACQ.C1.1`, `AACQ.C8.2`) |
91
+
92
+ Example item:
93
+
94
+ ```markdown
95
+ ### CAT-01-001: Verify customer identity
96
+
97
+ - **Requirement:** Collect and verify government-issued photo ID for all
98
+ natural persons before establishing a business relationship.
99
+ - **Source:** Art. 13(1)(a), Directive 2015/849
100
+ - **Severity:** critical
101
+ - **Verification:**
102
+ - [ ] Photo ID collected (passport, national ID, or driver licence)
103
+ - [ ] ID verified against an independent, reliable source
104
+ - [ ] Verification date and method recorded
105
+ - **Evidence:**
106
+ - Copy of verified ID document
107
+ - Verification log entry with timestamp and officer name
108
+ ```
109
+
110
+ ### Item fields
111
+
112
+ | Field | Required | Description |
113
+ |-------------------|----------|------------------------------------------------------|
114
+ | **Requirement** | yes | Plain-language statement of what must be done |
115
+ | **Source** | yes | Article, section, or clause in the source regulation |
116
+ | **Severity** | yes | Scheme-dependent (see below) |
117
+ | **Verification** | yes | Checkbox list of concrete steps to confirm compliance|
118
+ | **Evidence** | yes | List of documents or artefacts that prove compliance |
119
+ | **Risk Domain** | no | Source-native taxonomy (e.g. "4.1.2 Operational Risk") |
120
+ | **Risk Sub-Domain** | no | Source-native sub-grouping (e.g. "Written Agreements") |
121
+ | **Risk Statement**| no | One-line statement of the risk being mitigated |
122
+ | **Parent Control**| no | Source-native parent control ID (e.g. `AACQ.C2`) |
123
+
124
+ The four optional fields preserve source taxonomy when `id_scheme: source-native` is used. They are silently ignored under the `cat` scheme.
125
+
126
+ ### Verification step prefixes (source-native only)
127
+
128
+ Under `id_scheme: source-native`, each Verification checkbox **must** carry a bold prefix identifying the source-numbered control item it audits. Use parenthesized numbering that mirrors the source document's outline:
129
+
130
+ ```markdown
131
+ - **Verification:**
132
+ - [ ] **(1)** Written agreement contains the following provisions:
133
+ - [ ] **(a)** Standards: Visa minimum standards incorporated
134
+ - [ ] **(b)** Visa's rights and authority: audits, accessibility, termination clause
135
+ - [ ] **(c)** Compliance: TPA does not submit illegal transactions
136
+ - [ ] **(i)** TPA complies with Visa Rules and applicable laws
137
+ - [ ] **(ii)** TPA adheres to Acquirer policies and AISP
138
+ - [ ] **(2)** (Recommended) Agreement names Acquirer as primary party
139
+ - [ ] **(a)** Defines duties and responsibilities of TPA and Acquirer
140
+ - [ ] **(b)** Allows transfer/assignment to another Acquirer
141
+ ```
142
+
143
+ Within a parent bullet's nested list, the sub-prefix is just `(a)` / `(i)` — the parent number is implied. The fully qualified path (`AACQ.C1.1.(1.c.ii)`) is what an auditor reconstructs when citing back to source; the on-page prefix stays short.
144
+
145
+ **Preserve the source's nesting depth verbatim.** Every lettered or roman sub-bullet in the source becomes its own checkbox at the matching depth. The whole point of source-native is auditor traceability back to specific source bullets, and flattening destroys it. Three-level nesting — `(N)` → `(a)` → `(i)` — is fully supported and expected for control frameworks like VARS where mandatory provisions sit two or three levels deep.
146
+
147
+ **Mandatory and Recommended controls use independent numbering.** When a source control has both a "Mandatory Controls" and a "Recommended Controls" section (e.g. VARS AACQ.C2.1 with 3 mandatory + 1 recommended), each section's numbering restarts from 1 in the source. Mirror that exactly: mandatory controls render as `(1)`, `(2)`, `(3)`; the first recommended control restarts at `(1)` and is marked inline with the `(Recommended)` prefix in the bullet text. Do not continue mandatory numbering into the recommended section. Auditors cite back to source as e.g. "AACQ.C2.1 Mandatory (1.a)" or "AACQ.C2.1 Recommended (1.c)" — same `(N.x)` form within each scope.
148
+
149
+ The only acceptable folding case is when the source uses sub-bullets as inline prose enumeration within a single sentence (e.g. "must include: (a) name, (b) address, (c) phone"). If the source presents each sub-bullet as a structurally separate provision — its own paragraph or its own labeled clause — preserve it as a nested checkbox. **When in doubt, preserve.** A future auditor can fold a faithful checklist; they cannot recover structure the parser threw away.
150
+
151
+ This prefix scheme is not used under `id_scheme: cat`, where items aren't anchored to a numbered source list.
152
+
153
+ ### Severity definitions
154
+
155
+ `id_scheme: cat` (default):
156
+
157
+ | Level | Meaning |
158
+ |------------|---------------------------------------------------------------|
159
+ | `critical` | Non-compliance triggers regulatory sanctions or licence risk |
160
+ | `major` | Non-compliance creates significant operational or legal risk |
161
+ | `minor` | Best-practice gap; low immediate risk but should be addressed |
162
+
163
+ `id_scheme: source-native`:
164
+
165
+ | Level | Meaning |
166
+ |---------------|-----------------------------------------------------------------|
167
+ | `mandatory` | Source classifies the control as required (e.g. VARS Mandatory) |
168
+ | `recommended` | Source classifies the control as best-practice/recommended |
169
+
170
+ ## Extending a Base Checklist
171
+
172
+ Set `extends: "path/to/base-checklist.md"` in the metadata, relative to the extending checklist's own directory. The extending checklist inherits all base categories and items. `dump_checklist.py` does not merge inherited items into the JSON; consumers that need them load the base checklist too.
173
+
174
+ **Allowed operations:**
175
+ - **Add new categories** — use IDs that don't conflict with the base (e.g. start at CAT-06 if base uses CAT-01 to CAT-05)
176
+ - **Add items to existing categories** — use the base category ID with new sequence numbers
177
+ - **Override an item** — redefine the same item ID; the extending version fully replaces the base version for that ID
178
+ - **Mark N/A** — override the item and prepend `[N/A]` to the Requirement with a justification
179
+
180
+ **Not allowed:** removing base items.
181
+
182
+ ### Extension example
183
+
184
+ ```yaml
185
+ name: "ACME Corp KYC/AML Checklist"
186
+ regulation: "EU AML Directive 2015/849 — ACME Supplementary"
187
+ version: "1.0"
188
+ scope: "ACME-specific additions to base KYC/AML checklist"
189
+ date: "2026-03-30"
190
+ extends: "kyc-aml-checklist.md" # same directory as this checklist
191
+ ```
192
+
193
+ ```markdown
194
+ ## CAT-01: Customer Due Diligence
195
+
196
+ ### CAT-01-020: Verify beneficial owner via company registry
197
+
198
+ - **Requirement:** Cross-check beneficial ownership declarations against
199
+ the national company registry before onboarding.
200
+ - **Source:** Internal Policy section 4.2
201
+ - **Severity:** major
202
+ - **Verification:**
203
+ - [ ] Company registry search performed
204
+ - [ ] Results compared with customer declaration
205
+ - [ ] Discrepancies escalated to compliance officer
206
+ - **Evidence:**
207
+ - Company registry extract
208
+ - Comparison report
209
+
210
+ ## CAT-06: ACME Internal Controls
211
+
212
+ ### CAT-06-001: Quarterly compliance self-assessment
213
+
214
+ - **Requirement:** Each business unit completes a quarterly self-assessment.
215
+ - **Source:** Internal Policy section 8.1
216
+ - **Severity:** major
217
+ - **Verification:**
218
+ - [ ] Self-assessment form distributed and completed
219
+ - [ ] Results reviewed by compliance officer
220
+ - **Evidence:**
221
+ - Completed self-assessment forms
222
+ - Review summary report
223
+ ```