Skip to content

docs(architecture): separate TEPP temporal semantics from psychometric kernels - #1716

Open
seonghobae wants to merge 43 commits into
mainfrom
fix/tepp-temporal-boundary-565-20260901
Open

docs(architecture): separate TEPP temporal semantics from psychometric kernels#1716
seonghobae wants to merge 43 commits into
mainfrom
fix/tepp-temporal-boundary-565-20260901

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Refs #565.

Scope

Establish the bounded-context boundary between time-indexed psychometric computation and temporal/event composition without deleting the existing Rust CT-AR Rasch numerical estimand.

  • ADR-0028 is the governing ownership decision: TEPP owns temporal/event composition and semantics; fast-mlsirm owns reusable time-indexed psychometric numerical kernels over explicit supplied occasion/time carriers;
  • TEPP-originated temporal designs require an explicit versioned, immutable Anti-Corruption Layer with compatibility/provenance identity; cross-service SQL, direct TEPP database access, and hidden TEPP runtime dependencies are prohibited;
  • older Proposed ADR-0007, ADR-0019 and ADR-0020 remain valid model-design records but are explicitly qualified by ADR-0028 in their own current text;
  • root ARCHITECTURE.md, authoritative PRD/TRD, requirements traceability, AGENTS.md, CLAUDE.md, docs/context-map.md, and the changelog fragment carry the same ownership boundary;
  • the DDD Context Map separates Model Specification, Estimation, Scoring, Diagnostics, Simulation-Recovery, Compute Backend, and Public Binding, and records the ACL/upstream/downstream relationships to TEPP, psychometrics-commons, context-graph-contracts, and enterprise-architecture-core;
  • Public Binding forbids independent production statistical arithmetic while preserving governed explicit reference/parity calculations used for validation or CPU/GPU parity evidence;
  • the active Context Map is linked from the canonical docs/README.md architecture index and its architecture-fitness tests bind claims to their intended Markdown sections rather than searching whole-document fragments;
  • architecture fitness tests preserve the protected-main Rust identities joint_map_hierarchical_ctar_rasch, continuous_time_ar1_ou, and ctar_phi while machine-checking the owner boundary and agent/context-map guidance;
  • no scientific result value is promoted into EA authority.

No likelihood, gradient, optimizer, state-transition arithmetic, Python production arithmetic, provider integration, dependency, lockfile, workflow, schema, or database code changes in this PR.

Test-first / correction lineage

  • Source RED 127eee1fa76eadf79f76c6f37ccaabc5f9c63ecb first exposed the missing executable TEPP/fast ownership boundary. Fresh protected-main inspection then found the existing Rust joint-MAP Rasch + continuous-time AR(1)/OU implementation, so the initial over-broad ownership hypothesis was narrowed rather than deleting valid numerical work.
  • ADR/fitness/index/changelog work through 43ba529c3b2dfa65e430735e5dce8ca9ee4fbe65 established the accepted distinction: temporal/event semantics and composition are TEPP-owned; explicit time-indexed psychometric numerical kernels remain fast-mlsirm-owned.
  • RED a61ceed6296077fb565d33b34216dbe95817e7bc → GREEN 069c0f7de097533479dad02ca7aa9eee3c78d633 aligns authoritative PRD/TRD with that boundary while preserving the existing CT-AR equations.
  • RED 6898da2e8b76b6efec2f9b701564c015dbba91b6 → GREEN 46a92673bd590e0cb5c99c16d5d7f5a39c38daaa makes the canonical requirements traceability matrix identify TEPP as temporal/event-composition authority and fast-mlsirm as numerical-kernel authority.
  • Agent-guidance RED a8581471d7062178dac4b678c3761ae666ee285a is closed by cfd6f39b8bc010312972cdd610e35de69de9aa6f and 792db95f7e78487ce998003fec6d0438fbb5864b; f877623154f15faa13f33e3797fa282f7d1233e9 keeps the changelog fragment current.
  • Context-map RED ac39b45d20a1dfb1a4ab0d2d45507bd774aa301d → GREEN a340859584c856918eb22f050af416d008b9a6ef, with bdc3041c062487e8951937cd5884a5339fceba76 recording the addition.
  • Review RED 2f0482127e1f75311001cc7eff5c43ac4d97d39a → GREEN 2c6b63dcacc5c45bace6c0c3c8d4daadf50573c3; 6820ae775cbb415def348818ccaa60a7759073bb links the active Context Map from the canonical documentation index.
  • Protected main later advanced through the binary-response Measurement contract. The branch was reconciled forward rather than force-rebased at 6c98b0f1e05bbf4ccf51128f5ed1dd14e9515036, preserving protected main@b5a3a0c1057d4b53d7a4bb18e0de69f630c2b45c in ancestry.
  • Historical-ADR RED 5870095f18657e36139111e4b95355c0cdbe6a53 proved ADR-0007 lacked an in-file executable ownership qualification. GREEN e31c81c946c060eecf0f48117d4566315ed132e4 makes ADR-0028 authoritative for every temporal statement in that Proposed record; a9d50d831b2813a66a70fbc0f41b731ad008dc04 aligns the regression with Markdown clause identity.
  • RED 36452da4f64b46ad9c35c2e5c8c96d0b46e9ce80 extended the same test to ADR-0019/0020. GREEN bd30a8893aa7cf7470adb08711378765cfc9deb2 and a9ad70f36f925781f1091b2f9028b24be7737753 explicitly keep event ontology, temporal validity/order, changing-membership history, leakage policy, and temporal/event composition in TEPP while retaining only their stated OLS/discrete-AR and CT-AR Rasch arithmetic in fast-mlsirm. 91c6563c2a3c4d8bddd75b94d261d92e864cf97e makes the policy regression insensitive only to Markdown line wrapping, not clause content.
  • fcaeeed79c77a7b00eb8d6c053001c92471c6b6b corrects the Jeon & Rabe-Hesketh longitudinal-growth citation from an erroneous 2025 advance-publication record to the actual 2016 Psychometrika, 81(3), 830–850 publication, DOI 10.1007/s11336-015-9489-2. The bibliographic correction was independently verified against PubMed and changes no ownership or numerical contract.

