Platform 1EdTech skill pack

Instructions for agents building against the live TimeBack Platform surface.

A thin SKILL.md-style pack for Codex, Claude, Perplexity, and similar agents. It gives endpoint, auth, provenance, and worked-example guidance while leaving all tenant, audit, idempotency, release-state, and error behavior inside the platform API. This is the Platform Admin module pack, not the global Platform3 skill pack; use the global Platform3 skill pack when you need all surfaces.

Open SKILL.md Run the workflow Install by agent Proof check Manifest Live proof verified 2026-06-22T15:05:17Z

Installable Pack

The installable folder is hosted at /platform/1edtech/skill_pack/pack/. It contains instructions, references, agent UI metadata, and one surface-call proof script. The manifest at /platform/1edtech/skill_pack/skill-pack.json names every file, including the runnable check and create-tenant request body. There are no schema parsers, copied enum tables, local databases, or platform data-processing modules.

export SKILL_PACK_URL="https://platform3-andymontgomery-9773s-projects.vercel.app/platform/1edtech/skill_pack"
export SKILL_DIR="${CODEX_HOME:-$HOME/.codex}/skills/timeback-platform-1edtech"
mkdir -p "$SKILL_DIR/references" "$SKILL_DIR/agents" "$SKILL_DIR/checks"
curl -fsSL "$SKILL_PACK_URL/pack/SKILL.md" -o "$SKILL_DIR/SKILL.md"
curl -fsSL "$SKILL_PACK_URL/pack/references/workflows.md" -o "$SKILL_DIR/references/workflows.md"
curl -fsSL "$SKILL_PACK_URL/pack/references/contract-map.md" -o "$SKILL_DIR/references/contract-map.md"
curl -fsSL "$SKILL_PACK_URL/pack/references/agent-install.md" -o "$SKILL_DIR/references/agent-install.md"
curl -fsSL "$SKILL_PACK_URL/pack/agents/openai.yaml" -o "$SKILL_DIR/agents/openai.yaml"
curl -fsSL "$SKILL_PACK_URL/pack/checks/verify-skill-pack.mjs" -o "$SKILL_DIR/checks/verify-skill-pack.mjs"
curl -fsSL "$SKILL_PACK_URL/skill-pack.json" -o "$SKILL_DIR/skill-pack.json"
node "$SKILL_DIR/checks/verify-skill-pack.mjs"

Five-Minute Agent Install

Install the whole pack/ folder, not just the landing page. Codex uses $CODEX_HOME/skills/timeback-platform-1edtech/; Claude Code uses a workspace or user skill folder named timeback-platform-1edtech/; Perplexity Comet pins this canonical URL and loads SKILL.md plus the references as project instructions.

Demo credentials

Use POST /dev/mint?tenantId=demo. This proves the first workflow without a private token.

Real tenant credentials

Use a TimeBack operator-minted tenant JWT delivered during onboarding. Internal reviewers receive the same shape as PLATFORM_REVIEWER_JWT.

Agent metadata

Load pack/agents/openai.yaml where the agent runtime supports skill-list metadata. It is descriptive only; the contract lives in SKILL.md.

Canonical Sources

Every instruction in the skill points back to the approved platform docs or a live response field.

What The Pack Regenerates

The workflows regenerate three customer-visible shapes from live surface calls only: a readiness report, an admin-console data feed, and a QC evidence bundle. The proof check repeats the same surface path and compares live responses to each other, so correctness is checked against the platform rather than asserted by the pack.

3output shapes: app, report, and deliverable
7documented endpoint families called
5module keys returned by the live registry in the verification run
0surface-owned rules copied into the pack
{
  "base_url": "https://platform3-andymontgomery-9773s-projects.vercel.app/platform/1edtech/implementation/api",
  "module_keys": ["platform", "qti", "oneroster", "caliper", "case"],
  "platform_status": "under_reconciliation",
  "tenant_created": {
    "tenantId_prefix": "demo_eyJhY3RvclJvbGVzIjp",
    "tenantKey": "skill-check-1782140709778",
    "status": "provisioning"
  },
  "tenant_read_matches": true,
  "audit_operations": ["platform.tenants.create"],
  "idempotency": {
    "key": "skill-check-1782140709778",
    "status": "completed",
    "operationId": "platform.tenants.create",
    "responseStatus": 201
  }
}

Runnable Check

The check is not a client library and does not carry saved expected answers. It calls the surface, then verifies that the module list/detail, tenant create/read, audit-log, and idempotency responses agree within the same live run.

export PLATFORM_BASE_URL="${PLATFORM_BASE_URL:-https://platform3-andymontgomery-9773s-projects.vercel.app/platform/1edtech/implementation/api}"
node "$SKILL_DIR/checks/verify-skill-pack.mjs"

The create-tenant request body used by the check is visible without source-diving: {"tenantKey":"$RUN_ID","displayName":"Agent $RUN_ID","metadata":{"source":"timeback-platform-1edtech-skill"}}. See the contract map for field-level provenance.

Agent Guardrails

Surface Calls Only

Apps and reports use the live implementation API for platform domain data. Browser or local state may hold transient UI preferences only.

Opaque Tenant Handles

Agents store and URL-encode tenant ids exactly as returned. Demo handles are not decoded or interpreted.

Exact Errors

RFC 7807 Problem fields are preserved as returned. The pack does not define an alternate error taxonomy.

Source Links Required

Every claim about auth, fields, allowed values, tenant scope, audit, or idempotency cites the hosted docs or a live response.

Minimal Smoke

This short sequence is enough for an agent to confirm credentials, routing, and the module registry before building a larger artifact.

export PLATFORM_BASE_URL="${PLATFORM_BASE_URL:-https://platform3-andymontgomery-9773s-projects.vercel.app/platform/1edtech/implementation/api}"
TOKEN="$(curl -fsS -X POST "$PLATFORM_BASE_URL/dev/mint?tenantId=demo" | jq -r .token)"
curl -fsS "$PLATFORM_BASE_URL/platform/modules" \
  -H "Authorization: Bearer $TOKEN" | jq '{moduleKeys: [.data[].key], statuses: [.data[] | {key, status}]}'