Lookout Agent Guidance#
Lookout is @kontourai/lookout: a source registry and non-throwing drift-check
runner over Forage snapshots. It classifies each source into exactly one of
four CheckResult kinds (unchanged-304, unchanged-hash, changed, error)
and exposes a machine-readable JSONL CLI. Lookout owns the prior-vs-fresh hash
comparison, classification, and snapshot persistence; Forage owns fetch
politeness/robots/redirects/timeout, snapshot mechanics, and durable reference
integrity. Scheduling stays external. The runner NEVER throws.
Source Of Truth#
- Vocabulary:
CONTEXT.md; the L1 contract decision:docs/decisions/l1-registry-and-results.md(index regenerated bynpm run gen:decisions-index). - Library source in
src/; the thin bin shim isbin/lookout.mjs. dist/is generated bynpm run build(tsc); do not hand-edit it.- Trustworthy
unchanged-304requires Forage's validator-scoped revalidation; do not bypass@kontourai/forage/fetchor reconstruct snapshot references in Lookout. Traverse remains exact-pinned for its schema/proposal contracts. - Public repo: newly authored source, tests, docs, and config stay
content-boundary-clean (generic illustrative names/URLs only, no private
vertical vocabulary);
npm run check:content-boundaryenforces this. Thescripts/check-content-boundary.cjsgate is a temporary per-repo copy pending kontourai/veritas#112 centralization.
Match Checks To Change Type#
- Library/types changes:
npm test(build + Node tests againstdist/). - Package-shape/exports/bin changes:
npm run check:pack. - Docs/decision changes:
npm run check:decisions(and regenerate the index withnpm run gen:decisions-indexwhen a decision file changes). - Docs are published with docs-kit:
docs-kit.jsonlists the published docs and MCP topics, andnpm run docs:checkis the gate. When you change code a documentcovers, update that document. - Content/fixture changes:
npm run check:content-boundary. - Anything before push:
npm run verify(content-boundary + decisions + typecheck + test + pack sanity — the exact chain CI'sverifyjob runs). - Releases use release-please with conventional commits; the version lives in
.release-please-manifest.jsonandpackage.json.
Useful Commands#
npm run verify·npm test·npm run typecheck·npm run check:pack·npm run check:decisions·npm run check:content-boundary
This repo uses Veritas for AI governance. Read .veritas/GOVERNANCE.md before making changes.
After changes, run npm exec --yes --package=@kontourai/veritas@1.5.2 -- veritas readiness and address any FAIL lines before finishing.