@1aboveio/skills 0.19.3 → 0.20.1

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 (197) hide show
  1. package/README.md +9 -4
  2. package/package.json +1 -1
  3. package/runtime/skills/distribution/generated/recipes.json +54 -48
  4. package/runtime/skills/distribution/scripts/bundles.mjs +113 -7
  5. package/runtime/skills/engineering/engineering-runtime/scripts/workflow-coherence.mjs +4 -6
  6. package/runtime/skills/engineering/engineering-runtime/scripts/workflow-policy.mjs +3 -36
  7. package/skills/cicd-pipeline/mergify/SKILL.md +1 -1
  8. package/skills/engineering/engineering-runtime/coherence/workflow.json +14 -83
  9. package/skills/engineering/engineering-runtime/scripts/workflow-coherence.mjs +4 -6
  10. package/skills/engineering/engineering-runtime/scripts/workflow-policy.mjs +3 -36
  11. package/skills/engineering/smoke/SKILL.md +1 -1
  12. package/skills/payment/payment-analysis/SKILL.md +5 -3
  13. package/skills/payment/tld-detection/SKILL.md +163 -0
  14. package/skills/payment/tld-detection/agents/openai.yaml +9 -0
  15. package/skills/payment/tld-detection/evals/evals.json +107 -0
  16. package/skills/payment/tld-detection/references/clean.md +51 -0
  17. package/skills/payment/tld-detection/references/clustering.md +219 -0
  18. package/skills/payment/tld-detection/references/decision.md +85 -0
  19. package/skills/payment/tld-detection/references/report-template.md +169 -0
  20. package/skills/payment/tld-detection/references/terminology.md +69 -0
  21. package/skills/payment/tld-detection/references/workflow.md +78 -0
  22. package/skills/payment/tld-detection/scripts/detect_ladders.py +390 -0
  23. package/skills/payment/tld-detection/tests/test_detect_ladders.py +132 -0
  24. package/skills/engineering/resolve-issues/SKILL.md +0 -168
  25. package/skills/engineering/resolve-issues/agents/openai.yaml +0 -9
  26. package/skills/engineering/resolve-issues/generated/workflow-repair-policy.json +0 -499
  27. package/skills/engineering/resolve-issues/references/breaker.md +0 -82
  28. package/skills/engineering/resolve-issues/references/deliverables.md +0 -27
  29. package/skills/engineering/resolve-issues/references/delivery.md +0 -108
  30. package/skills/engineering/resolve-issues/references/evidence-lane.md +0 -21
  31. package/skills/engineering/resolve-issues/references/exact-head-ci.md +0 -287
  32. package/skills/engineering/resolve-issues/references/fan-out.md +0 -33
  33. package/skills/engineering/resolve-issues/references/finalization.md +0 -68
  34. package/skills/engineering/resolve-issues/references/guarantees.md +0 -10
  35. package/skills/engineering/resolve-issues/references/high-risk.md +0 -29
  36. package/skills/engineering/resolve-issues/references/incidents/848/README.md +0 -156
  37. package/skills/engineering/resolve-issues/references/intake.md +0 -86
  38. package/skills/engineering/resolve-issues/references/integration-gate.md +0 -53
  39. package/skills/engineering/resolve-issues/references/interference.md +0 -87
  40. package/skills/engineering/resolve-issues/references/loop.md +0 -134
  41. package/skills/engineering/resolve-issues/references/model-catalog.md +0 -9
  42. package/skills/engineering/resolve-issues/references/postmortem.md +0 -27
  43. package/skills/engineering/resolve-issues/references/pre-flight-model-slots.md +0 -41
  44. package/skills/engineering/resolve-issues/references/pre-flight-recording-and-checkout.md +0 -48
  45. package/skills/engineering/resolve-issues/references/pre-flight.md +0 -41
  46. package/skills/engineering/resolve-issues/references/regression-checklist.md +0 -26
  47. package/skills/engineering/resolve-issues/references/run-state.md +0 -288
  48. package/skills/engineering/resolve-issues/references/sandboxed-testing.md +0 -48
  49. package/skills/engineering/resolve-issues/references/spawn-contract.md +0 -96
  50. package/skills/engineering/resolve-issues/references/terminal-evidence-journal.md +0 -40
  51. package/skills/engineering/resolve-issues/references/why.md +0 -653
  52. package/skills/engineering/resolve-issues/schemas/fix-round.schema.json +0 -49
  53. package/skills/engineering/resolve-issues/scripts/combine-and-verify.mjs +0 -721
  54. package/skills/engineering/resolve-issues/scripts/component-candidate.mjs +0 -962
  55. package/skills/engineering/resolve-issues/scripts/contract-revision.mjs +0 -220
  56. package/skills/engineering/resolve-issues/scripts/detect-delivery-mode.mjs +0 -420
  57. package/skills/engineering/resolve-issues/scripts/detect-target-branch.mjs +0 -256
  58. package/skills/engineering/resolve-issues/scripts/detect-workspace-mode.mjs +0 -168
  59. package/skills/engineering/resolve-issues/scripts/discover-models.mjs +0 -9
  60. package/skills/engineering/resolve-issues/scripts/doctrine.mjs +0 -62
  61. package/skills/engineering/resolve-issues/scripts/evidence-lifecycle-contract.mjs +0 -191
  62. package/skills/engineering/resolve-issues/scripts/exact-head-ci.mjs +0 -413
  63. package/skills/engineering/resolve-issues/scripts/exact-head-github-provider.mjs +0 -332
  64. package/skills/engineering/resolve-issues/scripts/finalize.mjs +0 -488
  65. package/skills/engineering/resolve-issues/scripts/fix-rounds.mjs +0 -3307
  66. package/skills/engineering/resolve-issues/scripts/fixtures/evidence-lifecycle-circular-1001.json +0 -16
  67. package/skills/engineering/resolve-issues/scripts/fixtures/evidence-lifecycle-valid-sequencing.json +0 -51
  68. package/skills/engineering/resolve-issues/scripts/fixtures/fmm-express-830-component-candidate.json +0 -17
  69. package/skills/engineering/resolve-issues/scripts/fixtures/head-check-set-1081.json +0 -166
  70. package/skills/engineering/resolve-issues/scripts/gate-value-series.mjs +0 -92
  71. package/skills/engineering/resolve-issues/scripts/guide-index.mjs +0 -73
  72. package/skills/engineering/resolve-issues/scripts/head-check-set.mjs +0 -159
  73. package/skills/engineering/resolve-issues/scripts/interference.mjs +0 -427
  74. package/skills/engineering/resolve-issues/scripts/model-catalog.mjs +0 -9
  75. package/skills/engineering/resolve-issues/scripts/next-operations.mjs +0 -419
  76. package/skills/engineering/resolve-issues/scripts/postmortem.mjs +0 -909
  77. package/skills/engineering/resolve-issues/scripts/preflight-questions.mjs +0 -345
  78. package/skills/engineering/resolve-issues/scripts/reconcile-contained-unit-prs.mjs +0 -415
  79. package/skills/engineering/resolve-issues/scripts/release-state-contract.mjs +0 -697
  80. package/skills/engineering/resolve-issues/scripts/report.mjs +0 -494
  81. package/skills/engineering/resolve-issues/scripts/required-check-plan.mjs +0 -172
  82. package/skills/engineering/resolve-issues/scripts/round-metadata.mjs +0 -79
  83. package/skills/engineering/resolve-issues/scripts/run-state-review6-cases.mjs +0 -334
  84. package/skills/engineering/resolve-issues/scripts/run-state.mjs +0 -4792
  85. package/skills/engineering/resolve-issues/scripts/sandbox-selftest.mjs +0 -395
  86. package/skills/engineering/resolve-issues/scripts/spawn-contract.mjs +0 -290
  87. package/skills/engineering/resolve-issues/scripts/terminal-dispositions.mjs +0 -170
  88. package/skills/engineering/resolve-issues/scripts/terminal-evidence-journal.mjs +0 -293
  89. package/skills/engineering/resolve-issues/scripts/unit-kind.mjs +0 -197
  90. package/skills/engineering/resolve-issues/scripts/unit-lifecycle.mjs +0 -127
  91. package/skills/engineering/resolve-issues/scripts/watch-delivery.mjs +0 -893
  92. package/skills/engineering/resolve-issues/scripts/workspaces.mjs +0 -829
  93. package/skills/engineering/resolve-issues/workflows/independent-review.workflow.js +0 -290
  94. package/skills/engineering/resolve-issues/workflows/prior-art-scan.workflow.js +0 -80
  95. package/skills/engineering/resolve-issues/workflows/workflow-smoke.mjs +0 -102
  96. package/skills/engineering/resolve-release/LICENSE +0 -3
  97. package/skills/engineering/resolve-release/SKILL.md +0 -113
  98. package/skills/engineering/resolve-release/agents/openai.yaml +0 -9
  99. package/skills/engineering/resolve-release/references/assembly.md +0 -137
  100. package/skills/engineering/resolve-release/references/auto-when-green.md +0 -56
  101. package/skills/engineering/resolve-release/references/candidate.md +0 -167
  102. package/skills/engineering/resolve-release/references/exposure.md +0 -178
  103. package/skills/engineering/resolve-release/references/handoff.md +0 -24
  104. package/skills/engineering/resolve-release/references/postmortem.md +0 -230
  105. package/skills/engineering/resolve-release/references/preflight.md +0 -208
  106. package/skills/engineering/resolve-release/references/principles.md +0 -94
  107. package/skills/engineering/resolve-release/references/regression-checklist.md +0 -36
  108. package/skills/engineering/resolve-release/references/related-skills.md +0 -13
  109. package/skills/engineering/resolve-release/references/routing.md +0 -149
  110. package/skills/engineering/resolve-release/references/verified-sha-github-flow.md +0 -285
  111. package/skills/engineering/resolve-release/references/versioning.md +0 -202
  112. package/skills/engineering/resolve-release/references/why.md +0 -53
  113. package/skills/engineering/resolve-release/scripts/adapter-completion-artifact.mjs +0 -389
  114. package/skills/engineering/resolve-release/scripts/build-changes.mjs +0 -209
  115. package/skills/engineering/resolve-release/scripts/candidate-hygiene.mjs +0 -407
  116. package/skills/engineering/resolve-release/scripts/candidate-identity.mjs +0 -904
  117. package/skills/engineering/resolve-release/scripts/candidate-traffic.mjs +0 -81
  118. package/skills/engineering/resolve-release/scripts/checked-adapter-loader.mjs +0 -612
  119. package/skills/engineering/resolve-release/scripts/close-attempt.mjs +0 -135
  120. package/skills/engineering/resolve-release/scripts/closeout-release.mjs +0 -161
  121. package/skills/engineering/resolve-release/scripts/doctrine.mjs +0 -106
  122. package/skills/engineering/resolve-release/scripts/durable-processing.mjs +0 -522
  123. package/skills/engineering/resolve-release/scripts/ensure-target-green.mjs +0 -659
  124. package/skills/engineering/resolve-release/scripts/evidence-bundle.mjs +0 -1014
  125. package/skills/engineering/resolve-release/scripts/finalize-release.mjs +0 -526
  126. package/skills/engineering/resolve-release/scripts/fixtures/durable-processing-adapter.mjs +0 -169
  127. package/skills/engineering/resolve-release/scripts/green-gate.mjs +0 -599
  128. package/skills/engineering/resolve-release/scripts/isolated-adapter-evaluator.mjs +0 -752
  129. package/skills/engineering/resolve-release/scripts/metadata-pr-status.mjs +0 -56
  130. package/skills/engineering/resolve-release/scripts/metadata-sync.mjs +0 -1538
  131. package/skills/engineering/resolve-release/scripts/postmortem.mjs +0 -381
  132. package/skills/engineering/resolve-release/scripts/preflight-probes.mjs +0 -510
  133. package/skills/engineering/resolve-release/scripts/production-endpoints.mjs +0 -326
  134. package/skills/engineering/resolve-release/scripts/rc-circuit-breaker.mjs +0 -272
  135. package/skills/engineering/resolve-release/scripts/report.mjs +0 -417
  136. package/skills/engineering/resolve-release/scripts/reprobe-credentials.mjs +0 -114
  137. package/skills/engineering/resolve-release/scripts/revalidate-candidate.mjs +0 -238
  138. package/skills/engineering/resolve-release/scripts/review-packet.mjs +0 -503
  139. package/skills/engineering/resolve-release/scripts/rollback-floor.mjs +0 -263
  140. package/skills/engineering/resolve-release/scripts/version-assert.mjs +0 -339
  141. package/skills/engineering/resolve-release/scripts/version-postmortem.mjs +0 -485
  142. package/skills/engineering/resolve-release/scripts/version.mjs +0 -1199
  143. package/skills/engineering/resolve-release/scripts/watch-candidate-delivery.mjs +0 -449
  144. package/skills/engineering/resolve-release/vendor/ACORN-LICENSE +0 -21
  145. package/skills/engineering/resolve-release/vendor/README.md +0 -60
  146. package/skills/engineering/resolve-release/vendor/acorn.mjs +0 -6233
  147. package/skills/engineering/resolve-release/vendor/quickjs/core/LICENSE +0 -21
  148. package/skills/engineering/resolve-release/vendor/quickjs/core/README.md +0 -341
  149. package/skills/engineering/resolve-release/vendor/quickjs/core/README.template.md +0 -70
  150. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/chunk-TAV5CUKK.mjs +0 -2
  151. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/chunk-TAV5CUKK.mjs.map +0 -1
  152. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/chunk-V2S4ZYJR.mjs +0 -7
  153. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/chunk-V2S4ZYJR.mjs.map +0 -1
  154. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.d.mts +0 -2033
  155. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.d.ts +0 -2033
  156. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.js +0 -7
  157. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.js.map +0 -1
  158. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.mjs +0 -2
  159. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.mjs.map +0 -1
  160. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/module-ES6BEMUI.mjs +0 -2
  161. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/module-ES6BEMUI.mjs.map +0 -1
  162. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/module-asyncify-2EFITU5U.mjs +0 -2
  163. package/skills/engineering/resolve-release/vendor/quickjs/core/dist/module-asyncify-2EFITU5U.mjs.map +0 -1
  164. package/skills/engineering/resolve-release/vendor/quickjs/core/package.json +0 -49
  165. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/LICENSE +0 -21
  166. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/README.md +0 -5
  167. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.d.mts +0 -549
  168. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.d.ts +0 -549
  169. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.js +0 -2
  170. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.js.map +0 -1
  171. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.mjs +0 -2
  172. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.mjs.map +0 -1
  173. package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/package.json +0 -36
  174. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/LICENSE +0 -47
  175. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/README.md +0 -82
  176. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.browser.d.ts +0 -11
  177. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.browser.mjs +0 -22
  178. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.cjs +0 -21
  179. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.cloudflare.cjs +0 -21
  180. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.cloudflare.d.ts +0 -11
  181. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.d.ts +0 -11
  182. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.mjs +0 -25
  183. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.wasm +0 -0
  184. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.d.mts +0 -85
  185. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.d.ts +0 -85
  186. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.js +0 -2
  187. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.js.map +0 -1
  188. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.mjs +0 -2
  189. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.mjs.map +0 -1
  190. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.d.mts +0 -20
  191. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.d.ts +0 -20
  192. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.js +0 -2
  193. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.js.map +0 -1
  194. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.mjs +0 -2
  195. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.mjs.map +0 -1
  196. package/skills/engineering/resolve-release/vendor/quickjs/release-sync/package.json +0 -61
  197. /package/skills/{engineering/resolve-issues → payment/tld-detection}/LICENSE +0 -0
