Skip to content

Components And Classes

This page describes the responsibilities of each component and the domain model behind them, expressed as a Unified Modeling Language class diagram.

Component Responsibilities

Component Responsibility Key rule
Router Classify and place incoming work Nothing is written before it is classified
Promotion service Prepare material for promotion Attach source references and sensitivity
Validation check Gate promotion Fail closed when references or metadata are missing
Registry Record authority and history Manifest plus promotion log are the record of truth
Retrieval service Serve governed search Keep corpora separate and label results
Evaluation service Test and improve retrieval Improvements are review-gated
Decision store Compile packages and relationships Human validation before knowledge is accepted

Domain Model

The class diagram shows the entities the system manages and how they relate. Names are generic.

classDiagram
    class Artifact {
      +string id
      +string title
      +Zone zone
      +Sensitivity sensitivity
      +string derivation
      +ValidationStatus validationStatus
      +date lastReviewed
      +string owner
    }
    class SourceRef {
      +string id
      +string kind
      +string reference
    }
    class ManifestEntry {
      +string artifactId
      +string authorityClass
      +bool ragInclude
      +date promotedAt
    }
    class PromotionLogEntry {
      +string id
      +string reason
      +string reviewer
      +ValidationStatus validationStatus
      +datetime recordedAt
    }
    class IndexRecord {
      +string id
      +string corpus
      +int chunkCount
      +datetime indexedAt
    }
    class EvalCase {
      +string id
      +string stage
      +string rubricRef
      +string expected
    }
    class EvalRun {
      +string id
      +string stage
      +float schemaValidity
      +float score
      +float adversarialScore
      +int adapterErrors
      +int schemaErrors
      +datetime runAt
    }
    class Package {
      +string id
      +string name
      +string kind
      +string initiative
    }
    class PackageRelationship {
      +string id
      +string type
      +string strength
      +ValidationStatus validationStatus
    }
    class EvidenceObject {
      +string id
      +string claimRef
    }
    class ClaimCandidate {
      +string id
      +string text
      +ClaimPosture posture
      +ValidationStatus validationStatus
    }

    Artifact "1" --> "many" SourceRef : cites
    Artifact "1" --> "0..1" ManifestEntry : registered as
    Artifact "1" --> "many" PromotionLogEntry : logged by
    Artifact "1" --> "many" IndexRecord : indexed as
    Artifact "1" --> "many" ClaimCandidate : yields
    Package "1" --> "many" ClaimCandidate : contains
    Package "1" --> "many" EvidenceObject : contains
    Package "1" --> "many" PackageRelationship : from
    Package "1" --> "many" PackageRelationship : to
    EvidenceObject "1" --> "1" SourceRef : grounded in
    EvalCase "1" --> "many" EvalRun : scored in

Enumerations

  • Zone: capture, working, evergreen, promoted, private, archive.
  • Sensitivity: public, internal, private.
  • ValidationStatus: unvalidated, self checked, reviewed, accepted.
  • ClaimPosture: fact, assumption, inference, recommendation, decision, unknown.

The ClaimPosture enumeration is the same labeling taxonomy the router applies to content. It travels with the knowledge from intake all the way into the decision store, so a compiled claim always carries how strongly it is held.