Skip to content
SOP-DOC-001: Documentation Index

SOP-DOC-001: Documentation Index

Reference Number Version Effective Date Supersedes Authority Level
SOP-DOC-001 3.40 2026-10-24 3.39 Normative

I. Purpose

This document is the canonical master index of all formal documentation within the Classroom Token Hub (CTH) repository. It lists every numbered constitutional, normative, and informative document, and records where superseded v1 material is archived (§VI). Completeness is the point: a partial index reads exactly like a complete one.


II. Scope

This index tracks all formally registered, numbered documents. The following folders/files are intentionally out of scope:

  • docs/user-guides/ (User-facing help/tutorials)
  • docs/README.md (General repository navigation)

III. Authority Level

Normative (Tier 2). Subordinate to Core and Constitutional Invariants (INV-CORE-000, INV-CORE-001).


IV. Dependencies

  • docs/STANDARD_OPERATING_PROCEDURES/SOP-DOC-000_DOCUMENTATION_STANDARD.md
  • docs/INVARIANT/CORE/INV-CORE-000_CORE_INVARIANTS.md

V. Registered Documents

Every numbered document in the repository, by namespace, ordered by reference number. Archived material is deliberately absent; see §VI.

Invariants — Core (INV-CORE)

Invariants — Architecture (INV-ARC)

Domains (DOM)

Feature Execution (FEAT)

Specifications (SPEC)

Standards & Procedures (SOP)

Procedures — Database (SOP-DB)

Procedures — Deployment (SOP-DEP)

Procedures — DevOps (SOP-DEV)

Procedures — Operations (SOP-OPS)

Procedures — Security (SOP-SEC)

Procedures — Testing (SOP-TEST)

Maps (MAP)

Reference (REF)

Principles (PRN)

These are descriptive records, not registered documents. They are listed because the sections above cite them and a reader following an argument needs to reach them.

They are given as repository paths rather than links. docs/TRACKING/ holds dated working state and is not published to the documentation site, so a link here would resolve in the repository and 404 on the site — and a normative index is the wrong place to depend on a descriptive record’s being published at all.

  • docs/TRACKING/BATCH-B_OPERATIONS_VERIFIER_POLICY_DECISION_PACKAGE_20260901.md — Operations freshness, aggregation, and evidence-registry owner decisions
  • docs/archive/v2-tracking-2026/V2_INVARIANT_VERIFIER_RECONCILIATION_20260831.md — v1 economic checker to v2 verifier disposition (archived 2026-09-28; its §VIII records the reconciliation as closed)

VI. Legacy Specifications (v1 — Archived)

