@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,158 @@
1
+ # Shared feature engineering
2
+
3
+ Read this in Step 4 after pre-flight passes, the analysis profile is selected,
4
+ and its packs are loaded.
5
+ This file defines invariants. Archetype, mechanism, and context packs supply the
6
+ actual feature families and operational constraints.
7
+
8
+ The goal is a small set of interpretable, decision-time-valid inputs that can
9
+ become rules. Build thresholds, lists, rates, and graph artifacts on train only.
10
+
11
+ ## 1. Declare grain and decision point
12
+
13
+ Name what one scored row represents and when the rule fires. Examples include a
14
+ login, card authorization, collection receipt, beneficiary creation, transfer
15
+ instruction, payout request, or investigation case.
16
+
17
+ A feature is usable only if its value existed at that decision point in the live
18
+ workflow. Correlation with the eventual label is insufficient.
19
+
20
+ For linked journeys, a rule may use prior event types, but never a future event:
21
+
22
+ ```text
23
+ login → profile change → beneficiary creation → collection → transfer → payout
24
+ ```
25
+
26
+ The position of the scored event determines what is known.
27
+
28
+ ## 2. Classify every field
29
+
30
+ For each source and engineered field, record:
31
+
32
+ 1. Business meaning
33
+ 2. Event grain
34
+ 3. When it becomes known
35
+ 4. Whether it is the label or a synonym
36
+ 5. Whether it uses current, prior, or future events
37
+ 6. Whether the identity link is strong enough for the claim
38
+
39
+ Place it in one list:
40
+
41
+ - **Allowed now** — decision-time-valid and variable
42
+ - **Excluded: zero variance** — baseline context, not a feature
43
+ - **Excluded: timing** — real information available too late
44
+ - **Excluded: leakage** — target, synonym, or post-outcome artifact
45
+ - **Context only** — useful description but not operable in the target system
46
+
47
+ Do not silently drop exclusions. Include them in analysis notes and summarize
48
+ material exclusions in the report appendix.
49
+
50
+ ## 3. Shared feature families
51
+
52
+ Use only families supported by the selected packs and source data:
53
+
54
+ - Current-event attributes: amount, currency, channel, product, state available
55
+ at decision time
56
+ - Entity history: customer, account, instrument, beneficiary, device, session,
57
+ IP, email, phone, merchant, or counterparty
58
+ - Velocity: prior counts, amounts, distinct entities, and elapsed time over
59
+ operational windows
60
+ - Novelty and deviation: new entity, behavior unlike the entity's prior history,
61
+ amount relative to prior behavior
62
+ - Sequences: explicit prior-event patterns across the money or access journey
63
+ - Networks: fan-in, fan-out, shared identifiers, clusters, and risky-neighbor
64
+ evidence from a point-in-time graph
65
+ - Train-fit lists: entities or segments with minimum support and elevated rate
66
+
67
+ ## 4. Point-in-time history
68
+
69
+ - Sort events deterministically by time within each identity key.
70
+ - Use timestamps strictly before the current event. Define tie behavior.
71
+ - Holdout rows may use train-era history that predates the row.
72
+ - Never use the current row's outcome in its own features.
73
+ - Graph nodes, edges, labels, and aggregates must be snapshots as of the event.
74
+ - Outcome labels become historical evidence only after they would have been known
75
+ operationally, not merely after the underlying transaction occurred.
76
+
77
+ Use windows operations can implement, such as 10m, 1h, 24h, or 7d. Avoid exact
78
+ sequences and fine windows selected only because they maximize train fit.
79
+
80
+ ## 5. Identity-link quality
81
+
82
+ Document whether keys identify a person, account, instrument, device, session,
83
+ or merely a shared attribute. Masked identifiers, IPs, addresses, and devices may
84
+ collide or be shared.
85
+
86
+ - Do not turn a weak key into a claimed unique customer or account.
87
+ - Do not infer knowing participation from shared infrastructure alone.
88
+ - Distinguish deterministic links from probabilistic links.
89
+ - Keep network-derived high-risk lists monitor-only when link quality or actor
90
+ attribution is weak.
91
+
92
+ ## 6. Labels and outcome maturity
93
+
94
+ Fraud, scam, recalls, returns, disputes, reimbursements, investigations, and
95
+ account restrictions often mature after the event.
96
+
97
+ - Define when an outcome becomes observable.
98
+ - Exclude immature recent events or treat them as unlabeled, not clean negatives.
99
+ - Record whether the label comes from an existing outcome column or a
100
+ user-defined condition.
101
+ - For an existing row-level outcome column, mapped positive values may use all
102
+ other mature values as negative unless an explicit pending/unknown/unlabeled
103
+ value exists. State this assumption and preserve those explicit states as
104
+ unlabeled.
105
+ - For a user-defined positive condition, require a separate user-defined
106
+ negative condition. Rows outside the positive condition are not automatically
107
+ negative.
108
+ - Verify positive and negative conditions are disjoint. Exclude rows matching
109
+ neither or both from supervised metrics and report their count.
110
+ - Fit label-rate lists on mature train outcomes only.
111
+ - Do not use an operational action as both label and feature.
112
+ - Do not blend separate archetypes into a single positive label.
113
+
114
+ ## 7. Train-fit thresholds and lists
115
+
116
+ - Propose thresholds from business meaning or train distributions.
117
+ - Require minimum support for entity, graph, or segment lists.
118
+ - Freeze conditions and memberships before holdout scoring.
119
+ - Apply frozen artifacts to holdout without reranking on holdout outcomes.
120
+ - Small-N spikes remain monitoring candidates.
121
+
122
+ ## 8. Rule-ready conditions
123
+
124
+ Every shortlisted candidate must specify:
125
+
126
+ ```text
127
+ event grain + decision point + fields + operator + threshold/list + units + window
128
+ ```
129
+
130
+ Prefer:
131
+
132
+ - `amount >= <currency threshold>` over “high amount”
133
+ - `prior_attempts_1h >= 3` over “high velocity”
134
+ - `beneficiary_age_minutes <= 30` over “new beneficiary”
135
+ - `entity in train_fit_watchlist_v1` over a holdout-ranked list
136
+
137
+ ## 9. Universal do-not list
138
+
139
+ - Do not use zero-variance fields as rule conditions.
140
+ - Do not use future events, current outcomes, or investigation results.
141
+ - Do not treat technical authentication as proof of customer consent.
142
+ - Do not infer victim, perpetrator, mule, or facilitator role from behavior alone.
143
+ - Do not fit thresholds, rates, graph lists, or watchlists on holdout.
144
+ - Do not present proxy labels as confirmed fraud or loss avoided.
145
+ - Do not invent missing fields, identity links, currencies, or event semantics.
146
+
147
+ ## 10. Ready-for-selection checklist
148
+
149
+ - [ ] Analysis profile loaded
150
+ - [ ] Event grain and decision point stated
151
+ - [ ] Outcome maturity defined
152
+ - [ ] Label provenance and positive/negative/unlabeled definitions recorded
153
+ - [ ] Positive and negative conditions are disjoint
154
+ - [ ] Fields classified into allowed/excluded/context-only lists
155
+ - [ ] History and graph features are point-in-time
156
+ - [ ] Identity-link strength documented
157
+ - [ ] Thresholds and lists fit on train only
158
+ - [ ] Candidates expressed as operable conditions
@@ -0,0 +1,36 @@
1
+ # Mechanism: account takeover
2
+
3
+ An external actor gains control of a genuine customer's account or authenticated
4
+ session. This normally composes with `third-party-fraud`; if consent or knowing
5
+ participation is unresolved, keep the archetype `unclassified`.
6
+
7
+ ## Key distinction
8
+
9
+ Technical authentication is not customer consent. A criminal may pass password,
10
+ MFA, device, session, or transaction authentication using compromised access.
11
+
12
+ ## Feature families
13
+
14
+ - New device, browser, IP, ASN, geography, or session
15
+ - Password, MFA, phone, email, recovery, or trusted-device changes
16
+ - Failed-login bursts, credential-stuffing indicators, and impossible travel
17
+ - Session age, authentication strength, and deviation from trusted behavior
18
+ - New beneficiary after access changes; login-to-transfer/payout velocity
19
+ - Shared devices, IPs, recovery identifiers, or beneficiaries across accounts
20
+
21
+ Only use events before the rule's decision point. Do not use later compromise
22
+ confirmation, customer contact, session revocation, or investigation findings.
23
+
24
+ ## Actions
25
+
26
+ Depending on context: terminate session, require reauthentication through an
27
+ independent channel, reset credentials, remove trusted devices, cool off new
28
+ beneficiaries, hold/review money movement, and restrict the account where policy
29
+ permits.
30
+
31
+ ## Review overlay
32
+
33
+ - Authentication success is not described as genuine-customer authorization.
34
+ - Recovery and profile-change timestamps precede the scored event.
35
+ - Device/IP novelty uses only prior customer history.
36
+ - Shared infrastructure such as carrier NAT is not treated as identity proof.
@@ -0,0 +1,45 @@
1
+ # Report rationale (agent only)
2
+
3
+ This explains the business report contract. Do not copy it into deliverables.
4
+
5
+ ## Why composition matters
6
+
7
+ Archetype, mechanism, and context answer different questions:
8
+
9
+ - Archetype identifies the genuine customer's relationship to fraud.
10
+ - Mechanism explains compromise, deception, or deliberate abuse.
11
+ - Context identifies the operational control point and business denominator.
12
+
13
+ Keeping them independent prevents category errors such as treating account
14
+ takeover as a peer of first-party fraud, treating every authenticated transfer as
15
+ customer-authorized, or applying 3DS and authorization-success metrics to payout
16
+ and collection controls.
17
+
18
+ ## Report choices
19
+
20
+ | Choice | Reason |
21
+ |---|---|
22
+ | Profile before label | The same status can represent different actors and outcomes across archetypes |
23
+ | Explicit negative class | Precision, recall, and lift are undefined or misleading when “not positive” silently mixes genuine negatives with unknown outcomes |
24
+ | Consent separate from authentication | Compromised credentials can pass technical checks |
25
+ | Reader order differs from workflow | Operators need decisions before methodology |
26
+ | Standalone strategy impact | Portfolio friction and exposure determine whether rules should ship |
27
+ | Count/rate and amount/share | Both operational volume and value matter |
28
+ | Context-specific impact | Authorization, completion, delay, review, and exposure use different denominators |
29
+ | Proxy and maturity disclosure | Delayed outcomes and operational actions are not confirmed fraud by default |
30
+ | Point-in-time graphs | Future counterparties and investigations otherwise leak into earlier events |
31
+ | No review process in report | Review metadata is not business content |
32
+
33
+ ## Domain examples
34
+
35
+ - `third-party-fraud + card-payment` loads card/BIN/3DS and authorization-impact
36
+ guidance.
37
+ - `third-party-fraud + account-takeover + bank-transfer` loads access/session,
38
+ beneficiary, transfer, and consent-versus-authentication guidance.
39
+ - `first-party-fraud + payment-collection + payout` loads money-flow, graph,
40
+ settlement, hold, workload, delay, and exposure guidance.
41
+ - `authorized-payment-scam + bank-transfer + app-scam` loads deception,
42
+ beneficiary, warnings, completion, reimbursement, and customer-impact guidance.
43
+
44
+ If archetype attribution is unresolved, the report should say so and limit claims
45
+ and actions accordingly rather than manufacturing certainty.
@@ -0,0 +1,190 @@
1
+ # Business report contract
2
+
3
+ Read this in Step 8 with the selected profile packs and
4
+ [terminology.md](terminology.md). This file owns common reader order and metric
5
+ presentation. Profile packs own domain-specific actions, sections, denominators,
6
+ and impact measures.
7
+
8
+ ## Required chapter order
9
+
10
+ 1. 执行摘要
11
+ 2. 抽样、分析画像与标签定义
12
+ 3. 规则发现
13
+ 4. 策略整体影响
14
+ 5. 特征
15
+ 6. 附录
16
+
17
+ Do not title chapters as analysis steps. Keep review details out of the report.
18
+
19
+ ## 1. 执行摘要
20
+
21
+ Use no more than five top-level findings:
22
+
23
+ 1. Analysis profile, sample span, and positive-label baseline
24
+ 2. Adopted rule classes and domain-appropriate actions
25
+ 3. Adopted strategy package impact
26
+ 4. Material attribution or validation limitation, only when decision-critical
27
+
28
+ For strategy impact, report triggered count/rate and amount/share, followed by
29
+ precision and recall. Add the selected contexts' main customer, operations,
30
+ conversion, delay, exposure, or loss measure.
31
+
32
+ Nested numbered lists use three-space indentation and `1.`, `2.`, `3.` markers.
33
+ Do not use Markdown bold markers in the report body.
34
+
35
+ ## 2. 抽样、分析画像与标签定义
36
+
37
+ ### 2.1 样本范围
38
+
39
+ Data source, event grains, time span, currencies, and portfolio constants.
40
+
41
+ ### 2.2 分析画像与归因
42
+
43
+ Use a compact table:
44
+
45
+ | Field | Value |
46
+ |---|---|
47
+ | Archetype | Third-party fraud / First-party fraud / Authorized payment scam / Unclassified |
48
+ | Customer role | Victim / Perpetrator / Knowing participant / Facilitator / Unknown |
49
+ | Customer consent | Present / Absent / Disputed / Unknown |
50
+ | Technical authentication | Passed / Failed / Not applicable / Unknown |
51
+ | Mechanism | e.g. Account takeover |
52
+ | Context | Card payment / Collection / Bank transfer / Payout |
53
+ | Attribution confidence | Confirmed / Probable / Proxy / Unknown |
54
+ | Decision point | Exact operational point |
55
+
56
+ Explain unresolved attribution. Do not imply consent from authentication.
57
+
58
+ ### 2.3 标签定义
59
+
60
+ State label provenance (`file-column` or `user-defined`), confirmed versus proxy,
61
+ and maturity window. Define and count all three populations:
62
+
63
+ | Population | Required content |
64
+ |---|---|
65
+ | Positive | Exact values/conditions and count |
66
+ | Negative | Exact values/conditions and count |
67
+ | Unlabeled | Pending, immature, unknown, overlapping, or out-of-scope conditions and count |
68
+
69
+ Report the positive base rate among labeled rows and its denominator. If an
70
+ existing outcome column supplies the positive label, disclose the assumption
71
+ that its other mature, non-explicitly-unlabeled values are negative. If the user
72
+ defined the positive condition, show the separately supplied negative condition.
73
+ Separate labels for separate archetypes.
74
+
75
+ ### 2.4 时间切分
76
+
77
+ State cut and train/holdout sizes, or state that metrics are in-sample and
78
+ unvalidated. Name the decision point again in one line.
79
+
80
+ ## 3. 规则发现
81
+
82
+ ### 3.1 规则清单与验证集指标
83
+
84
+ Suggested columns:
85
+
86
+ ```text
87
+ 规则类 | 事件与决策时点 | 条件 | 触发率 | 精准率 | 召回率 | lift | 建议动作
88
+ ```
89
+
90
+ - Group conditions into a few operational rule classes.
91
+ - State explicit windows, units, currency, and frozen-list versions.
92
+ - Use actions supplied by selected context packs.
93
+ - List rules once. Multi-rule unions belong to strategy packages in chapter 4.
94
+
95
+ ### 3.2 稳定性与归因
96
+
97
+ Report temporal instability, small support, weak identity links, proxy outcomes,
98
+ and actor-attribution uncertainty that change action severity.
99
+
100
+ ### 3.3 可落地运营建议
101
+
102
+ Describe the default package and optional higher-coverage package. Identify
103
+ policy, legal, rail, and operational dependencies for severe interventions.
104
+
105
+ ## 4. 策略整体影响
106
+
107
+ This is always a standalone chapter.
108
+
109
+ ### 4.1 触发覆盖与标签效果
110
+
111
+ For every package/action row, report in this order:
112
+
113
+ 1. Triggered count and rate
114
+ 2. Triggered amount and amount share, with currency
115
+ 3. Precision
116
+ 4. Recall
117
+
118
+ Suggested columns:
119
+
120
+ ```text
121
+ 方案 | 动作 | 触发笔数 | 触发率 | 金额 | 金额占比 | 精准率 | 召回率
122
+ ```
123
+
124
+ For mixed currencies without FX conversion, do not sum unlike currencies; show
125
+ separate currency rows or explicitly label any supplied reporting currency.
126
+
127
+ ### 4.2 Domain impact
128
+
129
+ Use only measures required by selected context packs:
130
+
131
+ | Context | Typical measures |
132
+ |---|---|
133
+ | Card payment | 3DS/block coverage, authorization success, approval count |
134
+ | Collection | availability delay, return/loss exposure, accepted value |
135
+ | Bank transfer | completion/abandonment, warning/review load, delay, reimbursement exposure |
136
+ | Payout | completion/release, hold duration, review load, exposure |
137
+
138
+ Separate observed measures from scenario estimates. State every scenario
139
+ assumption and denominator. Do not claim loss prevented from proxy labels.
140
+
141
+ ### 4.3 方案比较(optional)
142
+
143
+ Compare one recommended and one higher-coverage package under identical
144
+ assumptions. Keep stricter non-default actions visibly separate.
145
+
146
+ ## 5. 特征
147
+
148
+ ### 5.1 入选短名单
149
+ ### 5.2 候选特征集
150
+ ### 5.3 训练拟合的观察名单或图谱特征(when applicable)
151
+
152
+ Keep this shorter than rule findings. Name point-in-time construction and weak
153
+ links where material.
154
+
155
+ ## 6. 附录
156
+
157
+ ### A. 决策时点与字段排除
158
+ ### B. 标签成熟度、时间切分与训练指标
159
+ ### C. 仅描述性信号与未入选候选
160
+ ### D. 假设、限制与政策依赖
161
+
162
+ ## Skeleton
163
+
164
+ ```markdown
165
+ # 风险规则分析 — <scope>
166
+
167
+ 数据源:`…`
168
+ 分析画像:<archetype> / <mechanism> / <contexts>
169
+ 决策时点:<event and point>
170
+
171
+ ## 1. 执行摘要
172
+ ## 2. 抽样、分析画像与标签定义
173
+ ### 2.1 样本范围
174
+ ### 2.2 分析画像与归因
175
+ ### 2.3 标签定义
176
+ ### 2.4 时间切分
177
+ ## 3. 规则发现
178
+ ### 3.1 规则清单与验证集指标
179
+ ### 3.2 稳定性与归因
180
+ ### 3.3 可落地运营建议
181
+ ## 4. 策略整体影响
182
+ ### 4.1 触发覆盖与标签效果
183
+ ### 4.2 <selected context impact>
184
+ ### 4.3 方案比较
185
+ ## 5. 特征
186
+ ### 5.1 入选短名单
187
+ ### 5.2 候选特征集
188
+ ### 5.3 观察名单或图谱特征
189
+ ## 6. 附录
190
+ ```
@@ -0,0 +1,175 @@
1
+ # Independent review checklist
2
+
3
+ Use after the report is written. Review the common contract below plus every
4
+ selected archetype, mechanism, and context pack. Do not re-mine features unless
5
+ a fatal issue requires a user-approved restart.
6
+
7
+ ## Inputs
8
+
9
+ - Draft report and source paths
10
+ - Analysis profile, event grain, and decision point
11
+ - Label definition, maturity window, and attribution confidence
12
+ - Time cut and train/holdout sizes, or explicit in-sample status
13
+ - Allowed and excluded fields
14
+ - Rule definitions and metrics with evaluation window
15
+ - Strategy actions, impact measures, denominators, and assumptions
16
+ - Selected profile pack paths
17
+
18
+ ## Verdicts and severity
19
+
20
+ | Verdict | Meaning |
21
+ |---|---|
22
+ | PASS | Common and profile checks clear |
23
+ | PASS_WITH_FLAGS | Valid with residual monitoring or judgment issues |
24
+ | NEEDS_CHANGES | Mechanical or substantive issues require repair |
25
+ | BLOCKED | Label, attribution, timing, or data foundation is unusable |
26
+
27
+ | Severity | Response |
28
+ |---|---|
29
+ | mechanical | Auto-fix and recheck |
30
+ | judgment | Surface; do not silently change attribution or action |
31
+ | fatal | Stop and ask the user |
32
+
33
+ ## Common method checks
34
+
35
+ ### Pre-flight
36
+
37
+ - [ ] Pre-flight status passed before supervised analysis began
38
+ - [ ] Input readability, row grain, time field, and label provenance were checked
39
+ - [ ] File-column positives map remaining mature rows to negative only after
40
+ preserving explicit missing/pending/unknown/unlabeled states
41
+ - [ ] User-defined positives received an explicit user-defined negative condition
42
+ during pre-flight; `NOT positive` was not silently assumed
43
+ - [ ] Both/neither/immature rows are unlabeled, or their absence is demonstrated
44
+ - [ ] Descriptive-only analysis is clearly separated from supervised metrics when
45
+ pre-flight could not establish both classes
46
+
47
+ ### Analysis profile and attribution
48
+
49
+ - [ ] Exactly one primary archetype, or separate analyses for multiple archetypes
50
+ - [ ] Customer role, consent, technical authentication, mechanism, context,
51
+ attribution confidence, event grain, and decision point are stated
52
+ - [ ] Technical authentication is not used as proof of genuine-customer consent
53
+ - [ ] First-party means knowing participation; authorized-payment scam means a
54
+ deceived victim; third-party means absent genuine-customer consent
55
+ - [ ] APP terminology is limited to authorized push payments
56
+ - [ ] Unresolved victim/participant attribution remains unclassified
57
+
58
+ ### Label and maturity
59
+
60
+ - [ ] Label provenance is stated as file-column or user-defined
61
+ - [ ] Exact positive, negative, and unlabeled definitions and counts are stated
62
+ - [ ] Existing outcome-column labels disclose the assumption used to map other
63
+ mature values to negative and preserve explicit pending/unknown states
64
+ - [ ] User-defined positive labels have a separately user-defined negative class;
65
+ all other rows are not automatically treated as negative
66
+ - [ ] Positive and negative conditions are disjoint; neither/both rows are unlabeled
67
+ - [ ] Confirmed versus proxy status is honest
68
+ - [ ] Positive base rate is factual and uses labeled rows as denominator
69
+ - [ ] Outcome maturity window is defined; immature rows are not clean negatives
70
+ - [ ] Separate archetypes are not blended into one target
71
+ - [ ] Label, synonyms, actions, and later investigation outcomes are excluded
72
+
73
+ ### Temporal validation
74
+
75
+ - [ ] Earlier train and later holdout cut is stated, or metrics are unvalidated
76
+ - [ ] No random split is presented as temporal validation
77
+ - [ ] Headline metrics come from the claimed window
78
+ - [ ] Thresholds, rate lists, graph lists, and watchlists are fit on train only
79
+ - [ ] Holdout rows may use only history known before each row
80
+
81
+ ### Decision-time validity
82
+
83
+ - [ ] Every rule field exists at the stated decision point
84
+ - [ ] Current response, settlement, return, recall, dispute, reimbursement,
85
+ restriction, and investigation fields do not leak backward
86
+ - [ ] History uses prior events and defines timestamp ties
87
+ - [ ] Graph features are point-in-time snapshots
88
+ - [ ] Zero-variance, timing, leakage, and context-only exclusions are listed
89
+ - [ ] Weak entity links are not presented as unique identities
90
+
91
+ ### Metrics and actions
92
+
93
+ - [ ] Rule metrics use occurrence → precision → recall
94
+ - [ ] Count metrics remain present when value metrics are added
95
+ - [ ] Small-N, unstable, or attribution-uncertain segments are monitored or dropped
96
+ - [ ] Actions come from selected contexts and match precision/evidence severity
97
+ - [ ] Holds, freezes, rejects, restrictions, and reporting state policy/legal
98
+ dependencies where applicable
99
+
100
+ ## Common report checks
101
+
102
+ - [ ] Reader order is executive summary → sample/profile/label → rules →
103
+ strategy impact → features → appendix
104
+ - [ ] Analysis profile and attribution table appears near the start
105
+ - [ ] Strategy impact is a standalone chapter
106
+ - [ ] Every package/action has triggered count/rate and amount/share with currency,
107
+ followed by precision and recall
108
+ - [ ] Mixed currencies are not summed without documented FX conversion
109
+ - [ ] Domain impact measures and denominators come from selected context packs
110
+ - [ ] Observed results are distinct from scenario estimates
111
+ - [ ] Proxy labels are not translated into measured loss prevented
112
+ - [ ] Executive summary has no more than five top-level findings
113
+ - [ ] No Markdown bold markers or review-process details in the report
114
+ - [ ] Fixed terminology is consistent with `terminology.md`
115
+ - [ ] Banned strings in `terminology.md` have no unexplained hits
116
+
117
+ ## Required profile overlays
118
+
119
+ Read and check each selected pack. At minimum:
120
+
121
+ ### Third-party fraud
122
+
123
+ - Unauthorized outcome is supported; not every decline/dispute is fraud.
124
+ - Behavioral deviation uses the genuine customer's prior history.
125
+
126
+ ### First-party fraud
127
+
128
+ - Evidence supports knowing participation, not merely unusual behavior.
129
+ - Mule/facilitator attribution is not inferred from money flow alone.
130
+ - Restrictions and reporting identify policy/legal dependencies.
131
+
132
+ ### Authorized payment scam
133
+
134
+ - Consent and deception are both supported.
135
+ - Civil dispute and knowing participation are not mislabeled as scams.
136
+ - Warnings/holds include customer and vulnerability impact.
137
+
138
+ ### Account takeover
139
+
140
+ - Authentication success is separate from customer consent.
141
+ - Profile/recovery changes and device novelty are point-in-time.
142
+ - Shared IP/device infrastructure is not identity proof.
143
+
144
+ ### Card payment
145
+
146
+ - Current CVV, AVS, authorization response, and 3DS result respect timing.
147
+ - BIN lists are train-fit; issuer name is live-operable if used.
148
+ - 3DS failures are outside subsequent authorization denominator.
149
+
150
+ ### Collection, transfer, and payout
151
+
152
+ - Settlement, reversibility, completion, return, and recall timing are correct.
153
+ - Sequence and graph features are point-in-time.
154
+ - Completion, abandonment, delay, workload, and exposure denominators are stated.
155
+
156
+ ## Finding format
157
+
158
+ ```text
159
+ - severity: mechanical | judgment | fatal
160
+ - axis: profile | label | time | decision-time | metrics | actions | report | claims
161
+ - item: <short title>
162
+ - evidence: <specific report location or missing artifact>
163
+ - required_fix: <concrete repair or ask user>
164
+ ```
165
+
166
+ End with:
167
+
168
+ ```text
169
+ VERDICT: PASS | PASS_WITH_FLAGS | NEEDS_CHANGES | BLOCKED
170
+ REVIEWER_MODEL: <id or fallback note>
171
+ AXES: method=…; profile=…; presentation=…
172
+ ```
173
+
174
+ After mechanical fixes, recheck all mechanical items and ensure the repair did
175
+ not alter attribution, introduce leakage, or change action severity silently.
@@ -0,0 +1,79 @@
1
+ # Fraud analysis taxonomy
2
+
3
+ Read this before defining a label. The dimensions are independent: an archetype
4
+ describes the genuine customer's relationship to the fraud, a mechanism explains
5
+ how it happened, and a context identifies where a control operates.
6
+
7
+ ## Archetype router
8
+
9
+ | Customer consent | Customer participation | Deceived about recipient or purpose | Archetype |
10
+ |---|---|---|---|
11
+ | absent | no | no / unknown | `third-party-fraud` |
12
+ | present | knowing | no | `first-party-fraud` |
13
+ | present | no | yes | `authorized-payment-scam` |
14
+ | disputed / unknown | unknown | unknown | `unclassified` |
15
+
16
+ Ask:
17
+
18
+ 1. Did the genuine customer consent to this transaction?
19
+ 2. Did the customer knowingly participate in the abuse?
20
+ 3. Was the customer deceived about the recipient or payment purpose?
21
+
22
+ Authorization language is overloaded. Record both:
23
+
24
+ - **Customer consent** — whether the genuine customer intended the transaction.
25
+ - **Technical authentication** — whether credentials, device, session, MFA, or
26
+ payment authentication passed.
27
+
28
+ A technically authenticated transaction can still be unauthorized by the
29
+ genuine customer after account takeover.
30
+
31
+ ## Archetypes
32
+
33
+ ### Third-party fraud
34
+
35
+ An external actor uses another person's account, credentials, instrument, or
36
+ identity without genuine-customer consent. Examples: stolen card, stolen token,
37
+ credential theft, account takeover.
38
+
39
+ ### First-party fraud
40
+
41
+ The genuine customer or account holder is the perpetrator or a knowing
42
+ participant and misrepresents, manipulates, or deliberately misuses their own
43
+ account for gain. Examples: deliberate collection abuse, false non-receipt or
44
+ refund claims, knowing mule activity, deliberate payout abuse.
45
+
46
+ Do not call this `first-party scam`: scam usually implies a deceived victim.
47
+
48
+ ### Authorized payment scam
49
+
50
+ The genuine customer authorizes a payment but is deceived about its recipient or
51
+ purpose. The customer is the victim, not a knowing participant.
52
+
53
+ `APP scam` is a subtype for a victim-deceived push payment, normally in a bank
54
+ transfer context. Do not apply APP terminology to all authorized payment scams.
55
+
56
+ ### Unclassified
57
+
58
+ Use when consent, deception, or knowing participation cannot yet be established.
59
+ Analyze observable risk signals, but do not claim archetype-specific loss or use
60
+ the unresolved class as confirmed ground truth.
61
+
62
+ ## Mechanisms and contexts
63
+
64
+ Mechanisms may include `account-takeover`, stolen payment credential, social
65
+ engineering, synthetic identity, or deliberate account misuse. Add a mechanism
66
+ pack only when its data and controls require specialized guidance.
67
+
68
+ Supported contexts are `card-payment`, `payment-collection`, `bank-transfer`,
69
+ and `payout`. Select all relevant contexts for linked money-flow analysis, but
70
+ name the event grain and decision point for every rule.
71
+
72
+ ## Mixed cases
73
+
74
+ - Separate confirmed archetypes into separate targets and metrics.
75
+ - A mule may be a knowing participant (first-party fraud), a coerced or deceived
76
+ victim (authorized payment scam or unclassified), or an account-takeover victim
77
+ (third-party fraud). Do not infer the role from rapid movement alone.
78
+ - A customer claim is evidence, not automatic proof of consent or attribution.
79
+ - Civil disputes and service dissatisfaction are not automatically fraud.