All currently visible predecessor review findings are resolved; predecessor-head check/review evidence is not transferred after source movement.

Context Graph / EA boundary

ContextualWisdomLab/context-graph-contracts and ContextualWisdomLab/enterprise-architecture-core are read-only dependencies under the Context Fabric writer. Their live governance/release/stack state is refetched before integration decisions; open sibling heads are not immutable production contracts and this PR does not write either repository.

Architecture/package/backend/toolchain/consumer-lifecycle facts may be projected only through an immutable released versioned Context Assertion / CloudEvent / conformance contract with provenance. Estimator values, latent scores, DIF/fit diagnostics, and scientific-validity evidence are not EA-authoritative facts. At the latest fresh read, neither foreign repository has an immutable GitHub release, so production EA projection remains fail-closed.

CI and Noema follow-up

  • Exact-head CI run 33757490863 failed identically on CPython 3.12 and 3.14: test_agent_guidance_preserves_temporal_and_context_fabric_boundaries treated Markdown line wrapping in both governed agent-guidance files as a policy change. Commit 8b0fc04b4c2eee4ee54b74e581d0b626cca634bc repaired the comparison; follow-up 36b0533f90f75e09eb74e8dbe4103e827c7d3c45 narrows normalization to newlines so hard-wrapped sentences pass without allowing ownership phrases to span separate paragraphs.
  • Local verification on exact head 7e5b69212eb6146f1b016e466affeabbc5b47931: CPython 3.12 full 6765 passed, 17 skipped in 256.30s; CPython 3.14 focused 10 passed in 0.11s; git diff --check b5a3a0c1057d4b53d7a4bb18e0de69f630c2b45c...HEAD passed. Commit 7e5b69212eb6146f1b016e466affeabbc5b47931 removes four pre-existing trailing-whitespace failures from the PR diff without changing policy content.
  • Historical Noema run 33646974279 successfully selected the repository-scoped GitHub App credential and completed the gateway preflight before contextual-orchestrator returned HTTP 500 after 649.5 seconds in the connecting phase with no served model. Credential failure is not the root cause.
  • The later exact-head Noema run 33757488400 also completed credential selection, token minting, sidecar startup, and gateway preflight before the model phase failed with HTTP 502 after 141.0 seconds in the connecting phase with no served model.
  • A Noema success on this PR is not accepted as goal 🛡️ Sentinel: [ENHANCEMENT] HTML 보고서에 CSP 헤더 추가 #40 runtime evidence until contextual-orchestrator PR fix(ata): seal content-string callback admission #1049 and central .github PR #1850 are both protected-merged and the exact-current-head workflow runs against those landed contracts.

Current landing authority

  • protected base: main@b5a3a0c1057d4b53d7a4bb18e0de69f630c2b45c;
  • exact current head: 7e5b69212eb6146f1b016e466affeabbc5b47931;
  • the remote branch advanced non-force from 8b0fc04b4c2eee4ee54b74e581d0b626cca634bc to 7e5b69212eb6146f1b016e466affeabbc5b47931;
  • GitHub reports the PR open, Ready, and mergeable, with independent approval still required;
  • exact-current CI, CodeQL, Security Scan, Semgrep, Strix, OpenCode, Noema admission, and scheduler work are queued on the new head. Queued states are non-passing, and no predecessor result transfers.

