Install
$ agentstack add skill-jjuice22-classroom-ready-ai-skills-ferpa-anonymizer ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
FERPA Anonymizer
Purpose
Strip or replace all FERPA-protected Personally Identifiable Information (PII) from educational documents before they are processed by AI tools, shared with third parties, or used in professional portfolios. Maintain pseudonym consistency so anonymized documents remain coherent and usable for instructional, coaching, or research purposes.
This skill also functions as a live consulting demonstration: running it for district stakeholders shows practical, responsible AI integration in education.
What FERPA Protects — The 18 Education Record Identifiers
Read references/ferpa-identifiers.md for the complete annotated list with K-12 examples. The core categories to detect and replace in every document:
| Category | Examples in School Context | |---|---| | Direct name | Student name, nickname, initials that identify | | Parent/guardian name | "Maria's mom", "Mr. and Mrs. Thompson" | | Address | Home address, neighborhood, school building number | | Date of birth | Full DOB, age when combined with other identifiers | | Phone/email | Student or parent contact info | | Student ID / enrollment number | "ID #40221", "Student #7" in rosters | | Social Security Number | Rare but present in older records | | Biometric data | Photo descriptions, physical descriptors that identify | | Disability / diagnosis | IEP category, 504 plan details, named diagnosis | | Grades / test scores | Named score reports, grade letters tied to student | | School name + student | "John at Eastside Academy" — the combination creates identification | | Dates tied to the student | Specific enrollment dates, intervention start dates | | Geographic sub-unit | Grade, homeroom, specific classroom number |
Workflow
Step 1 — Intake
Determine input type:
- Pasted text: proceed directly to Step 2
- Uploaded file: read it first using the appropriate method:
.docx→ read_file (outline mode).pdf→ read_file (extracts text).xlsx→ read_file with sheet/range.txt→ read_file
Ask the user one clarifying question if not obvious: > "What will this anonymized version be used for — AI tool input, portfolio, > research documentation, or sharing with a vendor?"
This determines how aggressive anonymization needs to be (see Tier table below).
Step 2 — Detect PII
Scan the full document for all 18 identifier categories. Build an internal detection list (never shown to user without their request) mapping each identified PII instance to its replacement. Use this format internally:
DETECTION MAP (internal):
- "Marcus" → "Student A"
- "Ms. Rodriguez" → "Teacher 1"
- "Riverdale" → "[District City]"
- "ID #40221" → "[REDACTED-ID]"
- "dyslexia" → "reading-based learning difference" (if Tier 2+)
Maintain consistency: if "Marcus" appears 14 times, every instance becomes "Student A". If there are multiple students, assign letters alphabetically (Student A, Student B...) in order of first appearance.
Step 3 — Apply Anonymization Tier
| Tier | Use Case | What Gets Replaced | |---|---|---| | Tier 1 — Light | Internal AI tool use only (same institution) | Names, IDs, DOB, contact info | | Tier 2 — Standard | Sharing with AI vendor, portfolio use | Tier 1 + school name, specific dates, classroom numbers | | Tier 3 — Full De-identification | Research, external publication, legal contexts | Tier 2 + disability categories → general descriptors, geographic references, any combination that could re-identify |
Default to Tier 2 unless the user specifies otherwise.
Step 4 — Generate Outputs
Produce three outputs in this order:
Output 1: Anonymized Document
The full document with all PII replaced. Preserve:
- Original formatting and structure
- All instructional/coaching content
- Tone and professional language
- Blank lines, tables, section headers
If the input was a file, write the anonymized version as a new file: [original_filename]_FERPA_safe.[ext]
Output 2: Mapping Key
A clearly labeled reference showing original → replacement for this session.
═══════════════════════════════════════════
FERPA ANONYMIZATION KEY — [Date] — PRIVATE
Do not share. Store locally. Delete after use if not needed.
═══════════════════════════════════════════
Student A → [original name redacted from this display]
Teacher 1 → [original name redacted from this display]
School Ref → [original ref redacted from this display]
...
═══════════════════════════════════════════
Note: This key re-identifies the document. Protect it accordingly.
═══════════════════════════════════════════
Present the mapping key as a separate artifact or file — never embedded inside the anonymized document.
Output 3: Compliance Summary
A brief plain-language note the user can attach to the document or keep on file:
FERPA COMPLIANCE SUMMARY
Anonymization Tier: [1 / 2 / 3]
Date processed: [date]
Original identifiers replaced: [count]
Processing method: AI-assisted de-identification (human review recommended)
Recommended use: [specified use case]
Human review completed: ☐ (check when done)
Step 5 — Flag for Human Review
After producing outputs, always include this notice:
> ⚠️ Human Review Required: AI-assisted de-identification reduces risk but > is not a legal guarantee of FERPA compliance. Review the anonymized document > before sharing externally, especially for Tier 2 and Tier 3 use cases. > Consult your institution's data privacy officer for research or legal contexts.
Special Cases
IEP and Special Education Records
These carry heightened sensitivity under FERPA + IDEA. Apply Tier 3 by default regardless of stated use. Replace:
- Named disability categories with "student with documented learning needs"
- Specific service minutes with "receiving specialized services"
- Evaluator names with "Assessment Specialist 1"
Coaching Observation Notes
Common in JJ's workflow. Key pattern: teacher name + student behaviors observed.
- Replace teacher name with "Observed Teacher"
- Replace any student names mentioned in observations
- Preserve all pedagogical observation language intact
Session Notes (Reading Intervention)
Pattern: student name + performance data + strategy notes.
- Replace name consistently throughout
- Replace specific score numbers only if they uniquely identify (e.g., "the only
student who scored 42 on DIBELS") — otherwise preserve for instructional value
- Keep all strategy and intervention language verbatim
Multi-Student Rosters / Spreadsheets
For .xlsx files with multiple students per row:
- Replace each student's name column with "Student [Row#]"
- Replace ID columns with "[ID-REDACTED]"
- Preserve all data values (scores, dates) unless in Tier 3
- Output as a new
.xlsxfile
Quality Check Before Finalizing
Run this mental checklist before presenting output:
- [ ] No full names remain (first, last, or nickname)
- [ ] No parent/guardian names remain
- [ ] No student ID numbers remain
- [ ] No school-specific building or room numbers (Tier 2+)
- [ ] Pseudonyms are consistent throughout the document
- [ ] Instructional/coaching content is fully preserved
- [ ] Mapping key is in a separate output
- [ ] Compliance summary is included
- [ ] Human review notice is appended
Consulting Demo Mode
If the user says "demo this" or "show this to a district" or "present this workflow", activate Demo Mode:
- Generate a brief fictional sample document with obvious PII (use fictional
names, never real student data)
- Run the full anonymization workflow on it live
- Narrate each step as you execute it
- Conclude with the compliance summary and a one-paragraph explanation of why
this workflow matters for FERPA-compliant AI adoption in schools
Demo Mode is a live consulting asset — use it to show district stakeholders what responsible AI integration looks like in practice.
Reference Files
references/ferpa-identifiers.md— Full annotated list of all 18 FERPA
identifiers with K-12 examples, edge cases, and the "reasonable person" re-identification standard
references/compliance-language.md— Pre-written compliance disclaimers,
data use policy language, and parent notification templates for districts adopting AI tools
Read these when the user has complex compliance questions or needs formal policy language beyond the standard workflow.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: JJuice22
- Source: JJuice22/classroom-ready-ai-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.