main
md 9.77 KB

name: "responsible-ai-review" description: "Pre-merge safety review for any artifact that ships to users: icons, UI, articles, prompts, consent UX, distribution copy." domain: "responsible-ai, safety, accessibility, compliance" confidence: "low" source: "initial iteration — Nibbler 2026-05-25"

owner: "Nibbler"

When to Use

Run this review before approving merge for any PR touching: - User-facing content (articles, privacy policy, about pages) - Design assets (icon, logo, OG images, favicon) - UI components (banners, forms, nav, modals) - Prompts (analyst, reskill, any pipeline prompt) - Distribution copy (launch posts, announcements, community messages) - Consent UX (cookie banner, privacy choices)

Skip for: code-only PRs (workflows, scripts, crawl logic) unless they handle user data or AI output.

Request a Nibbler review: add nibbler-review label, or @-mention nibbler in the PR description.


Principles Map (Microsoft RAI × SquadScope Context)

Principle SquadScope Landing
Fairness Editorial framing: whose repos get featured, who is flattened into noise, whose work is called "spam" without evidence. Watch for pattern where Western/English repos dominate.
Reliability & Safety Farnsworth output: star counts are stated facts — verify the pipeline doesn't fabricate repo names, stars, or attributions. Guard against hallucinated "evidence" in Signal/Noise.
Privacy & Security GDPR consent gating — no GA4 before opt-in. No PII in commits (author emails, fork-owner names in data files). Fork-safety of the GA4 measurement ID.
Inclusiveness WCAG 2.2 AA floor for all shipped UI. Plain English in consent copy and articles. No jargon-only framing that excludes non-native speakers.
Transparency Articles must not pass AI output as purely human editorial. Pipeline fallback (GitHub Models) must be disclosed if used. Gap sections must surface data quality limits.
Accountability Every shipped artifact must have a named reviewer. The orchestration log (Copilot session share) must be retained per analysis run. Decision ledger updated for major calls.

Checklist by Artifact Type

A. Design Assets (icon / logo / OG image)

