TimeBack Platform | Results Alpha | Skill Pack

Regenerate outcomes reports from the live Results surface.

An installable instructions-only pack for AI agents building reports, apps, reconciliation checks, and QA probes against Results Alpha. It teaches agents to call report-ready endpoints and state endpoints for the per-student Learning Report, test-result hierarchy, AI grading audit, time commitment, XP goal/progress evidence, MAP translations, legacy R90 norm-point fixtures, and group Growth X instead of moving norms tables, dedupe rules, grader-log scraping, growth formulas, task ranking, XP formulas, XP-goal projection math, content-effectiveness counters, or mastery math into client code. GOALS grade2RIT/R90 comes from NWEAMAP or Analytics.

Installable Pack

The hosted pack is mirrored locally under OUT_DIR/pack. The installable pack has no scripts directory and no bundled data tables; its only executable is a verifier that calls the live surface and compares surface-returned answers.

Main instructions

pack/SKILL.md contains trigger metadata, first actions, API perimeter, non-negotiables, and common build pattern.

Focused references

Load only what the job needs: canonical surface, report recipes, worked example, runnable check, or leak check.

Agent metadata

agents/openai.yaml supplies UI-facing display text and a default prompt for OpenAI-style skill lists.

Packaged verifier

checks/verify-skill-pack.mjs proves the pack by calling Results and comparing report metadata to surface answer keys.

# Claude Code personal install
mkdir -p ~/.claude/skills/timeback-results-alpha/references ~/.claude/skills/timeback-results-alpha/agents ~/.claude/skills/timeback-results-alpha/checks
curl -fsS https://platform3-andymontgomery-9773s-projects.vercel.app/results/alpha/skill_pack/pack/SKILL.md -o ~/.claude/skills/timeback-results-alpha/SKILL.md
curl -fsS https://platform3-andymontgomery-9773s-projects.vercel.app/results/alpha/skill_pack/pack/agents/openai.yaml -o ~/.claude/skills/timeback-results-alpha/agents/openai.yaml
curl -fsS https://platform3-andymontgomery-9773s-projects.vercel.app/results/alpha/skill_pack/pack/checks/verify-skill-pack.mjs -o ~/.claude/skills/timeback-results-alpha/checks/verify-skill-pack.mjs
for file in canonical-surface report-recipes worked-example runnable-check leak-check; do
  curl -fsS https://platform3-andymontgomery-9773s-projects.vercel.app/results/alpha/skill_pack/pack/references/$file.md -o ~/.claude/skills/timeback-results-alpha/references/$file.md
done

