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.

Instructions only

Pack contents

  • pack/SKILL.md with trigger metadata and core workflow.
  • worked-example.md with a runnable surface-call example.
  • runnable-check.md with a copy-paste live probe for the platform's pinned demo answers.
  • source-contract.md with canonical docs and leak checks.
  • agents/openai.yaml, claude.yaml, codex.yaml, and perplexity.md host 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.

Allowed

Instructions

Endpoint and auth guidance, canonical doc links, worked cURL examples, and report-writing guardrails.

Forbidden

Surface Logic

No local OneRoster schema map, validation logic, copied enumerations, score rules, or duplicate handling.

Fallback

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

  1. Read the customer website and data dictionary for the resources involved.
  2. Fetch contract.json when complete route coverage matters.
  3. Mint a demo token or use the operator-provided real-tenant JWT.
  4. Build the app, report, or check from live API calls.
  5. Use Idempotency-Key for writes and If-Match from detail-read ETag headers for updates/deletes.
  6. Branch on typed Problem code values and preserve requestId/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.

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.