@@ -11,9 +11,7 @@ export const WORKFLOW_OWNED_MEMBERS = deepFreeze([
11
11
  'ensure-coverage',
12
12
  'implement-and-pr',
13
13
  'rush-issues',
14
- 'resolve-issues',
15
14
  'rush-release',
16
- 'resolve-release',
17
15
  'review-pr',
18
16
  'smoke',
19
17
  'engineering-runtime',
@@ -66,23 +64,7 @@ export const WORKFLOW_TRUSTED_DEPENDENCY_CLOSURES = deepFreeze([
66
64
  ],
67
65
  generatedIdentities: [],
68
66
  },
69
- {
70
- invokedSkill: 'resolve-issues',
71
- members: [
72
- 'tdd',
73
- 'harness-runtime',
74
- 'e2e-test',
75
- 'ensure-coverage',
76
- 'implement-and-pr',
77
- 'resolve-issues',
78
- 'review-pr',
79
- 'smoke',
80
- 'engineering-runtime',
81
- ],
82
- generatedIdentities: [
83
- { member: 'resolve-issues', path: 'generated/workflow-repair-policy.json' },
84
- ],
85
- },
67
+
86
68
  {
87
69
  invokedSkill: 'rush-release',
88
70
  members: [
@@ -91,22 +73,7 @@ export const WORKFLOW_TRUSTED_DEPENDENCY_CLOSURES = deepFreeze([
91
73
  ],
92
74
  generatedIdentities: [],
93
75
  },
94
- {
95
- invokedSkill: 'resolve-release',
96
- members: [
97
- 'harness-runtime',
98
- 'e2e-test',
99
- 'ensure-coverage',
100
- 'resolve-issues',
101
- 'resolve-release',
102
- 'review-pr',
103
- 'smoke',
104
- 'engineering-runtime',
105
- ],
106
- generatedIdentities: [
107
- { member: 'resolve-issues', path: 'generated/workflow-repair-policy.json' },
108
- ],
109
- },
76
+
110
77
  ]);
111
78
 
112
79
  // First-party content is distributed as an exact public npm release, so its identity is the package
@@ -119,7 +86,7 @@ export const WORKFLOW_TRUSTED_SOURCES = deepFreeze({
119
86
  id: 'first-party',
120
87
  type: 'first-party',
121
88
  package: '@1aboveio/skills',
122
- version: '0.19.3',
89
+ version: '0.20.1',
123
90
  },
124
91
  matt: {
125
92
  id: 'matt-pocock',
@@ -128,7 +128,7 @@ conflict, never hold the batch window open. Mechanics and the grouping rule
128
128
 
129
129
  - [cloud-build](../cloud-build/SKILL.md) — the CI the queue gates on
130
130
  - [cloud-debug](../cloud-debug/SKILL.md) — when the CI job itself is failing
131
- - [resolve-issues](../../engineering/resolve-issues/SKILL.md) — consumes this skill's delivery
131
+ - [rush-issues](../../engineering/rush-issues/SKILL.md) — consumes this skill's delivery
132
132
  watch contract when it delivers merge-ready PRs through Mergify
133
133
  - `mergify-config`, `mergify-merge-queue`, `mergify-merge-protections`, `mergify-ci`,
134
134
  `mergify-stack` (vendor plugin skills) — reference for raw CLI invocation. They document
@@ -6,9 +6,7 @@
6
6
  "ensure-coverage",
7
7
  "implement-and-pr",
8
8
  "rush-issues",
9
- "resolve-issues",
10
9
  "rush-release",
11
- "resolve-release",
12
10
  "review-pr",
13
11
  "smoke",
14
12
  "engineering-runtime"
@@ -58,26 +56,6 @@
58
56
  ],
59
57
  "generatedIdentities": []
60
58
  },
61
- {
62
- "invokedSkill": "resolve-issues",
63
- "members": [
64
- "tdd",
65
- "harness-runtime",
66
- "e2e-test",
67
- "ensure-coverage",
68
- "implement-and-pr",
69
- "resolve-issues",
70
- "review-pr",
71
- "smoke",
72
- "engineering-runtime"
73
- ],
74
- "generatedIdentities": [
75
- {
76
- "member": "resolve-issues",
77
- "path": "generated/workflow-repair-policy.json"
78
- }
79
- ]
80
- },
81
59
  {
82
60
  "invokedSkill": "rush-release",
83
61
  "members": [
@@ -85,25 +63,6 @@
85
63
  "engineering-runtime"
86
64
  ],
87
65
  "generatedIdentities": []
88
- },
89
- {
90
- "invokedSkill": "resolve-release",
91
- "members": [
92
- "harness-runtime",
93
- "e2e-test",
94
- "ensure-coverage",
95
- "resolve-issues",
96
- "resolve-release",
97
- "review-pr",
98
- "smoke",
99
- "engineering-runtime"
100
- ],
101
- "generatedIdentities": [
102
- {
103
- "member": "resolve-issues",
104
- "path": "generated/workflow-repair-policy.json"
105
- }
106
- ]
107
66
  }
108
67
  ],
109
68
  "digestAlgorithm": "sha256-path-content-v2",
@@ -383,7 +342,7 @@
383
342
  "id": "first-party",
384
343
  "type": "first-party",
385
344
  "package": "@1aboveio/skills",
386
- "version": "0.19.3"
345
+ "version": "0.20.1"
387
346
  },
