Activation Contract
Triage is considered active only when ALL of the following conditions are true:10 Activation Requirements
1. Triage Runtime Deployed
The TriageAgent Durable Object iniw-agent-runtime is deployed and healthy.
Verification: GET /health on iw-agent-runtime returns triage agent status.
2. Intake Trigger Wired to Flow C Ingress
The intake trigger is connected to the intended Flow C ingress point:- MCP Connector →
/v1/triage/session - Conversation Archive →
/conversations/:id/archive→ triage-bot - Runtime TriageAgent →
triage()→emitTriageInput()
3. Staging Writes Are Tenant-Scoped
All triage writes are scoped to the tenant that produced the evidence:triage_itemshastenant_idtriage_results.metadatacontainstenant_id- No cross-tenant data leakage
triage_results filtered by metadata->>'tenant_id' returns only that tenant’s items.
4. Approval Endpoint Updates Review State
ThePATCH /v1/knowledge/triage/:id endpoint correctly updates approval_status:
pending→approved(triggers consolidation)pending→discarded(terminal)pending→deferred(resumable)
action: "approve" changes status to approved and records approved_by and approved_at.
5. Approval Triggers Canonical Promotion
When a triage item is approved:- Status changes to
approved - Consolidation queue is triggered (if
TASKS_QUEUEavailable) - Memory Consolidator picks up approved items
- Pipeline promotion engine writes to
org_memory
org_memory row exists with governance_state = 'approved'.
6. Direct Canonical Writes from Triage Are Impossible
Triage runtime credentials and bindings cannot write to:org_memorydirectly- Canonical Neon tables
- R2 as canonical storage
- Vectorize as truth source
7. Rejection/Defer/Repair Are Terminal or Resumable
Verification: Reject an item → verify no
org_memory row. Defer → verify it returns to inbox.
8. Approved Memory Appears in Canonical Retrieval
After promotion:- Approved memory is in
org_memorywithgovernance_state = 'approved' - AI Search index contains the memory
- Twin can retrieve it through bounded context projection
9. Rejected Memory Does Not Appear
After rejection:- No
org_memoryrow - No AI Search index entry
- No Twin context projection
10. End-to-End Path Proven in Customer Zero
The complete path is proven in Customer Zero before external tenants:- Intake → Triage → Staging → Governance → Promotion → Indexing → Consumption
- All 10 requirements verified in production-like environment
Observability Requirements
When active, triage must expose:- Throughput — items/minute processed
- Pending queue — items awaiting review
- Approval latency — time from staging to decision
- Promotion success — items successfully promoted
- Promotion failure — items that failed promotion
- Rejection rate — percentage of items rejected