arcane-cli 0.27.0 โ 0.28.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 +2 -2
- package/dist/assets/.arcane/governance/compliance-standards.md +238 -0
- package/dist/assets/.arcane/governance/universal-agent-rules.md +10 -0
- package/dist/assets/.claude/commands/spell-compliance.md +13 -0
- package/dist/assets/.github/prompts/spell-compliance.prompt.md +129 -0
- package/dist/index.js +10 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -120,14 +120,14 @@ Arcane isn't a prompt snippet โ it's a full framework. Everything installs int
|
|
|
120
120
|
|
|
121
121
|
<!-- arcane:start -->
|
|
122
122
|
<details>
|
|
123
|
-
<summary><b>๐ The full spell catalogue (
|
|
123
|
+
<summary><b>๐ The full spell catalogue (40)</b></summary>
|
|
124
124
|
|
|
125
125
|
**Session** โ `open-session` ยท `close-session` ยท `commit-work` ยท `status` ยท `arcane-version`
|
|
126
126
|
**Capture** โ `save-idea` ยท `todo` ยท `feedback` ยท `suggest-feature` ยท `document` ยท `brainstorm` ยท `explain-concept`
|
|
127
127
|
**Delivery** โ `create-pull-request` ยท `sync-pull-request` ยท `address-review`
|
|
128
128
|
**Review** โ `review` ยท `review-batch`
|
|
129
129
|
**Planning** โ `plan` ยท `architect` ยท `scope` ยท `product-review`
|
|
130
|
-
**Build** โ `implement` ยท `test` ยท `full-cycle` ยท `bug` ยท `bump` ยท `dotnet-expert` ยท `security-review` ยท `ship` ยท `enchant` ยท `generate-bot-icons` ยท `make-discoverable` ยท `scry` ยท `eas-store-deploy`
|
|
130
|
+
**Build** โ `implement` ยท `test` ยท `full-cycle` ยท `bug` ยท `bump` ยท `dotnet-expert` ยท `security-review` ยท `ship` ยท `enchant` ยท `generate-bot-icons` ยท `make-discoverable` ยท `scry` ยท `eas-store-deploy` ยท `compliance`
|
|
131
131
|
**Docs** โ `adopt-docs`
|
|
132
132
|
**Venture** โ `summon-venture` ยท `manifest`
|
|
133
133
|
**Meta** โ `present-arcane` ยท `check-drift`
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Compliance Standards
|
|
3
|
+
audience: both
|
|
4
|
+
last_updated: YYYY-MM-DD
|
|
5
|
+
status: active
|
|
6
|
+
distributable: true
|
|
7
|
+
tags: [compliance, privacy, gdpr, ccpa, soc2, hipaa]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Compliance Standards
|
|
11
|
+
|
|
12
|
+
A starting reference for the regulatory and privacy obligations a typical SaaS product runs into โ
|
|
13
|
+
GDPR, CCPA, SOC 2, and HIPAA โ mapped to the concrete artifacts a product actually needs (data
|
|
14
|
+
inventory, consent, retention/deletion, breach notification, access controls, audit logs), plus a
|
|
15
|
+
tiered guide for which frameworks plausibly apply at which stage.
|
|
16
|
+
|
|
17
|
+
**This is not legal advice.** It is a governance reference and a self-assessment starting point,
|
|
18
|
+
written at the level of established, uncontroversial obligations โ not a substitute for a qualified
|
|
19
|
+
lawyer's analysis of a specific business's specific facts. Applicability determinations, especially
|
|
20
|
+
close calls, should be confirmed with counsel before being treated as settled.
|
|
21
|
+
|
|
22
|
+
## Executive Summary
|
|
23
|
+
|
|
24
|
+
- GDPR and CCPA both apply based on **whose data you handle and how**, not where your business is
|
|
25
|
+
incorporated โ a US-only company with EU visitors or California residents can still be in scope.
|
|
26
|
+
- Both frameworks converge on the same underlying artifacts regardless of which one applies: know what
|
|
27
|
+
personal data you hold and why (a data inventory), get real consent before non-essential processing,
|
|
28
|
+
define and enforce retention/deletion periods, and be able to act on a user's rights request within a
|
|
29
|
+
bounded time.
|
|
30
|
+
- SOC 2 is an operational-controls attestation, not a privacy law โ it becomes relevant when a customer
|
|
31
|
+
(typically enterprise) requires it contractually, not from a regulatory trigger.
|
|
32
|
+
- HIPAA has a narrow trigger: it applies to covered entities and their business associates handling
|
|
33
|
+
protected health information specifically. Most consumer SaaS products never trigger it.
|
|
34
|
+
- Treat this doc as a checklist of what to go verify, not as verification itself โ every rule below
|
|
35
|
+
names the artifact or evidence that would actually demonstrate compliance, not just the obligation in
|
|
36
|
+
the abstract.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Rule index
|
|
41
|
+
|
|
42
|
+
| ID | Rule (one line) |
|
|
43
|
+
|----|------|
|
|
44
|
+
| CS-01 | GDPR applies based on whose data is processed (EU residents) and what the processing does (offering goods/services, or monitoring behavior), regardless of where the business is based. |
|
|
45
|
+
| CS-02 | GDPR requires a documented lawful basis for every category of processing, and grants data subjects enforceable rights (access, rectification, erasure, portability, objection) with a response-time bound. |
|
|
46
|
+
| CS-03 | GDPR requires notifying the relevant supervisory authority of a qualifying personal-data breach within 72 hours of becoming aware of it. |
|
|
47
|
+
| CS-04 | CCPA/CPRA applies based on revenue/data-volume thresholds and California residency, and grants consumers rights to know, delete, correct, and opt out of sale/sharing of their personal information. |
|
|
48
|
+
| CS-05 | A CCPA-covered business must provide a clear opt-out mechanism for the sale/sharing of personal information, not just a general privacy policy. |
|
|
49
|
+
| CS-06 | Consent, where required by either framework, must be specific, informed, freely given, and distinguishable from other terms โ pre-ticked boxes and bundled consent do not qualify. |
|
|
50
|
+
| CS-07 | A data inventory (what personal data exists, where, and why) is the prerequisite artifact every other obligation in this doc depends on โ rights requests and retention policy are both unenforceable without it. |
|
|
51
|
+
| CS-08 | Data minimization requires a defined retention period per data category and actual deletion at the end of it โ not merely marking a record inactive. |
|
|
52
|
+
| CS-09 | SOC 2 is a controls attestation against the Trust Services Criteria, not a privacy law โ Security is mandatory, the other four criteria are opted into based on what a customer's contract or questionnaire actually requires; Type I attests to a point in time, Type II to operating effectiveness over a period. |
|
|
53
|
+
| CS-10 | SOC 2's Security criterion expects least-privilege access control, periodic access reviews, and audit logging of access to systems holding customer data. |
|
|
54
|
+
| CS-11 | HIPAA applies narrowly, to covered entities and their business associates handling protected health information โ most consumer SaaS products never trigger it. |
|
|
55
|
+
| CS-12 | Which frameworks plausibly apply changes by product stage: a privacy policy and lawful-basis/consent groundwork are day-one MVP concerns if any EU or California user could sign up; a working data-subject-request process is a public-launch concern; SOC 2 readiness typically becomes an enterprise-sales-stage concern, not an earlier one. |
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## GDPR
|
|
60
|
+
|
|
61
|
+
### CS-01: Applicability is about whose data and what processing, not where the business sits
|
|
62
|
+
|
|
63
|
+
The GDPR applies to any organization processing the personal data of individuals in the EU, when that
|
|
64
|
+
processing relates to offering goods or services to those individuals (paid or free) or to monitoring
|
|
65
|
+
their behavior โ regardless of whether the organization itself has any EU presence. A US-only company
|
|
66
|
+
with EU visitors signing up for a free product is a plausible trigger; a company with zero EU users is
|
|
67
|
+
not, but "zero" needs to be an actual verified fact about the user base, not an assumption based on
|
|
68
|
+
where the company is headquartered.
|
|
69
|
+
|
|
70
|
+
**Rule (CS-01):** Determine GDPR applicability from the actual or intended user base's location and
|
|
71
|
+
what the processing does, never from the business's own location alone.
|
|
72
|
+
|
|
73
|
+
### CS-02: A lawful basis and enforceable data-subject rights
|
|
74
|
+
|
|
75
|
+
Every category of personal-data processing needs a documented lawful basis (consent, contract necessity,
|
|
76
|
+
legal obligation, legitimate interest, among others) โ "we're processing it" is not itself a basis. Data
|
|
77
|
+
subjects additionally hold enforceable rights: access to their data, rectification of inaccuracies,
|
|
78
|
+
erasure ("right to be forgotten"), portability to another provider, and objection to certain processing.
|
|
79
|
+
Requests exercising these rights carry a response deadline (commonly one month, extendable in limited
|
|
80
|
+
cases) โ a rights-request process that has no defined owner or turnaround time is itself a gap, even
|
|
81
|
+
before any request arrives.
|
|
82
|
+
|
|
83
|
+
**Rule (CS-02):** Document a lawful basis per processing category, and maintain a working process โ with
|
|
84
|
+
a defined owner and turnaround time โ for handling data-subject rights requests.
|
|
85
|
+
|
|
86
|
+
### CS-03: 72-hour breach notification
|
|
87
|
+
|
|
88
|
+
A personal-data breach that risks the rights and freedoms of data subjects must be reported to the
|
|
89
|
+
relevant supervisory authority within 72 hours of the organization becoming aware of it. This clock
|
|
90
|
+
starts at awareness, not at confirmation of scope โ an incident-response process that only begins
|
|
91
|
+
drafting a notification after a full investigation completes risks missing the window entirely.
|
|
92
|
+
|
|
93
|
+
**Rule (CS-03):** Have a breach-notification process that can produce an initial report to the
|
|
94
|
+
supervisory authority within 72 hours of awareness, even before the full scope of an incident is known.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## CCPA / CPRA
|
|
99
|
+
|
|
100
|
+
### CS-04: Threshold-based applicability and consumer rights
|
|
101
|
+
|
|
102
|
+
CCPA (as amended by CPRA) applies to for-profit businesses collecting California residents' personal
|
|
103
|
+
information that meet at least one threshold โ commonly framed around annual revenue, the volume of
|
|
104
|
+
consumers'/households' data processed, or revenue from selling/sharing personal information (exact
|
|
105
|
+
thresholds are set in statute and updated periodically; verify current figures rather than treating any
|
|
106
|
+
number here as current). Covered businesses must honor consumer rights to know what's collected, delete
|
|
107
|
+
it, correct inaccuracies, and opt out of the sale or sharing of their personal information, plus limit
|
|
108
|
+
use of sensitive personal information on request.
|
|
109
|
+
|
|
110
|
+
**Rule (CS-04):** Verify CCPA's current statutory thresholds against the business's actual revenue and
|
|
111
|
+
data volume, rather than assuming applicability (or non-applicability) from the business's category
|
|
112
|
+
alone.
|
|
113
|
+
|
|
114
|
+
### CS-05: A real opt-out mechanism, not just a policy statement
|
|
115
|
+
|
|
116
|
+
A covered business must provide a clear, functioning mechanism for a consumer to opt out of the sale or
|
|
117
|
+
sharing of their personal information โ commonly a "Do Not Sell or Share My Personal Information" link
|
|
118
|
+
or an equivalent global-privacy-control-honoring mechanism. Stating an opt-out right exists in a privacy
|
|
119
|
+
policy's prose, without a working mechanism a consumer can actually use, does not satisfy the
|
|
120
|
+
requirement.
|
|
121
|
+
|
|
122
|
+
**Rule (CS-05):** Verify the opt-out mechanism itself functions end-to-end โ a link that exists in the
|
|
123
|
+
footer but doesn't actually stop the described sharing is not compliant, regardless of what the privacy
|
|
124
|
+
policy says.
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Shared obligations (both frameworks)
|
|
129
|
+
|
|
130
|
+
### CS-06: Consent must be real, not assumed
|
|
131
|
+
|
|
132
|
+
Where either framework requires consent, it must be specific to the processing purpose, informed (the
|
|
133
|
+
person understands what they're agreeing to), freely given (not a condition of using an unrelated
|
|
134
|
+
feature), and distinguishable from other terms โ not buried in a general terms-of-service acceptance.
|
|
135
|
+
Pre-ticked checkboxes, and consent bundled with acceptance of unrelated terms, do not qualify as valid
|
|
136
|
+
consent under either framework.
|
|
137
|
+
|
|
138
|
+
**Rule (CS-06):** Any consent mechanism must be opt-in (not pre-ticked), specific to its actual purpose,
|
|
139
|
+
and separable from acceptance of unrelated terms.
|
|
140
|
+
|
|
141
|
+
### CS-07: A data inventory is the load-bearing prerequisite
|
|
142
|
+
|
|
143
|
+
Honoring an access, deletion, or portability request requires first knowing what personal data exists,
|
|
144
|
+
where it lives, and why it was collected. Without a maintained data inventory (sometimes called a
|
|
145
|
+
Records of Processing Activities under GDPR Article 30), every downstream rights-request and retention
|
|
146
|
+
obligation is unenforceable in practice, even if a policy document claims it's honored โ there is no way
|
|
147
|
+
to actually locate everything that would need to be produced, corrected, or deleted.
|
|
148
|
+
|
|
149
|
+
**Rule (CS-07):** Maintain a data inventory naming what personal data is collected, where it's stored,
|
|
150
|
+
and why, before treating any rights-request or retention process as operational.
|
|
151
|
+
|
|
152
|
+
### CS-08: Retention periods must be defined and actually enforced
|
|
153
|
+
|
|
154
|
+
Data minimization requires defining how long each category of personal data is kept and why, then
|
|
155
|
+
actually deleting it at the end of that period โ not simply flagging a record as inactive or archived
|
|
156
|
+
while the underlying data persists indefinitely. An undefined retention period is itself a gap, distinct
|
|
157
|
+
from and prior to the question of whether deletion is correctly implemented.
|
|
158
|
+
|
|
159
|
+
**Rule (CS-08):** Define a retention period per data category, and verify deletion is real (data is
|
|
160
|
+
actually removed, not merely deactivated) at the end of that period.
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## SOC 2
|
|
165
|
+
|
|
166
|
+
### CS-09: A controls attestation, not a privacy law โ and Type I vs. Type II matters
|
|
167
|
+
|
|
168
|
+
SOC 2 is an attestation against the AICPA's Trust Services Criteria, produced by an independent auditor
|
|
169
|
+
โ it has no regulatory trigger of its own and becomes relevant when a customer's contract or security
|
|
170
|
+
questionnaire requires it, typically at the enterprise sales stage. The Security criterion is mandatory
|
|
171
|
+
for any SOC 2 report; Availability, Processing Integrity, Confidentiality, and Privacy are each opted
|
|
172
|
+
into based on what's actually being attested to. A **Type I** report attests that controls were
|
|
173
|
+
suitably designed at a single point in time; a **Type II** report attests that those controls actually
|
|
174
|
+
operated effectively over an observation period (commonly 3-12 months) โ a Type I report does not
|
|
175
|
+
substitute for a Type II when a customer's requirement specifically calls for one.
|
|
176
|
+
|
|
177
|
+
**Rule (CS-09):** Confirm which Trust Services Criteria and which report type (I vs. II) a customer's
|
|
178
|
+
actual requirement calls for before scoping a SOC 2 engagement โ do not assume Security-only Type I
|
|
179
|
+
satisfies a requirement that wasn't explicitly checked against what was asked for.
|
|
180
|
+
|
|
181
|
+
### CS-10: Access control and audit logging are the operational backbone
|
|
182
|
+
|
|
183
|
+
SOC 2's Security criterion expects least-privilege access to systems holding customer data, periodic
|
|
184
|
+
review of who has access to what (not just at onboarding), and audit logging of access to
|
|
185
|
+
sensitive systems sufficient to reconstruct who did what and when. These are the same operational
|
|
186
|
+
controls a real security program needs regardless of whether a SOC 2 report is ever pursued โ building
|
|
187
|
+
them only when an audit is scheduled means starting the evidentiary trail late.
|
|
188
|
+
|
|
189
|
+
**Rule (CS-10):** Implement least-privilege access control, periodic access review, and audit logging of
|
|
190
|
+
access to customer-data-holding systems as an ongoing practice, not as audit-time preparation.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## HIPAA
|
|
195
|
+
|
|
196
|
+
### CS-11: A narrow trigger โ covered entities and business associates handling PHI
|
|
197
|
+
|
|
198
|
+
HIPAA applies to covered entities (health plans, healthcare clearinghouses, healthcare providers that
|
|
199
|
+
transmit health information electronically) and their business associates โ vendors that create,
|
|
200
|
+
receive, maintain, or transmit protected health information (PHI) on a covered entity's behalf. A
|
|
201
|
+
typical consumer SaaS product with no health-data handling does not trigger HIPAA merely by having
|
|
202
|
+
users who happen to be patients elsewhere; the trigger is the product's own handling of PHI, not its
|
|
203
|
+
users' medical status in general.
|
|
204
|
+
|
|
205
|
+
**Rule (CS-11):** Confirm HIPAA applicability specifically against whether the product creates,
|
|
206
|
+
receives, maintains, or transmits PHI as a covered entity or business associate โ do not assume
|
|
207
|
+
applicability (or safety from it) based on the target market alone.
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Tiered applicability guide
|
|
212
|
+
|
|
213
|
+
### CS-12: What plausibly applies at which stage
|
|
214
|
+
|
|
215
|
+
- **Early MVP:** if the product could realistically have any EU visitor or California resident sign up โ
|
|
216
|
+
which is the default for anything reachable on the open internet โ a privacy policy and a documented
|
|
217
|
+
lawful basis/consent approach are day-one concerns, not deferred ones. Waiting until "we have real
|
|
218
|
+
users" to start is waiting until the obligation is already live.
|
|
219
|
+
- **Public launch:** a working data-subject-request process (someone owns it, there's a defined
|
|
220
|
+
turnaround) and a real, functioning consent/opt-out mechanism move from "nice to have documented" to
|
|
221
|
+
"will actually be exercised by a real person" โ this is the stage where CS-02, CS-05, CS-06, and CS-07
|
|
222
|
+
need to be operational, not just written down.
|
|
223
|
+
- **Enterprise sales stage:** SOC 2 readiness (CS-09, CS-10) typically becomes relevant when a customer's
|
|
224
|
+
procurement or security-questionnaire process asks for it โ building the access-control and logging
|
|
225
|
+
practices in CS-10 well before an audit is scheduled makes the eventual Type II observation period
|
|
226
|
+
starts from real evidence rather than a scramble. HIPAA (CS-11) becomes relevant only if the business
|
|
227
|
+
is entering healthcare specifically, at whatever stage that happens.
|
|
228
|
+
|
|
229
|
+
**Rule (CS-12):** Use product stage as a prompt to re-check applicability, not as a substitute for
|
|
230
|
+
checking it โ a pre-launch product with EU beta users is already in GDPR's scope regardless of stage.
|
|
231
|
+
|
|
232
|
+
## Related
|
|
233
|
+
|
|
234
|
+
- [[.arcane/governance/threat-model|Threat Model]] and
|
|
235
|
+
[[.arcane/governance/hardening-checklist|Hardening Checklist]] โ the security-control side of SOC 2 and
|
|
236
|
+
breach-notification readiness overlaps with these existing docs; this doc doesn't restate their
|
|
237
|
+
content.
|
|
238
|
+
- `spell-compliance` โ the runnable self-assessment that cites these rules by ID.
|
|
@@ -126,6 +126,16 @@ See also: [[README]], [[DECISIONS]], [[governance/git-conventions|Git Convention
|
|
|
126
126
|
|
|
127
127
|
20. **For repo path requests**, perform read-only discovery before claiming "no access." Use [[agents/agent-approved-paths|Agent Approved Paths Registry]].
|
|
128
128
|
|
|
129
|
+
23. **Diff before deleting a "duplicate."** When housekeeping surfaces two blocks of content that look
|
|
130
|
+
like duplicates โ in a document, a config, a data file โ compare them in full before removing
|
|
131
|
+
either. A near-identical pair is usually a **drifted copy carrying unique content in one and not the
|
|
132
|
+
other**, not byte-identical redundancy; deleting on sight can destroy the unique content silently.
|
|
133
|
+
Merge anything unique to either copy into the one that survives, and only delete a copy confirmed
|
|
134
|
+
byte-identical to (or a confirmed strict subset of) the one kept. This generalizes the same
|
|
135
|
+
content-verification discipline
|
|
136
|
+
[[governance/git-conventions#content-verified-branch-deletion-todomd-merged-branch-cleanup-finding|Content-Verified
|
|
137
|
+
Branch Deletion]] already applies to branches specifically.
|
|
138
|
+
|
|
129
139
|
---
|
|
130
140
|
|
|
131
141
|
## Client-Specific Instruction Locations
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Use PROACTIVELY before a launch, an enterprise sales cycle, or a security questionnaire that raises GDPR/CCPA/SOC 2/HIPAA questions.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Compliance
|
|
6
|
+
|
|
7
|
+
Invoke the Arcane `spell-compliance` spell workflow.
|
|
8
|
+
|
|
9
|
+
See the full prompt at `.github/prompts/spell-compliance.prompt.md` for the complete workflow definition.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
@.github/prompts/spell-compliance.prompt.md
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Spell โ Compliance
|
|
3
|
+
description: Run a regulatory compliance self-assessment against this repo (GDPR, CCPA, SOC 2, HIPAA) and produce a prioritized remediation checklist. Read-only โ never drafts policies or fixes gaps automatically.
|
|
4
|
+
argument-hint: Optional focus (e.g., "GDPR only", "pre-launch check", "SOC 2 readiness")
|
|
5
|
+
agent: agent
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Executive Summary
|
|
9
|
+
|
|
10
|
+
- This spell self-assesses a repo's compliance posture against GDPR, CCPA, SOC 2, and HIPAA, and
|
|
11
|
+
produces a prioritized remediation checklist.
|
|
12
|
+
- **It is read-only.** It never drafts a privacy policy, invents a retention period, or fixes a gap on
|
|
13
|
+
its own โ every finding is a checklist item for a human (often with legal input) to act on.
|
|
14
|
+
- **This is not legal advice**, and the report says so explicitly. It is a starting self-assessment
|
|
15
|
+
against established, uncontroversial obligations โ not a substitute for a qualified lawyer's analysis
|
|
16
|
+
of this specific business's specific facts.
|
|
17
|
+
- Findings cite `CS-nn` rule IDs from
|
|
18
|
+
[`compliance-standards.md`](../../.arcane/governance/compliance-standards.md) โ the rationale for each
|
|
19
|
+
obligation lives there, not restated here.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Context files
|
|
24
|
+
|
|
25
|
+
- [governance/compliance-standards.md](../../.arcane/governance/compliance-standards.md) โ every
|
|
26
|
+
`CS-nn` rule this spell checks against. Rules are **cited by ID only** in this spell, never restated.
|
|
27
|
+
**If the file is not installed**, this spell still runs in full โ findings just cite each check as
|
|
28
|
+
`CS-nn (rationale unavailable โ install the standards doc)` instead of linking to it.
|
|
29
|
+
- `threat-model.md` and `hardening-checklist.md`, if present โ the security-control evidence for `CS-10`
|
|
30
|
+
(access control, audit logging) frequently already exists in these docs rather than needing to be
|
|
31
|
+
assessed fresh.
|
|
32
|
+
- `project.md` / `.arcane.json` โ for the business context (target users, whether the product could
|
|
33
|
+
plausibly reach EU or California residents, whether it handles health data) that Phase 1 needs.
|
|
34
|
+
|
|
35
|
+
## Phase 1 โ Determine applicability (ask, don't assume)
|
|
36
|
+
|
|
37
|
+
Applicability determinations have real consequences, so resolve each of the following by checking the
|
|
38
|
+
repo's own context first (`project.md`, `.arcane.json`, existing docs); **ask the operator directly**
|
|
39
|
+
for anything not resolvable from those sources โ never assume:
|
|
40
|
+
|
|
41
|
+
- Could the product realistically reach EU residents (any public-internet-reachable consumer product
|
|
42
|
+
defaults to yes) โ GDPR relevance (`CS-01`).
|
|
43
|
+
- Does the business meet, or plausibly approach, CCPA/CPRA's revenue or data-volume thresholds, and
|
|
44
|
+
could it reach California residents โ CCPA relevance (`CS-04`). State plainly that exact thresholds
|
|
45
|
+
should be verified against current statute, not assumed from this spell's own knowledge.
|
|
46
|
+
- Is a customer, prospect, or procurement process currently asking for a SOC 2 report, or is one
|
|
47
|
+
expected within a near-term sales cycle โ SOC 2 relevance (`CS-09`).
|
|
48
|
+
- Does the product create, receive, maintain, or transmit protected health information as a covered
|
|
49
|
+
entity or business associate โ HIPAA relevance (`CS-11`). State plainly that this is a narrow trigger,
|
|
50
|
+
not a default.
|
|
51
|
+
|
|
52
|
+
Record which frameworks are in scope for this run and why, before proceeding โ a framework judged
|
|
53
|
+
out of scope is reported as such in Phase 4, not silently skipped without explanation.
|
|
54
|
+
|
|
55
|
+
## Phase 2 โ Inventory (read-only)
|
|
56
|
+
|
|
57
|
+
Enumerate what compliance-relevant artifacts already exist, without judging sufficiency yet:
|
|
58
|
+
|
|
59
|
+
- A privacy policy โ does one exist, and where.
|
|
60
|
+
- A data inventory / Records of Processing Activities doc โ does one exist and does it name what
|
|
61
|
+
personal data is collected, where it's stored, and why.
|
|
62
|
+
- A retention/deletion policy โ does one exist, and does it define a period per data category.
|
|
63
|
+
- Consent mechanism indicators โ a cookie/consent banner, a consent-management SDK, an opt-in flow in
|
|
64
|
+
the signup path; and separately, a "Do Not Sell or Share" link or equivalent opt-out mechanism.
|
|
65
|
+
- Existing security documentation this repo may already ship (`threat-model.md`,
|
|
66
|
+
`hardening-checklist.md`, `authentication-strategy.md`) โ relevant evidence for `CS-10` without
|
|
67
|
+
needing to reassess it from scratch.
|
|
68
|
+
- Breach-notification process โ is there a documented incident-response process with a named owner and
|
|
69
|
+
a notification path.
|
|
70
|
+
|
|
71
|
+
Report anything not found as absent, not as failed โ Phase 3 is where absence becomes a finding against
|
|
72
|
+
a specific applicable rule.
|
|
73
|
+
|
|
74
|
+
## Phase 3 โ Audit
|
|
75
|
+
|
|
76
|
+
For each framework marked in-scope in Phase 1, check its rules from `compliance-standards.md` against
|
|
77
|
+
what Phase 2 found. Mark each `PASS` / `FAIL` / `PARTIAL`, citing the rule ID only:
|
|
78
|
+
|
|
79
|
+
```text
|
|
80
|
+
CS-07 FAIL โ no data inventory found; a data inventory is the prerequisite artifact CS-02/CS-04's
|
|
81
|
+
rights-request obligations depend on.
|
|
82
|
+
CS-06 PARTIAL โ a consent banner exists, but the "accept all" and "reject non-essential" options are
|
|
83
|
+
not visually equivalent, which is a common consent-validity gap.
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Do not restate why a rule matters โ that reasoning lives in `compliance-standards.md`; cite the ID and
|
|
87
|
+
state the evidence.
|
|
88
|
+
|
|
89
|
+
## Phase 4 โ Report
|
|
90
|
+
|
|
91
|
+
Produce a prioritized remediation checklist: mandatory-baseline gaps (GDPR/CCPA, if in scope) before
|
|
92
|
+
optional-tier gaps (SOC 2, HIPAA), and structural prerequisites (a missing data inventory) before the
|
|
93
|
+
rights-request/consent mechanisms that depend on them.
|
|
94
|
+
|
|
95
|
+
```markdown
|
|
96
|
+
## Compliance Self-Assessment โ [repo name]
|
|
97
|
+
|
|
98
|
+
**Frameworks assessed:** [list, with in-scope/out-of-scope reasoning from Phase 1]
|
|
99
|
+
**Date:** [timestamp]
|
|
100
|
+
|
|
101
|
+
> This is a self-assessment against established compliance obligations, not legal advice. Confirm any
|
|
102
|
+
> finding below with qualified counsel before treating it as a compliance determination.
|
|
103
|
+
|
|
104
|
+
### Findings, by priority
|
|
105
|
+
|
|
106
|
+
#### Mandatory baseline (GDPR / CCPA)
|
|
107
|
+
- [ ] CS-07 โ [gap + what artifact would close it]
|
|
108
|
+
|
|
109
|
+
#### Optional tier (SOC 2 / HIPAA), if in scope
|
|
110
|
+
- [ ] CS-10 โ [gap + what artifact would close it]
|
|
111
|
+
|
|
112
|
+
### Out of scope this run
|
|
113
|
+
- [Framework] โ [why, per Phase 1's determination]
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Rules
|
|
117
|
+
|
|
118
|
+
This spell defers entirely to
|
|
119
|
+
[governance/compliance-standards.md](../../.arcane/governance/compliance-standards.md) for what each
|
|
120
|
+
obligation means and why. Findings in this spell cite rule IDs; they do not re-explain them. This spell
|
|
121
|
+
never drafts a policy document, never invents a retention period or lawful basis on the operator's
|
|
122
|
+
behalf, and never claims to produce a legal compliance determination โ every output is a checklist item
|
|
123
|
+
for a human to act on, with legal input where the finding calls for it.
|
|
124
|
+
|
|
125
|
+
## Related
|
|
126
|
+
|
|
127
|
+
- [Compliance Standards](../../.arcane/governance/compliance-standards.md)
|
|
128
|
+
- **Feeds into:** the operator's own remediation work โ this spell does not fix gaps, it enumerates
|
|
129
|
+
them.
|
package/dist/index.js
CHANGED
|
@@ -291,7 +291,8 @@ var PROFILE_CONFIGS = [
|
|
|
291
291
|
"spell-authoring-standards",
|
|
292
292
|
"external-verification-standards",
|
|
293
293
|
"web-discoverability-standards",
|
|
294
|
-
"mobile-release-standards"
|
|
294
|
+
"mobile-release-standards",
|
|
295
|
+
"compliance-standards"
|
|
295
296
|
]
|
|
296
297
|
}
|
|
297
298
|
];
|
|
@@ -458,6 +459,11 @@ var COMPONENTS = [
|
|
|
458
459
|
description: "Durable App Store / Google Play console and release-track facts consumed by spell-eas-store-deploy",
|
|
459
460
|
files: [".arcane/governance/mobile-release-standards.md"]
|
|
460
461
|
},
|
|
462
|
+
{
|
|
463
|
+
name: "compliance-standards",
|
|
464
|
+
description: "GDPR/CCPA/SOC 2/HIPAA obligations and a tiered applicability guide, consumed by spell-compliance",
|
|
465
|
+
files: [".arcane/governance/compliance-standards.md"]
|
|
466
|
+
},
|
|
461
467
|
// โโโ Spells โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
462
468
|
// Split from the former monolithic `spell-prompts` + `claude-commands` pair
|
|
463
469
|
// so a profile can select spells by capability (see ARC-0NN). Grouping lives
|
|
@@ -570,7 +576,9 @@ var COMPONENTS = [
|
|
|
570
576
|
".github/prompts/spell-scry.prompt.md",
|
|
571
577
|
".claude/commands/spell-scry.md",
|
|
572
578
|
".github/prompts/spell-eas-store-deploy.prompt.md",
|
|
573
|
-
".claude/commands/spell-eas-store-deploy.md"
|
|
579
|
+
".claude/commands/spell-eas-store-deploy.md",
|
|
580
|
+
".github/prompts/spell-compliance.prompt.md",
|
|
581
|
+
".claude/commands/spell-compliance.md"
|
|
574
582
|
]
|
|
575
583
|
},
|
|
576
584
|
{
|