FIN Projection Catalog
Date: 2026-05-15
Status: Draft v0.1 (skeleton — sections 1-5 seeded; sections 6-9 deferred to v0.2)
Related design: docs/design/FIN_INTRANET_HUMAN_AGENT_PROJECTION_LAYER_DESIGN_2026-05-13.md
Related spec: docs/engineering/FIN_INTRANET_HUMAN_AGENT_PROJECTION_ENGINEERING_SPEC_2026-05-13.md (v0.2)
Related audit: docs/audits/FIN_INTRA_GTM_PLANNING_CODEBASE_GAP_AUDIT_2026-05-13.md
Related strategy: docs/strategy/FIN_DATA_PLANE_AUDIT_2026-04-30.md
0. Purpose
This catalog enumerates every markdown projection FIN produces. Each projection is a deterministic transform from canonical sources (events + knowledge rows + storage bytes) into a human-readable, agent-readable, citable artifact. The catalog defines the entire surface area of FIN’s system of intelligence.
The catalog exists to:
- prevent ad-hoc projection sprawl
- give engineering, agents, customers, and regulators a single index of what FIN generates
- bind every projection to a wave, a renderer version, an audience filter, and a citation policy
- form the contribution boundary for the public Harvest Directory
Anything not in this catalog should not be projected. New projections require a catalog entry, a Wave assignment, and a renderer-version registration before implementation.
1. Principles
- One entity, one current profile. Each Taproot entity row has exactly
one current
entity_profiledoc plus optional immutable weekly/monthly snapshots. - Immutable snapshots. Snapshots are written once, never updated. They are the citation targets for federal and historical claims.
- Renderer version recorded. Every projection row carries
renderer_version. Bumps require an explicit backfill plan. - Citations on every claim. No projected fact ships without
fact_citations[]pointing to events, knowledge rows, or external authoritative sources. - Anonymization is a policy artifact. Public-anonymized projections reference a versioned, reviewable policy. The policy is auditable and diff-able.
- Determinism is required for legal-grade projections.
recall_trace,proof_package, and federal-audience projections MUST produce identical output for identical inputs. - No projection without a wave. Every entry in §5 is tagged Wave 1 / 2 / 3 / 4 / Deferred. Implementation cannot precede catalog tagging.
- No new doc_kinds via inline invention. New
doc_kindvalues require a spec amendment and migrate through §4 before §5. - JSONB is the storage; markdown is the rendering. Each projection is a
knowledge.domain = docrow with JSONB content. The markdown body lives inside that JSONB. Bytes (charts, attachments) live behind StorageProvider. - Public mirrors are derived, never authored. Harvest Directory entries are projected from tenant data through the anonymization gate. They are not separately authored, otherwise they drift.
2. Source Planes
Projections are categorized by which of the three data planes they read from and which they write to. Reading from a higher-trust plane and writing to a lower-trust plane requires an anonymization policy.
2.1 Plane 1 — Private Workspace
Source of: personal notes, role-scoped task lists, actor-memory digests, authored decision records scoped to one actor.
Reads from: actors.memory, authored markdown in GitHub, private events.
Writes to: knowledge.domain = doc with visibility = personal.
Audiences allowed: the actor, the actor’s privileged role-assigned partners only.
Examples: actor_daily_notes, agent_session_recap, personal_task_board.
2.2 Plane 2 — Relationship Data
Source of: tenant operational truth — orders, lots, arrivals, QC events, shipments, invoices, customer/vendor history, holds, temperature exceptions.
Reads from: events (most signal.* / lot.* / qc.* / shipment.* families),
knowledge.domain = order|lot|shipment|customer|vendor,
operational_memory extracts of emails and Teams threads.
Writes to: knowledge.domain = doc with
visibility = company | customer_visible | restricted and
data_plane = relationship_data.
Audiences allowed: tenant employees, FIN operators (for support), customer-visible subset goes to customer portal, vendor-visible subset goes to vendor portal.
Examples: nathel_daily_arrivals, customer_weekly_invoices,
vendor_scorecard, recall_trace, proof_package.
2.3 Plane 3 — Universal Intelligence
Source of: commodity knowledge, variety details, regional patterns, seasonal windows, FDA/USDA/FSMA standards, post-harvest physiology, cross-tenant anonymized intelligence.
Reads from: knowledge.domain = commodity|variety|region|certification| season_window, external authoritative sources (USDA, FDA, university
extension), anonymized aggregates across tenants.
Writes to: knowledge.domain = doc with visibility = tenant_private for
the Taproot view and visibility = public_anonymized for Harvest Directory.
Audiences allowed: tenant agents and humans for tenant-private; public Tier 0 MCP clients, federal reviewers, contributors, search engines for public-anonymized.
Examples: commodity_profile.watermelon, variety_profile.seedless_mini,
region_intelligence.sonora-MX, season_window.mexican_watermelon_spring,
commodity_situation.watermelon.2026-W19.
3. Audiences
Each projection in §5 declares an audience filter. The filter determines
visibility, anonymization, and which fields are projected.
3.1 Operator Agent
Privileged internal agents that perform multi-step ops work for a tenant. Receive full Plane 1 + 2 access for their assigned tenant. Receive Plane 3 full-fidelity (not anonymized) because they operate inside the tenant trust boundary.
3.2 Employee (Tenant)
Tenant operational staff using the PWA / Workspace. Receive Plane 2 docs filtered by their role (receiver vs. dispatcher vs. office manager) and full tenant Taproot.
3.3 Customer (Tenant’s customer)
Receive customer-visible subset of Plane 2 docs (their orders, their invoices, their delivery status, their permitted communications). Receive public Harvest Directory entries. Never see vendor identity, cost basis, margin, other customers, internal communications.
3.4 Vendor (Tenant’s vendor)
Receive vendor-visible subset of Plane 2 docs (their accepted lots, their QC outcomes, payment status). Never see other vendors, customer prices, margin, customer identity beyond the tenant.
3.5 FIN Operator
Anthropic-style internal operations role (you, future hires). Cross-tenant visibility for support and platform purposes, but anonymization required when projecting cross-tenant aggregates back to public.
3.6 Federal / Regulator
Receives recall traces, FSMA proof packages, certification artifacts. Strict schema; no commercial fields; deterministic renderer required.
3.7 Public / Tier 0 MCP
External developers, universities, USDA collaborators, customers without
accounts. Receive only public_anonymized projections through the Tier 0
MCP contract. No tenant identity, no individual transactional data.
4. Cadence
Each projection declares one or more cadence triggers.
| Cadence | Trigger | Examples |
|---|---|---|
| Event-driven (real-time) | Specific event types fire | recall_trace on compliance.recall_initiated; entity_profile rebuild on entity row change |
| Daily | Scheduled job, tenant-local 06:00 | nathel_daily_arrivals, operator_morning_briefing, kb_health_summary |
| Weekly | Monday 06:00 tenant-local | customer_weekly_invoices, commodity_situation.<x>.<year-week> snapshot freeze |
| Monthly | 1st of month 06:00 tenant-local | vendor_scorecard, monthly commodity_profile snapshot freeze |
| Quarterly | Quarter-end + 5 days | proof_package.<tenant>.<quarter>, federal readiness rollups |
| Annual | Calendar year-end + 14 days | season_window annual snapshots, year-in-review proof packages |
| On-demand (privileged) | MCP tool call by privileged actor | assemble_recall_trace, recall_drill |
| On-demand (agent-proposed) | Agent emits doc.edit_proposed | enrichment patches reviewed before merge |
Scheduled jobs run as cron-triggered Workers. Each emits a
projection_job.started and projection_job.completed event for FIN Central
observability.
5. Doc-Kind Catalog
This is the master enum of doc kinds. Every projection in §6 (inventory) must use one of these kinds. Adding a kind requires a spec amendment.
| doc_kind | Source plane | Cadence range | Visibility states | Determinism required |
|---|---|---|---|---|
authored | Any | Event (on commit) | All five states | No |
system_projected | Any | Daily / weekly / event | Tenant-scoped | Yes |
decision_record | Plane 1 / 2 | On commit | company / restricted | No (authored) |
runbook | Plane 2 / 3 | On commit | company / restricted | No (authored) |
sop | Plane 2 / 3 | On commit | company / restricted | No (authored) |
proof_package | Plane 2 | Quarterly / on-demand | company / customer_visible / restricted | Yes |
event_digest | Plane 2 | Daily / weekly / on-demand | company / customer_visible | Yes |
portal_page | Plane 2 | Event / daily | customer_visible / vendor_visible | Yes |
entity_profile | Plane 3 | Event-driven + weekly + monthly snapshots | tenant_private / public_anonymized | Yes |
aggregate_intelligence | Plane 3 (cross-tenant) | Weekly / monthly | public_anonymized | Yes |
recall_trace | Plane 2 | On-demand | restricted / federal-only by audience flag | Yes (mandatory) |
6. Projection Inventory (Seeded)
Every entry below carries: name, doc_kind, source plane, audience,
cadence, sources (events + knowledge), wave. Wave 1 entries are
required for the Nathel proof loop and ship first. Wave 2 starts entity
profiles. Wave 3 unlocks recall trace + Harvest Directory. Wave 4 is
post-Nathel-funding expansion. Deferred entries are noted explicitly.
6.1 Plane 2 Operational Projections
nathel_daily_arrivals
- doc_kind:
event_digest - audience: operator agent, employee
- cadence: daily 06:00 tenant-local
- sources:
signal.pp_arrival_logged,signal.temperature_exception,lot.received,qc.failed,qc.passed - output shape: list of arrivals, anomalies highlighted, links to lot profiles, embedded sparkline of arrival count vs. trailing 14-day mean
- wave: Wave 1 (this is the spine-proving projection)
operator_morning_briefing
- doc_kind:
event_digest - audience: operator agent
- cadence: daily 05:30 tenant-local
- sources: yesterday’s events across all signal.* / lot.* / qc.* families;
pending actions in
actor_pulse_aggregate_projection; today’s planned arrivals; weather; holiday/transit flags - output shape: prioritized brief, suggested first three actions, links to affected entities
- wave: Wave 1
qc_priorities_today
- doc_kind:
event_digest - audience: employee (QC role)
- cadence: daily 06:00, refreshed on new
lot.receivedevent - sources:
lot.receivedwithqc_status = pending,signal.temperature_exception,qc.escalation_requested - output shape: prioritized lot list with reason ranking, prior-week defect rate per commodity, expected shelf-life clock
- wave: Wave 2
lot_status_dashboard
- doc_kind:
portal_page - audience: employee
- cadence: event-driven on any lot.* event
- sources:
lot_status_projection(existing migration 041), linked arrivals and shipments - output shape: dashboard-style doc with live lot table, embedded heatmap of hold age, recent escalations
- wave: Wave 2
customer_weekly_invoices
- doc_kind:
portal_page - audience: customer (customer’s portal)
- cadence: weekly Monday 06:00 customer-local
- sources:
invoice.generated,shipment.delivered,payment.received - output shape: weekly invoice summary, payment status, recent deliveries with photos, link to billing contact
- wave: Wave 2 (one Nathel customer pilot)
customer_situation_brief
- doc_kind:
portal_page - audience: customer
- cadence: weekly Friday 16:00 customer-local
- sources: arrivals fulfilled vs. ordered, commodity availability for the customer’s typical order pattern, public Harvest Directory commodity situation
- output shape: forward-looking advisory; “this is what to expect next week”
- wave: Wave 3
vendor_scorecard
- doc_kind:
entity_profile(vendor entity) - audience: FIN operator, employee
- cadence: monthly snapshot, live updated on vendor.* events
- sources: vendor entity row,
lot.receivedfrom this vendor,qc.failed/qc.passedfiltered by vendor,signal.temperature_exception, payment history - output shape: vendor reliability score, defect rate trend (line chart), commodity mix (bar chart), notable incidents, payment terms summary
- wave: Wave 2
recall_trace.<lot_id>
- doc_kind:
recall_trace - audience: FIN operator (internal), customer (customer-safe), regulator (federal flag)
- cadence: on-demand via
assemble_recall_traceMCP tool - sources: graph traversal from
lot:X→ commodity → arrivals → shipments → customers → comms → corrective action events - output shape: scope statement, affected lots, customer reach, root-cause candidates with citation chain, mitigation timeline, recordkeeping evidence
- wave: Wave 3
recall_drill.fsma-204-test
- doc_kind:
runbook - audience: federal, FIN operator
- cadence: on-demand (quarterly drill recommended)
- sources: synthetic recall scenario events, time-to-trace measurements
- output shape: drill plan, expected step durations, pass/fail criteria, evidence of completion
- wave: Wave 3
proof_package.<tenant>.<quarter>
- doc_kind:
proof_package - audience: FIN operator, customer (executive level, when shared), federal, partner (Anthropic/investor when shared)
- cadence: quarterly + on-demand
- sources: tenant KPIs, event volume by family, agent action counts, outcomes attributed to FIN intervention, customer testimonials linked from comms threads
- output shape: executive summary, KPI deltas with embedded charts, narrative of operational improvements, cited evidence for every claim, attachments ledger
- wave: Wave 3 (Nathel Q2 2026 is the first one)
daily_sales_situation
- doc_kind:
event_digest - audience: operator agent, employee (sales role)
- cadence: daily 06:00 + refreshed on each sales event
- sources: daily sales report extractor output (per
project_pp_extractor_ordermemo), open orders, fill rates, customer rejections - output shape: sales snapshot, attention list (orders at risk, customers with declining fill rate), suggested outreach
- wave: Wave 2
po_intelligence.<po_id>
- doc_kind:
event_digest - audience: operator agent, employee
- cadence: event-driven on any event carrying this po_id (per
project_po_is_the_spinememo) - sources: every event with the po_id; the 5 intelligence dimensions from the spine memo
- output shape: PO timeline, exceptions, linked lots, linked invoices, expected vs. actual position
- wave: Wave 2
sight_picture.weekly
- doc_kind:
event_digest - audience: operator agent, FIN operator, employee (executive role)
- cadence: weekly Friday 14:00
- sources: PO + sales + inventory projections vs. stock (per
project_sight_picture_formulamemo); three-layer formula (operational + organizational + public KB) - output shape: sight-picture dashboard doc, multi-chart, narrative summary, forward look
- wave: Wave 2
6.2 Plane 3 Entity Profiles (Taproot)
commodity_profile.<commodity_id>
- doc_kind:
entity_profile(entity_type: commodity) - audience: operator agent, employee, customer (filtered), FIN operator, public via Harvest Directory mirror
- cadence: event-driven + weekly snapshot + monthly snapshot
- sources:
knowledge.domain = commodityrow, allsignal.*events with this commodity_id, alllot.*events with this commodity_id, public authoritative sources (USDA cold chain, FDA classification) - output shape: golden-profile frontmatter + narrative body covering cultivation, post-harvest physiology, common defects, handling SOPs, varieties, growers, regions, seasonal supply patterns, embedded charts (supply curve, price band, defect-rate trend), backlinks to all lots and arrivals
- wave: Wave 2 (first: watermelon, on Nathel pilot)
variety_profile.<variety_id>
- doc_kind:
entity_profile(entity_type: variety) - audience: same as commodity_profile
- cadence: same
- sources:
knowledge.domain = varietyrow, lot events filtered by variety, customer preference signals - output shape: variety detail sheet, parent commodity link, season window link, typical pack types, defect signatures specific to this variety, customer preference data (anonymized for public mirror)
- wave: Wave 2
vendor_profile.<vendor_id>
- doc_kind:
entity_profile(entity_type: vendor) - audience: FIN operator, employee; vendor receives a filtered self-view
- cadence: event-driven + monthly snapshot
- sources:
knowledge.domain = vendorrow, all events tied to this vendor, comms history extracts - output shape: vendor profile with commodity mix, reliability history, payment terms, contact graph, notable incidents
- wave: Wave 2
customer_profile.<customer_id>
- doc_kind:
entity_profile(entity_type: customer) - audience: FIN operator, employee (sales role); customer receives a filtered self-view via portal
- cadence: event-driven + weekly snapshot
- sources:
knowledge.domain = customerrow, orders, invoices, payment history, comms threads - output shape: relationship profile, order pattern, commodity loyalty, payment timeliness, fill-rate history, suggested outreach moments
- wave: Wave 3
region_intelligence.<region_id>
- doc_kind:
entity_profile(entity_type: region) - audience: FIN operator, public via Harvest Directory
- cadence: weekly snapshot + monthly snapshot
- sources: regional commodity rollups across tenants (anonymized), weather/season correlation, freight pattern data
- output shape: region overview, dominant commodities, season windows, pricing patterns (banded for public mirror), transit corridors, recent notable supply events
- wave: Wave 3
season_window.<window_id>
- doc_kind:
entity_profile(entity_type: season_window) - audience: all (filtered)
- cadence: weekly during window, monthly outside window, annual snapshot
- sources: commodity × region × time aggregates
- output shape: season profile (e.g. “Mexican watermelon spring window”), expected start/peak/end weeks, typical pricing curve, supply ramp pattern, historical anomalies
- wave: Wave 3
grower_profile.<grower_id>
- doc_kind:
entity_profile(entity_type: grower) - audience: FIN operator, employee
- cadence: monthly snapshot
- sources: grower entity row, lot provenance chains, certification status
- output shape: grower detail, certifications, varieties grown, recent shipments, traceability completeness score
- wave: Wave 3
certification_profile.<cert_id>
- doc_kind:
entity_profile(entity_type: certification) - audience: all (filtered)
- cadence: on certification authority update
- sources: external authoritative source (USDA Organic, GAP, GlobalG.A.P.), internal verification events
- output shape: certification overview, what it covers, how to verify, list of growers/vendors holding it (tenant-private detail; public mirror lists only public-registry-published holders)
- wave: Wave 4 (post-funding expansion)
6.3 Plane 3 Aggregate Intelligence (Harvest Directory)
commodity_situation.<commodity_id>.<year-week>
- doc_kind:
aggregate_intelligence - audience: public via Harvest Directory + customer (filtered)
- cadence: weekly snapshot
- sources: cross-tenant commodity events, anonymized; public weather data; freight corridor data
- output shape: weekly situation brief — supply level, pricing band, notable disruptions, forward look 2 weeks
- wave: Wave 3 (first: watermelon, US Northeast market)
commodity_seasonal_outlook.<commodity_id>.<year>
- doc_kind:
aggregate_intelligence - audience: public + customer
- cadence: monthly through season, annual snapshot
- sources: multi-year cross-tenant aggregates, USDA seasonal forecasts
- output shape: outlook brief, season expectations, risk factors, comparable prior years
- wave: Wave 4
region_outlook.<region_id>.<year-week>
- doc_kind:
aggregate_intelligence - audience: public + FIN operator + federal
- cadence: weekly
- sources: cross-tenant regional aggregates, transportation disruption signals, weather
- output shape: region weekly outlook, dominant commodities, transit conditions, regulatory notes
- wave: Wave 4
6.4 Decision Records, Runbooks, SOPs (Authored)
decision_record.<topic>.<date>
- doc_kind:
decision_record - audience: company / restricted
- cadence: authored on commit
- sources: GitHub vault, linked events as evidence
- output shape: ADR-style: context, options, decision, consequences, citations
- wave: Wave 1 (vault ingest must support these from day one)
runbook.<process>
- doc_kind:
runbook - audience: company
- cadence: authored, with
last_validated_atevent tracking - sources: GitHub vault + linked SOP events
- output shape: step-by-step operational runbook with linked entities, expected durations, escalation paths
- wave: Wave 1
sop.<role>.<process>
- doc_kind:
sop - audience: employee, role-scoped
- cadence: authored
- sources: GitHub vault
- output shape: standard operating procedure with photos, video links, checklist, sign-off events
- wave: Wave 2
6.5 Agent Harness Projections
agent_harness_session.<session_id>
- doc_kind:
event_digest - audience: FIN operator, employee (the actor that ran the session), customer/vendor (filtered, when their portal session)
- cadence: event-driven (closed on session end) + post-session enrichment
- sources:
agent.session.started,agent.tool_called,agent.tool_returned,agent.message_emitted,agent.action_proposed,agent.action_committed,provenance.walked,doc.section_generated, model + version + prompt_version metadata - output shape: session transcript, structured tool-call log, citations emitted, drafts proposed, decisions made, latency and cost rollup, replay manifest
- wave: Wave 2 (the harness itself ships Wave 2; the doc projection ships in parallel so every session becomes citable)
This projection is what makes agent sessions queryable as docs. Regulatory review, federal audit, customer dispute resolution, and gradeboard eval all read this projection.
6.6 Open Corpus Projections
open_corpus_export.<version>
- doc_kind:
aggregate_intelligence - audience: public (CC-BY-SA license), federal, partner (Anthropic / Hugging Face)
- cadence: quarterly versioned snapshot
- sources: all
entity_profilesnapshots in Harvest Directory at version cutoff, allaggregate_intelligencesnapshots, all anonymizedevent_digestandproof_packagesummaries cleared by the anonymization policy - output shape: versioned dataset manifest (parquet / JSONL), model card training-data appendix, anonymization policy version, fact count, citation count, eval results when used to train the FIN open model
- wave: Wave 4 (post-Nathel funding; release gated on minimum corpus size — ≥100 commodity profiles, ≥50 region profiles, ≥200 aggregate intelligence snapshots, ≥6 months operational ground truth)
This projection is the corpus released to Hugging Face for training the FIN open produce-intelligence model. Every fact in the corpus is citable back to events through the provenance chain. Federal-grade reproducibility property.
6.7 Platform Observability Projections
kb_health_summary
- doc_kind:
system_projected - audience: FIN operator
- cadence: daily 06:00 UTC
- sources: existing
kb_health_summary_projection(migration 043) - output shape: domain counts, embedding coverage, stale entries, ingestion drift flags
- wave: Wave 1 (this can ship immediately because the projection table already exists; just needs the markdown renderer)
channel_health.<tenant>
- doc_kind:
system_projected - audience: FIN operator
- cadence: every 15 minutes
- sources: email queue status, Telnyx SMS/voice health, GitHub vault webhook freshness, MCP key validity, render status
- output shape: per-tenant channel health dashboard doc
- wave: Wave 2 (FIN Central control plane)
tenant_readiness.<tenant>
- doc_kind:
system_projected - audience: FIN operator
- cadence: on tenant lifecycle events + daily reconciliation
- sources: tenant provisioning checklist from spec §13, smoke-test events
- output shape: readiness rollup, blockers, current onboarding step (per
project_agentic_onboarding_programmemo) - wave: Wave 2
agent_enrichment_metrics
- doc_kind:
system_projected - audience: FIN operator
- cadence: weekly
- sources:
doc.edit_proposedevents, acceptance/rejection events, gradeboard measurements - output shape: proposals per agent, acceptance rate, doc enrichment rate, reasoning quality lift (gradeboard A/B)
- wave: Wave 3
federal_readiness_tracker
- doc_kind:
system_projected - audience: FIN operator
- cadence: weekly
- sources: federal-runtime feature flags, recall-drill events, audit-export
status, SBOM/provenance status, residency notes (per
project_strategic_researchmemo) - output shape: federal readiness rollup, missing artifacts, last drill date, next steps
- wave: Wave 4
6.8 Onboarding & Adoption Projections
onboarding_progress.<tenant>.<actor>
- doc_kind:
portal_page - audience: employee (the actor), employee (admin), FIN operator
- cadence: event-driven on onboarding step completion
- sources: 10-step onboarding events (per
project_pk_v2_implementationmemo),project_agentic_onboarding_program3-act cohort design - output shape: progress doc, next step prompt, blockers, suggested helper resources
- wave: Wave 1 (Nathel cohort needs this immediately)
cohort_status.<tenant>
- doc_kind:
system_projected - audience: FIN operator
- cadence: daily
- sources: aggregate onboarding events across cohort actors
- output shape: cohort progress, lagging actors, common blockers, suggested interventions
- wave: Wave 2
6.9 Marketplace Projections (Deferred)
Marketplace projections are deferred to Wave 4 per the marketplace planning memo’s 3-phase A2A path. Catalog placeholders only:
marketplace_offer.<offer_id>—portal_page, customer audiencemarketplace_match_log.<offer_id>—event_digest, FIN operatormarketplace_blind_intelligence.<commodity>.<window>—aggregate_intelligence, public
Each will be defined when the marketplace phase opens.
6.10 Cross-Analysis & Data Fusion Projections (Reserved for v0.2)
Cross-analysis projections compose multiple entity profiles or event families into new insight artifacts. These are reserved for catalog v0.2 once the single-source entity profiles in §6.2 are proven.
Placeholders (full specs in v0.2):
commodity_season_heatmap— embedded insidecommodity_profilevendor_commodity_fulfillment_quality— embedded insidevendor_profileregion_commodity_pricing_intelligence— embedded insideregion_intelligencecustomer_commodity_loyalty— embedded insidecustomer_profilelot_lineage_waterfall— embedded insiderecall_traceco_occurrence_graph.<commodity>— embedded insidecommodity_profile“frequently shipped with”customer_substitution_patterns.<customer>— embedded insidecustomer_profile
7. (Reserved) Wave Assignment Rollup
Inline wave tags are recorded on each entry in §6. A consolidated rollup table is deferred to catalog v0.2 once Wave 1 ships and the Wave 2 entry list is firm.
8. (Reserved) Renderer Version Registry
Per-projection renderer_version history lives in
docs/projections/renderer-versions.md (to be created in Wave 1). The
catalog references the registry but does not duplicate it.
9. (Reserved) Harvest Directory Public Mirror Specification
The full public mirror specification — including anonymization policy references, contribution model (CC-BY-SA, PR review), and the public projection inventory — is deferred to catalog v0.2 alongside the Wave 3 work that ships the first public commodity profile.
10. Contribution Rules
- New projection entry: add to §6 in a single PR with
doc_kind, source plane, audience, cadence, sources, expected output shape, and wave tag. - New
doc_kind: requires spec amendment first (§3 + §4 of the Engineering Spec), then catalog §5 update, then §6 entries. - New audience: requires permission model update in the Engineering Spec before any projection can target it.
- Wave promotion (e.g. Deferred → Wave 4): requires explicit dated note in the catalog entry.
- Renderer version bumps: recorded in the renderer-version registry, not inline in §6.
11. Catalog Maintenance
This catalog is itself a doc and lives in the GitHub vault. It is indexed
into knowledge.domain = doc like any other authored doc. The catalog is
its own decision_record for the system of intelligence surface area.
Stale projection entries (no production traffic for 90 days) are flagged in the agent_enrichment_metrics projection so they can be reviewed and archived.