Repository navigation
docs: complete canonical technical and scientific model #7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 9 commits
Commits
Show all changes
60 commits
Select commit
Hold shift + click to select a range
93a8d55
docs: add canonical documentation map
seonghobae 38efa6c
docs: add canonical technical requirements
seonghobae 78abe86
docs: add temporal psychometrics UML views
seonghobae b94b1e0
docs: add temporal event data model ERD
seonghobae 5c5372e
docs: add scientific validation strategy
seonghobae 05469fd
docs: add TEPP operability and recovery guide
seonghobae e00904f
docs: add TEPP requirements traceability
seonghobae bf50a0c
test: require canonical technical documentation
seonghobae 19bf300
docs: record canonical technical model baseline
seonghobae aa64613
docs: remove invalid unreleased comparison link
seonghobae c1f1b78
docs: unify implementation maturity promotion rule
seonghobae 0ce7d65
docs: constrain temporal relations and reproducibility model
seonghobae c0b480c
docs: harden temporal and reproducibility ERD contracts
seonghobae e2d8d87
docs: add TEPP threat model
seonghobae 4dd157f
docs: add privacy and data governance contract
seonghobae ba40c36
docs: add compliance readiness mapping
seonghobae 1006735
docs: add modular API and service contract
seonghobae 5ca08a1
docs: add LLM orchestration evidence contract
seonghobae 8724c4c
docs: add ADR for purpose-bound PII governance
seonghobae 433d86a
docs: add ADR for adaptive LLM orchestration
seonghobae 1003078
docs: add ADR for standalone and modular MSA boundary
seonghobae 3121919
docs: extend ADR index for governance and integration
seonghobae da1f2b8
docs: complete canonical documentation map
seonghobae 31a33a0
docs: add whole-conversation documentation assessment
seonghobae 3ff4348
docs: extend whole-product traceability
seonghobae 202f70a
docs: verify standards and orchestration research
seonghobae 9f4d2d5
test(docs): require whole-product documentation graph
seonghobae 64b21f6
docs: link documentation fitness assessment
seonghobae 1e00b04
docs: record whole-conversation documentation reconciliation
seonghobae 0f73321
docs: align agent authority with whole-product contract
seonghobae bc9a9b9
docs: align agent context with canonical governance
seonghobae bd113eb
docs: align security with privacy and assurance model
seonghobae 3ad08e9
docs: bind canonical links and research evidence
seonghobae f3d9bc3
docs(adr): define decision and maturity semantics
seonghobae 83d0420
docs(adr): define shared-latent topic measurement authority
seonghobae 1be7280
docs(adr): define persistence and reproducibility authority
seonghobae 80ef76a
docs(adr): define claim promotion and release authority
seonghobae ceb181b
docs(adr): define autonomous development authority separation
seonghobae 0a77a25
docs(adr): define TDT and CHRONOS event intelligence boundary
seonghobae 2b52672
docs(adr): clarify Rust and MSA decision ownership
seonghobae ea98bbe
docs(adr): separate GPU and orchestration authority
seonghobae 6e8860a
docs(adr): make decision ownership and maturity explicit
seonghobae bd65e89
docs(adr): clarify temporal semantics decision
seonghobae 9657e43
docs(adr): clarify event and membership authority
seonghobae 2d1fac9
docs(adr): clarify multilingual measurement authority
seonghobae cbca8a1
docs(adr): clarify psychometric structural authority
seonghobae d534b96
docs(adr): separate privacy decision from implementation maturity
seonghobae 93a84fe
docs(adr): separate orchestration decision from implementation maturity
seonghobae 6384ae5
docs(adr): separate MSA decision from implementation maturity
seonghobae 10cde5f
docs(adr): separate quality decision from maturity
seonghobae 19ed8f1
docs(adr): separate evidence decision from maturity
seonghobae 4e57399
test(docs): enforce complete ADR authority graph
seonghobae ab6637a
docs: expose ADR authority policy in canonical map
seonghobae c28f4a8
docs: record ADR clarity remediation in documentation assessment
seonghobae 1572cd8
docs: bind new ADR authority into traceability
seonghobae 4fd65f0
docs: record ADR authority clarification
seonghobae a68a89f
docs(adr): link policy from decision index
seonghobae 13f6546
docs(adr): make ADR clarity machine-checkable
seonghobae cd349d7
docs(adr): no-op guard check
seonghobae 4d8ff31
docs(adr): no-op guard test
seonghobae File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,33 @@ | ||
| # TEPP Documentation Map | ||
|
|
||
| TEPP's approved PRD v0.4 and implementation plan are already the primary product baseline. This index makes the remaining technical, data, quality, and operating contracts discoverable without duplicating that source material. | ||
|
|
||
| | Area | Canonical document | | ||
| |---|---| | ||
| | Approved product requirements | [`docs/product/prd-v0.4-approved.md`](docs/product/prd-v0.4-approved.md) | | ||
| | Technical requirements | [`docs/TRD.md`](docs/TRD.md) | | ||
| | Architecture | [`ARCHITECTURE.md`](ARCHITECTURE.md) | | ||
| | UML/runtime/scientific flows | [`docs/UML.md`](docs/UML.md) | | ||
| | Logical/physical ERD | [`docs/ERD.md`](docs/ERD.md) | | ||
| | Security policy | [`SECURITY.md`](SECURITY.md) | | ||
| | Test/scientific validation strategy | [`docs/TEST_STRATEGY.md`](docs/TEST_STRATEGY.md) | | ||
| | Operability/recovery/release | [`docs/OPERABILITY.md`](docs/OPERABILITY.md) | | ||
| | Requirement/research/evidence traceability | [`docs/TRACEABILITY.md`](docs/TRACEABILITY.md) | | ||
| | Architecture decisions | [`docs/adr/README.md`](docs/adr/README.md) | | ||
| | Delivery roadmap | [`docs/roadmaps/2026-08-05-tepp-delivery-roadmap.md`](docs/roadmaps/2026-08-05-tepp-delivery-roadmap.md) | | ||
| | Foundation implementation plan | [`docs/superpowers/plans/2026-08-05-temporal-event-foundation.md`](docs/superpowers/plans/2026-08-05-temporal-event-foundation.md) | | ||
| | Standards and APA 7 literature | [`docs/research/standards-and-literature.md`](docs/research/standards-and-literature.md) | | ||
| | Governance | [`GOVERNANCE.md`](GOVERNANCE.md) | | ||
| | Agent development rules | [`AGENTS.md`](AGENTS.md) | | ||
| | Agent context | [`CLAUDE.md`](CLAUDE.md) | | ||
| | Change history | [`CHANGELOG.md`](CHANGELOG.md) | | ||
|
|
||
| ## Maturity vocabulary | ||
|
|
||
| - **implemented-main** — source and tests are present on protected `main`. | ||
| - **active-PR** — implemented only on an open PR and not yet a protected-main claim. | ||
| - **accepted-target** — approved PRD/ADR architecture not yet implemented. | ||
|
seonghobae marked this conversation as resolved.
Resolved
|
||
| - **conceptual** — logical entity/service/model contract; not evidence of a migration or deployment. | ||
| - **research-only** — evaluated research direction not accepted as production behavior. | ||
|
|
||
| At the time of this review, immutable evidence records/exact spans and the Rust workspace quality foundation are implemented-main. PR #5 typed six-clock values/uncertain intervals and PR #6 Allen interval algebra/bounded closure are active-PR. Event ontology, PostgreSQL persistence, shared-latent topic estimation, GPU kernels, TDT/CHRONOS intelligence, longitudinal ESEM/DSEM, and visual analytics remain later accepted-target work. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,283 @@ | ||
| # TEPP Logical and Persistence ERD | ||
|
|
||
| **Status:** Accepted logical target model with current implementation maturity explicitly marked. | ||
| **Last reviewed:** 2026-08-09 | ||
|
|
||
| Protected main currently implements storage-independent evidence domain objects only. PR #5/#6 add temporal domain behavior on active branches. PostgreSQL migrations/tables are accepted-target and are **not implemented** on protected main yet. | ||
|
|
||
| ## Current domain foundation | ||
|
|
||
| ```mermaid | ||
| classDiagram | ||
| class SourceArtifact { | ||
| +artifact_id UUIDv7 | ||
| +content_sha256 | ||
| +immutable bytes | ||
| } | ||
| class DocumentRecord { | ||
| +document_id UUIDv7 | ||
| +content_sha256 | ||
| +immutable UTF-8 text | ||
| } | ||
| class SourceSpan { | ||
| +document_id | ||
| +byte_start | ||
| +byte_end | ||
| +scalar_start | ||
| +scalar_end | ||
| +page_location optional | ||
| } | ||
| SourceArtifact --> DocumentRecord | ||
| DocumentRecord --> SourceSpan | ||
| ``` | ||
|
|
||
| These names summarize the current `evidence_core` domain; they are not PostgreSQL table claims. | ||
|
|
||
| ## Planned PostgreSQL ERD | ||
|
|
||
| ```mermaid | ||
| erDiagram | ||
| TENANT_RECORD ||--o{ DOCUMENT_RECORD : owns | ||
| SOURCE_ARTIFACT ||--o{ DOCUMENT_RECORD : contains | ||
| DOCUMENT_RECORD ||--o{ TEXT_SEGMENT : contains | ||
| DOCUMENT_RECORD ||--o{ TEMPORAL_ASSERTION : carries | ||
| TEXT_SEGMENT ||--o{ EVENT_MENTION : evidences | ||
| EVENT_INSTANCE ||--o{ EVENT_MENTION : realized_by | ||
| EVENT_INSTANCE ||--o{ EVENT_RELATION : source_event | ||
| EVENT_INSTANCE ||--o{ EVENT_RELATION : target_event | ||
| ENTITY_RECORD ||--o{ ENTITY_ROLE_ASSIGNMENT : assigned | ||
| EVENT_INSTANCE ||--o{ ENTITY_ROLE_ASSIGNMENT : contextualizes | ||
| PROJECT_RECORD ||--o{ ENTITY_ROLE_ASSIGNMENT : contextualizes | ||
| DOCUMENT_RECORD ||--o{ MEMBERSHIP_ASSIGNMENT : observed_unit | ||
| ENTITY_RECORD ||--o{ MEMBERSHIP_ASSIGNMENT : membership_target | ||
| MODEL_RUN ||--o{ TOPIC_DEFINITION : estimates | ||
| MODEL_RUN ||--o{ TOPIC_SCORE : estimates | ||
| MODEL_RUN ||--o{ VALIDATION_METRIC : reports | ||
| TOPIC_DEFINITION ||--o{ TOPIC_CORRELATION : source_topic | ||
| TOPIC_DEFINITION ||--o{ TOPIC_CORRELATION : target_topic | ||
| TOPIC_CLUSTER ||--o{ CLUSTER_MEMBERSHIP : contains | ||
| TOPIC_DEFINITION ||--o{ CLUSTER_MEMBERSHIP : member | ||
| MODEL_RUN ||--o{ FACTOR_SOLUTION : estimates | ||
| FACTOR_SOLUTION ||--o{ FACTOR_LOADING : contains | ||
| MODEL_RUN ||--o{ AUDIT_EVENT : evidenced_by | ||
|
|
||
| TENANT_RECORD { | ||
| uuid tenant_record_id PK | ||
| text tenant_status_code | ||
| timestamptz created_at | ||
| } | ||
|
|
||
| SOURCE_ARTIFACT { | ||
| uuid source_artifact_id PK | ||
| uuid tenant_record_id FK | ||
| text content_sha256 UK | ||
| bigint source_size_bytes | ||
| text media_type_code | ||
| text protected_object_ref | ||
| timestamptz system_time | ||
| } | ||
|
|
||
| DOCUMENT_RECORD { | ||
| uuid document_record_id PK | ||
| uuid tenant_record_id FK | ||
| uuid source_artifact_id FK | ||
| text content_sha256 | ||
| text language_profile_code | ||
| timestamptz assertion_time | ||
| timestamptz document_time | ||
| timestamptz system_time | ||
| timestamptz available_time | ||
| } | ||
|
|
||
| TEXT_SEGMENT { | ||
| uuid text_segment_id PK | ||
| uuid document_record_id FK | ||
| bigint byte_start | ||
| bigint byte_end | ||
| bigint scalar_start | ||
| bigint scalar_end | ||
| text segment_type_code | ||
| } | ||
|
|
||
| TEMPORAL_ASSERTION { | ||
| uuid temporal_assertion_id PK | ||
| uuid document_record_id FK | ||
| text clock_type_code | ||
| timestamptz lower_time | ||
| timestamptz upper_time | ||
| text lower_boundary_code | ||
| text upper_boundary_code | ||
| text source_precision_code | ||
| } | ||
|
|
||
| EVENT_INSTANCE { | ||
| uuid event_instance_id PK | ||
| uuid tenant_record_id FK | ||
| text event_type_code | ||
| timestamptz valid_from | ||
| timestamptz valid_to | ||
| text lifecycle_status_code | ||
| } | ||
|
|
||
| EVENT_MENTION { | ||
| uuid event_mention_id PK | ||
| uuid event_instance_id FK | ||
| uuid text_segment_id FK | ||
| numeric confidence_score | ||
| } | ||
|
|
||
| EVENT_RELATION { | ||
| uuid event_relation_id PK | ||
| uuid source_event_id FK | ||
| uuid target_event_id FK | ||
| text relation_type_code | ||
| uuid evidence_segment_id FK | ||
| numeric confidence_score | ||
| boolean transition_edge | ||
| } | ||
|
seonghobae marked this conversation as resolved.
Resolved
|
||
|
|
||
| ENTITY_RECORD { | ||
| uuid entity_record_id PK | ||
| uuid tenant_record_id FK | ||
| text entity_type_code | ||
| text canonical_name | ||
| } | ||
|
|
||
| PROJECT_RECORD { | ||
| uuid project_record_id PK | ||
| uuid tenant_record_id FK | ||
| text project_type_code | ||
| text lifecycle_status_code | ||
| } | ||
|
|
||
| ENTITY_ROLE_ASSIGNMENT { | ||
| uuid entity_role_assignment_id PK | ||
| uuid entity_record_id FK | ||
| uuid event_instance_id FK | ||
| uuid project_record_id FK | ||
| text role_type_code | ||
| timestamptz valid_from | ||
| timestamptz valid_to | ||
| numeric membership_weight | ||
| uuid evidence_segment_id FK | ||
| } | ||
|
|
||
| MEMBERSHIP_ASSIGNMENT { | ||
| uuid membership_assignment_id PK | ||
| uuid document_record_id FK | ||
| uuid membership_target_id | ||
| text membership_type_code | ||
| numeric membership_weight | ||
| timestamptz valid_from | ||
| timestamptz valid_to | ||
| } | ||
|
seonghobae marked this conversation as resolved.
Resolved
seonghobae marked this conversation as resolved.
Resolved
|
||
|
|
||
| MODEL_RUN { | ||
| uuid model_run_id PK | ||
| uuid tenant_record_id FK | ||
| text corpus_hash | ||
| text engine_version | ||
| text configuration_hash | ||
| text compute_backend_code | ||
| text random_seed_manifest_hash | ||
| timestamptz knowledge_cutoff | ||
| timestamptz created_at | ||
| } | ||
|
seonghobae marked this conversation as resolved.
Resolved
|
||
|
|
||
| TOPIC_DEFINITION { | ||
| uuid topic_definition_id PK | ||
| uuid model_run_id FK | ||
| integer topic_number | ||
| text topic_status_code | ||
| } | ||
|
|
||
| TOPIC_SCORE { | ||
| uuid topic_score_id PK | ||
| uuid model_run_id FK | ||
| uuid document_record_id FK | ||
| uuid topic_definition_id FK | ||
| numeric posterior_mean | ||
| numeric posterior_sd | ||
| } | ||
|
|
||
| TOPIC_CORRELATION { | ||
| uuid topic_correlation_id PK | ||
| uuid model_run_id FK | ||
| uuid source_topic_id FK | ||
| uuid target_topic_id FK | ||
| numeric posterior_median | ||
| numeric interval_lower | ||
| numeric interval_upper | ||
| numeric selection_probability | ||
| } | ||
|
|
||
| TOPIC_CLUSTER { | ||
| uuid topic_cluster_id PK | ||
| uuid model_run_id FK | ||
| text cluster_status_code | ||
| numeric stability_score | ||
| } | ||
|
|
||
| CLUSTER_MEMBERSHIP { | ||
| uuid cluster_membership_id PK | ||
| uuid topic_cluster_id FK | ||
| uuid topic_definition_id FK | ||
| numeric assignment_probability | ||
| } | ||
|
|
||
| FACTOR_SOLUTION { | ||
| uuid factor_solution_id PK | ||
| uuid model_run_id FK | ||
| text model_type_code | ||
| text invariance_status_code | ||
| } | ||
|
|
||
| FACTOR_LOADING { | ||
| uuid factor_loading_id PK | ||
| uuid factor_solution_id FK | ||
| uuid topic_definition_id FK | ||
| text factor_code | ||
| numeric loading_estimate | ||
| numeric standard_error | ||
| } | ||
|
|
||
| VALIDATION_METRIC { | ||
| uuid validation_metric_id PK | ||
| uuid model_run_id FK | ||
| text metric_type_code | ||
| text evaluation_slice_code | ||
| numeric metric_value | ||
| numeric interval_lower | ||
| numeric interval_upper | ||
| } | ||
|
|
||
| AUDIT_EVENT { | ||
| uuid audit_event_id PK | ||
| uuid tenant_record_id FK | ||
| uuid model_run_id FK | ||
| text action_code | ||
| text outcome_code | ||
| text evidence_digest | ||
| timestamptz system_time | ||
| } | ||
| ``` | ||
|
|
||
| ## Temporal/bitemporal invariants | ||
|
|
||
| - Event/valid time and system/record time are distinct. | ||
| - `available_time` gates historical inclusion through `knowledge_cutoff`. | ||
| - Retrospective evidence may describe an earlier event while retaining its later availability/system time. | ||
| - Transition edges never derive a reverse state transition from a backward-pointing citation/revision/retrospective edge. | ||
| - A future physical schema must represent uncertain/open intervals without coercing them to false exact timestamps. | ||
|
|
||
| ## Multiple-membership invariant | ||
|
|
||
| Customer/partner/competitor/author/department/project roles are contextual time-varying assignments. They are not static attributes on `entity_record`. One document/event may have multiple weighted memberships. | ||
|
|
||
| ## Provenance/reproducibility invariant | ||
|
|
||
| Every published analytical artifact must be traceable to source hashes, evidence spans, preprocessing/concept versions, model/configuration/seed, compute backend, dependency lock, and Git commit. Audit records store bounded evidence/digests rather than copying protected source text unnecessarily. | ||
|
|
||
| ## Migration acceptance | ||
|
|
||
| Before this planned ERD becomes as-built, migrations must include rollback, tenant/RLS policy, temporal constraints/indexes, lineage integrity, idempotency/concurrency, retention/deletion, backup/recovery, and synthetic known-truth integration tests. The documentation maturity label then changes only after protected-main integration. | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.