Skip to content

Commit 6ba7087

Browse files
committed
docs: replace firm-specific identifiers with vendor-neutral placeholders
- skills/single-file-dashboard/SKILL.md: replace firm-branded "executive deliverable" framing with neutral "executive-style" language in the description, design-system section header, donut- chart anti-pattern note, and attribution paragraph - skills/codebase-security-audit/{SKILL.md, references/semgrep- custom-rules.md}: rename the example internal HTTP client from a firm-specific prefix to acme_http (standard placeholder); covers all six rule snippets and the SKILL.md callout - rules/400-cloudflare.mdc: replace a firm-branded IdP example with the more generic trio "Okta, Entra ID, Google Workspace" in the Cloudflare Access layer table The repo is open-source / vendor-neutral; firm-specific identifiers do not belong in shipped rules and skills. Verified clean with ripgrep against firm-name and firm-prefix patterns. [Amended after the original commit message used a specific firm name; rewritten to keep this repo vendor-neutral end to end.]
1 parent c4a8ea6 commit 6ba7087

4 files changed

Lines changed: 13 additions & 13 deletions

File tree

rules/400-cloudflare.mdc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ Cloudflare offers three identity surfaces in front of an origin. Use each for wh
7575

7676
| Layer | What it answers | Identity source |
7777
|---|---|---|
78-
| **Cloudflare Access** | "Should this request reach the origin at all?" | IdP (Okta, McKinsey ID, etc.) for users; service auth tokens or mTLS for machines |
78+
| **Cloudflare Access** | "Should this request reach the origin at all?" | IdP (Okta, Entra ID, Google Workspace, etc.) for users; service auth tokens or mTLS for machines |
7979
| **Authenticated Origin Pulls (AOP)** | "Did this request actually come from Cloudflare?" | mTLS cert from Cloudflare to the origin |
8080
| **Worker JWT validation** | "Does this specific API call have the right scope/audience/tenant?" | The same Access JWT (`Cf-Access-Jwt-Assertion`) or a separate token |
8181
| **Origin JWT validation** | "Same as above, but enforced at the origin" | Same |

skills/codebase-security-audit/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ Examples to author for any non-trivial repo:
349349

350350
1. **Internal auth decorator missing** - every handler in `routes/` must have `@require_auth(scope=...)` or `@public_endpoint`.
351351
2. **PII fields without redaction** - any logger call with a known PII field name (`email`, `ssn`, `phone`, `dob`, `card_number`) must wrap it in `redact()`.
352-
3. **Internal SDK misuse** - internal HTTP client `mck_http.get()` must always pass `timeout=` and `verify=True`.
352+
3. **Internal SDK misuse** - internal HTTP client `acme_http.get()` must always pass `timeout=` and `verify=True`.
353353
4. **Forbidden imports** - block `import requests` in modules that should use the internal client; block `import pickle` in services that accept external input.
354354
5. **Tenant-scope check** - every DB query in a multi-tenant service must include a `tenant_id` filter.
355355

skills/codebase-security-audit/references/semgrep-custom-rules.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -59,24 +59,24 @@ rules:
5959

6060
## Internal SDK misuse
6161

62-
The internal HTTP client `mck_http.get()` must always pass `timeout=` and `verify=True`.
62+
The internal HTTP client `acme_http.get()` must always pass `timeout=` and `verify=True`.
6363

6464
```yaml
6565
# .semgrep/internal-http-client-misuse.yaml
6666
rules:
6767
- id: internal-http-missing-timeout
68-
message: mck_http.$METHOD called without timeout
68+
message: acme_http.$METHOD called without timeout
6969
severity: ERROR
7070
languages: [python]
7171
patterns:
72-
- pattern: mck_http.$METHOD(...)
73-
- pattern-not: mck_http.$METHOD(..., timeout=$T, ...)
72+
- pattern: acme_http.$METHOD(...)
73+
- pattern-not: acme_http.$METHOD(..., timeout=$T, ...)
7474
7575
- id: internal-http-verify-disabled
76-
message: mck_http.$METHOD called with verify=False
76+
message: acme_http.$METHOD called with verify=False
7777
severity: ERROR
7878
languages: [python]
79-
pattern: mck_http.$METHOD(..., verify=False, ...)
79+
pattern: acme_http.$METHOD(..., verify=False, ...)
8080
```
8181

8282
---
@@ -89,7 +89,7 @@ Block `import requests` in modules that should use the internal client; block `i
8989
# .semgrep/forbidden-imports.yaml
9090
rules:
9191
- id: prefer-internal-http-client
92-
message: Use mck_http instead of requests
92+
message: Use acme_http instead of requests
9393
severity: ERROR
9494
languages: [python]
9595
paths:

skills/single-file-dashboard/SKILL.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Use when the user asks for:
2222
- "Build a dashboard" / "interactive HTML report" / "shareable analysis"
2323
- "Offline dashboard" / "airgap-safe" / "for the client" / "for the regulator"
2424
- "Visualize this workbook" / "turn this CSV into a presentable view"
25-
- A McKinsey-style executive deliverable
25+
- An executive-style deliverable for client / leadership / regulator review
2626
- Anything that must render without internet access
2727

2828
Do *not* use for:
@@ -113,7 +113,7 @@ The build script is the source of truth. The HTML is the artifact.
113113

114114
---
115115

116-
## Design system (McKinsey-style executive palette)
116+
## Design system (executive palette)
117117

118118
A consistent design system makes outputs presentable without manual adjustment.
119119

@@ -347,7 +347,7 @@ The script writes a single string to disk. Test it by opening the output in a br
347347
4. **Charting library** (D3, Chart.js, ECharts, Plotly). Each adds 100-500KB and requires either a bundler or a CDN. Vanilla SVG is enough for executive charts.
348348
5. **Generated HTML edited in place.** Make changes in the generator and re-run; otherwise the artifact and the source diverge.
349349
6. **No HTML escaping.** A user-supplied product name with `<script>` in it becomes XSS in the dashboard.
350-
7. **Donut / 3D / sunburst charts.** Hard to read; not McKinsey style. Use bar charts.
350+
7. **Donut / 3D / sunburst charts.** Hard to read at executive density. Use bar charts.
351351
8. **More than 3 charts in a single section.** Cognitive load over signal.
352352
9. **Localizing into the HTML** ("English en", "French fr") - use one language per output; multiple outputs for multiple languages.
353353
@@ -388,4 +388,4 @@ The script writes a single string to disk. Test it by opening the output in a br
388388
389389
## Attribution
390390
391-
Pattern crystallized from a McKinsey-style consolidation dashboard generator that produces single-file HTML output (no CDN, no fonts, no images, inline vanilla SVG) sized at <2 MB and renders identically in Chrome, Outlook, and on an airgapped laptop. The single-file/zero-dependency guarantee is the feature.
391+
Pattern crystallized from an executive-style consolidation dashboard generator that produces single-file HTML output (no CDN, no fonts, no images, inline vanilla SVG) sized at <2 MB and renders identically in Chrome, Outlook, and on an airgapped laptop. The single-file/zero-dependency guarantee is the feature.

0 commit comments

Comments
 (0)