orchestrata_ultimate.factory.projection
Reference › orchestrata_ultimate › factory › projection › init
Package marker for rule-driven projection and the completeness meta-check (SPEC-033 row B5, ADR-0006, ADR-0025). It defines no code of its own; see the package page.
At a glance
| Source | src/orchestrata_ultimate/factory/projection/__init__.py |
| Lines of code | 31 |
| Classes | 0 |
| Functions | 0 |
| Imports (internal) | none |
| Imported by | none |
| Tests that import it | none |
Class diagram
No classes; see Functions.
Dependency diagram
No internal imports and no importers.
API
No public API: the module defines no classes, functions or constants.
Source
"""SPEC-033 rule-driven projection + completeness meta-check (B5, ADR-0006/0025).
No ``@traces`` decorators in this package: SPEC-033 §4 (this work's home,
"Storage") defines no ``REQ-033-*`` ids -- those belong to §6. Requirement-id
authoring for §4 is a spec change outside this lane, same precedent as
``factory.enforcement`` (§3).
Modules
-------
analyzer ``required_predicates`` -- derives a rulebase's transitive
predicate call graph (name/arity) by static analysis and
partitions it into intensional/extensional/builtin, per
ADR-0006 ("the projection is generated from the rules, not
chosen by hand"). Raises :class:`ProjectionUndecidable` on
the ADR-0025 banned constructs (non-ground ``call/N``,
``assert``/``retract`` in a rule body, ``=..`` goal
construction). ``verify_declaration`` cross-checks an
optional manual ``%! requires:`` header -- never authoritative.
completeness ``assert_projection_complete`` -- the pre-run gate: raises
:class:`IncompleteProjection` when a required extensional
predicate is absent from what a caller is about to project.
``projection_manifest`` renders a JSON-able provenance record.
Wiring note (B5 brief): this package delivers the CONTRACT a projection call
site must satisfy; wiring each existing per-gate assertion call site
(ADR-0005 ground-fact discipline) to call ``assert_projection_complete``
before consulting a rulebase is a separate, reviewed change -- see the
seam comment in ``completeness.py``.
"""
from __future__ import annotations