Repository navigation
Version 0.3.2 keeps published families in their splits across dataset versions and sends rule
conflicts that appear only at generated dimension values to review. Both fixes change what builds and
reviews produce: commit the new project.splits.lock.json next to each specification, regenerate
plan-recipe plans, and record conflict reviews again.
Changed
- Consolidate duplicated pipeline, CLI, ingestion, provider, and workflow code without changing any
dataset, export, plan, review fingerprint, or ingestion output, and cover twelve CLI failure paths. - Update GitHub Actions, mypy, and pre-commit hooks.
- Tell the project's story in the README and a new Why Decision Forge page: the missing
trust layer for AI agents, the three kinds of organizational data it requires, and where Decision Forge
fits in the data → model → organization stack.
Fixed
- Keep every published family in its split across dataset versions (#35). Rebuilding with
buildafter
adding scenario families could move existing families between train, development, and test, leaking
held-out examples into training. The first build now records each family's split in a split lock next
to the specification (project.splits.lock.json); later builds keep locked families in place, give
new families a stable per-family split, and remember removed families.build --locked-splitsfails
instead of creating or changing the lock. Plans fromplan-recipemade with older versions must be
regenerated. - Send allow/deny rule pairs to review when they overlap only at generated dimension values (#36). Conflict
witnesses were searched in seed states alone, so an override that appeared only in a generated
situation was labeled without review. The gate now searches every situation the build samples and
also queues pairs whose conditions cannot be proven disjoint, since synthesis can reach new states.
Conflict items reportoverlap,witness_count, and up to fivewitnesseswith their dimension
values; existing conflict reviews must be recorded again. Thanks to sunxiuguo for an independent fix in #44. - Attest only the wheel and sdist in the release workflow;
uv buildalso writesdist/.gitignore.