Information architecture

Tag enough to trace meaning — not enough to invent a second ontology.

Primitive uses a stable source tag envelope, then adds type-specific metadata and derived context. The point is to answer “what is this, where did it come from, what does it mean here, and can I trust/use it?” without overwriting provenance.

TL;DR

Source tags travel with the source. Filing is separate and changeable. Workspace may add memory, graph, E/P/A, experiment, agent and context metadata, but derived metadata never rewrites the source identity.

ELI5

The label on the original box never changes. You can put the box on a different shelf, add sticky notes, connect it to other boxes and rate how useful it is for today’s job — but you do not pretend it came from somewhere else.

Synthesis

This gives agents a predictable metadata grammar. They can retrieve by source identity, function, evidence, lifecycle, scope and relationship; then Context Compiler/Reflex can choose the relevant subset for the active frame. The canonical 27-state E/P/A chart is one derived interpretation layer, not the source tag itself.

Metadata layersEach layer adds interpretation without mutating the layer before it.
Source bytesOriginal content + provenance
primitive.tags/v1Stable universal source classification
primitive.filing/v1Changeable navigation/category projection
OS metadataObjects, relationships, Memory, Evidence, Experiments, E/P/A
ContextPackAuthorised objective-specific projection
Run / ReceiptWhat was actually used and what happened
Universal grammar

The eight questions every important record should answer

DimensionQuestionTypical fields
IdentityWhat exact thing is this?Stable ID, source ID, content hash, revision/version
ClassificationWhat kind of thing is it?Asset/object type, functions, artifact types, domain
EvidenceWhat do we actually know about it?Evidence state, verification, confidence, source/evidence refs
LifecycleWhere is it in its lifecycle?Captured, candidate, accepted, superseded, rejected, active, archived
GovernanceWho may see/use/change it?Scope, sensitivity, security flag, review requirement, authority
ContextWhere did it come from and where does it belong?Project, source, original path, frame/scope
RelationshipsHow does it connect?Parent/child, depends_on, derives_from, contradicts, supersedes, related
ProvenanceCan we trace the claim/output?Source URI/path, hashes, timestamps, actor, run/receipt IDs
Implemented source envelope: Foundry’s primitive.tags/v1 uses identity, classification, evidence, lifecycle, governance, context and labels. “Relationships” and richer provenance are added by Foundry/OS records rather than shoved into one flat tag list.
Sources / documents

What an ingested document needs

Field groupMinimum useful informationWhy
identityasset_id, content_sha256, source_scopeStable identity + integrity
classificationrelationship_to_primitive, asset_type, functions[], artifact_types[], domains[]Retrieval and routing without relying on folders
evidencestate, confidencePrevents “file exists” becoming “claim is true”
lifecyclestate, presentTracks capture/currentness
governancesensitivity, security_sensitive, requires_reviewControls what may be indexed/promoted
contextsource_id/kind/label, project, original_path, relative_pathTrace back to source estate
labelsSearchable convenience termsFast lexical filtering
filingprimary_category, secondary_categories, confidence, reasonsHuman navigation; separate from source truth
Components / capabilities

Reusable code needs implementation context, not just keywords

Foundry’s capability registry groups reusable implementation candidates as Primitive → Component → Assembly → Recipe. Its component records already carry the fields below; agents should preserve them when describing reusable code.

FieldMeaning
component_id / name / kind / levelStable capability identity and its place in Primitive → Component → Assembly → Recipe
source_ids / filesWhere the implementations came from
languageImplementation/runtime context
inputs / outputsInterface shape
dependenciesWhat must exist for reuse
maturity / status / confidenceHow production-ready the capability appears
tagsFunctional/search classifications
testsEvidence that behaviour is exercised
provenanceImplementation/source lineage
implementation_countWhether multiple competing implementations exist
Reuse rule: a component match is a candidate for reuse, not automatic authority to copy/ship it. Licence, compatibility, tests and current source evidence still matter.
Memory

A memory record needs both content and retrieval/lifecycle metadata

AreaFieldsWhy
Scopescope_type, scope_id, owner_id, agent_idWho/what this memory belongs to
Typehuman_fact | source_claim | ai_inference | temporaryStops inference being confused with user/source fact
Laneshort | long | semantic | episodic | sharedRetrieval/lifecycle intent
Lifecycleactive, pinned, expires_at, promoted_fromFade/promotion/history
Provenanceprovenance, source_refs, evidence_refsTrace the memory back to support
Retrieval qualityconfidence, salience, retrieval_strength, last_accessed_at, access_countRank and maintain Memory without making it canon
Graphentities, relations, contradicts, supersedesResolve conflicts and related recollections
Embeddingembedding, embedding_modelDerived semantic retrieval layer
Context

Context is a compiled package, not another permanent tag bag

Agents should not “tag context” by copying every available label into a prompt. Context Compiler produces a bounded primitive.context-pack.v1 with objective, scope, selected object, related canonical context, conversation, attachments, compacted history, retrieval, prior runs, provenance and budget.

Context selection
Objective + scopeWhat is being done, under whose access
Candidate universeObjects, Memory, Knowledge, files, chats, runs
AdmissionScope + lifecycle + source validity
RankingRetrieval / relationships / task relevance
BudgetCharacter/item limits; lower priority trimmed
ContextPackExact source/version provenance retained
E/P/A metadata

The 27-state coordinate is derived interpretation

Workspace primitive_metadata may attach state_model/version, state_27, E/P/A axes, classification status, probability, uncertainty, consequence, risk, confidence, importance, domains, categories, verification and derivation trace. E/P/A must remain exactly three ternary axes; the continuous values are overlays.

Trace rule: every derived coordinate should preserve derived_at, derived_by and derivation_trace so a later agent can reconstruct why Qxx was assigned.
Evidence / experiments

Evidence and experiments need reproducibility fields, not marketing labels

ObjectImportant fields
Evidenceclaim, source_type, source_name/url/locator, excerpt, confidence, uncertainty, verification_status, provenance, receipt
Investigationquestion, objective, status, current_stage, closure_class/reason, active_scenario_id, contract
Benchmarkcapability, scenario_id, judge_type, method_a/b, scores, latency, cost, reproducibility_hash, registry_status
Recipetask_archetype, runtime_profile, stages, methods, outputs, registry_status, benchmark_score, cost, latency
Agents / skills

An agent definition must expose its capability and authority envelope separately

Agent metadataWhy it matters
role_title / purposeWhat the agent is for
model_provider / model_nameExecution resource, not identity/authority
system_prompt / versionInstructions actually in force
authority_level / scopesWhat effects are allowed
skills / tools / MCPsCapabilities that may be invoked
spending_limitResource envelope
passport / provenanceIdentity, version and lineage evidence
Agent tagging checklist

What an agent should ask before creating metadata

  1. Identity: Is this an existing object/source/component, or am I accidentally creating a duplicate?
  2. Source: What exact source/hash/version supports this?
  3. Type: Is it a source, claim, memory, evidence item, component, experiment, agent, skill or work object?
  4. Scope: Who may see/use it, and at what organisation/project/private boundary?
  5. Evidence state: Is it implemented, observed, inferred, hypothetical, accepted, superseded or unknown?
  6. Relationships: What does it derive from, support, contradict, supersede, depend on or belong to?
  7. Lifecycle: Is this captured/candidate/accepted/active/retired/etc.?
  8. Derived context: Does E/P/A or another chart apply in this frame? If yes, record derivation/provenance rather than treating it as source truth.
Reference / evidence

Canonical sources