388
347
  "contentDigest": "eff6c7b5931bce5b2265a619bccddd371a89df6ce7bc2edc74f11d00060a71dd",
389
348
  "digestExcludes": []
@@ -396,7 +355,7 @@
396
355
  "id": "first-party",
397
356
  "type": "first-party",
398
357
  "package": "@1aboveio/skills",
399
- "version": "0.19.3"
358
+ "version": "0.20.1"
400
359
  },
401
360
  "contentDigest": "d97abeff7bdc5ae2e4be2f631d09dba46d4753ce1e67334793364329af59f066",
402
361
  "digestExcludes": []
@@ -409,7 +368,7 @@
409
368
  "id": "first-party",
410
369
  "type": "first-party",
411
370
  "package": "@1aboveio/skills",
412
- "version": "0.19.3"
371
+ "version": "0.20.1"
413
372
  },
414
373
  "contentDigest": "00cfdd3e5bfbc3e37b1369ad93aae91161e671829760a8867ea9be25047ba461",
415
374
  "digestExcludes": []
@@ -422,7 +381,7 @@
422
381
  "id": "first-party",
423
382
  "type": "first-party",
424
383
  "package": "@1aboveio/skills",
425
- "version": "0.19.3"
384
+ "version": "0.20.1"
426
385
  },
