Skill pack deliverable
Build OneRoster apps and reports from live surface calls only.
Install this pack into Claude Code, Codex CLI, or Perplexity Computer, hand the agent a demo token or real tenant JWT, and have it build a roster dashboard, enrollment audit, or grade-evidence report without embedding OneRoster logic.
Install
Choose the host your agent runs in. Each install copies the same instructions-only pack: SKILL.md, reference files, and host metadata. The pack has no executable implementation scripts and no generated data-processing code; runnable-check.md is a copy-paste live probe.
export PACK_URL="https://platform3-andymontgomery-9773s-projects.vercel.app/oneroster/1edtech/skill_pack"
After install, give the agent these credentials for demo work:
export ONEROSTER_BASE_URL="https://platform3-andymontgomery-9773s-projects.vercel.app/oneroster/1edtech/implementation/api"
export ONEROSTER_DEMO_JWT="$(curl -fsS -X POST "$ONEROSTER_BASE_URL/dev/mint?tenantId=demo" | jq -r '.token')"
For real tenants, keep the same ONEROSTER_BASE_URL and provide the operator-minted ONEROSTER_REVIEWER_JWT or customer tenant JWT. Do not expose a real-tenant mint endpoint.
Pack contents
pack/SKILL.mdwith trigger metadata and core workflow.worked-example.mdwith a runnable surface-call example.runnable-check.mdwith a copy-paste live probe for the platform's pinned demo answers.source-contract.mdwith canonical docs and leak checks.agents/openai.yaml,claude.yaml,codex.yaml, andperplexity.mdhost metadata.
Claude Code Install
Use a user-level Claude Code skill directory when you want the pack available across projects. Use .claude/skills/timeback-oneroster-1edtech/ inside a workspace when the tenant credentials and generated artifacts should stay project-scoped.
export PACK_URL="https://platform3-andymontgomery-9773s-projects.vercel.app/oneroster/1edtech/skill_pack"
export CLAUDE_SKILL_DIR="${CLAUDE_SKILL_DIR:-$HOME/.claude/skills/timeback-oneroster-1edtech}"
mkdir -p "$CLAUDE_SKILL_DIR/references" "$CLAUDE_SKILL_DIR/agents"
curl -fsS "$PACK_URL/pack/SKILL.md" -o "$CLAUDE_SKILL_DIR/SKILL.md"
curl -fsS "$PACK_URL/pack/references/worked-example.md" -o "$CLAUDE_SKILL_DIR/references/worked-example.md"
curl -fsS "$PACK_URL/pack/references/runnable-check.md" -o "$CLAUDE_SKILL_DIR/references/runnable-check.md"
curl -fsS "$PACK_URL/pack/references/source-contract.md" -o "$CLAUDE_SKILL_DIR/references/source-contract.md"
curl -fsS "$PACK_URL/pack/agents/claude.yaml" -o "$CLAUDE_SKILL_DIR/agents/claude.yaml"
Then start Claude Code in the project where it should build the artifact and prompt: Use the timeback-oneroster-1edtech skill. Build a roster-import dashboard for tenantId=demo using ONEROSTER_BASE_URL and ONEROSTER_DEMO_JWT.
Codex CLI Install
Codex reads user skills from $CODEX_HOME/skills/; if CODEX_HOME is unset, use ~/.codex/skills/. The same files can also be copied into a workspace skill folder when a project has its own skill loader.
export PACK_URL="https://platform3-andymontgomery-9773s-projects.vercel.app/oneroster/1edtech/skill_pack"
export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
export CODEX_SKILL_DIR="$CODEX_HOME/skills/timeback-oneroster-1edtech"
mkdir -p "$CODEX_SKILL_DIR/references" "$CODEX_SKILL_DIR/agents"
curl -fsS "$PACK_URL/pack/SKILL.md" -o "$CODEX_SKILL_DIR/SKILL.md"
curl -fsS "$PACK_URL/pack/references/worked-example.md" -o "$CODEX_SKILL_DIR/references/worked-example.md"
curl -fsS "$PACK_URL/pack/references/runnable-check.md" -o "$CODEX_SKILL_DIR/references/runnable-check.md"
curl -fsS "$PACK_URL/pack/references/source-contract.md" -o "$CODEX_SKILL_DIR/references/source-contract.md"
curl -fsS "$PACK_URL/pack/agents/openai.yaml" -o "$CODEX_SKILL_DIR/agents/openai.yaml"
curl -fsS "$PACK_URL/pack/agents/codex.yaml" -o "$CODEX_SKILL_DIR/agents/codex.yaml"
Then run Codex from the app workspace with ONEROSTER_BASE_URL plus either ONEROSTER_DEMO_JWT or ONEROSTER_REVIEWER_JWT in the environment.
Perplexity Computer Install
Perplexity Computer does not expose the same filesystem skill loader as Claude Code or Codex in this repo, so use the explicit import workaround: download the pack into a local folder, upload or attach the three markdown files to the Perplexity Computer project, then paste the first paragraph of SKILL.md as the project instruction.
export PACK_URL="https://platform3-andymontgomery-9773s-projects.vercel.app/oneroster/1edtech/skill_pack"
export PERPLEXITY_PACK_DIR="$HOME/perplexity-computer/skills/timeback-oneroster-1edtech"
mkdir -p "$PERPLEXITY_PACK_DIR/references" "$PERPLEXITY_PACK_DIR/agents"
curl -fsS "$PACK_URL/pack/SKILL.md" -o "$PERPLEXITY_PACK_DIR/SKILL.md"
curl -fsS "$PACK_URL/pack/references/worked-example.md" -o "$PERPLEXITY_PACK_DIR/references/worked-example.md"
curl -fsS "$PACK_URL/pack/references/runnable-check.md" -o "$PERPLEXITY_PACK_DIR/references/runnable-check.md"
curl -fsS "$PACK_URL/pack/references/source-contract.md" -o "$PERPLEXITY_PACK_DIR/references/source-contract.md"
curl -fsS "$PACK_URL/pack/agents/perplexity.md" -o "$PERPLEXITY_PACK_DIR/agents/perplexity.md"
In the Perplexity Computer task, attach that folder and prompt: Use the attached TimeBack OneRoster 1EdTech skill pack. Build a class-enrollment audit report from live surface calls only.
Logic Boundary
The pack is valuable because it reduces agent uncertainty without becoming a shadow implementation. It does not include schema parsers, allowed-value tables, dependency matrices, score-scale rules, duplicate detection, tenant-routing logic, ETag calculation, idempotency replay, or PII redaction rules.
Instructions
Endpoint and auth guidance, canonical doc links, worked cURL examples, and report-writing guardrails.
Surface Logic
No local OneRoster schema map, validation logic, copied enumerations, score rules, or duplicate handling.
Leak Check
If a task needs forbidden logic, the skill tells the agent to stop and identify the surface capability that should own it.
Agent Workflow
- Read the customer website and data dictionary for the resources involved.
- Fetch
contract.jsonwhen complete route coverage matters. - Mint a demo token or use the operator-provided real-tenant JWT.
- Build the app, report, or check from live API calls.
- Use
Idempotency-Keyfor writes andIf-Matchfrom detail-readETagheaders for updates/deletes. - Branch on typed Problem
codevalues and preserverequestId/traceId.
Demo credential
export ONEROSTER_BASE_URL="https://platform3-andymontgomery-9773s-projects.vercel.app/oneroster/1edtech/implementation/api"
export ONEROSTER_DEMO_JWT="$(curl -fsS -X POST "$ONEROSTER_BASE_URL/dev/mint?tenantId=demo" | jq -r '.token')"
curl -fsS "$ONEROSTER_BASE_URL/classes" -H "Authorization: Bearer $ONEROSTER_DEMO_JWT"
Worked Example
The bundled example regenerates a roster and grade-evidence report from the live demo tenant. It calls the surface for a known school, class, student, enrollment, line item, result, grading period, and CSV export.
| Call | Observed proof |
|---|---|
GET /orgs/school-north-valley |
North Valley High School |
GET /classes/class-algebra-1-a |
Algebra I - Section A |
GET /users/student-maya-johnson |
Username maya.johnson |
GET /enrollments/enrollment-maya-algebra-1-a |
Links Maya to Algebra I with role student |
GET /lineItems/lineitem-algebra-quiz-1 |
Algebra Quiz 1 |
GET /results/result-maya-algebra-quiz-1 |
Score 92 |
POST /exports/csv |
Batch id starts orbatch_, 22 files, includes manifest.csv |
Live verification on 2026-06-10T21:15:51Z confirmed demo token minting, detail reads, sub-collections, and export through the canonical implementation URL. The demo tenant is writable, so the example uses direct stable IDs instead of relying on collection ordering.
Canonical Sources
Every instruction in the pack points back to approved hosted artifacts rather than memorized OneRoster behavior.
Artifacts
| Path | Purpose |
|---|---|
/pack/SKILL.md |
Installable skill manifest and core instructions. |
/pack/references/worked-example.md |
Surface-call-only demo workflow and expected report. |
/pack/references/runnable-check.md |
Copy-paste live probe that checks the surface's pinned demo answers. |
/pack/references/source-contract.md |
Canonical docs, route guidance, Problem handling, and leak check. |
/pack/agents/openai.yaml |
OpenAI/Codex-compatible agent UI metadata. |
/pack/agents/claude.yaml |
Claude Code install metadata and skill-directory pointer. |
/pack/agents/codex.yaml |
Codex CLI install metadata and CODEX_HOME destination. |
/pack/agents/perplexity.md |
Perplexity Computer import workaround and prompt wrapper. |
/skill-pack.json |
Machine-readable manifest for hosting and install references. |