@1aboveio/skills 0.19.2 → 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.
- package/README.md +9 -4
- package/package.json +1 -1
- package/runtime/skills/distribution/generated/recipes.json +54 -48
- package/runtime/skills/distribution/scripts/bundles.mjs +113 -7
- package/runtime/skills/engineering/engineering-runtime/scripts/workflow-coherence.mjs +4 -6
- package/runtime/skills/engineering/engineering-runtime/scripts/workflow-policy.mjs +3 -36
- package/skills/cicd-pipeline/mergify/SKILL.md +1 -1
- package/skills/engineering/engineering-runtime/coherence/workflow.json +14 -83
- package/skills/engineering/engineering-runtime/scripts/workflow-coherence.mjs +4 -6
- package/skills/engineering/engineering-runtime/scripts/workflow-policy.mjs +3 -36
- package/skills/engineering/smoke/SKILL.md +1 -1
- package/skills/payment/payment-analysis/SKILL.md +13 -7
- package/skills/payment/payment-analysis/references/chargebacks.md +43 -18
- package/skills/payment/payment-analysis/references/event-layers.md +4 -0
- package/skills/payment/payment-analysis/references/metrics.md +9 -7
- package/skills/payment/payment-analysis/references/report-template.md +3 -3
- package/skills/payment/payment-analysis/references/terminology.md +6 -1
- package/skills/payment/payment-analysis/references/visualization.md +1 -1
- package/skills/payment/tld-detection/SKILL.md +163 -0
- package/skills/payment/tld-detection/agents/openai.yaml +9 -0
- package/skills/payment/tld-detection/evals/evals.json +107 -0
- package/skills/payment/tld-detection/references/clean.md +51 -0
- package/skills/payment/tld-detection/references/clustering.md +219 -0
- package/skills/payment/tld-detection/references/decision.md +85 -0
- package/skills/payment/tld-detection/references/report-template.md +169 -0
- package/skills/payment/tld-detection/references/terminology.md +69 -0
- package/skills/payment/tld-detection/references/workflow.md +78 -0
- package/skills/payment/tld-detection/scripts/detect_ladders.py +390 -0
- package/skills/payment/tld-detection/tests/test_detect_ladders.py +132 -0
- package/skills/engineering/resolve-issues/SKILL.md +0 -168
- package/skills/engineering/resolve-issues/agents/openai.yaml +0 -9
- package/skills/engineering/resolve-issues/generated/workflow-repair-policy.json +0 -499
- package/skills/engineering/resolve-issues/references/breaker.md +0 -82
- package/skills/engineering/resolve-issues/references/deliverables.md +0 -27
- package/skills/engineering/resolve-issues/references/delivery.md +0 -108
- package/skills/engineering/resolve-issues/references/evidence-lane.md +0 -21
- package/skills/engineering/resolve-issues/references/exact-head-ci.md +0 -287
- package/skills/engineering/resolve-issues/references/fan-out.md +0 -33
- package/skills/engineering/resolve-issues/references/finalization.md +0 -68
- package/skills/engineering/resolve-issues/references/guarantees.md +0 -10
- package/skills/engineering/resolve-issues/references/high-risk.md +0 -29
- package/skills/engineering/resolve-issues/references/incidents/848/README.md +0 -156
- package/skills/engineering/resolve-issues/references/intake.md +0 -86
- package/skills/engineering/resolve-issues/references/integration-gate.md +0 -53
- package/skills/engineering/resolve-issues/references/interference.md +0 -87
- package/skills/engineering/resolve-issues/references/loop.md +0 -134
- package/skills/engineering/resolve-issues/references/model-catalog.md +0 -9
- package/skills/engineering/resolve-issues/references/postmortem.md +0 -27
- package/skills/engineering/resolve-issues/references/pre-flight-model-slots.md +0 -41
- package/skills/engineering/resolve-issues/references/pre-flight-recording-and-checkout.md +0 -48
- package/skills/engineering/resolve-issues/references/pre-flight.md +0 -41
- package/skills/engineering/resolve-issues/references/regression-checklist.md +0 -26
- package/skills/engineering/resolve-issues/references/run-state.md +0 -288
- package/skills/engineering/resolve-issues/references/sandboxed-testing.md +0 -48
- package/skills/engineering/resolve-issues/references/spawn-contract.md +0 -96
- package/skills/engineering/resolve-issues/references/terminal-evidence-journal.md +0 -40
- package/skills/engineering/resolve-issues/references/why.md +0 -653
- package/skills/engineering/resolve-issues/schemas/fix-round.schema.json +0 -49
- package/skills/engineering/resolve-issues/scripts/combine-and-verify.mjs +0 -721
- package/skills/engineering/resolve-issues/scripts/component-candidate.mjs +0 -962
- package/skills/engineering/resolve-issues/scripts/contract-revision.mjs +0 -220
- package/skills/engineering/resolve-issues/scripts/detect-delivery-mode.mjs +0 -420
- package/skills/engineering/resolve-issues/scripts/detect-target-branch.mjs +0 -256
- package/skills/engineering/resolve-issues/scripts/detect-workspace-mode.mjs +0 -168
- package/skills/engineering/resolve-issues/scripts/discover-models.mjs +0 -9
- package/skills/engineering/resolve-issues/scripts/doctrine.mjs +0 -62
- package/skills/engineering/resolve-issues/scripts/evidence-lifecycle-contract.mjs +0 -191
- package/skills/engineering/resolve-issues/scripts/exact-head-ci.mjs +0 -413
- package/skills/engineering/resolve-issues/scripts/exact-head-github-provider.mjs +0 -332
- package/skills/engineering/resolve-issues/scripts/finalize.mjs +0 -488
- package/skills/engineering/resolve-issues/scripts/fix-rounds.mjs +0 -3307
- package/skills/engineering/resolve-issues/scripts/fixtures/evidence-lifecycle-circular-1001.json +0 -16
- package/skills/engineering/resolve-issues/scripts/fixtures/evidence-lifecycle-valid-sequencing.json +0 -51
- package/skills/engineering/resolve-issues/scripts/fixtures/fmm-express-830-component-candidate.json +0 -17
- package/skills/engineering/resolve-issues/scripts/fixtures/head-check-set-1081.json +0 -166
- package/skills/engineering/resolve-issues/scripts/gate-value-series.mjs +0 -92
- package/skills/engineering/resolve-issues/scripts/guide-index.mjs +0 -73
- package/skills/engineering/resolve-issues/scripts/head-check-set.mjs +0 -159
- package/skills/engineering/resolve-issues/scripts/interference.mjs +0 -427
- package/skills/engineering/resolve-issues/scripts/model-catalog.mjs +0 -9
- package/skills/engineering/resolve-issues/scripts/next-operations.mjs +0 -419
- package/skills/engineering/resolve-issues/scripts/postmortem.mjs +0 -909
- package/skills/engineering/resolve-issues/scripts/preflight-questions.mjs +0 -345
- package/skills/engineering/resolve-issues/scripts/reconcile-contained-unit-prs.mjs +0 -415
- package/skills/engineering/resolve-issues/scripts/release-state-contract.mjs +0 -697
- package/skills/engineering/resolve-issues/scripts/report.mjs +0 -494
- package/skills/engineering/resolve-issues/scripts/required-check-plan.mjs +0 -172
- package/skills/engineering/resolve-issues/scripts/round-metadata.mjs +0 -79
- package/skills/engineering/resolve-issues/scripts/run-state-review6-cases.mjs +0 -334
- package/skills/engineering/resolve-issues/scripts/run-state.mjs +0 -4792
- package/skills/engineering/resolve-issues/scripts/sandbox-selftest.mjs +0 -395
- package/skills/engineering/resolve-issues/scripts/spawn-contract.mjs +0 -290
- package/skills/engineering/resolve-issues/scripts/terminal-dispositions.mjs +0 -170
- package/skills/engineering/resolve-issues/scripts/terminal-evidence-journal.mjs +0 -293
- package/skills/engineering/resolve-issues/scripts/unit-kind.mjs +0 -197
- package/skills/engineering/resolve-issues/scripts/unit-lifecycle.mjs +0 -127
- package/skills/engineering/resolve-issues/scripts/watch-delivery.mjs +0 -893
- package/skills/engineering/resolve-issues/scripts/workspaces.mjs +0 -829
- package/skills/engineering/resolve-issues/workflows/independent-review.workflow.js +0 -290
- package/skills/engineering/resolve-issues/workflows/prior-art-scan.workflow.js +0 -80
- package/skills/engineering/resolve-issues/workflows/workflow-smoke.mjs +0 -102
- package/skills/engineering/resolve-release/LICENSE +0 -3
- package/skills/engineering/resolve-release/SKILL.md +0 -113
- package/skills/engineering/resolve-release/agents/openai.yaml +0 -9
- package/skills/engineering/resolve-release/references/assembly.md +0 -137
- package/skills/engineering/resolve-release/references/auto-when-green.md +0 -56
- package/skills/engineering/resolve-release/references/candidate.md +0 -167
- package/skills/engineering/resolve-release/references/exposure.md +0 -178
- package/skills/engineering/resolve-release/references/handoff.md +0 -24
- package/skills/engineering/resolve-release/references/postmortem.md +0 -230
- package/skills/engineering/resolve-release/references/preflight.md +0 -208
- package/skills/engineering/resolve-release/references/principles.md +0 -94
- package/skills/engineering/resolve-release/references/regression-checklist.md +0 -36
- package/skills/engineering/resolve-release/references/related-skills.md +0 -13
- package/skills/engineering/resolve-release/references/routing.md +0 -149
- package/skills/engineering/resolve-release/references/verified-sha-github-flow.md +0 -285
- package/skills/engineering/resolve-release/references/versioning.md +0 -202
- package/skills/engineering/resolve-release/references/why.md +0 -53
- package/skills/engineering/resolve-release/scripts/adapter-completion-artifact.mjs +0 -389
- package/skills/engineering/resolve-release/scripts/build-changes.mjs +0 -209
- package/skills/engineering/resolve-release/scripts/candidate-hygiene.mjs +0 -407
- package/skills/engineering/resolve-release/scripts/candidate-identity.mjs +0 -904
- package/skills/engineering/resolve-release/scripts/candidate-traffic.mjs +0 -81
- package/skills/engineering/resolve-release/scripts/checked-adapter-loader.mjs +0 -612
- package/skills/engineering/resolve-release/scripts/close-attempt.mjs +0 -135
- package/skills/engineering/resolve-release/scripts/closeout-release.mjs +0 -161
- package/skills/engineering/resolve-release/scripts/doctrine.mjs +0 -106
- package/skills/engineering/resolve-release/scripts/durable-processing.mjs +0 -522
- package/skills/engineering/resolve-release/scripts/ensure-target-green.mjs +0 -659
- package/skills/engineering/resolve-release/scripts/evidence-bundle.mjs +0 -1014
- package/skills/engineering/resolve-release/scripts/finalize-release.mjs +0 -526
- package/skills/engineering/resolve-release/scripts/fixtures/durable-processing-adapter.mjs +0 -169
- package/skills/engineering/resolve-release/scripts/green-gate.mjs +0 -599
- package/skills/engineering/resolve-release/scripts/isolated-adapter-evaluator.mjs +0 -752
- package/skills/engineering/resolve-release/scripts/metadata-pr-status.mjs +0 -56
- package/skills/engineering/resolve-release/scripts/metadata-sync.mjs +0 -1538
- package/skills/engineering/resolve-release/scripts/postmortem.mjs +0 -381
- package/skills/engineering/resolve-release/scripts/preflight-probes.mjs +0 -510
- package/skills/engineering/resolve-release/scripts/production-endpoints.mjs +0 -326
- package/skills/engineering/resolve-release/scripts/rc-circuit-breaker.mjs +0 -272
- package/skills/engineering/resolve-release/scripts/report.mjs +0 -417
- package/skills/engineering/resolve-release/scripts/reprobe-credentials.mjs +0 -114
- package/skills/engineering/resolve-release/scripts/revalidate-candidate.mjs +0 -238
- package/skills/engineering/resolve-release/scripts/review-packet.mjs +0 -503
- package/skills/engineering/resolve-release/scripts/rollback-floor.mjs +0 -263
- package/skills/engineering/resolve-release/scripts/version-assert.mjs +0 -339
- package/skills/engineering/resolve-release/scripts/version-postmortem.mjs +0 -485
- package/skills/engineering/resolve-release/scripts/version.mjs +0 -1199
- package/skills/engineering/resolve-release/scripts/watch-candidate-delivery.mjs +0 -449
- package/skills/engineering/resolve-release/vendor/ACORN-LICENSE +0 -21
- package/skills/engineering/resolve-release/vendor/README.md +0 -60
- package/skills/engineering/resolve-release/vendor/acorn.mjs +0 -6233
- package/skills/engineering/resolve-release/vendor/quickjs/core/LICENSE +0 -21
- package/skills/engineering/resolve-release/vendor/quickjs/core/README.md +0 -341
- package/skills/engineering/resolve-release/vendor/quickjs/core/README.template.md +0 -70
- package/skills/engineering/resolve-release/vendor/quickjs/core/dist/chunk-TAV5CUKK.mjs +0 -2
- package/skills/engineering/resolve-release/vendor/quickjs/core/dist/chunk-TAV5CUKK.mjs.map +0 -1
- package/skills/engineering/resolve-release/vendor/quickjs/core/dist/chunk-V2S4ZYJR.mjs +0 -7
- package/skills/engineering/resolve-release/vendor/quickjs/core/dist/chunk-V2S4ZYJR.mjs.map +0 -1
- package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.d.mts +0 -2033
- package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.d.ts +0 -2033
- package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.js +0 -7
- package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.js.map +0 -1
- package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.mjs +0 -2
- package/skills/engineering/resolve-release/vendor/quickjs/core/dist/index.mjs.map +0 -1
- package/skills/engineering/resolve-release/vendor/quickjs/core/dist/module-ES6BEMUI.mjs +0 -2
- package/skills/engineering/resolve-release/vendor/quickjs/core/dist/module-ES6BEMUI.mjs.map +0 -1
- package/skills/engineering/resolve-release/vendor/quickjs/core/dist/module-asyncify-2EFITU5U.mjs +0 -2
- package/skills/engineering/resolve-release/vendor/quickjs/core/dist/module-asyncify-2EFITU5U.mjs.map +0 -1
- package/skills/engineering/resolve-release/vendor/quickjs/core/package.json +0 -49
- package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/LICENSE +0 -21
- package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/README.md +0 -5
- package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.d.mts +0 -549
- package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.d.ts +0 -549
- package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.js +0 -2
- package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.js.map +0 -1
- package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.mjs +0 -2
- package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/dist/index.mjs.map +0 -1
- package/skills/engineering/resolve-release/vendor/quickjs/ffi-types/package.json +0 -36
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/LICENSE +0 -47
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/README.md +0 -82
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.browser.d.ts +0 -11
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.browser.mjs +0 -22
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.cjs +0 -21
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.cloudflare.cjs +0 -21
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.cloudflare.d.ts +0 -11
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.d.ts +0 -11
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.mjs +0 -25
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/emscripten-module.wasm +0 -0
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.d.mts +0 -85
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.d.ts +0 -85
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.js +0 -2
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.js.map +0 -1
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.mjs +0 -2
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/ffi.mjs.map +0 -1
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.d.mts +0 -20
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.d.ts +0 -20
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.js +0 -2
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.js.map +0 -1
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.mjs +0 -2
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/dist/index.mjs.map +0 -1
- package/skills/engineering/resolve-release/vendor/quickjs/release-sync/package.json +0 -61
- /package/skills/{engineering/resolve-issues → payment/tld-detection}/LICENSE +0 -0
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# Report template
|
|
2
|
+
|
|
3
|
+
Save:
|
|
4
|
+
|
|
5
|
+
```text
|
|
6
|
+
reports/tld-detection/<scope>_clusters.md
|
|
7
|
+
reports/tld-detection/<scope>_clusters.zh.md
|
|
8
|
+
reports/tld-detection/<scope>_clusters.zh.html
|
|
9
|
+
reports/tld-detection/<scope>_methodology.md
|
|
10
|
+
reports/tld-detection/<scope>_methodology.zh.md
|
|
11
|
+
reports/tld-detection/<scope>_methodology.zh.html
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
HTML is preferred when there are charts (Chart.js bars). No Markdown bold in report body.
|
|
15
|
+
The cluster report and methodology document must link to each other. After
|
|
16
|
+
writing, grep banned strings in [terminology.md](terminology.md).
|
|
17
|
+
|
|
18
|
+
English Markdown headings on the left; Chinese HTML / `.zh.md` on the right.
|
|
19
|
+
|
|
20
|
+
```markdown
|
|
21
|
+
# Potential TLD currency-amount pairs — <window>
|
|
22
|
+
# 潜在 TLD 币种金额对 — <window>
|
|
23
|
+
|
|
24
|
+
## TLD Risk Assessment # TLD 风险评估
|
|
25
|
+
[Separate methodology link] # [独立方法文档链接]
|
|
26
|
+
## High-Risk Clusters # 高风险 Cluster
|
|
27
|
+
## TLD Risk Exposure # TLD 风险敞口
|
|
28
|
+
### By risk tier and descriptor # 按风险等级及 Descriptor
|
|
29
|
+
### Overall exposure # 整体风险敞口
|
|
30
|
+
## All Identified Currency-Amount Pairs # 全部识别出的币种金额对
|
|
31
|
+
### Currency-Amount Pair C1 # 币种金额对 C1
|
|
32
|
+
#### Definition # 定义
|
|
33
|
+
#### Characteristics # 特征
|
|
34
|
+
## Verdict # 结论
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
The separate methodology document uses this structure:
|
|
38
|
+
|
|
39
|
+
```markdown
|
|
40
|
+
# TLD currency-amount-pair detection methodology — <scope/window>
|
|
41
|
+
# TLD 币种金额对识别方法 — <范围/时段>
|
|
42
|
+
|
|
43
|
+
## Universe and cleaning # 分析总体与清洗
|
|
44
|
+
## Descriptor partition logic # Descriptor 分区逻辑
|
|
45
|
+
## Currency-amount-pair logic # 币种金额对逻辑
|
|
46
|
+
## Baseline and audit details # 基线与审计明细
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Chapter requirements
|
|
50
|
+
|
|
51
|
+
### TLD Risk Assessment / TLD 风险评估
|
|
52
|
+
|
|
53
|
+
Answer these three questions directly and in this order:
|
|
54
|
+
|
|
55
|
+
1. What is the highest investigation-priority risk tier found?
|
|
56
|
+
2. Which clusters are High, Medium, and Low risk; what characteristics support
|
|
57
|
+
each tier; and what share do they represent inside their descriptors?
|
|
58
|
+
3. What is the exact-member exposure by risk tier, descriptor, and across all
|
|
59
|
+
authorization attempts?
|
|
60
|
+
|
|
61
|
+
Risk tiers prioritize investigation and do not confirm TLD. List results in
|
|
62
|
+
`High → Medium → Low` order, then by evidence strength and attempts inside each
|
|
63
|
+
tier. The ≤3-sentence conclusion lives in Verdict, not here.
|
|
64
|
+
|
|
65
|
+
### Separate methodology / 独立方法文档
|
|
66
|
+
|
|
67
|
+
Document the logic and values actually used for this run, not generic skill
|
|
68
|
+
instructions. State the authorization grain and window; give the census from
|
|
69
|
+
[clean.md](clean.md), BIN-country and currency mix, and portfolio
|
|
70
|
+
constants.
|
|
71
|
+
|
|
72
|
+
Partition logic defines the normalized descriptor key, normalization rules,
|
|
73
|
+
the unknown bucket, descriptor counts, and shares. Currency-amount-pair
|
|
74
|
+
logic explains within-descriptor ranking, adjacent currency-specific
|
|
75
|
+
absolute residual caps, sensitivity evidence, the multi-anchor support floor,
|
|
76
|
+
exact final membership, and the ≥100-attempt threshold. BIN country is
|
|
77
|
+
post-formation attribution, not a partition or membership key.
|
|
78
|
+
|
|
79
|
+
The ranking table contains partition, currency, exact amount, attempts,
|
|
80
|
+
share of the descriptor, share of all authorization attempts, and selected
|
|
81
|
+
cluster id or `baseline`. Chart attempt bars within the most relevant
|
|
82
|
+
descriptors, sorted by count descending.
|
|
83
|
+
|
|
84
|
+
Audit details contain drop counts, currency caps, sensitivity results,
|
|
85
|
+
multi-anchor support floor, ≥100 cluster attempts, min-n for
|
|
86
|
+
cluster-versus-baseline rate ranking (not the definition anchor table),
|
|
87
|
+
descriptor-local high-count rule, baseline definitions, below-threshold
|
|
88
|
+
families, risk-tier rules, all run-specific materiality thresholds, and files
|
|
89
|
+
used. No skill name in the HTML footer; filenames only.
|
|
90
|
+
|
|
91
|
+
### High-risk clusters / 高风险 Cluster
|
|
92
|
+
|
|
93
|
+
Include High-risk clusters only. For each, show descriptor, representative
|
|
94
|
+
anchors, attempts, share of its descriptor, share of all authorization attempts,
|
|
95
|
+
risk basis, standout evidence, and the clearest independent corroborating
|
|
96
|
+
characteristic. Do not describe the tier as confirmation that TLD occurred.
|
|
97
|
+
|
|
98
|
+
### Risk exposure / 风险敞口
|
|
99
|
+
|
|
100
|
+
Exposure is the disjoint exact-member attempt count of all identified clusters,
|
|
101
|
+
separated into High, Medium, and Low risk. The by-tier-and-descriptor table
|
|
102
|
+
reports descriptor attempts, cluster attempts, share of descriptor, share of
|
|
103
|
+
all authorization attempts, risk tier, and cluster IDs. The overall view has
|
|
104
|
+
one row per risk tier plus `Baseline` / `基线`, and the rows conserve all
|
|
105
|
+
authorization attempts. Never combine the three tiers into a single “confirmed”
|
|
106
|
+
or “supported TLD” impact figure.
|
|
107
|
+
|
|
108
|
+
### Currency-amount-pair analysis / 全部识别出的币种金额对
|
|
109
|
+
|
|
110
|
+
One subsection per identified currency-amount pair. Definition contains only
|
|
111
|
+
Descriptor, seed, representative anchors, and cluster attempts. Express
|
|
112
|
+
anchors as `USD 11.7 → USD 23.39* → USD 46.78`. Follow that with an anchor
|
|
113
|
+
table whose columns are anchor, attempts, authorization success rate, and
|
|
114
|
+
suspected fraud as share of attempts. Always compute both rates for every
|
|
115
|
+
theoretical level from that level's exact member attempts, including levels
|
|
116
|
+
with fewer than the contrast min-n (default 30). Do not write `n/a` on this
|
|
117
|
+
table because the rung is small. For a level containing multiple nearby exact
|
|
118
|
+
values, display its highest-count amount with `*`; the table totals attempts
|
|
119
|
+
and rates across that level and explains `*`.
|
|
120
|
+
|
|
121
|
+
Show the risk tier and concise basis immediately below the cluster heading.
|
|
122
|
+
Characteristics contain Descriptor, descriptor total attempts, cluster
|
|
123
|
+
attempts, cluster share of descriptor, and MCC. Then compare Cluster with the
|
|
124
|
+
baseline formed by removing that cluster from the same descriptor. The
|
|
125
|
+
comparison contains authorization success rate, suspected fraud as a share of
|
|
126
|
+
attempts, Top 3 issuing banks, and Top 3 BIN countries.
|
|
127
|
+
|
|
128
|
+
For every Top 3 cluster BIN country, add a table with country, cluster attempts,
|
|
129
|
+
share of cluster, total attempts in the same descriptor-country slice, and
|
|
130
|
+
cluster coverage of that slice. Mark exact 100% single-country composition as a
|
|
131
|
+
standout. Treat `Mixed` as neutral. Do not assign a threshold or risk points to
|
|
132
|
+
country-slice coverage, and do not promote any composition below 100% merely
|
|
133
|
+
because it is high.
|
|
134
|
+
|
|
135
|
+
Follow the tables with transaction-date and transaction-time charts comparing
|
|
136
|
+
the cluster with the same-descriptor baseline. These are characteristics, not
|
|
137
|
+
cluster membership conditions.
|
|
138
|
+
|
|
139
|
+
When clustering finds no qualifying family, omit currency-amount-pair subsections,
|
|
140
|
+
publish the ranking and below-threshold candidates in the methodology
|
|
141
|
+
document, show zero identified-cluster exposure, and still write Verdict.
|
|
142
|
+
|
|
143
|
+
### Verdict / 结论
|
|
144
|
+
|
|
145
|
+
[decision.md](decision.md). **≤3 sentences** for the whole book, then an
|
|
146
|
+
optional one-row-per-cluster table (risk tier + short basis). No extra
|
|
147
|
+
bullets under this heading.
|
|
148
|
+
|
|
149
|
+
## Charts
|
|
150
|
+
|
|
151
|
+
Place each currency-amount pair's charts inside its analysis after the
|
|
152
|
+
characteristics tables.
|
|
153
|
+
|
|
154
|
+
| View | Mark |
|
|
155
|
+
|---|---|
|
|
156
|
+
| Representative-anchor attempts | Horizontal bar |
|
|
157
|
+
| Cluster vs same-descriptor baseline rates | Grouped bar |
|
|
158
|
+
| Transaction date trend, cluster vs same-descriptor baseline | Two-series line, each series normalized to its own attempt total |
|
|
159
|
+
| Transaction time by BIN-country local hour, cluster vs same-descriptor baseline | Two-series line, each series normalized to its own attempt total |
|
|
160
|
+
|
|
161
|
+
Label axes with the full metric (`授权笔数`, `比率 %`, `每日授权占比 %`,
|
|
162
|
+
`每小时授权占比 %`). State that transaction time uses the BIN country's local
|
|
163
|
+
hour and UTC when the BIN country has no configured timezone.
|
|
164
|
+
|
|
165
|
+
## What the report is not
|
|
166
|
+
|
|
167
|
+
Not a payment overview (`payment-analysis`). Not a holdout rule pack
|
|
168
|
+
(`fraud-analysis`). Not a recommendation to file a SAR or to terminate a
|
|
169
|
+
merchant.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Terminology
|
|
2
|
+
|
|
3
|
+
Use these terms in TLD reports. Read before writing. After writing, run
|
|
4
|
+
the proofread in `SKILL.md`.
|
|
5
|
+
|
|
6
|
+
TLD in this skill is **transaction laundering**. Spell it out on first
|
|
7
|
+
use. It is not a top-level domain.
|
|
8
|
+
|
|
9
|
+
## Canonical glossary
|
|
10
|
+
|
|
11
|
+
| English | Chinese | Do not write |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| TLD (transaction laundering) | 交易清洗 / TLD | 把 TLD 写成域名;洗钱结案 |
|
|
14
|
+
| potential TLD currency-amount pair | 潜在 TLD 币种金额对 | 已确认 TLD;TLD 商户 |
|
|
15
|
+
| cluster (report section) | 币种金额对 | 客户簇;客群;分群结果 |
|
|
16
|
+
| anchor detection | 锚点识别 | 客户聚类(对业务读者) |
|
|
17
|
+
| currency-amount-pair | 币种金额对 | 金额币种对;金额对;price point(作指标名时) |
|
|
18
|
+
| descriptor partition | descriptor 分区 | 客群;BIN 国家分区 |
|
|
19
|
+
| BIN-country attribution component | BIN 国家归因组件 | 客户国家;成员分区 |
|
|
20
|
+
| geometric anchor family | 币种金额对 | 阶梯(业务报告中);价格带;SKU |
|
|
21
|
+
| stuffing | 掺量 | 注水(可括注一次);corridor |
|
|
22
|
+
| MCC miscoding | MCC 错配 | 改 MCC;纠正 MCC |
|
|
23
|
+
| descriptor | descriptor / 账单描述 | 商户名(指 descriptor 时) |
|
|
24
|
+
| baseline | 基线 | 对照组(可括注);everything else |
|
|
25
|
+
| all authorization attempts | 全部授权尝试 | U(业务报告中);原始全量 |
|
|
26
|
+
| US-BIN | US BIN / 美国发卡 | 美国交易(指卡BIN时) |
|
|
27
|
+
| attempt | 授权尝试 | 交易(指授权行时) |
|
|
28
|
+
| approval | 授权成功 | 批准 |
|
|
29
|
+
| auth rate | 授权成功率 | 转化率 |
|
|
30
|
+
| suspected fraud | 疑似欺诈 | 已确认欺诈;正文里写 D102(表内代码可留) |
|
|
31
|
+
| BIN country / issuer country | 发卡行国家 / BIN 国家 | 客户国家;收货国;发卡国 |
|
|
32
|
+
| cluster composition by BIN country | BIN 国家占 Cluster | 客户国家占比 |
|
|
33
|
+
| descriptor-country slice coverage | Cluster 占 Descriptor 对应 BIN 国家 | BIN 国家风险率;国家命中率 |
|
|
34
|
+
| exact single-country standout | 100% 单一 BIN 国家 standout | 高国家占比;接近 100% |
|
|
35
|
+
| BIN-country local hour | BIN 国家当地小时 | 客户所在地时间;统一美国东部时间 |
|
|
36
|
+
| this analysis window | 当前分析时段内 | 本窗口 |
|
|
37
|
+
| MCC vs descriptor | MCC 与 descriptor 合理性 | 纠正 MCC;改 MCC |
|
|
38
|
+
| verdict | 结论 | 长文综述(作结论部分时) |
|
|
39
|
+
| High / Medium / Low risk | 高风险 / 中风险 / 低风险 | Supported;Weak;Ladder only;已确认 TLD |
|
|
40
|
+
| risk exposure | 风险敞口 | 已确认 TLD 影响;定罪金额 |
|
|
41
|
+
|
|
42
|
+
Keep proper nouns: Visa, MasterCard, BIN, IIN, MCC, MID, Worldpay,
|
|
43
|
+
Pazien, Order ID, descriptor. Tables may show response codes; prose uses
|
|
44
|
+
疑似欺诈 / suspected fraud.
|
|
45
|
+
|
|
46
|
+
## Axis and UI
|
|
47
|
+
|
|
48
|
+
- Amount axes name the **original** currency of that cluster
|
|
49
|
+
(`授权尝试金额 USD`, `授权尝试金额 EUR`). Do not mix currencies on one
|
|
50
|
+
axis.
|
|
51
|
+
- Date charts use each series' share of attempts by UTC transaction date.
|
|
52
|
+
- Time charts use each BIN country's local hour, falling back to UTC when no
|
|
53
|
+
timezone is configured. Normalize Cluster and Baseline independently.
|
|
54
|
+
- HTML footer: data-source filenames only. No skill name.
|
|
55
|
+
|
|
56
|
+
## Banned strings (grep after writing)
|
|
57
|
+
|
|
58
|
+
Chinese: `走廊`, `杠杆`, `转化率`, `赋能`, `抓手`, `闭环`, `打法`,
|
|
59
|
+
`本窗口`, `已确认 TLD`, `已确认交易清洗`, `洗钱`, `发卡国`, `客群运营`,
|
|
60
|
+
`客户簇`, `金额币种对`
|
|
61
|
+
|
|
62
|
+
English: `confirmed laundering`, `confirmed TLD`, `money laundering`,
|
|
63
|
+
`SAR`, `file a SAR`, `top-level domain`, `customer country`,
|
|
64
|
+
`conversion rate` (when meaning auth rate), `corridor`, `price band`
|
|
65
|
+
(as the cluster name)
|
|
66
|
+
|
|
67
|
+
`洗钱` is banned as a finding. If a source document uses the legal term,
|
|
68
|
+
quote it in supporting evidence and keep the report on potential TLD
|
|
69
|
+
currency-amount pairs.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Workflow detail
|
|
2
|
+
|
|
3
|
+
SKILL.md is the index. This file is the procedure those steps run.
|
|
4
|
+
|
|
5
|
+
## Input
|
|
6
|
+
|
|
7
|
+
Typical file: `Authorizations_*.csv`. Grain: **one authorization attempt**.
|
|
8
|
+
|
|
9
|
+
Amount, currency, and descriptor columns are required. BIN/issuer country,
|
|
10
|
+
issuing bank, MCC, and response are expected for characteristics; a missing
|
|
11
|
+
optional column is captioned. Missing descriptor values enter an explicit
|
|
12
|
+
partition bucket; missing BIN-country values enter a reporting bucket after
|
|
13
|
+
membership is frozen. Do not drop those rows.
|
|
14
|
+
|
|
15
|
+
Settlements and chargebacks are not the clustering universe. Do not join
|
|
16
|
+
them into `U`. If only settlements exist, stop and say the clustering
|
|
17
|
+
grain is auth attempts.
|
|
18
|
+
|
|
19
|
+
## Column aliases
|
|
20
|
+
|
|
21
|
+
Use the first present name. Record the alias actually used.
|
|
22
|
+
|
|
23
|
+
| Role | Common names |
|
|
24
|
+
|---|---|
|
|
25
|
+
| Time | `Timestamp`, `Auth timestamp`, `Transaction date` |
|
|
26
|
+
| Amount | `Amount`, `Transaction amount`, `Requested amount` |
|
|
27
|
+
| Currency | `Currency`, `Transaction currency`, `Auth currency` |
|
|
28
|
+
| BIN / issuer country | `BIN country`, `IIN country`, `Issuer country`, `Card country` |
|
|
29
|
+
| Issuing bank | `Issuing bank`, `Issuer`, `Issuer name`, `Bank name` |
|
|
30
|
+
| Descriptor | `Billing descriptor`, `Descriptor`, `Soft descriptor`, `Submerchant`, `DBA` |
|
|
31
|
+
| MCC | `MCC`, `Merchant category code` |
|
|
32
|
+
| Response | `Response code`, `Response message`, `Auth response` |
|
|
33
|
+
| Identity | `Order ID`, `Transaction ID`, `Auth ID` |
|
|
34
|
+
| Card | `IIN`, `BIN`, `Payment method`, `Card type`, masked `Account` |
|
|
35
|
+
|
|
36
|
+
Portfolio constants (MID, acquirer, entry method) are recorded once. They
|
|
37
|
+
are not partition or clustering keys.
|
|
38
|
+
|
|
39
|
+
## Window
|
|
40
|
+
|
|
41
|
+
Default: min→max of the time field on the **cleaned** universe. If the user
|
|
42
|
+
names a week or month, cut there and state it.
|
|
43
|
+
|
|
44
|
+
## Response classes
|
|
45
|
+
|
|
46
|
+
Recompute from the file. Pazien-style defaults when those codes exist:
|
|
47
|
+
|
|
48
|
+
| Class | Typical |
|
|
49
|
+
|---|---|
|
|
50
|
+
| Approval | A001 / message contains approval |
|
|
51
|
+
| Suspected fraud | D102 / message contains suspected fraud |
|
|
52
|
+
| Other decline | remaining non-approvals |
|
|
53
|
+
|
|
54
|
+
Suspected-fraud decline ≠ confirmed fraud loss. Do not treat D102 as a
|
|
55
|
+
positive label for `fraud-analysis`.
|
|
56
|
+
|
|
57
|
+
## What this skill is looking for
|
|
58
|
+
|
|
59
|
+
Transaction laundering in this book usually shows up as:
|
|
60
|
+
|
|
61
|
+
1. **MCC miscoding** — different kinds of goods mixed under one “normal” MCC
|
|
62
|
+
2. **Descriptor mixing** — several customer types share a billing name, or
|
|
63
|
+
one TLD customer is split across several descriptors
|
|
64
|
+
3. **Stuffing / 掺量** — a geometric amount ladder riding the same MCC as
|
|
65
|
+
legitimate traffic
|
|
66
|
+
|
|
67
|
+
Descriptor defines the initial partition, while BIN country and MCC do not.
|
|
68
|
+
Geometrically related currency-amount anchors inside each descriptor define
|
|
69
|
+
membership. BIN country and issuing bank are reported only after membership
|
|
70
|
+
is frozen.
|
|
71
|
+
|
|
72
|
+
## Order that must not move
|
|
73
|
+
|
|
74
|
+
Clean → descriptor partition → currency-amount pairs → same-descriptor baseline → decide → report.
|
|
75
|
+
|
|
76
|
+
Comparison features must not create a cluster that amount detection did not
|
|
77
|
+
find. Decision does not add evidence; it only writes the ≤3-sentence
|
|
78
|
+
conclusion.
|