Every document formerly listed in this section is archived. This section previously read “these legacy specifications remain active for reference during the transitional phase of the V2 port” and then listed roughly 90 links: the ARC-* architecture specs, the v1 FEATURES/* and DOMAINS/* trees, the SEC-* audit corpus, and the v1 deployment/database SOPs. Of those links, about two-thirds resolved to nothing at all — the paths pointed at repository-root directories (ARCHITECTURE/, FEATURES/, SECURITY/) that have not existed since the v2 reorganization — and the remainder pointed into docs/archive/ without saying so.

An unlabelled link to archived material is indistinguishable from a citation of current authority (SOP-DOC-000 §V, Citing archived material), and a link that resolves to nothing is indistinguishable from one that was satisfied. Enumerating them here reproduced both failures at once, so the enumeration is removed rather than repaired.

The material itself is preserved and browsable:

Archive location Contents
docs/archive/v1-architecture/ Early v1 identity and core architectural specs (ARC-*)
docs/archive/v1-docs/ v1 security audits (SEC-*), deployment SOPs, ARC-* specs, FEATURES/*, DOMAINS/*
docs/archive/v1-development/ v1→v2 migration planning and legacy schema analysis
docs/archive/v2-tracking-2026/ Superseded v2 tracking, audits, and migration plans, including the pre-launch ship tracker PRODUCTION_READINESS_2026-09.md (archived 2026-09-28)
docs/archive/STANDARD_OPERATING_PROCEDURES/ Retired SOPs, at their original namespace paths (DATABASE/, DEPLOYMENT/, DEVOPS/)
docs/archive/MAP/ Retired maps: MAP-CLASS-002 (class-scope normalization target, archived 2026-09-28; its class_id-first target is the current model under INV-ARC-019 and DOM-IDEN-001)
docs/archive/PHASE_PLANNING/ Phase 3–5 roadmaps and store domain implementation tracking
docs/archive/github-pages/ Historical GitHub Pages landing site assets

None of it is authority. For current architecture read docs/INVARIANT/; for current domain truth read docs/DOMAIN/; for current procedures read the SOP sections above.

VII. Informative Logs (LOG)

The LOG-* namespace and the docs/LOGS/ tree no longer exist. They were removed on 2026-09-05 to prevent v1 material from being cited as authority. Nothing in this repository should link into docs/LOGS/; the five entries formerly listed here resolved to deleted files.

Their surviving content lives at:

Removed Now
LOG-REL-002_Changelog_Mirror Root CHANGELOG.md — maintained for developers and deliberately not published to the documentation site
LOG-ARC-031_Project_History PRINCIPLES/PROJECT_PHILOSOPHY/PRN-PHL-001
LOG-REL-003 / LOG-REL-016 release notes Root CHANGELOG.md version sections
LOG-DEP-022_Scripts_Operations_Reference Not carried forward

VIII. Change Notes

Version 3.40 (2026-10-24):

  • Register SPEC-TIME-001 v1.3: shift_calendar_days, localize_timestamp and same_instant primitives; elapsed_duration truncates once; a decision may not compare timestamps directly; no private resolver wrappers; the resolver’s utc_now is its internal clock and test seam (owner rulings 2026-10-24).
  • Register SPEC-TEST-001 v1.1: tests take time from tests/helpers/temporal.py, thin wrappers over the production resolver.
  • Register REF-TERM-001 v1.3: Canonical Temporal Resolver added; Canonical Class Time and Class Day follow SPEC-TIME-001 1.3.

Version 3.39 (2026-10-23):

  • Register DOM-OPS-001 v2.14, SPEC-OPS-006 v1.6, SOP-DEP-001 v2.11 and SOP-DEP-002 v1.16: health endpoints are public and need no credential; while the Access gate is closed the status collector reads nothing from the application (owner ruling 2026-10-23).

Version 3.38 (2026-10-22):

  • Register SPEC-ECON-001 v1.4, SOP-DB-001 v1.8 and SOP-DEP-002 v1.15: the backlog moved from the post-launch tracker (archived to docs/archive/v2-tracking-2026/POST_LAUNCH_TRACKER_2026.md) to GitHub Issues and the CTH Backlog project; release-record follow-ups are filed as issues.

Version 3.37 (2026-10-22):

  • Register SOP-DEP-002 v1.14: CHANGELOG entries carry a release-notes section tag; release notes are rendered as Highlights, Fixed, Security & Reliability, Accessibility and Internal Changes.

Version 3.36 (2026-10-22):

  • Register SOP-DEP-002 v1.13: §VII.A step 7 closes the pre-release SSH tunnel to production (prerelease.sh restore, or close-tunnel for an abandoned run).

Version 3.35 (2026-10-22):

  • Register SOP-DEP-001A v1.0 (Initial Deployment Browser Validation) and SOP-DEP-001B v1.0 (Release Functional Browser Validation), extracted from SOP-DEP-001 §XI with separate mechanisms: initial deployment requires every item; a release checks directly changed, connected and known-problem features. Register SOP-DEP-001 v2.10 (§XI points to the templates) and SOP-DEP-002 v1.12 (§VIII uses them). Owner rulings, 2026-10-22 (v2.3.0).

Version 3.34 (2026-10-21):

  • Register SPEC-OPS-006 v1.5: the endpoint check is FAIL (HTTP_UNAVAILABLE) only on an HTTP 5xx; any other non-redirect, non-authentication HTTP error (e.g. 429, 404) is UNKNOWN under the new closed diagnostic HTTP_REFUSED (owner ruling 2026-10-21).

Version 3.33 (2026-10-19):

  • Register DOM-LED-001 v2.17: deploys the DB CHECK constraint half of INV-LED-017 (migration a4d7e9c2f1b6, ck_ledger_transaction_type_closed_vocabulary), enumerating the invariant’s own canonical/legacy table as the only lawful ledger_transaction.type values (NULL still permitted). Closes the set of lawful values; does not yet enforce canonical spelling on new rows (the write-time casing validator is separate, later scope). Also registers FEAT-LED-005 v1.3 (reconciles this PR’s and #1599’s independently-recorded v1.2 histories into one: both the route/registry cutover and the DB CHECK constraint have now landed) and SPEC-ITR-001 v1.6 (§6.6/P4 updated to reflect the constraint’s partial enforcement). No existing row’s type value changes. PR 5 of the approved PR sequence from the SYSTEM_ORIGINATED_FEAT_CODES investigation.

Version 3.32 (2026-10-18):

  • Register the FEAT-LED-005 route cutover (internal-transfer route now opens FEAT-LED-005, not FEAT-LED-000; app/feats/base.py registry entry added; FEAT-LED-005 v1.2 and FEAT-LED-000 v0.7 update from prospective to live-runtime status) and the SPEC-ITR-001 v1.4/DOM-ITR-001 v1.9 code cutover: ledger_provenance_query_service.py’s §6.3 classifier now uses the closed Transaction.type exclusion set (SYSTEM_ORIGINATED_TYPE_VALUES) instead of the removed SYSTEM_ORIGINATED_FEAT_CODES feat_code membership test. DOM-ITR-001 §XIII’s INV-ITR-015 row moves from KNOWN NONCOMPLIANCE to RESOLVED. The DB CHECK constraint and write-time casing validator on Transaction.type remain a separate, not-yet-landed PR (SPEC-ITR-001 §6.6). PR 4 of the approved PR sequence from the SYSTEM_ORIGINATED_FEAT_CODES investigation (#1599).

Version 3.31 (2026-10-18):

  • Register DOM-LED-001 v2.16: INV-LED-014 names build_transfer_effect_pair (app/services/ledger_transfer_service.py) as the sole pure constructor of a transfer’s two-leg effect vector’s shared fields, replacing the standalone internal-transfer command’s and the overdraft-protection funding legs’ independent inline effect-dict construction with one shared builder. create_transfer_pair keeps its own dedicated _command_fingerprint reservation/replay path (SPEC-LED-002 §4.2); only the two effects’ shared fields are now built in common. No effect shape, invariant, or historical row changes. PR 3 of the approved PR sequence from the SYSTEM_ORIGINATED_FEAT_CODES investigation.

Version 3.30 (2026-10-18):

  • Register DOM-LED-001 v2.15 (INV-LED-016 mechanism actor attribution, INV-LED-017 closed type vocabulary with its authoritative canonical/legacy enumeration table), FEAT-LED-000 v0.6 (disclaims prior route-level orchestration misuse), and the new FEAT-LED-005 v1.1 (Internal Account Transfer; prospective pending its own cutover PR). Contracts only; no code changed. Part of the approved PR sequence from the SYSTEM_ORIGINATED_FEAT_CODES investigation.

Version 3.29 (2026-10-16):

  • Register SOP-DEP-001 v2.9: §XI evidence standard and per-line results table recorded during the checks; §XI.A forbids deliberate cross-scope attempts on a host serving live classes (owner rulings, 2026-10-16).

Version 3.28 (2026-10-14), developer-documentation modernization pass:

  • Register the Authority Level correction: INV-ARC-000 through INV-ARC-016, INV-ARC-021 and INV-ARC-022 (all v+0.1, “Foundational” → “Constitutional”), and DOM-OPS-001 v2.13, DOM-ITR-001 v1.8, DOM-STORE-001 v5.6, DOM-SUP-001 v1.9 (all “Normative” → “Constitutional,” DOM-STORE-001’s header now matching its own already-correct body). Label corrections only; no dependency, scope, or rule changed in any of the 23 documents. Also registers SOP-DOC-000 v3.5, carved out of the same reconciliation since it is the document defining the tier scheme: corrected from “Foundational (Tier 0)” to “Normative (Tier 2 — SOP Tier),” matching its own §V/§VI taxonomy.

Version 3.27 (2026-10-14), developer-documentation modernization pass:

  • Register SOP-SEC-002 v1.0 (2026-10-11): CodeQL gating configuration, per-alert disposition and recurring backlog review, written off INCIDENT_2026-10-11_SEC-SAST-GAP-001.md. This index had already listed SOP-SEC-002 but carried no Change Note for it.
  • Register SOP-DEP-002 v1.11: corrected its post-migration verification checklist from join_code-keyed routes to the actual route contract, matching SOP-DEP-001 §XI.
  • Register SOP-DB-003 v1.4: added SOP-DB-004 to Dependencies and a pointer to its M2 DATA classification, which SOP-DB-003’s own three-box classification doesn’t cover.
  • Register INV-ARC-020 v1.2: a later edit reintroduced the same archived docs/TRACKING/V2_REBUILD_VALIDATION_REPORT.md citation an earlier revision had already dropped from its Dependencies; removed again.
  • Register FEAT-OBL-004 v1.0: promoted from DRAFT to final Normative (owner ruling), resolving the open question that FEAT-STOR-001 v3.2 already shipped assuming its authority.

Version 3.26 (2026-10-14), developer-documentation modernization pass:

  • Register DOM-CLASS-003 v2.6 and FEAT-CLASS-005 v1.3: §V/§IX and §XI stopped describing the overdraft/NSF fee as an active charge (CTH charges none, owner ruling 2026-10-07, DOM-OBL-001 §II.C), and now name only the flat fee as rebalance-selectable — the overdraft-protection setting (economic_engine.overdraft_protection_enabled) and the progressive fee are changed through the Economic Engine evolution command directly, not through the rebalance preview.
  • Register FEAT-IDEN-101 v1.3, FEAT-IDEN-107 v1.2, DOM-IDEN-007 v1.3, DOM-IDEN-002 v2.10, FEAT-OBL-002 v2.2 and FEAT-OBL-004 v0.5 (DRAFT): staleness corrections (credential-hashing wording, an idempotency-lock gap, a table-name typo, and a broken dependency citation) — see CHANGELOG.md for detail.

Version 3.25 (2026-10-06):

  • Register INV-ARC-008 v1.2, DOM-OPS-002 v1.11, SPEC-PROD-002 v1.4 and SOP-DB-004 v1.2: the owner’s compatibility ruling (no bridge, dual-write, fallback or heuristic interpretation; versioned read-side interpretation of retained history only) now stands in the governing documents. INV-ARC-008 drops its “approved bridge code” allowance.

Version 3.24 (2026-10-06):

  • Register SOP-DB-004 v1.1, SOP-DEP-001 v2.8 and SOP-DEP-002 v1.8: the forward-only revision register, and removal of archived/nonexistent dependency citations.

Version 3.23 (2026-10-06):

  • Register SOP-DB-004 v1.0: classification, history, rollback/cutover evidence and semantic-versioning rules for changes to live-v2 production state; SOP-DB-001 v1.7 aligns expand/contract Phase 1 with it.

Version 3.22 (2026-10-04):

  • Register DOM-SUP-001 v1.8 and FEAT-SUP-001 v1.1: optional non-identifying IFTTT filing notifications after successful outer commit, with teacher-filing and student-escalation triggers only.

Version 3.21 (2026-10-04):

  • Register SOP-DEP-001 v2.7 with its explicit forward-only attendance/payroll recovery revision list; supersedes the incomplete v2.6 registration.

Version 3.20 (2026-10-03):

  • Registers FEAT-LED-001 v1.6, SPEC-LED-002 v1.3 and FEAT-OBL-004 v0.3 (DRAFT): complete multi-seat prelocking, version-5 compensation-subtype replay binding, and removal of the superseded premium affordability denial. Accepted serializers 1–4 retain their original interpretation.

  • Registers DOM-LED-001 v2.13, FEAT-LED-002 v2.2, DOM-CORE-002 v1.16 and DOM-OPS-002 v1.9. Reversal state derives from immutable exact-origin effects with original correlation; original Ledger rows never gain reversal pointers. Unique exact-origin reversal admission and debit/credit lock order enforce INV-LED-013 without rewriting facts. Existing signatures/registries and historical values remain unchanged; no invariant amendment or compatibility bridge is introduced.

Version 3.19 (2026-10-03):

  • Registers the immutable-source historical reconstruction ruling: DOM-PROD-001 v1.14, DOM-LED-001 v2.12, DOM-OPS-002 v1.8, DOM-POL-001 v2.8, FEAT-PROD-003 v1.8, FEAT-PROD-005 v1.4, FEAT-PROD-006 v1.3, SPEC-PROD-001 v1.4 and SPEC-PROD-002 v1.3. Supersedes blanket legacy missing-modern-field/visibility denials, preserving exact modern creation proof, actual integrity rejection and current audit on new writes. No invariant, original record, signature, schema or historical backfill changes.

Version 3.18 (2026-10-03):

  • Registers Phase 3 separate conditional multi-payment graph design: DOM-PROD-001 v1.13, DOM-LED-001 v2.11, DOM-POL-001 v2.7, SPEC-PROD-001 v1.3, SPEC-PROD-002 v1.2, FEAT-PROD-003 v1.7, FEAT-PROD-005 v1.3 and FEAT-PROD-006 v1.2. Complete original source/writer/visibility and per-origin monetary proof remain mandatory; no new schema, protected registry, writer, implemented API or historical recovery is added.

Version 3.17 (2026-10-03):

  • Registers Phase 2 conditional historical priced whole-pair business-proof authority: DOM-PROD-001 v1.12, DOM-LED-001 v2.10, DOM-POL-001 v2.6, SPEC-PROD-001 v1.2, SPEC-PROD-002 v1.1, FEAT-PROD-005 v1.2 and FEAT-PROD-006 v1.1. Explicit original evidence gates and derived historical attribution supersede no canonical lineage or monetary execution rule; runtime and production remain unchanged.

Version 3.16 (2026-10-03):

  • Registers FEAT-PROD-006 and SPEC-PROD-002; DOM-PROD-001 v1.11, DOM-LED-001 v2.9 and DOM-OPS-002 v1.7 and DOM-POL-001 v2.5 authorize bounded pure historical assessment, without recovery enablement or modified signature proof.

Version 3.15 (2026-10-03):

  • Registers the interval invalidation/correction runtime authority amendments: DOM-PROD-001 v1.10, SPEC-PROD-001 v1.1, FEAT-PROD-005 v1.1, FEAT-PROD-003 v1.6, DOM-CORE-002 v1.15, DOM-OPS-002 v1.6, DOM-LED-001 v2.8, FEAT-LED-000 v0.4, FEAT-LED-001 v1.5, SPEC-LED-002 v1.2, DOM-CLASS-001 v3.8, FEAT-OBL-003 v1.1, FEAT-OBL-004 v0.2 and FEAT-STOR-007 v1.1. Complete invalidation creation linkage, exact Ledger v3/v2 payload coverage and typed FEAT-supplied funding authority preserve immutable historical evidence.

Version 3.14 (2026-10-03):

  • Registers the bounded reconciliation-derived Ledger status repair: DOM-LED-001 v2.7, FEAT-LED-001 v1.4, DOM-OPS-002 v1.5 and SPEC-LED-001 v1.1. Immutable creation sequence/signature version 2 and explicit independent proof boundaries replace stored lifecycle state. Historical signatures and correction execution remain outside this cutover.

Version 3.13 (2026-10-03):

  • Registers the attendance details/prospective settlement foundation amendments: DOM-PROD-001 v1.9, FEAT-PROD-001 v1.5, FEAT-PROD-003 v1.5, FEAT-PROD-004 v1.4, DOM-OPS-002 v1.4, and DOM-CORE-002 v1.14. These incorporate persisted system closures and immutable payroll creation lineage; interval invalidation remains a subsequent operation.

Version 3.12 (2026-10-03):

  • Registered SPEC-PROD-001 and FEAT-PROD-005 under the approved documentation-only attendance interval invalidation authority package. Canonical schema and audit registry authorization are updated separately; runtime implementation is not part of this registration.

Version 3.11 (2026-10-01):

  • Registered FEAT-CLASS-008 (Acknowledge the Unpaid-Work Notice), added under owner rulings 2026-10-01. FEAT-CLASS-007 is left unassigned: the 2026-09-19 FEAT registry reconciliation proposes it for the successor of FEAT-SETTINGS-001.

Version 3.10 (2026-09-29):

  • Removed MAP-CLASS-002 from the Maps listing and recorded it under §VI as archived. The class_id-first scoping it described as a future target is the current model (INV-ARC-019, DOM-IDEN-001). Its text still called join_code the main operational class boundary.
  • Added the docs/archive/STANDARD_OPERATING_PROCEDURES/ and docs/archive/MAP/ locations to the §VI archive table.
  • Repointed the V2_INVARIANT_VERIFIER_RECONCILIATION_20260831.md tracking record to its archived location.
  • Versions 3.7 and 3.8 were published without change notes; their content is in the repository history.

Version 3.9 (2026-09-28):

  • Registered SPEC-IDEN-001, the first specification in the IDEN area.

Version 3.6 (2026-09-20):

  • Registered REF-DES-001, an informative, commit-cited history of visual identity, role palettes, brand assets, typography, and public/documentation surfaces.

Version 3.5 (2026-09-20):

  • Added SPEC-OPS-005_FEATURE_HEALTH_EVIDENCE, registered on main while 3.4 was in review.
  • Merged with 3.4’s completion of §V. main had bumped the header to 3.5 over the 3.3 body; this revision keeps that number and the completed listing, so the version reflects both.

Version 3.4 (2026-09-19):

  • Completed the index. Version 3.3 listed 85 of the 131 numbered documents in the repository while §I claimed to be “the canonical master index of all formal documentation”. The 46 absences included nearly every FEAT-* contract, SOP-DB-001, SOP-DEP-001/002, SOP-SEC-001, SPEC-DES-001, SPEC-UI-001 and INV-ARC-022 — that is, most of the procedures a contributor needs before touching the database, the design system, or a mutation path. Every link in 3.3 resolved, so nothing here was visibly broken; the index was simply silent about a third of the corpus, which is the failure mode an index cannot show on its face.
  • Renamed §V from “V2 Restructured Specifications” to “Registered Documents”. The old title framed the list as the subset that had been ported, which is what licensed it to stay partial; there is no unported remainder to distinguish it from.
  • Each entry now carries its document title, and sections are ordered by reference number.
  • Moved the two unnumbered docs/TRACKING/ records that §V cited into their own subsection, marked as descriptive rather than registered, per §II.
  • tests/dom/docs/test_documentation_index_complete.py now fails when a numbered document exists without an entry here, so the gap cannot reopen silently.

Version 3.2 (2026-09-06):

  • Audited every link in this index: 69 of 158 did not resolve. All 87 surviving links now resolve.
  • Replaced §VI (Legacy Specifications) with an archive pointer. It had claimed ~90 v1 documents “remain active for reference”; two-thirds of those paths no longer existed and the rest pointed into docs/archive/ unlabelled.
  • Replaced §VII (Informative Logs) with a removal notice and supersession table. The LOG-* namespace and docs/LOGS/ tree were deleted on 2026-09-05; all five entries were dead.
  • Repaired five near-miss paths (SOP-TEST-001/002/003, the savings-interest spec, FEAT-IDEN-001) that pointed one directory level wrong or at a since-renamed file.
  • Added the PRN-PHL section for PRN-PHL-001, which supersedes LOG-ARC-031 and root PROJECT_HISTORY.md.

Version 3.1 (2026-08-03):

  • Consolidated Phase 3-5 planning and store domain implementation logs into docs/archive/PHASE_PLANNING/ (20 documents archived)
  • Moved root-level phase/store execution docs to archive
  • Consolidated docs/SPECS/SPEC-STORE-001_* into docs/SPEC/ directory; removed empty docs/SPECS/ directory
  • Updated MAP-UI-001 to note store domain completion and removal of redemption_disposition FEAT
  • Updated DEVELOPMENT.md to reflect store domain completion and current v2 status

IX. Amendment

Revisions to this document must increment the version number, update the effective date, and remain consistent with the CTH documentation standard.

Edit canonical source on GitHub

Last updated: 2026-10-25