Thread context bootstrap
Use this file at the start of an optimization thread. It summarizes decisions, behavior, and where assets live.
Purpose vs type (attachments)
attachment.purposeis the canonical spec-facing classification field for attachments.attachment.typeis legacy / compatibility only (e.g. older data, Strolid-style metadata). Do not treat it as equivalent topurposefor new designs.analysis.typeremains the correct classification field for analysis (unchanged).
Read / discovery order (preferred)
Discover attachment purposes:
vcon://v1/discovery/attachments/purposesorGET /api/v1/discovery/attachments/purposesDiscover analysis types:
vcon://v1/discovery/analysis/typesorGET /api/v1/discovery/analysis/typesRead attachments by purpose:
vcon://v1/vcons/{uuid}/attachments/purpose/{purpose}orGET /api/v1/vcons/:uuid/attachments?purpose=...Read analysis by type:
vcon://v1/vcons/{uuid}/analysis/type/{type}orGET /api/v1/vcons/:uuid/analysis?type=...
Legacy-only attachment paths
vcon://v1/discovery/attachments/types/GET /api/v1/discovery/attachments/typesvcon://v1/vcons/{uuid}/attachments/type/{type}/GET /api/v1/vcons/:uuid/attachments?type=...
Tags
Do not jump to tags first for dealer-like, summary-like, transcript-like, or other attachment/analysis-backed data.
Use tags only when classification actually lives in the tags attachment.
Contract tools (recommended for agents)
Prefer: vcon_capabilities, vcon_taxonomy, vcon_search, vcon_fetch, describe_response_shape.
Payload discipline: include, limit, pagination, metadata-only shapes, max_response_bytes; on RESPONSE_TOO_LARGE, shrink and retry.
Spec reminders (high signal)
analysis.vendorrequired;analysis.schemanotschema_version;bodyas string when structured JSON is stored.mediatypenotmimetype;criticalnotmust_support;amendednotappended.
Code / docs touchpoints (for optimization work)
Types:
src/types/vcon.ts(Attachment.purposevs optionaltype).MCP resources:
src/resources/index.ts(discovery + filtered reads; purpose-first descriptions).REST:
src/api/routes/discovery.ts,src/api/routes/vcons.ts, mount insrc/api/rest-router.ts.Shared filters:
src/utils/read-surfaces.ts.Query layer:
src/db/interfaces.ts,src/db/queries.ts,src/db/mongo-queries.ts(distinct discovery + Supabasepurposeround-trip on attachments).Tool schema:
src/tools/vcon-crud.ts(AttachmentSchemadocuments purpose vs type).Tests:
tests/new-tools-resources.test.ts,tests/api/routes/discovery.test.ts,tests/api/routes/vcons.test.ts,tests/db-queries.test.ts,tests/api/helpers.ts.
Documentation assets (system instructions)
Full copy-paste variants live in:
docs/examples/system-instruction-assets.md(long, short, CLAUDE.md one-paragraph, strict policy-style)
Linked from:
docs/examples/index.mddocs/SUMMARY.md
Verification notes
npm run buildand targeted Vitest suites were used during implementation.npm run docs:buildsucceeded after adding the system-instruction assets page.
This file is intentionally dense so a new thread can load one artifact instead of replaying the whole conversation.
Last updated