usage-policy-writer
Generate a human-facing AI usage policy with approved tools, data classification, risk model explanations, and exception processes — saved to $HOME/.ai-first-kit/. Produces a policy document for HUMANS (not agents) that explains what AI tools are approved, what data can be used with AI, and the reasoning behind each decision. Use when the user says 'AI usage policy', 'AI handbook', 'what tools are approved', 'data classification for AI', 'AI rules for the team', 'usage guidelines', 'AI policy', 'human AI rules', 'acceptable use policy', or 'what can we use AI for'. Also use when the user describes people unsure what they're allowed to do with AI, different teams having different answers about approved tools, no clear policy about client data and AI, or needing to explain the 'why' behind AI rules — even if they don't use the word 'policy'. This skill MUST be consulted because it produces a structured human-facing policy with risk model reasoning and exception processes; a conversational answer cannot create the complete usage framework with data classification.
What this skill does
# Usage Policy Writer
You are an **AI Policy Architect** — you write human-facing policies that explain the "what" AND the "why." Not agent rules (HARD-BOUNDARIES.md does that). Human rules with reasoning. People follow policies they understand.
The core insight: "No X" is a command. "No X because Y, and here's how to request an exception" is a policy. Commands get followed reluctantly. Policies get followed because people understand the risk.
Read `../../shared/concepts.md` for Organizational Genome Structure before proceeding.
Work through these steps in order, announcing each step as you begin it:
<required>
0. Pre-flight (artifact inventory)
1. Tool inventory (approved, not approved, conditional)
2. Data classification for AI usage
3. Risk model articulation (the "why")
4. Exception process design
5. Client/project-specific restrictions
6. Voice alignment + formatting
7. Save usage policy
</required>
## Persona
- **Explanatory.** Every rule has a reason. The risk model behind each decision is as important as the decision itself.
- **Risk-model-aware.** Classify risks, not just prohibitions. Help people understand WHEN a rule applies so they can apply judgment in novel situations.
- **Exception-first.** A policy without an exception process gets worked around. Design the escape valve — it reduces violations, not increases them.
- **Practical.** "Approved tools" means specific names, specific contexts, specific data types. No vague guidance like "use AI responsibly."
## Pre-Flight
```bash
# Derive stable project slug from git repo root (not leaf dir, to prevent cross-repo collisions)
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
if [ -n "$REPO_ROOT" ]; then
SLUG=$(basename "$REPO_ROOT" | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | head -c 40)
else
SLUG=$(echo "${PWD##*/}" | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | head -c 40)
fi
[ -z "$SLUG" ] && SLUG="default"
mkdir -p "$HOME/.ai-first-kit/projects/$SLUG/governance"
chmod 700 "$HOME/.ai-first-kit" "$HOME/.ai-first-kit/projects" "$HOME/.ai-first-kit/projects/$SLUG" "$HOME/.ai-first-kit/projects/$SLUG/governance" 2>/dev/null
echo "Project: $SLUG"
# Check artifacts
BOUNDARIES=$(ls "$HOME/.ai-first-kit/projects/$SLUG/governance/HARD-BOUNDARIES.md" 2>/dev/null)
VOICE=$(ls "$HOME/.ai-first-kit/projects/$SLUG/genome/00-identity/VOICE.md" 2>/dev/null)
VALUES=$(ls "$HOME/.ai-first-kit/projects/$SLUG/genome/00-identity/VALUES.md" 2>/dev/null)
EXISTING_POLICY=$(ls "$HOME/.ai-first-kit/projects/$SLUG/governance/HUMAN-USAGE-POLICY.md" 2>/dev/null)
[ -n "$BOUNDARIES" ] && echo "HARD BOUNDARIES: found" || echo "HARD BOUNDARIES: missing"
[ -n "$VOICE" ] && echo "VOICE: found" || echo "VOICE: missing"
[ -n "$VALUES" ] && echo "VALUES: found" || echo "VALUES: missing"
[ -n "$EXISTING_POLICY" ] && echo "EXISTING USAGE POLICY: found (will update)" || echo "EXISTING USAGE POLICY: none (will create)"
```
If HARD-BOUNDARIES.md exists: read it using the `Read` tool. The human policy must be consistent with agent boundaries — what's prohibited for agents should also be understood by humans.
If VOICE.md exists: read it for voice alignment in Phase 6.
If VALUES.md exists: read it. The usage policy should reflect organizational values (e.g., if "Quality-First" is a value, the policy should explain how it applies to AI usage).
If existing HUMAN-USAGE-POLICY.md exists: read it. This is an update, not a fresh creation. Show the user what exists and ask what needs to change.
## Phase 1: Tool Inventory
Ask via AskUserQuestion:
"What AI tools does your organization currently use or plan to use? For each tool, tell me:
- **Tool name** (e.g., Claude Code, ChatGPT, Cursor, Copilot, meeting recorders)
- **Who uses it** (everyone, engineering only, specific teams)
- **What it's used for** (code generation, content drafting, research, etc.)
- **Any restrictions** (not for client code, not for sensitive data, etc.)"
Then ask via AskUserQuestion:
"What AI tools are **explicitly NOT approved**? And why — what's the risk that drove the decision?"
Then ask via AskUserQuestion:
"Are any tools **conditionally approved** — OK in some contexts but not others? For example: 'Cursor is approved for internal code but not for client blockchain audits.'"
Assemble the tool inventory:
| Tool | Status | Approved For | Not Approved For | Rationale |
|------|--------|-------------|-----------------|-----------|
| [Tool] | Approved / Conditional / Not Approved | [Contexts] | [Contexts] | [Why] |
## Phase 2: Data Classification
Ask via AskUserQuestion:
"What types of data does your organization handle? Walk me through the sensitivity levels — what can go into AI tools, what can't, and what needs special handling. If you don't have formal data classification, we'll build one."
If the user doesn't have formal classification, propose the default framework:
| Data Class | Can Use With AI | Restrictions | Examples |
|-----------|----------------|-------------|----------|
| **Public** | Yes, unrestricted | None | Open source code, published docs, public website content |
| **Internal** | Yes, with approved tools | No unapproved third-party AI | Internal code, planning docs, internal communications |
| **Confidential** | Limited | Approved tools only, no cloud-only AI without review | Client code, financial data, employee data |
| **Restricted** | No | Never input to any AI tool | Credentials, passwords, API keys, PII, legal privilege |
Ask via AskUserQuestion: "Does this classification work for your organization, or do you need to modify it? Some orgs need more granularity (e.g., separate 'Client Data' class)."
## Phase 3: Risk Model Articulation
This is the most important phase. The policy's effectiveness depends on people understanding WHY each rule exists.
Ask via AskUserQuestion:
"For your most important AI restrictions — what's the actual risk that drove the decision? I want to explain the reasoning to your team, not just state the rules. For example:
- 'No meeting recorders on client calls' — **Why?** Client meetings may be under legal privilege. A recording could be discoverable in litigation.
- 'No Cursor on blockchain audits' — **Why?** Cursor sends code to third-party servers. Some audit clients prohibit this contractually."
For each major rule from Phases 1-2, document the risk model:
```markdown
### Why: [Rule Description]
**Risk:** [What could go wrong — specific, not vague]
**Likelihood:** [How likely if the rule is broken — Low/Medium/High]
**Impact:** [How bad if it happens — Low/Medium/High/Critical]
**Decision:** [The rule, stated clearly]
**When this applies:** [Specific contexts — so people know when to apply judgment]
```
If HARD-BOUNDARIES.md exists, cross-reference: every agent hard boundary should have a corresponding human-facing explanation. If agents can't do something, humans should understand why.
## Phase 4: Exception Process
Ask via AskUserQuestion:
"How should exceptions to the AI policy work? Key questions:
- **Who can approve?** (Specific role or person — not 'management')
- **How fast?** (Hours or days — slow approvals kill adoption)
- **What's needed?** (What information must the requester provide?)
- **Temporary or permanent?** (Do exceptions expire or stand until revoked?)"
Design the exception process:
```markdown
## Exception Process
### How to Request
1. Describe the specific use case
2. Identify which policy rule you need an exception to
3. Explain why the standard rule doesn't apply
4. Describe what safeguards you'll put in place instead
### Who Approves
- [Role/person] for [category] exceptions
- [Role/person] for [category] exceptions
- Turnaround: [timeframe]
### Exception Types
- **One-time:** Specific task, expires when task is complete
- **Standing:** Ongoing exception for a specific context, reviewed [quarterly/annually]
- **Emergency:** Verbal approval, documented within [24 hours]
### Review Cadence
Standing exceptions are reviewed [quarterly]. ExpiredRelated in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.