[K1] Add deterministic domain and immutable intent #12

Merged
adrian.tkacz merged 10 commits from issue-4-domain-immutable-intent into develop 2026-09-24 19:03:47 +00:00
Member

Refs #4

Summary

  • Correct K1 to a pure present-fact domain: remove hypothetical future-path/reachability validation and permit structurally valid actionless nonterminal Programs.
  • Pin complete owner intent in the ProgramSpec digest and versioned WorkUnit intent fingerprints; approved initial references and predecessor output provenance are resolved into immutable AttemptSpec bindings.
  • Record independently trusted, FINISHED-Attempt-backed satisfactions and owner-scoped cancellation decisions with aggregate record order; rebuild WorkUnit projection from complete immutable history, including semantic reversion and changed concrete inputs.
  • Separate owner control from delegated operational authority, preserve unaffected live Attempts, record required affected Attempt cancellations as domain decisions, and make semantic no-op amendments return unchanged state.
  • Following fresh review at 53407da5b393c0480e74a29e1905b354ef54959b: satisfaction no longer mutates ANY Attempt, including a live retry or dependent Attempt; WorkUnit abandonment no longer abandons the Program; delayed historical facts can be recorded while inapplicable and recovered on return.

Acceptance evidence

  • Exact corrected branch head: a2c9072ba31868822983c29341be3a426607689e (supersedes the first review head 53407da5b393c0480e74a29e1905b354ef54959b and original head 52fef6866da7859dde1d6777974346fae3d2c20f).
  • Focused uv run --locked pytest tests/test_domain.py -q: 86 K1 regressions passed, including v1 -> v2 -> v1, deterministic reconstruction, provenance, each applicability category, separate satisfaction/Attempt lifecycles, cancellation reconnection, owner/delegate separation and exhausted-budget terminal observations.
  • make check passed at the exact head: 101 tests, Ruff formatting/lint, basedpyright, import-linter, secret scan and git diff --check.
  • make package-check passed at the exact head: sdist/wheel metadata, rebuild and isolated install. Forgejo pull_request workflow #1919 passed for the same SHA.
  • A fresh, independent, read-only review of exact head a2c9072ba31868822983c29341be3a426607689e returned APPROVE with no blocking findings against updated Issue #4 and accepted A0. The reviewer did not execute PR code/tests or submit a Forgejo approval; test evidence is from the implementation session and CI. The prior REQUEST_CHANGES at 53407da was remediated, not reused as acceptance.

Boundary

K1-only change to core domain values/exports and synthetic tests. No persistence, policy DSL, Artifact/Evidence verification, authentication, runtime execution, remote cancellation confirmation, new dependencies or A0 architecture/ADR edits. PR remains open against develop; no merge requested.

Refs #4 ## Summary - Correct K1 to a pure present-fact domain: remove hypothetical future-path/reachability validation and permit structurally valid actionless nonterminal Programs. - Pin complete owner intent in the ProgramSpec digest and versioned WorkUnit intent fingerprints; approved initial references and predecessor output provenance are resolved into immutable AttemptSpec bindings. - Record independently trusted, FINISHED-Attempt-backed satisfactions and owner-scoped cancellation decisions with aggregate record order; rebuild WorkUnit projection from complete immutable history, including semantic reversion and changed concrete inputs. - Separate owner control from delegated operational authority, preserve unaffected live Attempts, record required affected Attempt cancellations as domain decisions, and make semantic no-op amendments return unchanged state. - Following fresh review at `53407da5b393c0480e74a29e1905b354ef54959b`: satisfaction no longer mutates ANY Attempt, including a live retry or dependent Attempt; WorkUnit abandonment no longer abandons the Program; delayed historical facts can be recorded while inapplicable and recovered on return. ## Acceptance evidence - Exact corrected branch head: `a2c9072ba31868822983c29341be3a426607689e` (supersedes the first review head `53407da5b393c0480e74a29e1905b354ef54959b` and original head `52fef6866da7859dde1d6777974346fae3d2c20f`). - Focused `uv run --locked pytest tests/test_domain.py -q`: 86 K1 regressions passed, including `v1 -> v2 -> v1`, deterministic reconstruction, provenance, each applicability category, separate satisfaction/Attempt lifecycles, cancellation reconnection, owner/delegate separation and exhausted-budget terminal observations. - `make check` passed at the exact head: 101 tests, Ruff formatting/lint, basedpyright, import-linter, secret scan and `git diff --check`. - `make package-check` passed at the exact head: sdist/wheel metadata, rebuild and isolated install. Forgejo pull_request workflow #1919 passed for the same SHA. - A fresh, independent, read-only review of exact head `a2c9072ba31868822983c29341be3a426607689e` returned **APPROVE with no blocking findings** against updated Issue #4 and accepted A0. The reviewer did not execute PR code/tests or submit a Forgejo approval; test evidence is from the implementation session and CI. The prior REQUEST_CHANGES at `53407da` was remediated, not reused as acceptance. ## Boundary K1-only change to core domain values/exports and synthetic tests. No persistence, policy DSL, Artifact/Evidence verification, authentication, runtime execution, remote cancellation confirmation, new dependencies or A0 architecture/ADR edits. PR remains open against `develop`; no merge requested.
feat: add K1 domain and immutable intent
All checks were successful
ci / check (pull_request) Successful in 16s
8afaf4fe8d
fix: close K1 transition and amendment bypasses
All checks were successful
ci / check (pull_request) Successful in 15s
027aa7e7ae
fix: seal K1 domain mutation paths
All checks were successful
ci / check (pull_request) Successful in 16s
be3db0ba3a
fix: release work units after finished attempts
All checks were successful
ci / check (pull_request) Successful in 16s
c7468ade74
fix: seal K1 constructors and lifecycle liveness
All checks were successful
ci / check (pull_request) Successful in 16s
2c96859d22
fix: enforce K1 command liveness
All checks were successful
ci / check (pull_request) Successful in 17s
769a2f5600
fix: share K1 command liveness semantics
All checks were successful
ci / check (pull_request) Successful in 16s
e75f79bb99
fix: complete K1 intent and lifecycle semantics
All checks were successful
ci / check (pull_request) Successful in 16s
52fef6866d
fix: correct K1 present-fact domain model
All checks were successful
ci / check (pull_request) Successful in 16s
53407da5b3
fix: separate K1 satisfaction and abandonment
All checks were successful
ci / check (pull_request) Successful in 16s
a2c9072ba3
adrian.tkacz deleted branch issue-4-domain-immutable-intent 2026-09-24 19:03:47 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Creatidy/creatidy-kernel!12
No description provided.