Landing still requires fresh exact-current required checks, zero valid unresolved review findings, and the qualifying independent approval required by the live protection/ruleset. No self-approval, bypass, force push, gate weakening, or predecessor evidence transfer is authorized.

@coderabbitai

coderabbitai Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Team

Run ID: e2a16acf-a02d-45d0-a384-01c669a43b7a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Changes

TEPP temporal boundary

Layer / File(s) Summary
Boundary decision and contracts
docs/adr/0028-tepp-temporal-event-composition-boundary.md
Defines TEPP ownership of temporal/event semantics and fast-mlsirm ownership of numerical kernels. It specifies typed contracts, projection rules, invariants, and failure behavior.
ADR index and changelog alignment
docs/adr/README.md, docs/changelog.d/565-tepp-temporal-boundary-20260901.md
Updates related ADR descriptions and records the new ownership boundary.
Architecture fitness validation
tests/test_tepp_temporal_context_boundary.py
Tests the boundary decision, prior ADR references, CT-AR Rasch preservation, and released Context Graph contract requirements.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: 🔵 Low · up to 2a9fc

The PR adds documentation and architecture checks without changing production behavior, but the adapter contract is not explicitly versioned and the checks do not fully enforce policy direction, index alignment, or manifest-level coupling rules. This is a bounded merge-readiness risk that is mergeable with explicit owner follow-up.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 1 files. (3 skipped: 3 …
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: separating TEPP temporal semantics from reusable psychometric numerical kernels.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/tepp-temporal-boundary-565-20260901

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note

This report is out of date. Scroll down for Devin Review's latest report on this PR.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Devin Review

coderabbitai[bot]

This comment was marked as resolved.

@seonghobae
seonghobae enabled auto-merge (squash) September 1, 2026 08:29

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Post-#1496 control-plane wake verification only; this is not an approval. Re-evaluate exact head ce763c49b50a2426b217ab048e4cc0fc6dc0b8fd under the newly landed central pull_request_review dispatch path and preserve current-head evidence.

devin-ai-integration[bot]

This comment was marked as resolved.

@opencode-agent
opencode-agent Bot disabled auto-merge September 1, 2026 10:22
@seonghobae
seonghobae enabled auto-merge (squash) September 1, 2026 12:31

@seonghobae seonghobae left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exact-current-head review wake for 43ba529c3b2dfa65e430735e5dce8ca9ee4fbe65 after central .github/main@5f81d8e665b7d3f51f379a090e077486dbf548c5 landed the current Strix preflight timeout repair and Noema deleted-file context repair. This is not approval and does not transfer predecessor evidence.

@opencode-agent
opencode-agent Bot disabled auto-merge September 1, 2026 12:58
devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae seonghobae added the documentation Improvements or additions to documentation label Sep 1, 2026 — with ChatGPT Codex Connector
devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

devin-ai-integration[bot]

This comment was marked as resolved.

@seonghobae seonghobae added the type: docs Documentation, ADR, PRD, or technical writing label Sep 2, 2026 — with ChatGPT Codex Connector

Copy link
Copy Markdown
Contributor Author

Fresh documentation-ownership repair: docs/superpowers/specs/2026-08-07-multilevel-multiple-membership-longitudinal-contracts-design.md contained a valid one-line APA citation correction on the product-gap writer #1519, outside that lane's path ownership. The correction is now adopted here, the active temporal/research-boundary owner: Jeon & Rabe-Hesketh is corrected from the erroneous 2025 advance-publication record to the 2016 Psychometrika, 81(3), 830–850 publication with DOI 10.1007/s11336-015-9489-2.

Exact current head is fcaeeed79c77a7b00eb8d6c053001c92471c6b6b. #1519 has removed its duplicate copy and now changes only docs/product-technical-gap-baseline.md. This source move invalidates every predecessor check/review on #1716; the earlier 91c6563... landing paragraph is historical. No temporal/event ownership boundary or psychometric arithmetic changed.

@seonghobae
seonghobae enabled auto-merge September 4, 2026 13:30
@opencode-agent
opencode-agent Bot disabled auto-merge September 4, 2026 16:27
@seonghobae seonghobae closed this Sep 4, 2026
@seonghobae seonghobae reopened this Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

Single-writer handoff for docs/traceability/requirements-matrix.md: #1791 now owns only the new docs/traceability/personfit-primary-source-matrix.md path for #1790 and deliberately did not edit the canonical requirements matrix because this PR already writes it. When this matrix writer next moves, please adopt a bounded row/link stating that protected-main nonparametric person-fit computation exists as a PerFit-source port while primary-equation traceability remains OPEN under #1790/#1791; do not label bridge/package evidence as primary-source completion. No TEPP ownership or temporal-kernel semantics need to change for that row.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation priority: medium Normal-priority or P2 work status: needs-review Open pull request requiring current-head review or checks type: docs Documentation, ADR, PRD, or technical writing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant