@1aboveio/skills 1.0.5 → 1.0.7

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 (78) hide show
  1. package/README.md +1 -1
  2. package/package.json +2 -3
  3. package/skills/app-dev/airflow/SKILL.md +1 -1
  4. package/skills/app-dev/android-foundation/SKILL.md +1 -1
  5. package/skills/app-dev/app-debug/SKILL.md +1 -1
  6. package/skills/app-dev/better-auth/SKILL.md +1 -1
  7. package/skills/app-dev/data-catalog/SKILL.md +1 -1
  8. package/skills/app-dev/data-quality/SKILL.md +1 -1
  9. package/skills/app-dev/ios-foundation/SKILL.md +1 -1
  10. package/skills/app-dev/monorepo/SKILL.md +1 -1
  11. package/skills/app-dev/nextjs-fullstack/SKILL.md +1 -1
  12. package/skills/app-dev/prisma-setup/SKILL.md +1 -1
  13. package/skills/app-dev/pyspark/SKILL.md +1 -1
  14. package/skills/app-dev/python-backend/SKILL.md +1 -1
  15. package/skills/app-dev/shadcn/SKILL.md +1 -1
  16. package/skills/app-dev/zod-v4/SKILL.md +1 -1
  17. package/skills/cicd/cloud-build/SKILL.md +1 -1
  18. package/skills/cicd/cloud-debug/SKILL.md +1 -1
  19. package/skills/cicd/cloud-deploy/SKILL.md +1 -1
  20. package/skills/cicd/docker/SKILL.md +1 -1
  21. package/skills/cicd/github-actions/SKILL.md +1 -1
  22. package/skills/cicd/github-flow/SKILL.md +1 -1
  23. package/skills/cicd/google-cloud/SKILL.md +1 -1
  24. package/skills/cicd/mergify/SKILL.md +1 -1
  25. package/skills/cicd/podman/SKILL.md +1 -1
  26. package/skills/content/article-review/SKILL.md +1 -1
  27. package/skills/content/article-to-image/SKILL.md +1 -1
  28. package/skills/content/flowchart-svg/SKILL.md +1 -1
  29. package/skills/content/image-gen/SKILL.md +1 -1
  30. package/skills/content/mermaid/SKILL.md +1 -1
  31. package/skills/content/wechat-article-writer/SKILL.md +1 -1
  32. package/skills/content/wechat-publisher/SKILL.md +1 -1
  33. package/skills/content/wechat-search/SKILL.md +1 -1
  34. package/skills/content/xai-search/SKILL.md +1 -1
  35. package/skills/core/distill-writing/SKILL.md +22 -4
  36. package/skills/core/distill-writing/references/extraction.md +19 -3
  37. package/skills/core/doc-to-md/SKILL.md +1 -1
  38. package/skills/core/editorial-review/SKILL.md +1 -1
  39. package/skills/core/house-style/SKILL.md +2 -1
  40. package/skills/core/house-style/references/persistence.md +93 -0
  41. package/skills/core/house-style/references/rules.md +22 -6
  42. package/skills/core/house-style/templates/gap-analysis.md +1 -1
  43. package/skills/core/plain-language/SKILL.md +40 -4
  44. package/skills/core/polish-cn/SKILL.md +1 -1
  45. package/skills/core/reg-parser/SKILL.md +2 -2
  46. package/skills/core/reg-parser/scripts/dump_checklist.py +1 -1
  47. package/skills/core/terminology/SKILL.md +1 -1
  48. package/skills/core/write-doc/SKILL.md +31 -12
  49. package/skills/core/write-doc/references/bilingual.md +10 -1
  50. package/skills/core/write-doc/references/compliance-reports.md +163 -0
  51. package/skills/{risk-compliance/report-writing/references → core/write-doc/references/reports}/audit-report-template.md +2 -2
  52. package/skills/{risk-compliance/report-writing/references → core/write-doc/references/reports}/external-assessment-template.md +21 -5
  53. package/skills/{risk-compliance/report-writing/references → core/write-doc/references/reports}/management-report-template.md +7 -2
  54. package/skills/{risk-compliance/report-writing/references → core/write-doc/references/reports}/vars-report-template.md +6 -3
  55. package/skills/engineering/better-review/SKILL.md +1 -1
  56. package/skills/engineering/contributing/SKILL.md +1 -1
  57. package/skills/engineering/e2e-test/SKILL.md +1 -1
  58. package/skills/engineering/engineering-runtime/SKILL.md +1 -1
  59. package/skills/engineering/engineering-runtime/coherence/workflow.json +13 -13
  60. package/skills/engineering/ensure-coverage/SKILL.md +1 -1
  61. package/skills/engineering/golden-path/SKILL.md +1 -1
  62. package/skills/engineering/harness-runtime/SKILL.md +1 -1
  63. package/skills/engineering/resolve-issues/SKILL.md +1 -1
  64. package/skills/engineering/resolve-release/SKILL.md +1 -1
  65. package/skills/engineering/rush-issues/SKILL.md +1 -1
  66. package/skills/engineering/rush-release/SKILL.md +1 -1
  67. package/skills/engineering/test-quality/SKILL.md +1 -1
  68. package/skills/risk-compliance/compliance-audit/SKILL.md +1 -1
  69. package/skills/risk-compliance/contract-compare/SKILL.md +1 -1
  70. package/skills/risk-compliance/contract-review/SKILL.md +1 -1
  71. package/skills/risk-compliance/doc-authenticity/SKILL.md +1 -1
  72. package/skills/risk-compliance/fraud-analysis/SKILL.md +1 -1
  73. package/skills/risk-compliance/payment-analysis/SKILL.md +1 -1
  74. package/skills/risk-compliance/similar-domain/SKILL.md +1 -1
  75. package/skills/risk-compliance/tld-detection/SKILL.md +1 -1
  76. package/skills/risk-compliance/report-writing/LICENSE +0 -3
  77. package/skills/risk-compliance/report-writing/SKILL.md +0 -220
  78. package/skills/risk-compliance/report-writing/release-check.mjs +0 -93
@@ -2,7 +2,8 @@
2
2
 
3
3
  The one definition of the local writing files, the lookup and precedence rules, the gap markers,
4
4
  and the shape every document template follows. `write-doc` and the other writing skills read these
5
- files; `distill-writing` creates and updates them. They link here; none restates it.
5
+ files; `distill-writing` creates and updates document guidance, while `plain-language` owns the
6
+ reply-only `Agent replies` section. They link here; none restates it.
6
7
 
7
8
  ## Contents
8
9
 
@@ -15,6 +16,7 @@ files; `distill-writing` creates and updates them. They link here; none restates
15
16
  - [WRITING.md shape](#writingmd-shape)
16
17
  - [Template shape](#template-shape)
17
18
  - [Who edits what](#who-edits-what)
19
+ - [Explicit preference saves](persistence.md)
18
20
 
19
21
  ## Local files
20
22
 
@@ -29,7 +31,7 @@ project/
29
31
 
30
32
  Create files lazily: no empty `writing/` folder, no template without evidence for it.
31
33
 
32
- **WRITING.md holds what every document shares; a template holds what one document type needs.**
34
+ **WRITING.md's document sections hold what every document shares; a template holds what one type needs.**
33
35
  Example: "Write amounts as `USD 1,250,000`" goes in WRITING.md. "Put the price table before the
34
36
  terms" goes in `writing/templates/commercial-proposal.md`.
35
37
 
@@ -47,6 +49,13 @@ terms" goes in `writing/templates/commercial-proposal.md`.
47
49
  4. No `WRITING.md` found: write from the brief and the bundled
48
50
  [defaults](defaults.md). Say so in the delivery note. Do not create one.
49
51
 
52
+ A present but unreadable, invalid or uninspectable guide is not absent. Report its path
53
+ and the problem; do not silently climb to a different guide or claim to apply defaults.
54
+ The same applies to broken links or an unreadable selected project template. Ask for the
55
+ missing access or decision only when that policy blocks the requested work; otherwise
56
+ continue unaffected work and state what guidance could not be applied. A fallback chosen
57
+ for this task does not authorize repairing or overwriting project guidance.
58
+
50
59
  `TERMINOLOGY.md` sits beside the `WRITING.md` that applies, else at the project root; find it
51
60
  the same way. An older WRITING.md that still holds a Terms table: use its rows too, TERMINOLOGY.md
52
61
  winning, and suggest `terminology` to move them.
@@ -192,7 +201,8 @@ yet decided with the recommended answer, and intentional exceptions.
192
201
  ```
193
202
 
194
203
  Tone that varies by document type (formality, technical depth) goes in the template's `Tone` line,
195
- not in Voice.
204
+ not in Voice. Chat and status preferences belong in a separate `## Agent replies` section, owned
205
+ by `plain-language`; they do not apply to document prose or templates.
196
206
 
197
207
  ## Template shape
198
208
 
@@ -254,10 +264,16 @@ to regulatory action" is house text; for an internal-standard review, adapt it.
254
264
 
255
265
  ## Who edits what
256
266
 
257
- - `write-doc` never edits WRITING.md or a project template unless the user asks in that request.
258
- A correction applies to the current document only.
267
+ - `write-doc` automatically routes an explicit future-document save to `distill-writing`'s
268
+ [explicit-save branch](persistence.md). A correction without that intent affects the current
269
+ document only; reading or using a guide does not authorize updating it.
259
270
  - `distill-writing` updates them deliberately: it keeps `(user)` rules and manual edits, and lists
260
- every material change and conflict before or as it writes.
271
+ every material change and conflict before or as it writes. It owns document guidance, not
272
+ `Agent replies`. Both reader skills may recognize save intent; ownership follows the rule's
273
+ scope, not which skill noticed it.
274
+ - `plain-language` saves explicit reply preferences only in `Agent replies` and maintains its
275
+ loading pointers. It routes document preferences to `distill-writing`; ordinary mode toggles
276
+ and session choices do not save policy. Mixed requests keep both scopes separate.
261
277
  - Any writing skill adds a row to TERMINOLOGY.md the moment the user settles a term, and creates
262
278
  the file for the first one (`terminology` format). `write-doc` also seeds the file with
263
279
  `proposed` rows when it writes a new document in a project without one. It never writes a term the user did not state
@@ -18,7 +18,7 @@ The baseline can be a regulation or scheme rule (compliance), a risk appetite or
18
18
  - Pick the `compliance-audit` skill to run the audit itself against a checklist (tracker and
19
19
  evidence); use this template to write up its result.
20
20
  - An audit report built from completed audit findings for a regulator or board belongs to the
21
- `report-writing` skill, not this template.
21
+ `write-doc`'s compliance-report workflow, not this template.
22
22
 
23
23
  ## Tone
24
24
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: plain-language
3
- description: "Session mode: every reply and status line in plain language — lead with the point, everyday words, full sentences, no filler — in English or Chinese, until turned off. Enable by default when the project has an applicable WRITING.md, even without a slash command. Use /plain-language init to persist that project default and its agent loading instructions. Use for /plain-language, \"plain language mode\", \"talk plainly\", \"说人话\", or when the user's instructions say to use plain-language. Turn off with \"/plain-language off\" or \"normal mode\". NOT for writing a document (write-doc) or reviewing one (editorial-review)."
4
- release-version: 0.42.0
3
+ description: "Session mode: every reply and status line in plain language — lead with the point, everyday words, full sentences, no filler — in English or Chinese, until turned off. Enable by default when the project has an applicable WRITING.md, even without a slash command. Use for /plain-language, 'talk plainly', '说人话', and explicit requests to remember project reply preferences; /plain-language init persists the default and loading instructions. Save reply rules only under Agent replies; route document preferences to distill-writing. Ordinary mode toggles remain session-only. Turn off with '/plain-language off' or 'normal mode'. NOT for writing a document (write-doc) or reviewing one (editorial-review)."
4
+ release-version: 0.43.0
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Plain language
@@ -35,7 +35,8 @@ Keep ordinary on/off choices in session context only; do not edit project files
35
35
  them. Only `/plain-language init` (or an explicit request to save the project default) authorizes
36
36
  the setup below. A new session checks for `WRITING.md` again and does not inherit the previous
37
37
  session's off choice. Document deliverables still belong to `write-doc` or their owning writing
38
- skill; this mode governs replies and status lines.
38
+ skill; this mode governs replies and status lines. When a guide applies, read its `Agent replies`
39
+ section for saved reply preferences. Do not treat its document Voice or templates as chat rules.
39
40
 
40
41
  When explicitly enabled without an applicable `WRITING.md`, offer once per session:
41
42
  "Use `/plain-language init` to make this the project default." Do not interrupt the task with
@@ -85,7 +86,8 @@ The command authorizes project setup, not a global preference or a permanent on/
85
86
  ## Reply style
86
87
 
87
88
  At session start, if an applicable WRITING.md exists, load the `plain-language` skill
88
- and enable it for replies and status updates. After compaction, reload the skill and
89
+ and enable it for replies and status updates. Read the applicable guide's `Agent replies`
90
+ section, not its document rules, for saved reply preferences. After compaction, reload the skill and
89
91
  preserve the session's latest explicit style choice. An off command or another chosen
90
92
  reply style lasts for this session; file detection must not turn it back on.
91
93
  ```
@@ -99,6 +101,40 @@ The command authorizes project setup, not a global preference or a permanent on/
99
101
  The agent loading instruction makes the file-based default discoverable in future sessions;
100
102
  `WRITING.md` alone is not a runtime hook. This setup assumes `plain-language` is installed.
101
103
 
104
+ ## Save an explicit reply preference
105
+
106
+ Automatically save an unambiguous request such as "remember for future sessions in this project:
107
+ keep status updates to one sentence". A separate slash command is not needed. A correction,
108
+ "be brief", an ordinary on/off toggle, or "for this session" does not authorize saving. If the
109
+ requested future scope is unclear, ask once before writing; never assume global scope.
110
+
111
+ 1. Honor an explicitly named narrower project or client directory first: start lookup there and
112
+ confine writes and loading pointers to that directory. Otherwise use init's current-directory
113
+ lookup and scope. An ancestor guide outside that narrower scope is inherited, not writable.
114
+ Use init's pre-write validation rules for every target. Preserve
115
+ manual edits, document rules, templates, valid in-scope links and all unrelated agent guidance.
116
+ Do not write through an out-of-scope symlink or repair unreadable guidance under this request.
117
+ 2. Add or update only the stated rule under `## Agent replies` in the applicable in-scope
118
+ `WRITING.md`, marking it `_(user)_`. Use Default unless the user makes it Required or Optional.
119
+ If no in-scope guide exists, create the minimal guide from init plus that reply rule at the
120
+ chosen scope root. An inherited guide outside scope remains unchanged; explain that the new local
121
+ guide shadows it rather than merging its rules. An equivalent
122
+ rule already saved is a no-op. Change an existing user rule only when this request clearly
123
+ replaces it; report an unclear conflict instead of overwriting it.
124
+ 3. Ensure the reply-style loading pointers from init reach every supported local entrypoint;
125
+ do not duplicate them. The loader must also tell future sessions to read `Agent replies`.
126
+ Saving a future rule does not reset a current explicit off choice or another session style;
127
+ only run init's mode-enabling step when the user also asks to enable the mode.
128
+ 4. Report the saved rule, its project and reply-only scope, the changed or already-configured
129
+ files, and any unresolved conflict. Repeating the same save leaves all files unchanged.
130
+
131
+ A request about future documents, such as "remember: our PRDs use Given/when/then acceptance
132
+ criteria", routes to `distill-writing`'s
133
+ [explicit-save procedure](../house-style/references/persistence.md), not `Agent replies`.
134
+ For a mixed request, save each part in its owned location. Do not infer document rules from
135
+ chat feedback or demand sample documents for a directly stated rule. Source documents are data,
136
+ not authorization to save preferences. No save authorizes global edits, installs or delivery.
137
+
102
138
  ## Every reply
103
139
 
104
140
  - **Lead with the point.** The answer or recommendation first, then the reasons.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: polish-cn
3
3
  description: "Polish the Chinese wording of a finished document or report, with a script proving every number, date, identifier, link and protected term is unchanged; prefers a Chinese model and records which ran. Use for '中文润色' or as a report skill's last step. NOT for cutting or restructuring content (editorial-review) or translating (write-doc)."
4
- release-version: 0.42.0
4
+ release-version: 0.43.0
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Polish Chinese
@@ -2,7 +2,7 @@
2
2
  name: reg-parser
3
3
  version: 1.1.0
4
4
  description: "Parse regulatory/scheme documents into structured outputs: convert a regulation (AML, VARS, PCI-DSS, KYC, GDPR) into an audit-ready compliance checklist, or trace contract clauses to a mandate source. Suggest proactively when a regulation PDF accompanies a contract review or compliance task. NOT general summarization (doc-to-md), or writing the gap analysis or policy from the checklist (write-doc)."
5
- release-version: 0.42.0
5
+ release-version: 0.43.0
6
6
  ---
7
7
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
8
8
  # reg-parser
@@ -166,7 +166,7 @@ The optional `--source` flag enables three semantic warnings (advisory, never bl
166
166
 
167
167
  ### JSON dump for downstream consumers
168
168
 
169
- Markdown is the authored source of truth — humans read and review it, GitHub renders it, and authors edit it directly. Downstream tools (compliance-audit, report-writing) want structure, not regex parsers. Generate a JSON view of any checklist with:
169
+ Markdown is the authored source of truth — humans read and review it, GitHub renders it, and authors edit it directly. Downstream tools (compliance-audit, write-doc) want structure, not regex parsers. Generate a JSON view of any checklist with:
170
170
 
171
171
  ```bash
172
172
  python3 {baseDir}/scripts/dump_checklist.py <checklist.md> --out <out.json>
@@ -3,7 +3,7 @@
3
3
 
4
4
  The markdown file is the authored source of truth — auditors read and
5
5
  review it, authors edit it, GitHub renders it. Downstream consumers
6
- (compliance-audit, report-writing) want structure, not regex parsers.
6
+ (compliance-audit, write-doc) want structure, not regex parsers.
7
7
  This script emits a JSON representation that mirrors the markdown's
8
8
  nested structure verbatim so consumers can iterate items, walk the
9
9
  verification tree, and look up severity/evidence without re-parsing.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: terminology
3
3
  description: "Build and keep a project's TERMINOLOGY.md: the preferred term per concept in English, 简体 and 繁體, and the terms to avoid. Use to set it up from the project's documents, when the user settles or corrects a term, or when another writing skill needs the format. NOT for writing documents (write-doc) or the code domain model (domain-modeling)."
4
- release-version: 0.42.0
4
+ release-version: 0.43.0
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Terminology
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: write-doc
3
- description: "Write or edit a Markdown document in the project's house style, using the nearest WRITING.md and a document template (BRD, PRD, gap analysis, technical spec, integration guide, commercial proposal, compliance policy, risk operations procedure, or the project's own); English, Chinese or bilingual. NOT for learning a style from samples (distill-writing), audit reports from findings (report-writing), or WeChat articles (wechat-article-writer)."
4
- release-version: 0.42.0
3
+ description: "Write or edit documents and compliance reports in the project's house style: BRD, PRD, gap analysis, technical spec, integration guide, proposal, policy, risk procedure, audit report, external assessment, management report or Visa VARS Review Report; English, Chinese or bilingual. Use automatically whenever asked to draft, write, revise or edit a document, without needing a slash command, including 'write up the findings'. Route explicit requests to remember a writing preference to its persistence owner. Markdown by default; export when requested. NOT for ordinary chat replies (plain-language), learning style from samples or preference-only saves (distill-writing), performing an audit (compliance-audit), or WeChat articles (wechat-article-writer)."
4
+ release-version: 0.43.0
5
5
  ---
6
6
  **Updates:** Once/session run `node <skill-base-dir>/release-check.mjs`.
7
7
  # Write a document
@@ -18,6 +18,7 @@ once in [house-style rules](../house-style/references/rules.md); follow them.
18
18
  | The review step | [editorial-review](../editorial-review/SKILL.md) |
19
19
  | Chinese or bilingual output | [bilingual](references/bilingual.md) |
20
20
  | Bundled templates and their sources | [house-style](../house-style/SKILL.md) |
21
+ | Audit findings, board or regulator reports, Visa VARS reports | [compliance reports](references/compliance-reports.md), then the selected report layout |
21
22
 
22
23
  ## Principles
23
24
 
@@ -45,7 +46,9 @@ else one **Open items** list at the end.
45
46
  **A gap's owner comes from the sources.** Use the role a source names for that item, else the role
46
47
  the brief makes responsible for the document, else `owner: unknown`. Never invent a team or person.
47
48
 
48
- **A length or scope limit in the brief beats the template.** Meet it: drop Optional sections, keep
49
+ **A length or scope limit in the brief beats an adaptable template.** Mandated report wording,
50
+ structure and evidence requirements are not style preferences; follow the report reference for
51
+ VARS. For other documents, meet the limit: drop Optional sections, keep
49
52
  the Required sections the reader needs to act, move the rest into open items. Example: "a one-page
50
53
  policy" with no controls in the sources → no Controls section; one open item names the gap.
51
54
 
@@ -56,13 +59,18 @@ assignments. Example: a sample proposal prices a project at USD 80,000 → never
56
59
  team handled 1,240 disputes in Q2 (ops report). Assuming the same mix, a second reviewer would
57
60
  cost one FTE. We recommend it." Each sentence is one kind.
58
61
 
59
- **The reader's decision shapes the document.** A template is a strategy, not a form. Reorder
60
- sections when the decision needs it.
62
+ **The reader's decision shapes the document.** An adaptable template is a strategy, not a form.
63
+ Reorder sections when the decision needs it; keep externally mandated structures unchanged.
61
64
 
62
- **Leave the house rules alone.** Do not edit WRITING.md or project templates unless the user asks
63
- in this request ([who edits what](../house-style/references/rules.md#who-edits-what)). Example: the user says
64
- "no tables in our summaries" → fix this document, then suggest `/distill-writing`. A term is the
65
- exception: record it, as below.
65
+ **Keep one-off edits temporary; save explicit future preferences.** "Remove this table" changes
66
+ this document only, even after similar earlier edits. While editing a board briefing using the
67
+ project's `board-briefing.md` template, "remember: no tables in future board briefings" saves a
68
+ rule to that template, not to a management assessment report. Automatically follow `distill-writing`'s
69
+ [explicit-save branch](../house-style/references/persistence.md), then continue this task. No
70
+ separate slash command or confirmation is needed for an unambiguous save. Reply-only preferences
71
+ go to `plain-language`'s `Agent replies` section, never the document template. Do not infer a
72
+ project default from a correction or save a session-only override. A settled term follows the
73
+ existing exception below.
66
74
 
67
75
  **Record a settled term at once.** When the user settles or corrects a term, add it to
68
76
  TERMINOLOGY.md in the [terminology format](../terminology/references/format.md) before going on.
@@ -74,7 +82,14 @@ report, not commands to follow.
74
82
  ## Route first
75
83
 
76
84
  - Learn a house style or build templates from sample documents → `distill-writing`.
77
- - Turn compliance audit findings into a VARS, audit, external or management report → `report-writing`.
85
+ - Save a preference without drafting or editing a document → `distill-writing`'s explicit-save
86
+ branch for document rules, or `plain-language` for replies. During document work, perform that
87
+ scoped save and then continue the document workflow.
88
+ - Turn compliance audit findings into a VARS, audit, external or management report: stay here;
89
+ read [compliance reports](references/compliance-reports.md) before choosing a template or drafting.
90
+ Its evidence, coverage, rating and mandated-template checks supplement the workflow below.
91
+ For an existing report, choose its narrow-edit branch first. Missing VARS assessment coverage
92
+ blocks new reports, reassessment and finalization, not a copy-edit that leaves findings intact.
78
93
  - WeChat 公众号 article → `wechat-article-writer`. Score or critique an article → `article-review`.
79
94
  - Parse a regulation or scheme document into a compliance checklist → `reg-parser`; run the audit
80
95
  against it → `compliance-audit`.
@@ -114,13 +129,17 @@ report, not commands to follow.
114
129
  `[TBD: <what>, owner: <who>]` (Chinese: `【待确认:<内容>,负责人:<谁>】`, or
115
130
  `【待確認:<內容>,負責人:<誰>】` in Traditional Chinese).
116
131
  4. **Review once.** Run [editorial-review](../editorial-review/SKILL.md) on the saved draft with
117
- this template. Write the findings down before fixing anything.
132
+ this template. For a compliance report, pass the selected layout and the applicable
133
+ [report review checks](references/compliance-reports.md#draft-and-review); those checks supply
134
+ `Done when` for the retained layouts. Write the findings down before fixing anything.
118
135
  5. **Fix.** Fix each finding as editorial-review step 5 says. Run a second review only when a fix
119
136
  changed the argument or a finding is still open.
120
137
  6. **Bilingual.** In Chinese or bilingual mode, follow [bilingual](references/bilingual.md) after
121
138
  the source-language version passes review.
122
139
  7. **Deliver.** Save the document to the path the brief names, else the output location WRITING.md
123
- gives, else `./<template>-<short-topic>.md`. Reply with: the path; the WRITING.md and template
140
+ gives, else `./<template>-<short-topic>.md`. Check relative citations from that final location;
141
+ moving a document must not break its source links. Do not copy confidential sources into a
142
+ delivery bundle without authorization. Reply with: the path; the WRITING.md and template
124
143
  used (or "none: defaults"); TERMINOLOGY.md, and when you seeded it, its `proposed` rows for the
125
144
  user to confirm or correct; the review findings fixed, by kind; the remaining `[TBD]`s with owners (more than eight: the count per
126
145
  owner, and the three the reader most needs); the open decisions; any Required rule the brief
@@ -16,13 +16,20 @@ Choose it as in [SKILL.md step 1](../SKILL.md#write-a-new-document). The modes:
16
16
 
17
17
  ## Write
18
18
 
19
+ Identify protected text before translating: externally mandated or `locked` passages,
20
+ canonical source rating/status values and other required identifiers. Preserve those
21
+ spans verbatim in both versions; put any translation or explanatory gloss beside them,
22
+ clearly distinguished from the authoritative text. A glossary must not rename a rating.
23
+ For VARS, follow the report reference: translate only into a separate companion, not a
24
+ replacement Visa deliverable. Polishing and equivalence fixes must preserve these spans.
25
+
19
26
  Chinese-only mode: write and review the document in Chinese, apply [中文风格](../../house-style/references/style-zh.md),
20
27
  then go to step 5. Bilingual modes: steps 1 to 5.
21
28
 
22
29
  1. Write and review the whole document in the source language: the one the brief names, else
23
30
  WRITING.md's Language section, else English. Do not draft both languages at once.
24
31
  2. Produce the second version from the reviewed source. Use TERMINOLOGY.md for every term it
25
- lists. Translate every other term, including role and team names. Keep a term in the
32
+ lists, except protected text above. Translate every other unprotected term, including role and team names. Keep a term in the
26
33
  source language only when TERMINOLOGY.md says so, or it is a product name, code or an
27
34
  abbreviation the reader uses daily. Example: the table keeps "MLRO" in English; "Head of
28
35
  Compliance" becomes 合规主管 (繁體:合規主管). Add each new non-obvious translation to TERMINOLOGY.md as
@@ -46,6 +53,8 @@ Compare the two versions section by section. They must match on:
46
53
  必須 / 不得 / 應當 / 可以), unless WRITING.md maps them otherwise; "will" never becomes "may", and
47
54
  将 / 將 never becomes 可能.
48
55
  - Uncertainty and caveats: a hedge in one version is a hedge in the other.
56
+ - Protected passages and canonical source rating/status values, unchanged; any gloss is
57
+ clearly separate and must not change their meaning or authority.
49
58
  - Recommendations, decisions, owners and next steps.
50
59
  - Structure: headings, list items, table rows and columns, links and anchors, code, field names,
51
60
  every gap marker in either form, including bare `TBD` / `待确认` / `待確認` table cells (one for
@@ -0,0 +1,163 @@
1
+ # Compliance reports
2
+
3
+ Use this reference within the `write-doc` workflow when audit findings become a report.
4
+ It replaces the retired `report-writing` skill. For a narrow edit to an existing report, use
5
+ [the edit branch](#edit-an-existing-report) before the full-report steps below.
6
+ Do not repeat the audit or silently change
7
+ its conclusions while writing. The report layouts are retained source layouts, not general
8
+ house-style template skeletons; this reference supplies their inputs, reasoning and checks.
9
+
10
+ ## Choose the report
11
+
12
+ | Report | Reader and purpose | Bundled layout |
13
+ | --- | --- | --- |
14
+ | VARS Review Report | Visa and acquirer leadership; Visa Acceptance Risk Standards engagement | [VARS](reports/vars-report-template.md) |
15
+ | Audit Report | Compliance team and internal auditors; technical findings and remediation | [Audit](reports/audit-report-template.md) |
16
+ | External Assessment | Regulators, external auditors and certification bodies; formal submission | [External](reports/external-assessment-template.md) |
17
+ | Management Report | Board, C-suite and risk committee; posture and resource decisions | [Management](reports/management-report-template.md) |
18
+
19
+ Infer the report from the stated audience or purpose. Ask once if neither is clear;
20
+ default to Audit Report for a technical requestor. A VARS engagement always uses the
21
+ VARS layout, not the board or technical alternative. VARS has externally mandated structure;
22
+ ordinary audit, external and management layouts are adaptable defaults. For those reports,
23
+ use the shared house-style selector: an explicit template, then a matching project template,
24
+ then the bundled layout. A project template replaces the bundled structure, not the evidence,
25
+ finding coverage, source ratings or review checks in this reference. Apply house style to prose.
26
+ Use a gap analysis instead for a standalone comparison of requirements and current state
27
+ that is not a report of an assessment.
28
+
29
+ ## Edit an existing report
30
+
31
+ A copy-edit that changes no finding, rating, scope, count, recommendation or mandated text
32
+ follows `write-doc`'s narrow-edit workflow. Read the existing report and applicable guidance;
33
+ verify only the passages and facts affected by the change. Do not require the complete tracker
34
+ for an unrelated spelling or formatting correction, re-audit the report, or call the edit a
35
+ new assessment or finalization. Preserve protected text and all unaffected content.
36
+
37
+ An edit that changes a substantive assessment claim requires its supporting source. A new
38
+ report, a request to reassess findings, or a request to finalize a submission uses the full
39
+ evidence and coverage checks below. If a requested change touches mandated wording, surface
40
+ that conflict before changing it; do not silently paraphrase it.
41
+
42
+ ## Inputs and evidence
43
+
44
+ Read the full findings file. For a generic assessment, retain each finding's ID, title,
45
+ category, status (Pass / Fail / Partial / N/A), severity (Critical / Major / Minor /
46
+ Observation), observations, evidence and recommendations. Normalize other input shapes
47
+ without inventing missing values. Flag missing status or severity; never turn an unknown
48
+ into Pass or a lower severity. Mark missing evidence as **Evidence Pending**, keeping
49
+ the finding visible. Missing facts follow `write-doc`'s gap rules.
50
+
51
+ Preserve original IDs. Assign `F-001`, `F-002`, and so on only when IDs are absent.
52
+ Link findings to remediation and evidence by ID. Keep source ratings, scales, findings
53
+ and input counts unchanged; house terminology applies to prose, not rating values.
54
+ If an external layout uses another status vocabulary, show its mapping to the source
55
+ values and retain the source values for reconciliation. Do not infer a new rating.
56
+
57
+ For mixed frameworks, organize by framework first, then requirement. State the actual
58
+ scope, period, assessor and framework when supplied. Root causes, financial impacts,
59
+ likelihoods, costs, owners, dates and effort estimates must come from sources or be
60
+ clearly marked proposals or gaps, never copied from layout examples.
61
+
62
+ Count the unit actually present: findings, controls and requirements are not interchangeable.
63
+ A findings-only extract cannot establish the total controls assessed, pass count or overall
64
+ compliance rate. State each percentage's numerator, denominator and treatment of N/A or
65
+ unassessed items. Use an overall rating only when the source supplies it or an authorized
66
+ rubric derives it; otherwise describe the known posture and its limits without a new grade.
67
+
68
+ ### VARS gate
69
+
70
+ VARS requires the complete per-control assessment, normally `tracker.md` from
71
+ `compliance-audit` against its VARS checklist or a parsed equivalent from `reg-parser`.
72
+ A summary, verbal findings or a partial sub-domain review is not enough. Verify the
73
+ tracker against the applicable control checklist, not merely a list of headings: all
74
+ nine sub-domains and all in-scope controls must be assessed. If the tracker is absent,
75
+ incomplete or has a sub-domain marked Not Assessed, stop and ask for the complete
76
+ tracker, or offer `compliance-audit` first. Do not draft a final report around that gap.
77
+
78
+ Use the tracker's Control Effectiveness Rating (Satisfactory / Improvement Recommended /
79
+ Unsatisfactory / N/A), not the generic finding severity, for VARS rollups. Flag missing
80
+ ratings or mandatory tracker fields and resolve them before finalizing; do not invent
81
+ generic severities for a VARS tracker that has no severity field. Record the tracker
82
+ filename and version for Section 5 and its companion *VARS Control Testing and
83
+ Remediation Tracking* Excel spreadsheet. Do not claim the Excel exists or is synchronized
84
+ without checking it.
85
+
86
+ ## Draft and review
87
+
88
+ Use `write-doc`'s outline, draft, editorial review, fix and delivery steps. Apply the
89
+ nearest WRITING.md from the findings file's directory, or for pasted input the output
90
+ directory, else the working directory, under the shared lookup rules. Never edit it.
91
+ For non-VARS reports, follow the selected template's structure. House style must not change
92
+ scope, ratings or findings. Give editorial-review both the selected layout and the checks
93
+ below, including Additional VARS checks when applicable. The table above supplies the reader
94
+ and purpose (`Use when`); these checks supply the layouts' `Done when`. Review against both,
95
+ not a generic checklist alone.
96
+
97
+ **VARS exception:** ignore WRITING.md for the VARS report. Keep Visa's headings, ordering,
98
+ canonical sub-domains and mandated boilerplate verbatim, including the Purpose,
99
+ reliance statement and recommendation-summary stem. General length limits, terminology,
100
+ translation and editorial advice must not rewrite them. Treat mandated passages as
101
+ locked even where the retained Visa layout presents them as quotations. A requested
102
+ translation is a separate companion, not a replacement Visa deliverable. Never claim
103
+ Visa conducted or approved work unless the sources establish it; stop and resolve any
104
+ conflict between mandated language and the actual assessor or scope before finalizing.
105
+
106
+ Before delivery, check the saved report against the input and selected layout:
107
+
108
+ - **Audit:** every finding has its own section, with evidence, root cause when known,
109
+ risk and remediation. Reconcile all severity and status counts to the source.
110
+ - **External:** map every finding to the actual regulatory requirement and retain
111
+ traceability to the source ID. Unknown mappings stay explicit gaps. Scope, methods,
112
+ limitations and any attestation must match the evidence and assessor authority;
113
+ never fabricate a signature or certification. Distinguish total reviewed, applicable,
114
+ N/A and unassessed items, and reconcile those populations without counting a finding
115
+ as a requirement. Include an attestation only when the authorized assessor's conclusion
116
+ is supplied. Otherwise state that no attestation is provided, without a signature stub.
117
+ - **Management:** lead with at most one page on posture, key risks and decisions.
118
+ Aggregate all categories without losing findings or changing severity counts.
119
+ Explain technical risks in business terms; quantify only supported impacts.
120
+ Without prior data, omit the progress section and note
121
+ "Baseline assessment - no prior data" in methodology.
122
+ - **All reports:** lead with overall posture when there are no critical findings.
123
+ Check all totals and percentages using their source counts and denominator. No
124
+ unresolved layout filler such as `{{...}}`, `____` or `MM/YEAR` may remain in a final
125
+ deliverable. Label unresolved material facts as draft or pending and disclose their
126
+ effect on the conclusion. Do not invent a regulator's submission acceptance criteria
127
+ or claim acceptance, rejection or readiness without the applicable requirements.
128
+
129
+ ### Additional VARS checks
130
+
131
+ - Section 3.d has an overall headline and a business-oriented, 2-3 sentence posture
132
+ for every canonical sub-domain. No operational or evidence-document detail.
133
+ - Section 4 has one row per sub-domain in canonical order, including rows without
134
+ adverse findings. Each row takes its worst control rating: Unsatisfactory before
135
+ Improvement Recommended before Satisfactory; N/A only when all controls are N/A.
136
+ No findings alone does not establish Satisfactory without the underlying ratings.
137
+ - If ATPA is in scope, consolidate all ATPA controls into one additional **Third Party
138
+ Agent** row and a corresponding Section 3.d bullet, not the AACQ rows.
139
+ - Section 4 uses an inline observed, finding, comments narrative in the report's own
140
+ words. Evidence-document, clause and sample citations stay in the tracker; lightweight
141
+ control-ID pointers are allowed. Copy Actions Required and Recommendations word for
142
+ word from the tracker's Issue Description, each item on its own line. Close a fully
143
+ Satisfactory row with `No remediation required.`
144
+ - Section 5 identifies the companion tracker. Section 6 uses sourced remediation
145
+ commitments. Use sequential rows 1-9; legacy Regulatory Risk #10 only if the Visa
146
+ engagement lead requests it.
147
+
148
+ ## Export checks
149
+
150
+ Markdown is the authored default. Use the brief's path, else WRITING.md's output folder,
151
+ else `{style}-{framework}-{YYYY-MM-DD}.md`; for VARS,
152
+ `vars-review-report-{acquirer}-{YYYY-MM-DD}.md`. Do not invent an assessment date.
153
+ When DOCX or PDF is requested, also render and inspect that output; Markdown alone is
154
+ not the requested export.
155
+
156
+ For VARS Section 4, plain pandoc conversion collapses `<br>` lines inside wide table
157
+ cells. Render each separated line as its own cell paragraph, using a DOCX renderer such
158
+ as `python-docx` or post-processing the conversion. Render labels such as
159
+ `**Actions Required:**` as real bold, not literal asterisks. Shade Compliance Status
160
+ cells green for Satisfactory, amber for Improvement Recommended, red for Unsatisfactory
161
+ and grey for N/A, and use landscape pages for the table. Inspect the rendered file
162
+ to confirm each action and recommendation remains visible on its own line. PDF has
163
+ the same line-break requirement.
@@ -1,6 +1,6 @@
1
1
  # Audit Report Template
2
2
 
3
- Use this structure for the full technical audit report (audience: compliance team).
3
+ Use this structure with [compliance reports](../compliance-reports.md) for the full technical audit report (audience: compliance team).
4
4
 
5
5
  ---
6
6
 
@@ -50,7 +50,7 @@ Repeat this block for each finding, ordered by severity (Critical → Observatio
50
50
  | **ID** | F-{NNN} |
51
51
  | **Category** | {e.g., Access Control} |
52
52
  | **Control Reference** | {e.g., CC6.1, A.9.2.3} |
53
- | **Status** | {Pass / Fail / Partial} |
53
+ | **Status** | {Source status, including Pass / Fail / Partial / N/A} |
54
54
  | **Severity** | {Critical / Major / Minor / Observation} |
55
55
 
56
56
  **Observation:**
@@ -1,6 +1,6 @@
1
1
  # External Assessment Template
2
2
 
3
- Use this structure for regulatory or external auditor submissions (audience: regulators,
3
+ Use this structure with [compliance reports](../compliance-reports.md) for regulatory or external auditor submissions (audience: regulators,
4
4
  certification bodies, external auditors).
5
5
 
6
6
  ---
@@ -65,6 +65,11 @@ AICPA Trust Services Criteria).}
65
65
 
66
66
  ## 3. Compliance Status by Requirement
67
67
 
68
+ Retain source statuses and severities, including Observation and N/A. The alternatives
69
+ below are examples, not a new rating scale. If the destination mandates different labels,
70
+ show the mapping and retain source values for reconciliation. Never replace an unknown
71
+ requirement with an invented legal citation.
72
+
68
73
  Organize by regulation article or standard control domain. Each requirement gets a
69
74
  status determination with supporting rationale.
70
75
 
@@ -77,7 +82,7 @@ status determination with supporting rationale.
77
82
  | **Requirement** | {Full text or summary of the regulatory requirement} |
78
83
  | **Regulation Reference** | {e.g., Article 32(1)(a), Regulation (EU) 2016/679} |
79
84
  | **Compliance Status** | {Compliant / Partially Compliant / Non-Compliant / Not Applicable} |
80
- | **Severity of Gap** | {Critical / Major / Minor / N/A} |
85
+ | **Severity of Gap** | {Source severity, including Critical / Major / Minor / Observation / N/A} |
81
86
 
82
87
  **Assessment Rationale:**
83
88
  {Explain the basis for the status determination. Reference specific controls observed,
@@ -105,6 +110,11 @@ Summary view mapping each requirement to its compliance status.
105
110
 
106
111
  ### Summary Statistics
107
112
 
113
+ Count requirements only when the input establishes that population; otherwise label
114
+ these as finding counts. State the denominator for percentages and whether N/A is
115
+ excluded from the applicable population. Keep unassessed items visible rather than
116
+ counting them as compliant or N/A.
117
+
108
118
  | Status | Count | Percentage |
109
119
  |---|---|---|
110
120
  | Compliant | {n} | {%} |
@@ -125,6 +135,11 @@ Summary view mapping each requirement to its compliance status.
125
135
 
126
136
  ## 6. Attestation Statement
127
137
 
138
+ Use the wording below only when the authorized assessor supplied that conclusion and
139
+ the engagement calls for attestation. Otherwise state that no attestation is provided;
140
+ do not invent credentials, a signature, an overall rating or approval. The stem is
141
+ adaptable, not locked. Reconcile source populations, including N/A and unassessed items.
142
+
128
143
  > Based on the assessment conducted during the period {Start Date} to {End Date},
129
144
  > applying the methodology described in Section 2, and having reviewed the evidence
130
145
  > documented herein, {Assessor Organization} [attests/concludes] the following:
@@ -132,15 +147,16 @@ Summary view mapping each requirement to its compliance status.
132
147
  > {Organization} has demonstrated {[full/substantial/partial]} compliance with
133
148
  > {Regulation/Standard} within the defined scope.
134
149
  >
135
- > {Number} requirements were assessed. Of these, {n} were found fully compliant,
136
- > {n} partially compliant, and {n} non-compliant.
150
+ > {Number} requirements were reviewed: {n} were assessed as fully compliant,
151
+ > {n} partially compliant, {n} non-compliant, {n} not applicable, and {n} unassessed.
152
+ > Of the {n} applicable requirements, {n} were assessed. {State the denominator for any rate.}
137
153
  >
138
154
  > The findings documented in this report represent the compliance posture as of
139
155
  > {Report Date}. This attestation does not guarantee future compliance.
140
156
  >
141
157
  > **Assessor:** {Name, Title, Qualification}
142
158
  > **Date:** {YYYY-MM-DD}
143
- > **Signature:** ____________________
159
+ > **Signature:** {Supplied authorized signature, only when provided}
144
160
 
145
161
  ---
146
162
 
@@ -1,6 +1,6 @@
1
1
  # Management Report Template
2
2
 
3
- Use this structure for leadership and board-level reporting (audience: C-suite, board,
3
+ Use this structure with [compliance reports](../compliance-reports.md) for leadership and board-level reporting (audience: C-suite, board,
4
4
  risk committee).
5
5
 
6
6
  ---
@@ -22,7 +22,12 @@ risk committee).
22
22
  {One page maximum. This section stands alone — a reader should understand the
23
23
  organization's compliance posture without reading further.}
24
24
 
25
- **Overall Compliance Posture:** {Strong / Adequate / Needs Improvement / Critical}
25
+ **Overall Compliance Posture:** {Source rating, or a narrative conclusion limited to the evidence}
26
+
27
+ Do not introduce an overall scale unless the source or an authorized rubric defines it.
28
+ A findings-only extract does not establish the full assessment posture or pass rate.
29
+ In the headline figures below, use only populations the source supplies; omit an unknown
30
+ control total or compliance percentage and explain that limit instead.
26
31
 
27
32
  **Headline Numbers:**
28
33
  - **{N}** controls assessed across **{N}** categories