archived/skills/osb-drafting/SKILL.md
Generate draft OSB case decisions with IRAC analysis, position variants, and precedent support. Use when preparing case analysis for Oversight Board deliberation.
npx skillsauth add nicsuzor/academicops osb-draftingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
When to invoke: Preparing analysis for Oversight Board case deliberation.
What it provides: Structured case analysis with IRAC reasoning, position variants, precedent mapping.
What it doesn't do: Make final decisions, substitute for Board deliberation, guess at facts not in record.
mcp__osb__search available)Read case announcement - Extract:
Identify applicable policies:
Search OSB jurisprudence using mcp__osb__search:
Retrieve key precedents using mcp__osb__get_case_summary:
Minimum searches per case:
Identify decision points where reasonable Board members could disagree:
Map fault lines for each decision point:
| Dimension | Position A | Position B | | ------------------------------------ | ---------------------- | ------------------------- | | Textualist vs Purposivist | Strict policy text | Harm-based/intent reading | | Speech-protective vs Harm-preventive | Favor expression | Favor safety | | Individual vs Systemic | Case-specific remedy | Policy-level change | | Global vs Contextual | Consistent application | Regional sensitivity |
### Issue: [Precise legal question]
#### Position A (likely [majority/minority]): [Outcome]
**Rule**: [Applicable policy text + IHRL standard]
**Analysis**: [Application to facts]
**Precedent**: [Case citations with relevance]
**Conclusion**: [Why this position prevails under this reading]
#### Position B (likely [minority/majority]): [Outcome]
**Rule**: [Alternative reading or emphasis]
**Analysis**: [Application highlighting different facts]
**Precedent**: [Contrary or distinguishable cases]
**Conclusion**: [Why this position has merit]
#### What determines the split:
- [Key factual/value difference 1]
- [Key factual/value difference 2]
Recommendations must be:
Extract all case citations from draft:
XX-XXXXXXX or XXX-XXXXXXXX)Verify each citation:
For each cited case, always retrieve full document text:
mcp__osb__get_document(record_id, include_full_text=true)
Why full text is required: Summaries are AI-generated abstractions that may not contain exact quoted phrases. Only the full decision text can verify:
| Check | Criteria | Verification Method | | ------------------------- | ---------------------------------------- | ------------------------------------------ | | Case ID exists | Must return valid result | get_document returns content | | Case name matches | Exact or close match | Compare to official title | | Quoted text accurate | Exact phrase in full text | Search for quoted string in document | | Principle attributed | Ratio/reasoning section supports claim | Read legal reasoning | | Recommendation accurate | Matches verbatim recommendation text | Check recommendations section | | Quote originates here | Quote is FROM this case, not cited BY it | Check quote isn't referencing another case |
CRITICAL - Search for each quoted phrase individually:
mcp__osb__search(query="[exact quoted phrase]", n_results=5)
This catches:
Common misattribution pattern: Case A quotes or cites Case B. Draft attributes the quote to Case A. Always check if the quote says "The Board found in [other case]..." or similar - the principle originates from the cited case, not the citing case.
## Citation Verification Report
### VERIFIED ✓
- [Case ID]: [Cited principle] - CONFIRMED at [location in full text]
### NEEDS CORRECTION ✗
- [Case ID]: [Issue description]
- Draft says: "[quoted text]"
- Actual text: "[exact text from full document]"
- Fix: [correction]
Note: There should be NO "UNVERIFIABLE" category. All citations must be verified against full document text. If OSB MCP is unavailable, HALT per AXIOMS fail-fast principle.
Common error types:
Common tensions to evaluate in every case:
Apply international standards consistently:
# [Case Title] - Draft Analysis
## Summary
[2-3 sentence overview]
## Facts
[Key facts from record]
## Procedural History
[Reports, reviews, appeals, Meta's position]
## Applicable Policies
- Primary: [Policy name and text]
- Secondary: [Related policies]
## Issue 1: [First major question]
[Full IRAC with position variants per Phase 4]
## Issue 2: [Second major question]
[Full IRAC with position variants]
[Continue for each issue]
## Recommendations
1. [Recommendation with precedent support]
2. [Recommendation with precedent support]
## Precedent Map
| Case | Relevance | Key Principle |
| ---- | --------- | ------------- |
| [ID] | [Topic] | [Holding] |
Before finalizing draft:
Avoid:
tools
Streamlit implementation of the analyst presentation layer. Use when building or updating a Streamlit dashboard that displays pre-computed research data. This is the Streamlit-specific HOW for the tech-agnostic principles in the aops-tools analyst skill — display only, never transform.
tools
Python plotting and statistical-modelling libraries (matplotlib, seaborn, statsmodels) for the analyst presentation and statistical-methodology layers. Use when producing publication-quality figures or fitting statistical models in Python. Library-specific HOW for the tech-agnostic principles in the aops-tools analyst skill.
tools
dbt (data build tool) implementation of the analyst transformation layer. Use when a project has a dbt/ directory or you need to build, test, or document SQL transformations as version-controlled, reproducible dbt models. This is the dbt-specific HOW for the tech-agnostic principles in the aops-tools analyst skill.
development
Core academicOps skill — institutional memory, strategic coordination, workflow routing, and framework governance. Merges butler (chief-of-staff) with framework development conventions.