Brownfield Adoption

Use this guide when adding Veritas to a repo that already has custom AI instructions, guidance folders, CI contracts, or verification scripts.

The goal is not to copy every existing check into Veritas. The goal is to turn the parts that actually define merge readiness and repo conformance into repo standards.

1. Inventory First

Collect:

For a read-only first pass:

npx @kontourai/veritas init --explore --output .veritas/init-plans/brownfield.json

When package scripts or existing guidance paths are detected, the recommendation may include implementation fields such as existing_verification and recommended_evidence_inventory. Treat those as review queues for evidence checks and readiness coverage, not as applied standards.

2. Classify Existing Checks

For each existing check or check item, record:

Unknown catch evidence should start at Observe or Guide. Use Require only after the check has a clear requirement, authority, freshness policy, and review trigger.

3. Keep Required Standards Small

Start by requiring only the standards that protect the system itself:

Keep broad existing guardrails as observation or guidance while you decompose them into clearer requirements.

4. Move Product Behavior To Tests

If a check asserts product behavior, move it into the normal test suite:

Veritas should route and report those checks as evidence. It should not become the product test suite.

5. Promote Reusable Shapes Carefully

Promote generic Veritas capabilities such as:

Do not promote one repo’s module names, historical exceptions, or refactor details into Veritas itself.

Verification

Before considering a brownfield migration complete:

npm run verify
npm test
npm exec -- veritas readiness --check evidence --working-tree
npm exec -- veritas readiness --check coverage --working-tree
npm exec -- veritas readiness --working-tree --format feedback

readiness --check coverage is the current command for readiness coverage. Review its output before moving more requirements to Require.