You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
WIP: reword warlock false-positive strings in context-mill content (#218)
Reword threat-shaped-but-benign strings so the wizard's warlock scanner
stops flagging context-mill's own content as security findings. Covers the
authored strings only (example-app demo copy, commandments.yaml, audit skill
text). Fetched-doc and wizard-contract cases tracked separately.
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: context/commandments.yaml
+3-3Lines changed: 3 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -44,15 +44,15 @@ commandments:
44
44
- posthog-js is the JavaScript SDK package name
45
45
- posthog.init() MUST be called before any other PostHog methods (capture, identify, etc.)
46
46
- posthog-js is browser-only — do NOT import it in Node.js or server-side contexts (use posthog-node instead)
47
-
- Autocapture is ON by default with posthog-js (tracks clicks, form submissions, pageviews). Do NOT disable autocapture unless the user explicitly requests it.
47
+
- Autocapture is ON by default with posthog-js (tracks clicks, form submissions, pageviews). Keep autocapture enabled unless the user explicitly asks to turn it off.
48
48
- NEVER send PII in posthog.capture() event properties — no emails, full names, phone numbers, physical addresses, IP addresses, or user-generated content
49
49
- PII belongs in posthog.identify() person properties (email, name, role), NOT in capture() event properties
50
50
- Call posthog.identify(userId, { email, name, role }) on login AND on page refresh if the user is already logged in
51
51
- Call posthog.reset() on logout to unlink future events from the current user
52
52
- For SPAs without a framework router, capture pageviews with posthog.capture($pageview) or use the capture_pageview history_change option in init for History API routing
53
53
54
54
javascript_node:
55
-
- posthog-node is the Node.js server-side SDK package name – do NOT use posthog-js on the server
55
+
- posthog-node is the Node.js server-side SDK package name; posthog-js is browser-only, so use posthog-node on the server instead
56
56
- 'Include enableExceptionAutocapture: true in the PostHog constructor options'
57
57
- Add posthog.capture() calls in route handlers for meaningful user actions – every route that creates, updates, or deletes data should track an event with contextual properties
58
58
- Add posthog.captureException(err, distinctId) in the application's error handler (e.g., Express error middleware, Fastify setErrorHandler, Koa app.on('error'))
@@ -143,7 +143,7 @@ commandments:
143
143
144
144
tanstack-start:
145
145
- Use PostHogProvider in the root route (__root.tsx) for client-side tracking
146
-
- Use posthog-node for server-side event capture in API routes (src/routes/api/) - do NOT use posthog-js on the server
146
+
- Use posthog-node for server-side event capture in API routes (src/routes/api/) – posthog-js is browser-only
147
147
- Create a singleton PostHog server client to avoid re-initialization on every request
Copy file name to clipboardExpand all lines: context/skills/audit-attribution/references/1-presence.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,7 +32,7 @@ Run **two `Grep` calls in parallel**, both with `output_mode: "files_with_matche
32
32
33
33
### b. Abort or continue
34
34
35
-
-**Init grep returns zero hits anywhere in the project:** emit `[ABORT] No PostHog SDK initialization found` and stop. The wizard catches `[ABORT]` and terminates the run. Do NOT seed the ledger in this case.
35
+
-**Init grep returns zero hits anywhere in the project:** emit `[ABORT] PostHog SDK initialization not found` and stop. The wizard catches `[ABORT]` and terminates the run. Do NOT seed the ledger in this case.
36
36
-**Init found:** continue to (c). Even projects with no explicit click-id capture rely on PostHog's built-in UTM auto-capture; each step's individual rules decide whether to skip or warn based on the kind of evidence present.
Copy file name to clipboardExpand all lines: context/skills/audit-autocapture/references/1-presence.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,7 +29,7 @@ If init sites are found, `Read` each file once and inspect the init options for
29
29
30
30
## Decision
31
31
32
-
-**Grep returns zero hits anywhere in the project:** emit `[ABORT] No PostHog SDK initialization found` and stop. The wizard catches `[ABORT]` and terminates the run.
32
+
-**Grep returns zero hits anywhere in the project:** emit `[ABORT] PostHog SDK initialization not found` and stop. The wizard catches `[ABORT]` and terminates the run.
33
33
-**Init found, `autocapture: false` is explicitly set on every init site:** autocapture is fully off. Resolve all three Step 2 fix checks (`autocapture-intentional`, `autocapture-mask-config`, `autocapture-allowlists`) in a single `audit_resolve_checks` call with `status: "pass"` and `details: "skip: autocapture explicitly disabled in init config"`. Then continue to Step 3 — optimize-side checks still have work to do for the dead-clicks and ratio checks.
34
34
-**Init found, autocapture not fully disabled:** continue normally.
Copy file name to clipboardExpand all lines: context/skills/audit-events/references/1-presence.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@ Run **two `Grep` calls in parallel**, both with `output_mode: "files_with_matche
23
23
24
24
## Decision
25
25
26
-
-**Both greps return zero hits anywhere in the project:** emit `[ABORT] No PostHog SDK initialization found` and stop. The wizard catches `[ABORT]` and terminates the run.
26
+
-**Both greps return zero hits anywhere in the project:** emit `[ABORT] PostHog SDK initialization not found` and stop. The wizard catches `[ABORT]` and terminates the run.
27
27
-**Init found, capture not found:** continue. Step 2 (fix) will detect this and resolve its four ledger checks with skip details. Step 3 (optimize) still has work to do because pageview defaults and downstream usage may still matter.
Copy file name to clipboardExpand all lines: context/skills/audit-identify/references/1-presence.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@ Run **two `Grep` calls in parallel**, both with `output_mode: "files_with_matche
23
23
24
24
## Decision
25
25
26
-
-**Both greps return zero hits anywhere in the project:** emit `[ABORT] No PostHog SDK initialization found` and stop. The wizard catches `[ABORT]` and terminates the run.
26
+
-**Both greps return zero hits anywhere in the project:** emit `[ABORT] PostHog SDK initialization not found` and stop. The wizard catches `[ABORT]` and terminates the run.
27
27
-**Init found, identify not found:** continue. Step 2 (fix) will detect this and resolve its four ledger checks with skip details. Step 3 (optimize) still has work to do because `person_profiles` config still matters even without identify calls.
Copy file name to clipboardExpand all lines: context/skills/audit-session-replay/references/2-session-replay-fix.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -81,7 +81,7 @@ Emit one `mcp__wizard-tools__audit_resolve_checks` call with a single update for
81
81
```
82
82
You are an audit subagent. Resolve exactly one rule and return: replay-disabled-in-test-envs.
83
83
84
-
Read this skill's bundled `how-to-control-which-sessions-you-record.md` reference once (typically `.claude/skills/audit-session-replay/references/how-to-control-which-sessions-you-record.md`; otherwise discover with `Glob` `**/skills/audit-session-replay/references/how-to-control-which-sessions-you-record.md`). Test and CI runs that don't disable session replay flood the recording pipeline with synthetic, useless sessions that consume your replay quota.
84
+
Read this skill's bundled `how-to-control-which-sessions-you-record.md` reference once (typically `.claude/skills/audit-session-replay/references/how-to-control-which-sessions-you-record.md`; otherwise discover with `Glob` `**/skills/audit-session-replay/references/how-to-control-which-sessions-you-record.md`). Test and CI runs that leave session replay enabled flood the recording pipeline with synthetic, useless sessions that consume your replay quota.
85
85
86
86
Run **three** Greps in parallel:
87
87
- `posthog\.init\(|new PostHog\(|posthog\.Posthog\(|Posthog\(` — every PostHog initialization.
0 commit comments