427
386
  "contentDigest": "58b0556228a9271cf9e33727a05fc08a4fdfd29512ec0936b169f0a55d60e6ef",
428
387
  "digestExcludes": []
@@ -435,24 +394,11 @@
435
394
  "id": "first-party",
436
395
  "type": "first-party",
437
396
  "package": "@1aboveio/skills",
438
- "version": "0.19.3"
397
+ "version": "0.20.1"
439
398
  },
440
399
  "contentDigest": "4664873230f22de2fcf46b7b529570cfedabdc850620031d8f96baf89fcdc5b4",
441
400
  "digestExcludes": []
442
401
  },
443
- {
444
- "installName": "resolve-issues",
445
- "ownership": "owned",
446
- "sourcePath": "skills/engineering/resolve-issues",
447
- "expectedSource": {
448
- "id": "first-party",
449
- "type": "first-party",
450
- "package": "@1aboveio/skills",
451
- "version": "0.19.3"
452
- },
453
- "contentDigest": "3016f025b4acf3b7f61628ff3043ca55e680d0fabc7cf9fb4b4c46424d9b22ed",
454
- "digestExcludes": []
455
- },
456
402
  {
457
403
  "installName": "rush-release",
458
404
  "ownership": "owned",
@@ -461,24 +407,11 @@
461
407
  "id": "first-party",
462
408
  "type": "first-party",
463
409
  "package": "@1aboveio/skills",
464
- "version": "0.19.3"
410
+ "version": "0.20.1"
465
411
  },