# Codex personal install
mkdir -p ~/.codex/skills/timeback-results-alpha
cp -R ~/.claude/skills/timeback-results-alpha/* ~/.codex/skills/timeback-results-alpha/

The command name comes from the skill directory. Keep the directory name timeback-results-alpha.

Poll Cadence And Backoff

Results Alpha is poll-only today. There is no outbound webhook, SSE, push, or Platform notifications module. Use modifiedSince, returned opaque cursors, and typed filters.

Foreground

Poll visible result cards and XP counters every 15 seconds.

Background

Use 60 seconds for background views and 5 minutes while idle.

Post-write

Read immediately, then after 2, 5, and 10 seconds; stop after 30 seconds.

Backoff

For network failures, 429, and 5xx, back off to 15, 30, 60, 120, then 300 seconds with 10–20 percent jitter.

Drain cursors before advancing the high-watermark and de-duplicate replayed rows by returned row id.

Skill Craftsmanship

This pack is built to the Stripe Agent Toolkit bar for API-agent ergonomics: installable guidance, clear credential handling, live API calls, worked examples, and a runnable verifier. It is packaged as a concise SKILL.md with YAML frontmatter plus supporting files that load only when the job needs them.

Frontmatter

SKILL.md declares name and a description that names both trigger jobs and anti-trigger jobs.

Progressive disclosure

Detailed endpoint, report, runnable-check, and leak-check guidance lives under pack/references/.

Benchmark

Stripe Agent Toolkit is the external reference for an installable AI-agent pack that builds against a live platform API instead of redoing platform work.

Canonical Inputs

The pack is grounded in approved hosted artifacts and the live implementation descriptor.

ArtifactURLUse In Pack
Architecturehttps://platform3-andymontgomery-9773s-projects.vercel.app/results/alpha/architectureITDs, module boundary, alias map, and report-ready skill-pack gate.
Data dictionaryhttps://platform3-andymontgomery-9773s-projects.vercel.app/results/alpha/data_dictionaryField meanings, Alpha change provenance, and table boundaries.
Customer websitehttps://platform3-andymontgomery-9773s-projects.vercel.app/results/alpha/customer_websiteEndpoint catalog, auth, quickstart, and published contract.
Implementationhttps://platform3-andymontgomery-9773s-projects.vercel.app/results/alpha/implementation/apiLive API the pack calls.
Surface QChttps://platform3-andymontgomery-9773s-projects.vercel.app/results/alpha/surface_qcApproved whole-surface checks and live probe evidence.
Integrationhttps://platform3-andymontgomery-9773s-projects.vercel.app/results/alpha/integrationProof app and build log that this surface supports real downstream work.

What It Regenerates

The recipes call report-ready Results endpoints. The client renders rows and charts; it does not compute report cells.

Learning Report

Placement and progress, course completion, MAP results, grade levels mastered, XP goal/progress evidence, time commitment, and accuracy.

MAP reports

Quadrants, retake audit, growth over time, norms isolation, growth breakdown, group Growth X, percentile/RIT translation, legacy R90 norm-point fixtures, and student-progress animation.

Student state

Student outcomes, four-state KC state, track state, next task, MAP scores, goal strands, growth windows, working grade, mastery-pure grades mastered YTD, explicitly non-grades-mastered MAP placement delta, and report cards.

XP and effectiveness

XP ledger rows, returned growth-window goal fields, and Results-derived content effectiveness rollups are displayed from the surface; no client computes awards, goal projections, or counters.

Loop proof

Closed-loop reconciliation and answer-key rows prove the pack asks the platform correctly; the runnable check compares against the surface, not a hardcoded hash.

Current live probe: the Results descriptor returns module=results, surface=alpha, and 53 advertised endpoint entries. MAP Quadrants under 2025 norms returns answer-key-verifiable rows. The live state probes also return test-result component rows, AI grading audit rows with model/prompt provenance, percentile/RIT translation rows, legacy R90 norm-point fixture rows, group Growth X, four KC state fields, student track state, one next-task object, an XP ledger row, growth-window goal fields, a minutes time-commitment row, and content-effectiveness counters owned by Results. GOALS grade2RIT/R90 is owned by NWEAMAP.

No-Leak Gate

The installable pack contains instructions, examples, and one verifier that only performs HTTP assertions against surface-owned answer keys. It contains no data-processing code, report formulas, copied norms, or enum tables.

No norms table or 2020/2025 lookup.
No MAP sitting dedupe or test-of-record selector.
No growth-window column switch statements.
No term-string parsing.
No Growth X, group Growth X, percentile/RIT, R90, effective-grade, working-grade, named grade-movement, or 99-levels formula.
No blended mastery state, mastery decay, or report-card rollup math.
No track-definition copy or next-task ranking.
No test-result JSON parser.
No XP award formula, XP-goal projection math, or content-effectiveness counter update.
No closed-loop reconciliation reconstruction or local time aggregation.
No private database or implementation-source dependency.
If any app built with this pack needs one of those behaviors, the correct answer is a Results surface gap, not a client workaround.

SKILL.md Preview

---
name: timeback-results-alpha
description: Use when building apps, reports, QA probes, migration checks, or deliverables against the TimeBack platform3 Results Alpha surface. Covers settled outcomes, test-result hierarchy, AI grading audit, MAP scores, Learning Report sections, group Growth X, percentile/RIT and R90 reads, academic records/transcripts, report cards, gate passes, working grade, mastery-pure grades mastered YTD, explicitly non-grades-mastered MAP placement delta, four-state KC state, track state, next-task decisions, XP ledger, and content effectiveness by calling the live surface only. Do not use for generic MAP analysis, direct NWEA CDF processing, OneRoster/QTI/Events/Content/People/Curriculum jobs, direct database access, private grader-log scraping, or local norms, dedupe, growth math, mastery decay, task ranking, XP math, content counters, reconciliation, or transcript source-precedence logic.
---

# TimeBack Results Alpha

Use this skill when the user asks for a working app, report, integration proof, QA probe, migration reconciliation, or customer deliverable that uses the TimeBack platform3 Results Alpha surface.

Do not use it for generic MAP analysis, direct NWEA CDF processing, OneRoster gradebook work, QTI scoring, Events, Content, People & Orgs, Curriculum, or direct database access.

## Results In 60 Seconds

Results is the record plus the student's knowledge graph. It holds settled, durable statements about how one specific student is doing.

Core Results objects:

- `result_record`: settled outcome for one student on one work item or assessment.
- QTI-backed `result_record` rows preserve `qti_attempt_id` plus typed administration, delivery-session, QTI test/version, Content `test_spec`, and `test_kind` references. Use the exact `qtiAttemptId` read for AttemptReport/mastery-gate work.
- `test_result_component`: first-class test, section, part, and question_response rows for a stored test result. The client never parses `canonical_response` JSON to rebuild the hierarchy.
- `missed-item-kc-attribution`: result-scoped incorrect question responses joined at read time to Content-owned active `content_kc_tag` rows. Missing item links stay explicit; the client never substitutes the entire gate scope.
- `ai_grading_audit`: model, prompt hash, revision, status, and override audit rows for overall and question-level AI feedback. The client never scrapes private grader logs or result JSON for AI provenance.
- `student_kc_state`: per-student KC state with four separate fields: `initial_mastery`, `current_retention`, `durable_mastery`, and `fluency_state`. The client never blends them.
- `student_track_state`: one student's current track, track level, segment, placement evidence, status, and switch history. The client never copies Curriculum track definitions.
- `next_task`: the surface-selected typed task ref for what a student should do next. Apps render it; they never rank lessons, reviews, practice, or gate retries.
- `xp_ledger`: immutable awarded-XP history. Results computes awards, discounts, penalties, and reversals; apps display rows.
- `content_effectiveness`: Results-derived rollup for Content items with `validated_by_count`, `failed_by_count`, and `effectiveness_rate`. Apps never increment counters.
- `map_score`: current MAP test-of-record score keyed by TimeBack student id.
- `map_sitting`: ordinary reads return the selected sitting without source/deletion evidence; `sittingScope=all` requires ordinary read authority plus the exact `results:audit` scope and returns bounded audit fields. Roles and `results:*` do not substitute.
- `map_goal_strand`: clean per-strand MAP rows. The client never unpivots Goal1..Goal5 columns.
- `map_growth_window`: typed observed/projected growth row with surface-owned Growth X fields.
- `map_percentile_translation`: surface-owned percentile-to-RIT and RIT-to-percentile translations using the requested norms set.
- `map_r90_norm_point`: legacy Results MAP report fixture rows. These are not the GOALS RIT->grade source; for grade2RIT/R90 use the skill-seeded NWEAMAP master directly or through the Analytics mirror. The client never ships a local R90 table.
- `report_group_growth_x`: group Growth X report that averages each student's ratio on the surface. The client never divides total observed by total projected.
- `working_grade` and `advancement`: the grade-movement read model. For grades mastered, call `/grades-mastered` and read mastery-pure `grades_mastered_sytd`. `map_baseline_grade_delta_not_grades_mastered` is placement/reporting context only. `/advancement` and `advancement_value` are deprecated aliases to `grades_mastered_sytd` only.
- `academic_record_view`, `course_transcript_view`, `course_grade_view`, and `transcript_result_view`: read-only settled transcript facts. The client never parses Ed-Fi payload JSON or resolves source precedence.
- `report_card_entry` and `gate_pass`: durable report statements and mastery-gate decisions.
- `report_*` views: report-ready rows for MAP quadrants, retake audit, growth over time, norms isolation, growth breakdown, student-progress animation, closed-loop reconciliation, Learning Report proof rows, and answer keys.

Boundary rule: Events records moments, Content holds blank instruments, Curriculum holds the shared graph, and Results holds settled outcomes plus the per-student mastery overlay. Mastery is never a field on the student record.

`grading_stage` is a row-level field, not a distinct-value summary. When reporting an AI grading revision history, preserve one entry per returned audit row and keep repeated stage values: an original overall row and its human-override revision are two separate `overall` entries. Use `ai_grading_audit_id`, `grading_status`, `revision_number`, and `supersedes_ai_grading_audit_id` to prove the chain; never deduplicate audit rows by stage.

## First Actions

1. Open the canonical docs before making claims:
   - Customer website: https://platform3-andymontgomery-9773s-projects.vercel.app/results/alpha/customer_website
   - Data dictionary: https://platform3-andymontgomery-9773s-projects.vercel.app/results/alpha/data_dictionary
   - Architecture decisions: https://platform3-andymontgomery-9773s-projects.vercel.app/results/alpha/architecture
   - Implementation API: https://platform3-andymontgomery-9773s-projects.vercel.app/results/alpha/implementation/api
   - Surface QC: https://platform3-andymontgomery-9773s-projects.vercel.app/results/alpha/surface_qc
   - Integration proof: https://platform3-andymontgomery-9773s-projects.vercel.app/results/alpha/integration
2. Use `RESULTS_BASE_URL` if credentials supply it. Otherwise use:
   `https://platform3-andymontgomery-9773s-projects.vercel.app/results/alpha/implementation/api`
3. Choose the credential path:
   - Demo: call `POST $RESULTS_BASE_URL/dev/mint?tenantId=demo`, then use the returned bearer token.
   - Real or reviewer tenant: use the operator-supplied bearer token such as `RESULTS_REVIEWER_JWT`. Never print or commit tokens.
4. Read the descriptor by calling the base URL exactly as configured: `curl "$RESULTS_BASE_URL"`. Do not add a trailing slash to the base implementation URL.
5. For freshness, use `modifiedSince` plus returned cursors with the cadence in `references/canonical-surface.md#poll-cadence-and-backoff`. Results Alpha has no webhook, SSE, push, or notifications subscription surface today.
6. For the per-student Learning Report (placement and progress, course completion, MAP results, grade levels mastered, XP goals, time commitment, and accuracy), MAP Quadrants, retakes, growth-over-time, norms-isolation, growth-breakdown, group Growth X, percentile/RIT translation, legacy R90 norm-point fixtures, student-progress-animation, closed-loop reports, XP goal/progress evidence, four-state KC state, track state, next task, XP ledger, or content effectiveness, read `references/report-recipes.md` and call the report-ready endpoints. For GOALS RIT->grade, use the skill-seeded NWEAMAP R90 surface or Analytics mirror, not Results fixtures. Do not compute report cells, goal projections, time totals, XP awards, MAP translations, or student state.
7. To prove the pack is asking the platform correctly, run `node checks/verify-skill-pack.mjs` or read `references/runnable-check.md` and run the answer-key comparison.
8. Before final output, read `references/leak-check.md` and confirm the binary leak check passes.

## Happy Path: Regenerate MAP Reports

```sh
export RESULTS_BASE_URL="${RESULTS_BASE_URL:-https://platform3-andymontgomery-9773s-projects.vercel.app/results/alpha/implementation/api}"
export RESULTS_TOKEN="${RESULTS_TOKEN:-$(curl -fsS -X POST "$RESULTS_BASE_URL/dev/mint?tenantId=demo" | jq -r '.token')}"
export COMMON="subject=math&canonicalTermId=term_2025_26_spring&growthWindow=fall_to_spring&normsSet=2025"

curl -fsS "$RESULTS_BASE_URL/alpha/results/v1/reports/map-quadrants?$COMMON" \
  -H "Authorization: Bearer $RESULTS_TOKEN" | jq '{count,hash:.meta.resultHash,data:.data}'

curl -fsS "$RESULTS_BASE_URL/alpha/results/v1/reports/answer-key?normsSet=2025" \
  -H "Authorization: Bearer $RESULTS_TOKEN" | jq '.data[] | select(.example_id=="map_quadrants_2025_math_demo")'
```

To rerun under 2020 norms, change only `normsSet=2020`. Do not switch columns, parse terms, or load a norms table.

## API Perimeter

The root descriptor is the configured base URL with no extra path, for example `curl "$RESULTS_BASE_URL"`. The live descriptor currently advertises 53 endpoint entries, verified from `descriptor.body.endpoints.length`:

```text
POST /dev/mint?tenantId=demo
GET  /alpha/results/v1/result-records
GET  /alpha/results/v1/result-records/{resultRecordId}
GET  /alpha/results/v1/test-result-components
GET  /alpha/results/v1/missed-item-kc-attribution?resultRecordId={resultRecordId}
GET  /alpha/results/v1/ai-grading-audit
GET  /alpha/results/v1/students/{studentId}/results
GET  /alpha/results/v1/students/{studentId}/test-result-components
GET  /alpha/results/v1/students/{studentId}/ai-grading-audit
GET  /alpha/results/v1/assessment-finalizations
GET  /alpha/results/v1/students/{studentId}/assessment-finalizations
GET  /alpha/results/v1/students/{studentId}/kc-state
GET  /alpha/results/v1/students/{studentId}/track-state
GET  /alpha/results/v1/next-task
GET  /alpha/results/v1/students/{studentId}/xp-ledger
GET  /alpha/results/v1/content-effectiveness
GET  /alpha/results/v1/item-calibrations
GET  /alpha/results/v1/source-adapters
GET  /alpha/results/v1/policy-config
GET  /alpha/results/v1/academic-records
GET  /alpha/results/v1/course-transcripts
GET  /alpha/results/v1/course-grades
GET  /alpha/results/v1/transcript-results
GET  /alpha/results/v1/students/{studentId}/map-scores
GET  /alpha/results/v1/students/{studentId}/map-sittings
GET  /alpha/results/v1/students/{studentId}/current-map
GET  /alpha/results/v1/students/{studentId}/map-goal-strands
GET  /alpha/results/v1/students/{studentId}/growth-windows
GET  /alpha/results/v1/map-percentile-translations
GET  /alpha/results/v1/map-r90-norm-points
GET  /alpha/results/v1/students/{studentId}/highest-mastered-grade
GET  /alpha/results/v1/students/{studentId}/working-grade
GET  /alpha/results/v1/students/{studentId}/grades-mastered
GET  /alpha/results/v1/students/{studentId}/advancement
GET  /alpha/results/v1/students/{studentId}/course-progress
GET  /alpha/results/v1/students/{studentId}/grade-level-progress