oneroster-csv-validator
Lets your agent validate OneRoster CSV files for schools. It checks if the data is correct and in the right format for educational systems.
What it does
This agent checks if your student roster files (CSV format) are correct before sending them to systems like Clever or ClassLink. It ensures all information is linked properly and the format follows the OneRoster standard.
When to use it
- ✓When the Clever system rejects your student file.
- ✓To check for linking errors between students and classes.
- ✓Before sending the data to ensure there will be no problems.
Example of what to ask your AI
“Validate my OneRoster student file.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
The agent compares the different CSV files that make up the student roster. It checks if student, teacher, and class IDs are correct and if the files follow the OneRoster standard rules.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add sickn33/agentic-awesome-skills --skill oneroster-csv-validatorOr download just the file:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/oneroster-csv-validator/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
OneRoster CSV Validator: Strict 1EdTech Data Integrity & Pre-Flight Linter
Perform rigorous pre-flight validation on OneRoster v1.1 and v1.2 CSV roster bundles prior to SIS/Clever/ClassLink ingestion: audit foreign key referential integrity, eliminate orphan enrollments, enforce bulk vs delta partitioning, and sanitize encoding traps.
When to Use This Skill
Activate this skill when:
- Validating or debugging student information system (SIS) roster export packages (
.ziparchives or CSV directories) for OneRoster v1.1 or v1.2 compliance. - The user asks: "Why is Clever rejecting our OneRoster zip file?", "Check for orphaned userSourcedIds in enrollments.csv", "Validate bulk vs delta mode in OneRoster CSVs", or "Sanitize UTF-8 BOM characters from school rosters".
- Auditing relational integrity across
manifest.csv,orgs.csv,users.csv,courses.csv,classes.csv,enrollments.csv, andacademicSessions.csv. - Preparing automated pre-flight CI/CD pipelines to catch corrupted student or teacher records before nightly SIS sync runs.
Do NOT use this skill when:
- Integrating OneRoster REST / OAuth 2.0 API endpoints (this skill focuses strictly on CSV table bindings).
- Generating synthetic or fabricated student PII without authorization.
- Working on generic non-standard CSV spreadsheets that do not follow 1EdTech specifications.
Core Mental Models & Non-Negotiable Rules
The Manifest Root Authority Law:
manifest.csvMUST reside strictly at the root level of the ZIP archive (never nested inside a subfolder).- It MUST declare the exact specification version:
oneroster.version,1.1oroneroster.version,1.2. - It MUST list every single file present in the exchange. If a CSV file is present in the archive but omitted from
manifest.csv, or listed inmanifest.csvbut missing from the zip, the package is rejected.
The Strict Bulk vs Delta Partition:
- One exchange bundle = strictly ONE operational mode.
- Bulk Exchange Mode: Represents a complete master snapshot. In OneRoster 1.1, rows MUST NOT contain
dateLastModifiedorstatuscolumns. In 1.2, all status fields MUST beactive. - Delta Exchange Mode: Represents incremental changes. Every row MUST contain a valid ISO 8601 UTC timestamp (
YYYY-MM-DDTHH:MM:SS.sssZ) indateLastModifiedand a valid status (activeortobedeleted). - Mixing bulk and delta formats within the same archive is a fatal validation failure.
The Foreign Key Referential Integrity Hierarchy:
- Relational dependency chain: $$\mathbf{orgs.csv} \longleftarrow \mathbf{courses.csv} \longleftarrow \mathbf{classes.csv} \longleftarrow \mathbf{enrollments.csv} \longrightarrow \mathbf{users.csv}$$
- Every
schoolSourcedIdinusers.csvandclasses.csvMUST resolve to an existingsourcedIdinorgs.csv. - Every
courseSourcedIdinclasses.csvMUST resolve tocourses.csv. - Every
userSourcedIdandclassSourcedIdinenrollments.csvMUST resolve to active primary keys inusers.csvandclasses.csv. - Zero Orphan Tolerance: A single orphan link (e.g. enrolling a deleted student ID) invalidates the batch.
Strict Role Enum Constraint Axioms:
- In
users.csv:roleMUST strictly match the OneRoster enum:- v1.1:
administrator,proctor,student,teacher. - v1.2: adds
aide,guardian,parent,staff.
- v1.1:
- In
enrollments.csv:roleis strictly constrained toadministrator,proctor,student,teacher. Custom vendor roles (substitute,dean) must be mapped to valid specification enums. - Primary
sourcedIdvalues MUST be case-sensitively unique strings (RFC 4122 UUID format strongly recommended).
- In
RFC 4180 CSV & UTF-8 BOM Sanitization:
- Files MUST be encoded in UTF-8 without Byte Order Mark (BOM).
- Microsoft Excel frequently prepends
\xEF\xBB\xBFto CSV exports, corrupting the first column name (sourcedId$\neq$sourcedId). - Fields containing commas, double-quotes, or newlines MUST be enclosed in double quotes (
"). Literal quotes inside fields must be escaped as"".
Named Sins & Anti-Patterns (Что категорически ЗАПРЕЩЕНО)
| Anti-Pattern | Manifestation in CSV Packages | Mandatory Production Counter-Rule |
|---|---|---|
| Nested Archive Packaging | Zipping a parent folder (district_roster/manifest.csv). |
Manifest and CSVs MUST reside at the archive root (/manifest.csv). |
…
FAQ
What is the OneRoster standard?
It's a standard format for exchanging student information between different school systems.
What are 'orphan files'?
These are pieces of information that are not correctly linked to an existing student or class.
Why does the file need to be UTF-8 without BOM?
It's a text encoding standard that prevents issues with reading special characters and ensures column names are recognized correctly.
Details
Original description by the author
Validates 1EdTech / IMS Global OneRoster v1.1 and v1.2 CSV roster sets: manifest integrity, bulk vs delta strictness, foreign key references, and encoding sanitization. Trigger phrases: oneroster csv validator, validate oneroster zip, clever roster error, oneroster sourcedid.
Popularity
- GitHub stars
- 48k
- Ranking position
- #3758
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
00-andruia-consultant
Helps your agent start or improve AI projects. It analyzes code, suggests tools, and creates action plans in Spanish.
sickn33/agentic-awesome-skills
007
Lets your agent perform security audits and threat modeling. It's useful for protecting projects against attacks and vulnerabilities.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Helps your agent create or improve AI tools. It defines how tools work, writes documentation, and validates the structure.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Lets your agent create a summary about a specific industry. It's useful for understanding the context, rules, usage patterns, and risks of a project, using reliable sources.
sickn33/agentic-awesome-skills
Similar skills
data-throughput-accelerator
Makes your agent speed up the movement of large data volumes. It finds bottlenecks and ensures data is transferred quickly and correctly.
affaan-m/ECC
inventory-demand-planning
Helps your agent predict product demand in stores. It optimizes stock and plans when to run promotions to sell more.
affaan-m/ECC
market-research
Helps your agent conduct market research and competitive analysis. Provides summaries with source attribution.
affaan-m/ECC