466
412
  "contentDigest": "01c192d8b4fd416af4ea02e8000e5fce0cee723a6ac2f8c0c48372087e1a262e",
467
413
  "digestExcludes": []
468
414
  },
469
- {
470
- "installName": "resolve-release",
471
- "ownership": "owned",
472
- "sourcePath": "skills/engineering/resolve-release",
473
- "expectedSource": {
474
- "id": "first-party",
475
- "type": "first-party",
476
- "package": "@1aboveio/skills",
477
- "version": "0.19.3"
478
- },
479
- "contentDigest": "ffba0c83491676794c74721f4c6dbae430f5bc186e5a55f0764e29eaeb13829b",
480
- "digestExcludes": []
481
- },
482
415
  {
483
416
  "installName": "review-pr",
484
417
  "ownership": "owned",
@@ -487,7 +420,7 @@
487
420
  "id": "first-party",
488
421
  "type": "first-party",
489
422
  "package": "@1aboveio/skills",
490
- "version": "0.19.3"
423
+ "version": "0.20.1"
491
424
  },
492
425
  "contentDigest": "f048fd00c69f2dc666fc7a3096cfeee6dfba73933bfb69602f3f0e26159798cc",
493
426
  "digestExcludes": []
@@ -500,9 +433,9 @@
500
433
  "id": "first-party",
501
434
  "type": "first-party",
502
435
  "package": "@1aboveio/skills",
503
- "version": "0.19.3"
436
+ "version": "0.20.1"
504
437
  },
505
- "contentDigest": "90a7c4e1ad6da1e632ea2c5259e4967ffebb84353adccbca8dfc5d6bc50b60c1",
438
+ "contentDigest": "27861f6dac89c32a97a7d249ce2695cea2d3d80dd2e9bc0607b0c4048a0e3b25",
506
439
  "digestExcludes": []
507
440
  },
508
441
  {
@@ -513,15 +446,15 @@
513
446
  "id": "first-party",
514
447
  "type": "first-party",
515
448
  "package": "@1aboveio/skills",
516
- "version": "0.19.3"
449
+ "version": "0.20.1"
517
450
  },
518
- "contentDigest": "6ef7cf062d899835774d3010dbba511587b0d60835447417d4b74a5afe25b184",
451
+ "contentDigest": "3e0952beee7078463464872943d414fa944b395ae723ec78b385a28a3548897a",
519
452
  "digestExcludes": [
520
453
  "coherence/workflow.json"
521
454
  ]
522
455
  }
523
456
  ],
524
- "releaseIdentity": "63593db8810d932c5774b375f3403578b821c9df6ca6e8a866f12f2b8fc4fd47",
457
+ "releaseIdentity": "baec385a2bc0414623c97a83ac4ebf3c44ede2654185b748a03ef955cb3f1c8d",
525
458
  "lifecycleAuthority": "native-skills-cli",
