Status: authored current-state and proposed-target record. Not ratified — see §6.
This document answers M0.13 of V1_DOMAIN_WORKBENCHES_TODOS_2026-07-23.md. It
distinguishes live behavior, partial behavior, test fixtures, and proposed
contracts; a proposal is never presented as current implementation. Team labels
below are accountable functions, not fabricated named approvals. Every
unresolved choice is an ADR in §5, and the absence of named ratification remains
an explicit blocker.
1. Charter, governance, and traceability (M0.13.a)#
1.1 Scope and owners#
The scope is the Metis courseware lifecycle from source intake through
authoring, multidisciplinary review, publication, learner delivery, correction,
interoperability, evaluation, and operations. Canonical technical ownership is
divided among metis-product-and-architecture, metis-authoring,
metis-assessment, metis-learning, metis-interoperability,
metis-release-governance, and the cross-cutting
security/privacy/accessibility/data-governance functions. No team label
substitutes for the named people M0.13.f requires.
1.2 Requirements traceability#
| Requirement | Technical status | Sections | Blocker |
|---|---|---|---|
| M0.13.a | complete | 1, 7 | none |
| M0.13.b | complete | 2 | none |
| M0.13.c | complete | 3 | none |
| M0.13.d | complete | 4 | none |
| M0.13.e | complete | 5 | none |
| M0.13.f | pending-named-ratification | 6 | No named domain, security, privacy, accessibility, engineering, or product reviewers have approved an effective revision or resolved the review log. |
1.3 Terminology#
| Term | Meaning in this document |
|---|---|
| live | A tracked production code path exists; this is not a claim of launch readiness. |
| partial | Some executable behavior exists, but a named boundary, control, or proof is absent. |
| fixture | Deterministic test or demonstration data; never evidence of production behavior or outcomes. |
| proposed | A versioned design/contract/target that is not yet fully adopted or ratified. |
| canonical owner | The only authority allowed to mutate the durable fact; projections remain rebuildable. |
| revision | Immutable content or evidence identity to which decisions and relationships are pinned. |
| maturity | Authoring/review readiness, independent from publication, learner, mastery, grade, and integrity state. |
| release gate | A fail-closed prerequisite for a specific publication candidate and policy context. |
| audience | One of authoring, institutional setup, educator operations, learner delivery, observer, or operator adjudication. |
| ratified | Every required named reviewer approved the same version, open issues are resolved, and an effective date exists. |
1.4 Evidence and decision format#
Every factual claim names a committed source in §7, whose SHA-256 is generated from repository bytes. Evidence rows state counts and gaps; they do not infer deployment truth beyond the source. ADRs state decision, owner function, options, consequence, status, and evidence. Review comments must record author, role, document version, disposition, resolution evidence, and timestamp; §6 intentionally contains no invented comments or approvals.
2. Current state (M0.13.b)#
| Area | Status | Current finding | Evidence |
|---|---|---|---|
| Routed applications | live | 152 tracked routes span 4 surfaces; 105 routes have no route-level test. | evidence/v1-workbenches/metis-route-inventory.json |
| Canonical service API | live | 882 canonical operations exist; 869 declare response schemas and 47 are open routes. | evidence/v1-workbenches/metis-api-inventory.json |
| Metis packages | partial | 28 packages expose 6686 mapped capabilities; 12 packages have no consumer despite complete disposition rows. | evidence/v1-workbenches/metis-package-inventory.json |
| Contracts | partial | 3685 OpenAPI schemas collapse to 3483 logical shapes with 199 multi-variant names; shared contracts add 600 Zod schemas. | evidence/v1-workbenches/metis-contract-inventory.json |
| Persistence and deployment | partial | 71 tables and 5 production consumers remain in the shared topology; 56 tables carry a tenant key and production volume is unknown. | evidence/v1-workbenches/metis-persistence-inventory.json |
| Content hierarchy contract | proposed | 13 kinds, 10 containment rules, and 8 lifecycle relationship policies are contract-defined; runtime adoption remains later work. | evidence/v1-workbenches/metis-content-hierarchy.json |
| Authoring maturity contract | proposed | 10 independent states and 14 guarded transitions are contract-defined across 6 protected owners; legacy APIs still need migration. | evidence/v1-workbenches/metis-authoring-maturity.json |
| Threat controls and launch gates | partial | 23 controls cover 60 cases (11 implemented, 10 partial, 2 contract-defined); 6 launch gates are blocked. | evidence/v1-workbenches/metis-threat-model.json |
| Regional and institutional policy | proposed | 16 engineering rules exist, but 8/8 applicability cells await named legal/privacy review. | evidence/v1-workbenches/metis-regional-policy.json |
| Success measures | proposed | 32 metrics cover 6 families; all 32 targets are proposed and 0 are ratified. | evidence/v1-workbenches/metis-success-metrics.json |
| Automated test and fixture evidence | fixture | 1197 test files supply automated evidence, including deterministic fixtures and probes. Fixture evidence proves contracts and controls only; it is never labeled production behavior or outcome evidence. | evidence/v1-workbenches/metis-code-census.json |
2.1 Applications, routes, and deployments#
The route inventory records 152 routes over four surfaces: standalone Metis admin/web and Oshun web/operator mounts. A tracked route is live code, not a canonical-host decision: 1 artifact records a proposed logical owner/facade boundary, 0 artifacts ratify an effective canonical host, and 105 routes lack route-level tests. The service, workers, gateway, and current persistence consumers are tracked code paths; production volume, tenant keys, and ratified topology are not established.
2.2 Contracts, stores, flows, tests, and fixtures#
The canonical service exposes 882 operations. OpenAPI contains 199 multi-variant logical names, so response/request projections must not be mistaken for competing owners. The content hierarchy and authoring maturity models are proposed contracts until each write path adopts them. Test fixtures exercise contracts and failure behavior; they do not prove real learner, institution, or deployment outcomes.
3. Product and technical architecture (M0.13.c)#
3.1 Hosts, audiences, and roles#
Canonical host decision: pending ADR-M013-001. Current hosts remain an inventory, not an approved target map.
| Audience | Current routed paths |
|---|---|
| authoring | 54 |
| institutional-setup | 64 |
| educator-operations | 3 |
| learner-delivery | 20 |
| observer | 1 |
| operator-adjudication | 10 |
| Required workbench role | Authorization declarations | Workflow declarations |
|---|---|---|
| creator | 1 | 0 |
| instructional-designer | 0 | 0 |
| teacher | 6 | 1 |
| sme | 0 | 1 |
| psychometrician | 0 | 1 |
| accessibility-reviewer | 0 | 0 |
| integrity-reviewer | 0 | 0 |
| publisher | 0 | 0 |
| tenant-admin | 0 | 0 |
The six audiences are complete classifications, but the nine workbench roles are not one authorization alphabet. Until ADR-M013-002 is ratified, routes and fields must use the narrower current authority and deny duties that cannot be expressed. Learner delivery never inherits authoring, answer-key, integrity, institutional, or operator projections.
3.2 Pedagogy and content model#
The proposed canonical hierarchy is source collection → source → course → module → lesson → objective → activity → stimulus → assessment → item → rubric → alignment → prerequisite. Relationships pin exact revisions/hashes, answers remain protected references, reuse is explicit, and deletion/correction invalidates dependent projections. Authoring maturity has its own guarded state machine; publication, attempt, mastery, completion, grade, and integrity retain separate owners.
3.3 Data, contracts, APIs, jobs, and events#
Current persistence has 56 tenant-scoped tables. The target boundary is owner-qualified IDs plus immutable, versioned, rebuildable projections and outbox/inbox delivery—never simultaneous dual-authoritative writes. The Python service owns the canonical API; generated clients and workbench facades adapt it. The census records 296 public or runtime job/event entries, but declaration count does not prove one durable envelope; every migrated entry must carry tenant, aggregate version, correlation, causation, idempotency, and audit context.
3.4 Standards profiles#
| Profile family | Current evidence | Allowed claim |
|---|---|---|
| LTI 1.3 Core / Advantage | Versioned operation matrix and API routes | implemented operations; conformance pending |
| OneRoster 1.2 | Sync operation matrix | implemented operation; semantic profile pending |
| QTI 3 | Item-bank import/export service and tests | partial item profile; package conformance pending |
| Caliper 1.2 / xAPI / cmi5 | Event operations and profile rows | implemented operations; event semantics pending |
| SCORM 1.2 / 2004 | Fallback package/runtime operations | fallback operations; compatibility certification pending |
| CLR / Open Badges | Issue, verify, and CLR operations | implemented operations; credential profile pending |
No row above authorizes a blanket standards-conformance claim; later M1 profiles own exact versions, required/optional fields, negative fixtures, semantic round trips, and consumer certification.
4. Experience, trust, evaluation, and operations (M0.13.d)#
4.1 Experience direction#
Visual thesis: A calm, evidence-first courseware workspace where the authored hierarchy owns the canvas and provenance, review, and release state remain continuously visible in a quiet inspector.
Content plan:
- Persistent audience-aware navigation and course/location context.
- One dominant hierarchy or editor workspace for the current authoring task.
- A secondary inspector for evidence, accessibility, review findings, versions, and permissions.
- A final explicit review or release action with blockers, consequences, and recovery path.
Interaction thesis:
- Selection moves context into the inspector without replacing or obscuring the primary workspace.
- Review findings reveal and focus the exact affected content, source, rubric, or policy cell.
- Maturity and publication transitions animate once, preserve spatial continuity, and expose reduced-motion and nonvisual equivalents.
This is an operational workspace, not a marketing page: no hero, dashboard-card mosaic, decorative gradient, or ornamental motion. Typography, whitespace, dividers, and one semantic action accent establish hierarchy. Cards exist only where the card itself is a selectable content object.
4.2 Workbench journeys#
4.2.1 Source intake and grounding#
Audience: authoring / creator / SME.
- Select owner and scope
- Ingest source
- Inspect extraction and rights
- Resolve findings
- Approve exact evidence revision
Completion: A versioned source bundle is approved and traceable to every supported claim.
Failure/recovery: Quarantine, retain diagnostic evidence, and offer retry or human escalation without publishing.
4.2.2 Course hierarchy authoring#
Audience: authoring / instructional designer / teacher.
- Choose objective
- Compose hierarchy
- Attach stimuli and activities
- Map assessments and prerequisites
- Submit exact revision
Completion: Every required hierarchy edge, objective, and evidence reference validates.
Failure/recovery: Focus the invalid edge or missing mapping; never flatten, duplicate, or silently repair semantics.
4.2.3 Assessment and psychometric review#
Audience: authoring / psychometrician / integrity reviewer.
- Author protected item
- Bind rubric and answer refs
- Run correctness and accessibility checks
- Inspect sample/uncertainty
- Approve or request changes
Completion: The item revision passes content, secrecy, accessibility, and applicable psychometric review.
Failure/recovery: Keep answers protected, suppress unsafe cohorts, and return a reasoned revision request.
4.2.4 Multidisciplinary review#
Audience: educator operations / SME / accessibility reviewer.
- Open assigned queue
- Inspect content and evidence diff
- Review discipline/accessibility/safety findings
- Record independent decision
- Verify invalidations
Completion: All required duties approve the same immutable revision with separation of duties.
Failure/recovery: Request changes with anchored findings; stale or conflicting decisions are rejected.
4.2.5 Publication, correction, and withdrawal#
Audience: educator operations / publisher.
- Inspect release gates
- Confirm rights and audience
- Sign publication decision
- Observe delivery receipt
- Correct, supersede, revoke, or archive
Completion: Only the approved revision reaches the intended audience with provenance and recovery evidence.
Failure/recovery: Block delivery, preserve the prior trusted release, and route incident/correction work.
4.2.6 Institutional setup and interoperability#
Audience: institutional setup / tenant admin / operator adjudication.
- Choose institution and profile
- Validate credentials and scopes
- Probe compatibility
- Run bounded import/export
- Monitor receipts and drift
Completion: A pinned tenant/profile/version exchange succeeds with semantic and audit receipts.
Failure/recovery: Fail closed with unsupported/lossy fields and no partial authoritative mutation.
4.3 Responsive, accessible, offline, and localized behavior#
| Concern | Design rule |
|---|---|
| Desktop | Navigation, dominant workspace, and inspector may coexist; the workspace retains priority. |
| Tablet | Navigation collapses; inspector becomes a resizable adjacent or modal region without hiding save/review state. |
| Mobile | Linearize task, context, evidence, and action; use a labeled sheet for the inspector and keep primary targets at least 44×44 CSS px. |
| Keyboard/screen reader | One logical heading order, landmarks, skip links, visible focus, announced validation summaries, and focus transfer to the exact finding. |
| Motion | Respect reduced motion; status never depends on animation, color, hover, or spatial position alone. |
| Offline | Fail closed for publish, review decisions, rights, destructive actions, and high-impact writes. Any future draft queue must expose sync/conflict state and exact base revision. |
| Localization | Locale, language, script, region, and direction are explicit versioned content dimensions; fallback is declared and never silently substitutes assessment or accessibility semantics. |
4.4 Trust, safety, privacy, integrity, and rights#
The threat model records that 23 controls cover 60 cases (11 implemented, 10 partial, 2 contract-defined); 6 launch gates are blocked. The workbench exposes control status without turning a partial control into a green gate. Protected answers/rubrics, learner/grade data, integrity evidence, provider secrets, source rights, generated media, and audit evidence are audience-filtered. Every high-impact action binds tenant, actor, purpose, expected version, exact evidence revision, idempotency, separation of duties where required, and append-only audit evidence.
8 regional applicability cells await legal/privacy review, so consent, minors, education records, biometric/voice, retention, deletion, residency, processor, and transfer decisions remain launch blockers rather than UI-configurable promises.
4.5 Evaluation, observability, and operations#
The proposed catalog records that 32 metrics cover 6 families; all 32 targets are proposed and 0 are ratified. Flow measures are withheld when correctness, release, or critical-accessibility guardrails fail; small groups are suppressed; individual high-stakes automation is prohibited. Operational views must report freshness, source version, numerator/denominator, sample/privacy status, uncertainty, countermetrics, and gate state.
Operators need queue/job correlation, source and model/provider versions, policy and release receipts, audit search, incident playbook links, retry/cancel authority, spend/capacity signals, and rollback/withdrawal progress. Unknown, stale, partial, blocked, suppressed, and not-configured remain distinct states.
5. Migration, compatibility, rollout, and decisions (M0.13.e)#
5.1 Migration and rollout sequence#
| Phase | Forward action | Gate | Rollback |
|---|---|---|---|
| 0. Baseline | Freeze inventories, source hashes, owners, routes, contracts, and launch gaps. | All deterministic evidence checks pass. | Regenerate from the last trusted commit. |
| 1. Decide | Ratify hosts, roles, data ownership, persistence, standards, and experience boundaries. | Named approvals bind one document revision. | Keep current authorities and deny unexpressible duties. |
| 2. Adapt | Introduce generated clients, owner-qualified IDs, projections, route facades, and versioned envelopes. | Contract, authorization, tenancy, replay, and negative-leakage tests pass. | Disable adapters; current owner remains authoritative. |
| 3. Rehearse | Backfill and shadow-read by tenant without dual-authoritative writes. | Counts, hashes, relationships, semantics, accessibility, and restore drills agree. | Discard projections and restart from recorded cursor. |
| 4. Cohort | Enable capability and audience flags for internal then named tenant cohorts. | Quality, safety, accessibility, privacy, interop, SLO, and support gates pass. | Disable cohort flag and retain prior trusted route/release. |
| 5. Cut over | Switch canonical routes/stores together; monitor receipts and reconciliation. | No orphan, version regression, leakage, stale approval, or unexplained metric regression. | Restore prior authority and replay durable outbox from cutover cursor. |
| 6. Deprecate | Time-box redirects, remove facades/shadow paths, and archive decision evidence. | Compatibility window ends and consumers acknowledge migration. | Extend only through a reviewed ADR with owner and expiry. |
Feature flags are tenant-, audience-, capability-, and profile-scoped; default is off. Flags cannot bypass authorization, rights, privacy, accessibility, integrity, or release gates. Deprecation records require owner, replacement, affected consumers, notice date, migration date, removal date, telemetry, and rollback window.
5.2 Compatibility rules#
- Preserve stable canonical IDs and immutable revision identity across route, store, and package changes.
- Use explicit adapters for legacy route/schema/status aliases; never reinterpret an old label silently.
- Return unsupported, lossy, or incompatible profile fields before mutation; no partial authoritative import.
- Keep read compatibility longer than write compatibility; every write targets one owner and one version.
- Sign or hash publication, export, migration, and rollback receipts and retain their source/evidence versions.
5.3 ADR register#
ADR-M013-001 — Choose one canonical host per retained capability and time-box every facade or redirect.#
Status: pending. Owner: metis-product-and-architecture.
Options: Oshun-only host; standalone Metis hosts; audience-partitioned hybrid.
Consequence: 4/80 capabilities currently span hosts; 1 artifact records a proposed logical boundary and 0 ratify an effective choice.
Evidence: evidence/v1-workbenches/metis-route-inventory.json,
evidence/v1-workbenches/metis-canonical-host-map.json.
ADR-M013-002 — Ratify one role vocabulary and field/action authorization matrix.#
Status: pending. Owner: metis-security-and-product.
Options: Map current identity roles to workbench duties; Add first-class workbench roles; Hybrid role plus scoped duty grants.
Consequence: 6 authorization alphabets exist and 0 names all 9 required roles.
Evidence: evidence/v1-workbenches/metis-role-permission-matrix.json.
ADR-M013-003 — Ratify the bounded-hybrid persistence ownership strategy and migration.#
Status: proposed. Owner: metis-data-platform.
Options: Shared public schema; Dedicated all-in-one Metis database; Bounded-hybrid owner stores and projections.
Consequence: bounded-hybrid is proposed after 3 options, but 0 reviewers have approved it.
Evidence: evidence/v1-workbenches/metis-persistence-inventory.json,
evidence/v1-workbenches/metis-persistence-strategy.json,
docs/adr/ADR-M0.5-metis-persistence-ownership.md.
ADR-M013-004 — Ratify canonical data owners, classifications, purposes, retention, residency, and projection boundaries.#
Status: pending. Owner: metis-data-governance.
Options: Metis owns every current row; Source domains own all shared facts; Per-aggregate owner matrix with rebuildable projections.
Consequence: 4/6 categories are declared, 2 records are mixed or misclassified, and 0 ownership properties pass.
Evidence: evidence/v1-workbenches/metis-data-ownership-boundary.json.
ADR-M013-005 — Pin supported interoperability versions and conformance profiles before compatibility claims.#
Status: pending. Owner: metis-interoperability.
Options: Current operation matrix as compatibility claim; Profile-by-profile certified support; Core profiles plus explicitly lossy adapters.
Consequence: LTI 1.3, LTI Advantage, OneRoster 1.2, QTI 3, Caliper 1.2, xAPI/cmi5, SCORM, and CLR/Open Badges operations exist, but later M1 profiles own conformance and semantic round-trip proof.
Evidence: apps/metis/service/src/metis/services/lms_interop_matrix.py,
apps/metis/service/src/metis/services/qti_service.py,
evidence/v1-workbenches/metis-success-metrics.json.
ADR-M013-006 — Choose offline, mobile, locale, bidi, and accessible-media support boundaries.#
Status: pending. Owner: metis-experience-and-accessibility.
Options: Online responsive web only; Offline read plus queued safe drafts; Full offline authoring with conflict resolution.
Consequence: The design remains fail-closed: no offline mutation, locale fallback, or accessibility equivalence is promised until versioning, conflict, and content-variant contracts are ratified.
Evidence:
docs/domains/metis/METIS_OPERATOR_TRAINING_AND_LAUNCH_CRITERIA.md,
libs/metis/quality/src/compliance/wcag-checker.ts,
libs/metis/quality/src/technical/accessibility-linter.ts.
ADR-M013-007 — Choose rollout cohorts, flags, compatibility window, deprecation dates, readiness gates, and rollback authority.#
Status: pending. Owner: metis-release-governance.
Options: Big-bang replacement; Tenant cohort migration; Capability-by-capability strangler migration.
Consequence: 0/3 registries agree and the shell represents 1/7 required launch states.
Evidence: evidence/v1-workbenches/metis-canonical-host-map.json,
evidence/v1-workbenches/metis-registry-launch-state.json.
6. Review and ratification (M0.13.f)#
Decision: pending named ratification. This generated document cannot approve itself.
| Required review role | Named reviewer | Decision | Reviewed version/date |
|---|---|---|---|
| domain | — | pending | — |
| security | — | pending | — |
| privacy | — | pending | — |
| accessibility | — | pending | — |
| engineering | — | pending | — |
| product | — | pending | — |
Approvals recorded: 0. Review comments recorded: 0. Effective date: none.
Required review compares this revision against V1/features/domain-metis.md,
the feature inventory and deep dives, route/package/API/contract/persistence
evidence, current code anchors, and every open ADR. Each comment must be
resolved, accepted with an owned follow-up and launch effect, or rejected with
rationale. Domain, security, privacy, accessibility, engineering, and product
must approve the same source-ledger hashes.
Open blockers:
- 6 threat-model launch gates are blocked.
- 8 regional applicability cells lack legal/privacy approval.
- 0 success-metric targets are ratified.
- 1 artifact records a proposed logical owner/facade map; 0 artifacts ratify an effective canonical host map.
- 56 current tables carry tenant keys.
- 105 routes lack route-level tests.
- The review comment log has no named reviewers, decisions, resolution evidence, or effective date.
7. Source ledger#
| Kind | Source | SHA-256 |
|---|---|---|
| evidence | evidence/v1-workbenches/metis-route-inventory.json |
b0b4313b655682cb17f4399f4f99ee0d54b8ab2a5cb02f4328a7a0d6c633d930 |
| evidence | evidence/v1-workbenches/metis-package-inventory.json |
1ebcfda629d224f29963e5ffdca4184c8ba143eb49047bf2bee7b3b427876f31 |
| evidence | evidence/v1-workbenches/metis-api-inventory.json |
89f96be9d3fe4aac33b670a2c6d4a9eaa61f5fc044c11dac9e7347876bceb77b |
| evidence | evidence/v1-workbenches/metis-contract-inventory.json |
740744271b88ed59e044de1702bd0831fa421864c242edd9e5f83f1280f23d95 |
| evidence | evidence/v1-workbenches/metis-persistence-inventory.json |
dc9acf4b9747f8eb370ea116be552e9886f195760abafddd7b76dcac59acb008 |
| evidence | evidence/v1-workbenches/metis-persistence-strategy.json |
3a787e633c1ca4a545a558aed27c2d249d0c955c1e34543dff7470adc51d77a6 |
| evidence | evidence/v1-workbenches/metis-code-census.json |
8b5450095b09f38c5606aaa04b33319b1266970723e29c6069233c564eaebea6 |
| evidence | evidence/v1-workbenches/metis-content-hierarchy.json |
6e44e25d4f3c9efedcc996c3c0346b6bfbe3b471601cf74a5a5539d889c2dc5b |
| evidence | evidence/v1-workbenches/metis-authoring-maturity.json |
8c4eaa3f19dcc7b5fb2e1498f8ee68d0c9a6656e98bd63cae84309b9e954eda8 |
| evidence | evidence/v1-workbenches/metis-threat-model.json |
bd7624dc6ec1f46431932824529c4e205c7262e8e6de399bcf4ea93675a4b64b |
| evidence | evidence/v1-workbenches/metis-regional-policy.json |
6d071169ac8ce05bb8467cd3cef4d92e4d0c35e42598bb430adc1a22a1ba2657 |
| evidence | evidence/v1-workbenches/metis-success-metrics.json |
a90ad4ab6d24f8784438b2d276aae6d7d92846c0ee7b32b3c116633ad4401224 |
| evidence | evidence/v1-workbenches/metis-canonical-host-map.json |
4f8fdf6b2431c195b0503f7ad8a796686949b4d50a7f0b47a201653c8937eebc |
| evidence | evidence/v1-workbenches/metis-audience-classification.json |
bc6e45bb8fb0811af1ae269b0f970606b36ab93635643be24995a7a72fdcb0c9 |
| evidence | evidence/v1-workbenches/metis-role-permission-matrix.json |
e1c8b7f93bc61c37847e92077a454c99486a48de5d05d3c7155a27d4067c7c16 |
| evidence | evidence/v1-workbenches/metis-data-ownership-boundary.json |
70bce32f5080ec43abfbab8afb72f9f78dc9ec36aa43112f5b27624f734a4602 |
| evidence | evidence/v1-workbenches/metis-registry-launch-state.json |
aca637248e73b5224b15cbecb1a7dba4e635d061115a82a5d2e74f5c881aa5fc |
| document | V1/features/domain-metis.md |
c4461886e7e5c45290983a8d60d9fb49be47858c28b81369f42428702c1b5b61 |
| document | docs/releases/v1/domains/metis/feature-inventory.md |
e5191a9c0d57ff7a5a58daf0a6fd13e393932bf21c291ebe6d1c8c3aaa9c462b |
| document | docs/domains/metis/deep-dive/architecture.md |
0b05e70de1c99759bf8c280138c2cb7d2fde5acd0b2a4e3c38082d2a1b4004ef |
| document | docs/domains/metis/deep-dive/features.md |
25125699cf5d381d61a56dec2e7d2c4c23dbdf2c31568aaa2a69d7e795fcd24c |
| document | docs/domains/metis/deep-dive/specifications.md |
109e6db506892cfcb2e0824182a6426d330f89757993ea72545a728047eef17c |
| document | docs/domains/metis/route-flow-decisions.json |
f80cc6809276da39ffa63038e155ad3ea8878481c678ab4915ddfb93025a5b57 |
| document | docs/domains/metis/package-capability-decisions.json |
ebf8046ab5aa45e82de4e2dff0330b632e9a63f0e84f6fabb163f1416cab9ce9 |
| document | docs/adr/ADR-M0.5-metis-persistence-ownership.md |
8aada7b6f633388c77aae2b9cd4b27816b6f0e107c6a56020e2075e445d4eeb3 |
| document | docs/domains/metis/METIS_PUBLICATION_RELEASE_GATES_RUNBOOK.md |
d74f1e3f4d83466f4584f184b1c9758fe0379d73797c41a04e36320d83223048 |
| document | docs/domains/metis/METIS_OPERATOR_TRAINING_AND_LAUNCH_CRITERIA.md |
4224bc40ba4416f17dd6deec67db7d029b6eb59771657754b5283a733b8c2ab3 |
| document | docs/releases/v1/specs/metis-mobile-strategy.md |
ccba8d2f231845b67c94e1d5fca5ec878b4153cd3053126870c560d2699d0c00 |
| document | docs/releases/v1/specs/metis-generation-and-tutoring-slos.md |
b31be3bdd5e75b2770932e539c9a26c2addd7fa832ff0ed458cf01f107348131 |
| code | apps/metis/service/src/metis/services/lms_interop_matrix.py |
86feaa52b0970e3772189f663f8f4e20cdb2b4bf5b39c2da6d825620bfe4d32f |
| code | apps/metis/service/src/metis/services/qti_service.py |
b33a2bd55939adf0057c76f65b3eb8c322521f0f0cc0c3e67f98508f04293f4a |
| code | libs/metis/quality/src/compliance/wcag-checker.ts |
d6ecd0c583f094bc732766ae988a896893e2a8f7c22158de943e81e068a94645 |
| code | libs/metis/quality/src/technical/accessibility-linter.ts |
3aca386fe1f5f6195b5fd197b466aea2cb053217d415babb11aca7b991168529 |
Regenerate with
pnpm exec tsx scripts/v1-workbenches/generate-metis-design-doc.mts; verify
with
pnpm exec tsx scripts/v1-workbenches/generate-metis-design-doc.mts --check and
pnpm exec tsx --test scripts/v1-workbenches/generate-metis-design-doc.test.mts.