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"
SKILL.md
Trigger metadata, leak guard, credential setup, and output rules.workflows.md
Runnable demo and real-tenant command flows that call the live API.contract-map.md
Endpoint, auth, error, create-tenant body, and data-dictionary provenance links.agent-install.md
Codex, Claude, and Perplexity install paths plus credential handoff.openai.yaml
Human-facing skill list metadata.verify-skill-pack.mjs
Runnable proof that calls the live surface and compares same-run responses.skill-pack.json
Machine-readable install map with file URLs, proof command, and request body contract.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
UsePOST /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 asPLATFORM_REVIEWER_JWT.
Agent metadata
Loadpack/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.
Customer Website
Auth, errors, base URL, and endpoint contracts.Data Dictionary
Shared schema, field meanings, allowed values, and conventions.Architecture
Platform-wide ITDs for auth, tenant routing, errors, privacy, audit, and hosting.Implementation API
Single tenant-scoped live API base for demo and real-tenant workflows.Incept Acceptance
Exact source identity, Platform IDs, item-scoped KCs, Curriculum targets, Content receipts, and runnable preflight.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.
{
"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}]}'