526
459
  "repairRecipe": {
527
460
  "id": "engineering-workflow-dependency-first",
@@ -579,7 +512,7 @@
579
512
  "sourceId": "first-party",
580
513
  "sourceType": "first-party",
581
514
  "package": "@1aboveio/skills",
582
- "version": "0.19.3",
515
+ "version": "0.20.1",
583
516
  "installPath": null,
584
517
  "members": [
585
518
  "harness-runtime",
@@ -587,9 +520,7 @@
587
520
  "ensure-coverage",
588
521
  "implement-and-pr",
589
522
  "rush-issues",
590
- "resolve-issues",
591
523
  "rush-release",
592
- "resolve-release",
593
524
  "review-pr",
594
525
  "smoke",
595
526
  "engineering-runtime"
@@ -597,7 +528,7 @@
597
528
  "commands": [
598
529
  {
599
530
  "transport": "npm",
600
- "command": "npx @1aboveio/skills@0.19.3 install --group engineering-workflow --yes"
531
+ "command": "npx @1aboveio/skills@0.20.1 install --group engineering-workflow --yes"
601
532
  }
602
533
  ],
603
534
  "onFailure": {
@@ -288,7 +288,7 @@ function validateManifest(manifest) {
288
288
  add('digest-algorithm-invalid', 'engineering-runtime', 'The coherence digest algorithm is missing or unsupported.');
289
289
  }
290
290
  if (JSON.stringify(manifest.ownedMembers) !== JSON.stringify(WORKFLOW_OWNED_MEMBERS)) {
291
- add('owned-census-invalid', 'engineering-runtime', 'The exact ten-member Workflow ownership census is missing or malformed.');
291
+ add('owned-census-invalid', 'engineering-runtime', 'The exact eight-member Workflow ownership census is missing or malformed.');
292
292
  }
293
293
  if (JSON.stringify(manifest.dependencies) !== JSON.stringify([
294
294
  { groupId: 'matt-pocock-toolkit', members: MATT_DEPENDENCY_MEMBERS },
@@ -297,11 +297,9 @@ function validateManifest(manifest) {
297
297
  add('dependency-census-invalid', 'engineering-runtime', 'The exact Matt and harness runtime dependency census is missing or malformed.');
298
298
  }
299
299
  if (!exactContract(manifest.dependencyClosures, WORKFLOW_TRUSTED_DEPENDENCY_CLOSURES)) {
300
- const names = new Set(Array.isArray(manifest.dependencyClosures)
301
- ? manifest.dependencyClosures.map((closure) => closure?.invokedSkill)
302
- : []);
303
- const member = WORKFLOW_TRUSTED_DEPENDENCY_CLOSURES.find((closure) => !names.has(closure.invokedSkill))?.invokedSkill
304
- ?? 'resolve-issues';
300
+ const actual = Array.isArray(manifest.dependencyClosures) ? manifest.dependencyClosures : [];
301
+ const member = WORKFLOW_TRUSTED_DEPENDENCY_CLOSURES.find((closure, index) =>
302
+ !isDeepStrictEqual(actual[index], closure))?.invokedSkill ?? 'engineering-runtime';
305
303
  add('dependency-closure-invalid', member, 'The invoked-skill dependency closure is missing, weakened, reordered or malformed.');
306
304
  }
307
305
 
@@ -11,9 +11,7 @@ export const WORKFLOW_OWNED_MEMBERS = deepFreeze([
11
11
  'ensure-coverage',
12
12
  'implement-and-pr',
13
13
  'rush-issues',
14
- 'resolve-issues',
15
14
  'rush-release',
16
- 'resolve-release',
17
15
  'review-pr',
18
16
  'smoke',
19
17
  'engineering-runtime',
@@ -66,23 +64,7 @@ export const WORKFLOW_TRUSTED_DEPENDENCY_CLOSURES = deepFreeze([
66
64
  ],
67
65
  generatedIdentities: [],
68
66
  },
69
- {
70
- invokedSkill: 'resolve-issues',
71
- members: [
72
- 'tdd',
73
- 'harness-runtime',
74
- 'e2e-test',
75
- 'ensure-coverage',
76
- 'implement-and-pr',
77
- 'resolve-issues',
78
- 'review-pr',
79
- 'smoke',
80
- 'engineering-runtime',
81
- ],
82
- generatedIdentities: [
83
- { member: 'resolve-issues', path: 'generated/workflow-repair-policy.json' },
84
- ],
85
- },
67
+
86
68
  {
87
69
  invokedSkill: 'rush-release',
88
70
  members: [
@@ -91,22 +73,7 @@ export const WORKFLOW_TRUSTED_DEPENDENCY_CLOSURES = deepFreeze([
91
73
  ],
92
74
  generatedIdentities: [],
93
75
  },
94
- {
95
- invokedSkill: 'resolve-release',
96
- members: [
97
- 'harness-runtime',
98
- 'e2e-test',
99
- 'ensure-coverage',
100
- 'resolve-issues',
101
- 'resolve-release',
102
- 'review-pr',
103
- 'smoke',
104
- 'engineering-runtime',
105
- ],
106
- generatedIdentities: [
107
- { member: 'resolve-issues', path: 'generated/workflow-repair-policy.json' },
108
- ],
109
- },
76
+
110
77
  ]);
111
78
 
112
79
  // First-party content is distributed as an exact public npm release, so its identity is the package
@@ -119,7 +86,7 @@ export const WORKFLOW_TRUSTED_SOURCES = deepFreeze({
119
86
  id: 'first-party',
120
87
  type: 'first-party',
121
88
  package: '@1aboveio/skills',
122
- version: '0.19.3',
89
+ version: '0.20.1',
123
90
  },
124
91
  matt: {
125
92
  id: 'matt-pocock',
@@ -113,7 +113,7 @@ The **per-PR golden-path liveness floor** (`ensure-coverage` CI contract, gate 8
113
113
  - **CI (gate 8, blocking)** — wired in `e2e-test/assets/ci-gates.*`; boots the app, drives the paths into `smoke-results.json`, runs `smoke.mjs verdict`. The mechanical backstop.
114
114
  - **`resolve-issues`** — final step of the [epic integration gate](../resolve-issues/references/deliverables.md#deliverables-the-shippable-component-not-the-whole-epic): boot the assembled integration branch and run the golden paths; a DEAD whose broken paths are `fail` belongs to a specific unit → reopen its fix loop. **A DEAD built from `blocked`/`missing` paths is a gate-environment problem, not a unit's defect** — report it and fix the environment; reopening a fix loop on it spends a producer spawn and an adversarial review on code that is fine, and the round lands in the unit's budget all the same.
115
115
  - **`/smoke`** — standalone, any time, against `local` or a URL.
116
- - **`resolve-release`** [the exposure gate](../resolve-release/SKILL.md#the-release-loop): the `prod-preview` profile against the 0%-traffic candidate URL (read-only, so it excludes every mutating path), then the `prod-active` profile against the live service after the shift. A DEAD **before** exposure deletes the candidate (no rollback, no user impact); a DEAD after it triggers the rollback policy.
116
+ - **Legacy `resolve-release` flow (archived)** the `prod-preview` profile against the 0%-traffic candidate URL (read-only, so it excludes every mutating path), then the `prod-active` profile against the live service after the shift. A DEAD **before** exposure deletes the candidate (no rollback, no user impact); a DEAD after it triggers the rollback policy.
117
117
  - **The dev-deploy recorder** (`cloud-build` → Post-deploy smoke gate) — the integration pipeline runs this gate after its 100%-traffic deploy and publishes the verdict as a **SHA-keyed commit status**, never failing the build; that recorded ALIVE is what `resolve-release` requires when pinning a release candidate (its principle 11).
118
118
 
119
119
  ## Reference Map
@@ -12,7 +12,8 @@ description: >
12
12
  decline mix, BIN/issuer-country contribution, settlement GMV, payment journey,
13
13
  Sankey funnel, FX-to-USD, chargeback rate, 运营影响, or "business analysis of
14
14
  transactions" — even if they do not say payment-analysis. Do NOT use for
15
- supervised fraud-rule mining (that is fraud-analysis).
15
+ supervised fraud-rule mining (fraud-analysis) or TLD / MCC-miscoding
16
+ clusters (tld-detection).
16
17
  ---
17
18
 
18
19
  # Payment Analysis
@@ -31,7 +32,7 @@ optional topic fuel, not required for the journey core.
31
32
 
32
33
  **Produce:** Markdown + preferred Chinese/bilingual HTML under
33
34
  `reports/payment-analysis/`.
34
- **Do not produce:** supervised precision/recall packages (`fraud-analysis`).
35
+ **Do not produce:** supervised precision/recall packages (`fraud-analysis`) or TLD clusters (`tld-detection`).
35
36
 
36
37
  Read the playbook for the step you are on. Paths under `references/` are
37
38
  relative to this skill.
@@ -106,12 +107,13 @@ Do not change numbers, joins, or chart data.
106
107
  - [ ] 运营影响 only from auth-rate-actions.md when triggered
107
108
  - [ ] Language matches terminology.md; banned strings have no unexplained hits
108
109
 
109
- ## Boundary with fraud-analysis
110
+ ## Boundary with fraud-analysis and tld-detection
110
111
 
111
112
  | Need | Skill |
112
113
  |---|---|
113
114
  | Volume, journey Sankey, auth rate, decline mix, settlement overview, 运营影响 routing | `payment-analysis` |
114
115
  | Proxy/confirmed fraud labels, holdout precision/recall, 3DS/block **packages** | `fraud-analysis` |
116
+ | Potential TLD clusters, currency-amount-pair ladders, MCC miscoding, stuffing | `tld-detection` |
115
117
 
116
118
  Routing 3DS / 风控拦截 / retry from this extract is not a fraud-analysis rule
117
119
  package.
@@ -0,0 +1,163 @@
1
+ ---
2
+ name: tld-detection
3
+ description: >
4
+ Explicit-only. Potential TLD (transaction-laundering) clusters from
5
+ descriptor partitions, then exact currency-amount pairs, with same-descriptor
6
+ baseline contrasts, high/medium/low risk tiers, exposure sizing, and a
7
+ ≤3-sentence decision.
8
+ Not payment-analysis or fraud-analysis.
9
+ disable-model-invocation: true
10
+ ---
11
+
12
+ # TLD Detection
13
+
14
+ Find **potential TLD clusters** in an authorization extract. TLD here is
15
+ transaction laundering, not a domain name: hidden activity stuffed under a
16
+ normal MCC, often mixed across descriptors.
17
+
18
+ First partition the cleaned authorizations by **descriptor**. Inside each
19
+ descriptor, the clustering key is the **currency-amount-pair**. Geometric
20
+ relationships between exact anchors are the stuffing signal (掺量). BIN
21
+ country is not a membership key; report it in the cluster-versus-baseline
22
+ comparison after membership is frozen.
23
+
24
+ **Produce:** cluster results and a separate run-specific methodology document
25
+ under `reports/tld-detection/`.
26
+ **Do not produce:** confirmed laundering, a legal finding, or supervised
27
+ fraud-rule packages (`fraud-analysis`).
28
+
29
+ Paths under `references/` are relative to this skill.
30
+
31
+ ## Workflow
32
+
33
+ Follow these steps in order. Detail:
34
+ [references/workflow.md](references/workflow.md).
35
+
36
+ | Step | Do | Gate |
37
+ |---|---|---|
38
+ | 0 Pre-flight | File, grain, columns, window | Stop if auth grain, descriptor, amount, or currency column is missing; caption missing BIN country |
39
+ | 1 Clean | Dedup | Record drop counts; do not filter BIN country |
40
+ | 2 Cluster | Partition; rank pairs; identify anchors; freeze exact keys; compare with same-descriptor baseline | Partition = descriptor; ≥3 levels; adjacent levels = 2x; ≥100 attempts; absolute residual cap per candidate currency |
41
+ | 3 Risk | Assign high/medium/low investigation priority | Mixed BIN countries are neutral; exact 100% single-country concentration is a standout |
42
+ | 4 Decision | Conclusion + basis for the book | ≤3 sentences; no new evidence |
43
+ | 5 Report | Answer highest-risk, cluster-characteristic, and exposure questions; write + proofread | Sort high → medium → low; no confirmed-TLD wording |
44
+
45
+ ### 0 — Pre-flight
46
+
47
+ Authorization extract, one row per auth attempt. Record paths, time field,
48
+ amount, currency, BIN/issuer country, descriptor, MCC, response. Grain and
49
+ column aliases: [workflow.md](references/workflow.md).
50
+
51
+ ### 1 — Clean
52
+
53
+ [references/clean.md](references/clean.md). Deduplicate first. Do not
54
+ FX-convert the clustering key. Do not drop non-US BIN rows.
55
+
56
+ ### 2 — Cluster
57
+
58
+ [references/clustering.md](references/clustering.md). Build normalized
59
+ descriptor partitions, then rank currency-amount-pairs inside each descriptor. Use
60
+ `scripts/detect_ladders.py` to detect geometric anchor relationships with
61
+ adjacent, currency-specific absolute residual caps. Every cluster must contain
62
+ at least three theoretical levels with a fixed 2x relationship between adjacent
63
+ levels (for example 1x, 2x, 4x, 8x); search both up and down from every candidate
64
+ seed. A theoretical level may
65
+ keep multiple exact anchors, but each additional anchor must clear the stated
66
+ portfolio support floor. Freeze membership by exact descriptor, currency,
67
+ and amount; keep only clusters with ≥100 authorization attempts. Compare each
68
+ cluster with the baseline formed by removing that cluster from the same
69
+ descriptor. Do not invent clusters from MCC or comparison features.
70
+
71
+ ### 3 — Risk
72
+
73
+ [references/decision.md](references/decision.md). Assign every identified
74
+ currency-amount pair exactly one investigation-priority tier: High, Medium,
75
+ or Low. BIN-country mixture is neutral and never downgrades a cluster. Treat
76
+ an exact 100% single-BIN-country cluster as a standout; separately report the
77
+ cluster's share of that descriptor-country slice without using an arbitrary
78
+ coverage threshold or risk points.
79
+
80
+ ### 4 — Decision
81
+
82
+ Write the conclusion and the basis in **at most 3 sentences** for the whole
83
+ book. A one-line table per cluster is allowed under that.
84
+
85
+ ### 5 — Report
86
+
87
+ [references/report-template.md](references/report-template.md). Terms:
88
+ [references/terminology.md](references/terminology.md).
89
+
90
+ ```text
91
+ reports/tld-detection/<scope>_clusters.md
92
+ reports/tld-detection/<scope>_clusters.zh.md
93
+ reports/tld-detection/<scope>_clusters.zh.html
94
+ reports/tld-detection/<scope>_methodology.md
95
+ reports/tld-detection/<scope>_methodology.zh.md
96
+ reports/tld-detection/<scope>_methodology.zh.html
97
+ ```
98
+
99
+ Keep detection results in the cluster reports. Lead with the highest-risk
100
+ clusters, characterize every identified cluster and its descriptor share, then
101
+ quantify exposure by risk tier, descriptor, and across all authorization
102
+ attempts. Sort High → Medium → Low, then by evidence strength and attempts
103
+ inside each tier. Put the
104
+ actual run's cleaning, partitioning, parameter selection, sensitivity evidence,
105
+ baseline definition, and audit details in the methodology documents; link the
106
+ paired files in both directions. HTML is preferred when there are charts. Grep
107
+ banned strings after writing.
108
+
109
+ ## Progress
110
+
111
+ Track a task plan. One item is `in_progress` at a time.
112
+
113
+ 1. Pass pre-flight
114
+ 2. Freeze cleaned universe and descriptor partitions
115
+ 3. Assign High / Medium / Low risk tiers
116
+ 4. Publish descriptor currency-amount pairs + same-descriptor baselines
117
+ 5. Write ≤3-sentence decision
118
+ 6. Write report + separate run methodology and proofread
119
+
120
+ ## Boundary
121
+
122
+ | Need | Skill |
123
+ |---|---|
124
+ | Potential TLD clusters, currency-amount pairs, stuffing / 掺量, MCC miscoding, descriptor mixing | `tld-detection` |
125
+ | Volume, journey Sankey, auth rate, decline mix, settlement overview | `payment-analysis` |
126
+ | Proxy/confirmed fraud labels, holdout precision/recall, rule packages | `fraud-analysis` |
127
+
128
+ A suspected-fraud *rate contrast* in this skill is not a fraud-analysis
129
+ rule package.
130
+
131
+ ## Reference index
132
+
133
+ | Need | Read |
134
+ |---|---|
135
+ | Grain, columns, window | [workflow.md](references/workflow.md) |
136
+ | Dedup | [clean.md](references/clean.md) |
137
+ | Currency-amount pairs, anchors, same-descriptor baseline | [clustering.md](references/clustering.md) |
138
+ | ≤3-sentence conclusion | [decision.md](references/decision.md) |
139
+ | Report chapters | [report-template.md](references/report-template.md) |
140
+ | Language / banned strings | [terminology.md](references/terminology.md) |
141
+
142
+ ## Sanity check
143
+
144
+ - [ ] Auth grain; dedup counts are stated; no BIN-country row filter
145
+ - [ ] Partition key is normalized descriptor; missing descriptor is an explicit bucket
146
+ - [ ] Clustering key is original currency + amount, not USD
147
+ - [ ] Each rung-pool currency has an explicit adjacent absolute-residual cap and sensitivity evidence
148
+ - [ ] Multi-anchor levels state their portfolio support floor; final membership uses exact selected amount keys
149
+ - [ ] Cluster attempts ≥100
150
+ - [ ] Every cluster has a High / Medium / Low risk tier and results sort in that order
151
+ - [ ] Currency-amount pairs show seed and representative anchors; `*` marks a multi-amount level
152
+ - [ ] Same amount pair may recur across descriptor partitions; never merge them automatically
153
+ - [ ] BIN country is post-membership reporting data, not a membership key; Mixed is neutral
154
+ - [ ] Exact 100% single-country concentration is a standout; descriptor-country coverage is shown without a risk threshold
155
+ - [ ] Each cluster baseline is the same descriptor after removing that cluster
156
+ - [ ] Definition summary contains only descriptor, seed, anchors, and attempts
157
+ - [ ] Anchor table reports attempts, authorization success rate, and suspected-fraud share for every level, including n < 30
158
+ - [ ] Characteristics contain descriptor total, cluster attempts/share, MCC, and cluster-vs-baseline auth rate, suspected-fraud share, top 3 banks, and top 3 BIN countries
159
+ - [ ] Decision prose is ≤3 sentences (conclusion + basis)
160
+ - [ ] Report answers highest-risk, identified-cluster characteristics, and by-tier/by-descriptor exposure
161
+ - [ ] Run-specific methodology is separate from results; report and methodology link to each other
162
+ - [ ] Zero families → ranking only; no descriptor-invented clusters
163
+ - [ ] Language matches terminology.md; no confirmed-laundering claim
@@ -0,0 +1,9 @@
1
+ interface:
2
+ display_name: "TLD Detection"
3
+ short_description: "Risk-tiered TLD clusters from exact currency-amount pairs"
4
+
5
+ policy:
6
+ # Codex counterpart to SKILL.md disable-model-invocation: true
7
+ # (Claude Code / Pi). Keeps explicit invoke; blocks description-based
8
+ # auto-selection.
9
+ allow_implicit_invocation: false