| Approved Artifact Chain |
Pass |
state.json, transcript.md, and approved summaries agree that all four upstream deliverables are approved before this surface QC attempt. |
- state.json current deliverable is 1edtech/surface_qc attempt 1; upstream architecture, data_dictionary, customer_website, and implementation are approved.
- implementation/summary.json attempt is 1 after rollback, matching transcript approval at 2026-05-20T22:36:35Z.
- The report uses the deployment-specific canonical URLs from state.json and approved summaries, not the shared platform3.vercel.app alias.
|
| Table And Field Coverage |
Pass |
The persistence model is consistent across architecture traceability, the data dictionary, implementation provenance, and migration DDL. |
- Architecture traceability lists 13 qti.* tables; the data dictionary lists 13 tables and 127 fields; implementation provenance lists the same 13 tables.
- migrations/001_qti_core.sql creates qti.conformance_run and qti.conformance_assertion and comments their meaning, status enum, indexes, and diagnostics.
- tests/schemaContract.test.mjs verifies the migration carries every approved data-dictionary table and critical field.
|
| API Contract Coverage |
Pass |
The 8 customer-facing operation IDs align across the approved customer website, OpenAPI, HTTP server, provenance, and tests. |
- Operation IDs: ingestContentPackage, getDeliveryJson, saveAuthoringJson, exportXml, startDeliverySession, submitAttempt, deleteCandidateRuntimeData, runConformance.
- tests/httpApi.test.mjs exercises auth, tenant matching, ingest idempotency, delivery ETag, authoring If-Match, session start, attempt submit, privacy deletion, and runConformance.
- openapi/qti-boundary.openapi.yaml file references resolve inside the implementation artifact, including generated/spec/qti-object-graph.schema.json.
|
| Conformance Execution And Evidence |
Pass |
The previous rollback blocker is closed: runConformance now executes a source-bundle runner and persists granular assertion evidence. |
- Customer website quote: Run the bundled QTI example corpus through validation, round-trip, and processing assertions.
- src/conformance/qtiConformanceRunner.mjs requires QTI_SPEC_BUNDLE_DIR, hashes the source bundle, walks examples/qtiv3-examples, evaluates profile/validation/round-trip/processing assertions, and returns failed or error when evidence is not clean.
- src/repository/postgresQtiRepository.mjs inserts qti.conformance_run and one qti.conformance_assertion row per runner assertion; src/repository/inMemoryQtiRepository.mjs keeps equivalent in-memory evidence.
- tests/conformanceRunner.test.mjs proves missing bundle returns HTTP 500, real bundle hashes match sha256:<64 hex>, runner errors are non-passed, and Postgres assertion inserts occur.
- Full local smoke with external/qti/spec_bundle returned status passed, bundle hash sha256:fd194bdbcf495cded55f73fd4bca0244f8f9c8f78b4ea7cd8627c89cb5f4f131, and 1,276 assertion rows.
|
| Learner Data Privacy |
Pass |
ITD-024 is implemented in the dictionary, SQL constraints, HTTP behavior, runtime storage, and tests. |
- Data dictionary marks candidate_ref, response_state, template_state, outcome_state, and processing_trace as learner-sensitive fields.
- migrations/001_qti_core.sql enforces candidate_ref UUID shape and JSON object shapes.
- tests/privacyAndTrace.test.mjs rejects direct PII and secrets, redacts processing traces and Problem.detail, and protects learner runtime deletion with authorization checks.
|
| Hosted Documentation Findability |
Pass |
The three upstream documentation sites have stable local deep links and driver-recorded hosted verification. |
- Local hash-link check: architecture ids=37 links=157 missing=0; data dictionary ids=217 links=178 missing=0; customer website ids=292 links=384 missing=0.
- Driver summaries record unauthenticated 200 verification for architecture at 2026-05-20T20:27:07Z, data dictionary at 2026-05-20T20:54:02Z, and customer website at 2026-05-20T21:29:28Z.
- Codex sandbox DNS could not resolve Vercel hosts during this run, so this report does not claim a fresh network fetch; the driver will deploy and verify this QC site.
|
| Issue Ledger Consistency |
Warning |
issues.jsonl is append-only and still contains earlier open rows, but every product blocker listed there has a later approved fix in transcript.md and attempt results. |
- Earlier architecture, customer_website, and implementation findings remain in issues.jsonl with open status.
- Transcript and eval result files show the corresponding attempts were later approved after fixes.
- The old surface_qc F-001 is superseded by the approved implementation rollback attempt and by the current passing conformance runner evidence.
|