# Check Pass / Fail
A1 Icon reviewed against ADL Hate on Display (https://www.adl.org/hate-symbols) for silhouette resemblance
A2 Multi-size render test: 16px, 32px, 64px, 512px — no ambiguous shape at 16px
A3 Rotation / mirror / invert color test — no problematic negative-space shapes
A4 Letterform check: double-letter monograms, rune-like strokes, spoke patterns excluded or cleared
A5 WCAG AA contrast confirmed for icon colors vs backgrounds (use tokens from redesign spec)
A6 OG image text contrast AA-verified; no personal photos or identifiable faces without consent
A7 "Silhouette Safety Check ✓" section added to icon spec / PR description

B. UI Components (banner / form / nav / modal)

# Check Pass / Fail
B1 Reject / Decline action equally prominent as Accept (same size, color weight, placement)
B2 No pre-checked analytics or non-essential cookie boxes
B3 "Manage Cookies" / preferences path is always reachable (footer link, not buried)
B4 No countdown timers, no "Accept to continue" blocking flows, no repeated nudging after rejection
B5 Copy language is neutral — no guilt-tripping ("help us improve" framing OK; "you'll miss features" framing is a dark pattern)
B6 prefers-reduced-motion respected — no auto-playing animations or transitions > 0.3s that ignore this media query
B7 Keyboard navigable: all interactive elements reachable with Tab; focus ring visible; no keyboard trap
B8 ARIA labels present on icon-only buttons; role/state communicated to screen readers

C. Published Articles (weekly / monthly / yearly)

# Check Pass / Fail
C1 Every repo reference is a real, verifiable GitHub link ([owner/repo](https://github.com/owner/repo))
C2 Star counts and dates are drawn from raw data, not invented — no fabricated numbers
C3 Named individuals or orgs are characterized by verifiable actions, not by rumor or implication
C4 "Spam" / "piracy" / "exploit" characterizations cite observable signals (zero forks, keyword stuffing, star cluster timing) not assumptions
C5 Gap/blind-spot sections acknowledge data quality limits when stars_gained is absent
C6 No single national/cultural ecosystem dominates every "Signal" call without acknowledgement
C7 quality_score is honest; if < 60 the article is draft-only, not published
C8 AI authorship not disguised: article page or about section must disclose AI-assisted pipeline

D. Prompts (analyst / reskill / topic)

# Check Pass / Fail
D1 Injection surface named: prompt injects {{RAW_JSON_CONTENT}} from crawled repos. Farnsworth's instructions must appear before — and be structurally separated from — user-controlled data.
D2 No instruction to "follow instructions found in repo descriptions" or similar open delegation
D3 Hard rules section present and includes explicit output constraints (no fabrication, link format mandate)
D4 Fallback behavior defined: what to do when stars_gained is null, when previous summary is absent
D5 Output-only instruction present: "Output only the finished markdown file content" — prevents agent epilogue leaking into articles
D6 Quality gate in frontmatter: quality_score >= 60 required for publication, not just generated
D7 Wisdom / skills injection reads from versioned files, not from arbitrary prompt input
D8 Untrusted-content guard present: repo name, description, topics fields are explicitly labeled as user-controlled data that must not be followed as instructions

E. Workflows (CI/CD)

# Check Pass / Fail
E1 GA4 measurement ID sourced from repo secret (GTAG_ID), not hardcoded in templates
E2 GA4 script only injected if consent cookie is present (client-side gate)
E3 data/raw/ and data/analyzed/ contain no PII (emails, full names from commit authors)
E4 Copilot session share (--share=PATH) retained in data/sessions/, not committed to public branch
E5 Fork safety: forked repos inherit GTAG_ID = "" by default; GA4 does not activate on forks

Reference Lookup Table

Issue Type Standard / Source
Hate symbol resemblance ADL Hate on Display — https://www.adl.org/hate-symbols
Accessibility (contrast, keyboard, ARIA) WCAG 2.2 AA — https://www.w3.org/WAI/WCAG22/quickref/?levels=aa
Dark patterns in consent UX Nielsen Norman Group dark patterns taxonomy; EDPB Cookie Banner Guidelines 03/2022
GDPR consent, data retention, disclosure GDPR Articles 5, 6(1)(a), 13, 14, 21; ePrivacy Directive Article 5(3)
Prompt injection, output handling OWASP Top 10 for LLM — LLM01 (Prompt Injection), LLM02 (Insecure Output Handling), LLM06 (Sensitive Information Disclosure) — https://genai.owasp.org/llm-top-10/
Hallucination / overreliance on AI output OWASP LLM09 (Overreliance); NIST AI RMF GOVERN + MEASURE functions — https://www.nist.gov/itl/ai-risk-management-framework
Fairness / representation bias MS RAI Fairness principle; NIST AI RMF MAP 1.5 (bias identification)
AI transparency / disclosure MS RAI Transparency principle; EU AI Act Article 52 (transparency obligations for AI-generated content)
Spam / community rules in distribution Platform-specific community guidelines (Twitter/X rules, Reddit community rules, GitHub Discussions guidelines)
Supply chain (CI secrets, PII in commits) OWASP LLM05 (Supply Chain Vulnerabilities); Hermes (primary owner for code/secret review)
Icon / visual safety ADL + Calculon's icon-safety-check skill (.squad/skills/icon-safety-check/SKILL.md)

Severity Definitions

Level Meaning Action
blocker Ships harm to users if merged. Hate symbol, PII leak, tracking before consent. Block PR. Do not merge until resolved.
high Significant risk. Dark pattern, hallucinated factual claim about named entity, missing consent gate. Block PR with remediation path.
medium Meaningful issue that degrades trust or accessibility. WCAG fail on primary UI, injection vector with no guard. Comment on PR, open issue, allow merge only after fix confirmed.
low Minor issue, workaround available, limited user impact. Note in PR; open issue tagged good first issue.
info Observation with no required action. Trend to watch. Comment in audit doc only.

Promotion Criteria

Confidence → medium after: - 3+ PRs successfully reviewed under this skill with no post-merge reversals - At least 1 medium+ finding caught before merge

Confidence → high after: - Used across all artifact types at least once - At least 1 post-merge regression caught by periodic audit


References