@@ -13,8 +13,9 @@ to 7B local models). The repo now covers the full loop: build portable
1313harness files, route models, replay evals, parse production traces, scope
1414role capabilities, select deterministic context bundles, audit runtime policy,
1515cache reusable artifacts, canonicalize identity keys, plan dispatches, settle
16- dispatch results, redact sensitive output, migrate consumer projects, validate
17- artifact contracts, and persist local workflow truth. The only narrower surface is ` iso-trace model-score ` , which still
16+ dispatch results, redact sensitive output, materialize source-backed facts,
17+ migrate consumer projects, validate artifact contracts, and persist local
18+ workflow truth. The only narrower surface is ` iso-trace model-score ` , which still
1819depends on transcripts exposing stable model metadata.
1920
2021Today, agent workflow reliability is fragmented on three axes:
@@ -29,11 +30,11 @@ Today, agent workflow reliability is fragmented on three axes:
2930 unstructured rationale all drop silently at 7B. You don't find out
3031 until the agent misbehaves in production.
31323 . ** Runtime fragmentation.** Workflows rely on fragile prompt prose for
32- fan-out limits, context loading, artifact reuse, identity keys, project upgrades, role permissions, output shape, duplicate checks, post-dispatch settlement, redaction, and
33+ fan-out limits, context loading, artifact reuse, fact extraction, identity keys, project upgrades, role permissions, output shape, duplicate checks, post-dispatch settlement, redaction, and
3334 "what already happened." Those invariants belong in deterministic local packages,
3435 not in repeatedly re-tokenized instructions.
3536
36- Nineteen packages solve that in one pipeline with runtime control and a
37+ Twenty packages solve that in one pipeline with runtime control and a
3738feedback loop:
3839
3940- ** Four build-time tools** turn your authored source into every harness's file layout:
@@ -43,7 +44,7 @@ feedback loop:
4344 [ ` @razroo/iso-route ` ] ( ./packages/iso-route ) compiles * one model policy* into each harness's config.
4445- ** One wrapper** runs the whole build chain:
4546 [ ` @razroo/iso ` ] ( ./packages/iso ) chains the above into a single ` iso build ` .
46- - ** Twelve runtime-control libraries** handle durable execution, context selection, artifact caching, artifact lookup, identity canonicalization, preflight dispatch planning, postflight settlement, redaction, project migration, role capabilities, artifact shape, and operational truth:
47+ - ** Thirteen runtime-control libraries** handle durable execution, context selection, artifact caching, artifact lookup, fact materialization , identity canonicalization, preflight dispatch planning, postflight settlement, redaction, project migration, role capabilities, artifact shape, and operational truth:
4748 [ ` @razroo/iso-orchestrator ` ] ( ./packages/iso-orchestrator ) provides resumable
4849 steps, keyed mutexes, and bounded fan-out for side-effectful agent workflows,
4950 [ ` @razroo/iso-context ` ] ( ./packages/iso-context ) resolves context bundles,
@@ -52,6 +53,8 @@ feedback loop:
5253 content-addressed local artifacts with TTL-aware reads and pruning,
5354 [ ` @razroo/iso-index ` ] ( ./packages/iso-index ) builds and queries compact
5455 local indexes that point to authoritative facts across artifacts,
56+ [ ` @razroo/iso-facts ` ] ( ./packages/iso-facts ) extracts, queries, verifies,
57+ and checks provenance-rich local facts,
5558 [ ` @razroo/iso-canon ` ] ( ./packages/iso-canon ) produces stable URL,
5659 company, role, and company-role keys for duplicate checks,
5760 [ ` @razroo/iso-preflight ` ] ( ./packages/iso-preflight ) validates
@@ -87,6 +90,7 @@ feedback loop:
8790 │ │ iso-context ─▶ context bundle plan
8891 │ │ iso-cache ─▶ artifact reuse
8992 │ │ iso-index ─▶ artifact lookup
93+ │ │ iso-facts ─▶ fact materialization
9094 │ │ iso-canon ─▶ identity keys
9195 │ │ iso-preflight ─▶ dispatch plan
9296 │ │ iso-postflight ─▶ settlement gate
@@ -145,6 +149,8 @@ the repo now supports a tighter loop:
145149 refetching or rederiving safe inputs on every run.
146150- ` iso-index build/query/has ` keeps artifact lookup local instead of
147151 grepping and loading growing state/report trees into prompts.
152+ - ` iso-facts build/query/has/verify ` keeps source-backed fact extraction
153+ local instead of asking a model to reread broad artifact trees.
148154- ` iso-canon normalize/key/compare ` keeps duplicate/entity keys local
149155 instead of repeatedly restating URL, company, and role matching rules.
150156- ` iso-preflight plan/check ` keeps dispatch eligibility and batching local
@@ -186,6 +192,9 @@ of the prompt:
186192- ` iso-index ` makes artifact lookup executable: text/TSV/markdown-table/JSONL
187193 sources compile into a compact queryable index, so agents can ask where a
188194 fact lives without repeatedly grepping or loading growing files.
195+ - ` iso-facts ` makes fact materialization executable: local artifacts compile
196+ into provenance-rich fact records that can be queried, verified, and checked
197+ before downstream contracts or dispatch gates run.
189198- ` iso-canon ` makes identity canonicalization executable: URLs, companies,
190199 roles, and company-role pairs compile to stable keys with explainable
191200 ` same ` / ` possible ` / ` different ` comparisons.
@@ -305,6 +314,13 @@ of the prompt:
305314 authoritative facts without loading whole artifact trees into prompt
306315 context.
307316
317+ - ** [ ` packages/iso-facts ` ] ( ./packages/iso-facts ) ** — [ ` @razroo/iso-facts ` ] ( https://www.npmjs.com/package/@razroo/iso-facts )
318+ Deterministic fact materialization for agent workflows. Extracts
319+ provenance-rich facts from configured text, TSV, markdown-table, JSONL,
320+ and JSON sources, then supports ` query/has/verify/check ` so domain
321+ packages can feed source-backed facts into contracts and dispatch gates
322+ without model calls.
323+
308324- ** [ ` packages/iso-canon ` ] ( ./packages/iso-canon ) ** — [ ` @razroo/iso-canon ` ] ( https://www.npmjs.com/package/@razroo/iso-canon )
309325 Deterministic canonicalization and entity matching for agent workflows.
310326 Normalizes URLs, companies, roles, and company-role pairs into stable
@@ -503,6 +519,17 @@ iso-index verify --index .iso-index.json
503519iso-index explain --config index.json
504520```
505521
522+ ### ` @razroo/iso-facts ` — what facts can this workflow trust?
523+
524+ ``` bash
525+ iso-facts build --config facts.json --root . --out .iso-facts.json
526+ iso-facts query --facts .iso-facts.json --fact job.url
527+ iso-facts has --facts .iso-facts.json --fact job.score
528+ iso-facts verify --facts .iso-facts.json
529+ iso-facts check --facts .iso-facts.json --config facts.json
530+ iso-facts explain --config facts.json
531+ ```
532+
506533### ` @razroo/iso-canon ` — what stable key names this entity?
507534
508535``` bash
585612 ├── iso-context/ # deterministic context bundle policy
586613 ├── iso-cache/ # deterministic content-addressed artifact cache
587614 ├── iso-index/ # deterministic local artifact lookup index
615+ ├── iso-facts/ # deterministic source-backed fact materialization
588616 ├── iso-canon/ # deterministic identity canonicalization
589617 ├── iso-preflight/ # deterministic preflight dispatch planning
590618 ├── iso-postflight/ # deterministic postflight settlement
@@ -611,6 +639,7 @@ npm --workspace @razroo/iso-ledger run test # iso-ledger event/state tests
611639npm --workspace @razroo/iso-context run test # iso-context bundle/budget tests
612640npm --workspace @razroo/iso-cache run test # iso-cache artifact cache tests
613641npm --workspace @razroo/iso-index run test # iso-index artifact lookup tests
642+ npm --workspace @razroo/iso-facts run test # iso-facts materialization tests
614643npm --workspace @razroo/iso-canon run test # iso-canon identity key tests
615644npm --workspace @razroo/iso-preflight run test # iso-preflight dispatch planning tests
616645npm --workspace @razroo/iso-postflight run test # iso-postflight settlement tests
@@ -653,7 +682,7 @@ build, and `npm publish --provenance`.
653682## End-to-end example
654683
655684[ ` examples/pipeline/ ` ] ( ./examples/pipeline ) is an executable demonstration
656- that exercises ** seven of the nineteen packages end-to-end** in one `npm run
685+ that exercises ** seven of the twenty packages end-to-end** in one `npm run
657686test: pipeline ` invocation: ` agentmd lint` + ` render` → ` isolint lint` →
658687` iso-route build ` (from a bundled ` models.yaml ` that extends the
659688` standard ` preset) → ` iso-harness build ` (which consumes iso-route's
@@ -672,7 +701,7 @@ downstream repo would use.
672701
673702` npm run test:pack ` goes one level further: it packs the local workspaces into
674703tarballs, installs them into fresh temp projects, and smoke-tests the packaged
675- ` iso-harness ` , ` iso ` , ` iso-eval ` , ` iso-trace ` , ` iso-route ` , ` iso-guard ` , ` iso-ledger ` , ` iso-context ` , ` iso-cache ` , ` iso-index ` , ` iso-canon ` , ` iso-preflight ` , ` iso-postflight ` , ` iso-redact ` , ` iso-migrate ` , ` iso-contract ` , and ` iso-capabilities `
704+ ` iso-harness ` , ` iso ` , ` iso-eval ` , ` iso-trace ` , ` iso-route ` , ` iso-guard ` , ` iso-ledger ` , ` iso-context ` , ` iso-cache ` , ` iso-index ` , ` iso-facts ` , ` iso- canon` , ` iso-preflight ` , ` iso-postflight ` , ` iso-redact ` , ` iso-migrate ` , ` iso-contract ` , and ` iso-capabilities `
676705CLIs. This guards against packaging regressions that workspace-only tests can
677706miss.
678707
0 commit comments