Skip to content

feat(spec): add decision.outcome_attached journal action#255

Merged
prakashUXtech merged 1 commit into
mainfrom
feat/rfc07-decision-outcome-attached
May 25, 2026
Merged

feat(spec): add decision.outcome_attached journal action#255
prakashUXtech merged 1 commit into
mainfrom
feat/rfc07-decision-outcome-attached

Conversation

@prakashUXtech
Copy link
Copy Markdown
Contributor

Summary

RFC 07 (Decision Graph Query Layer) introduces decision.outcome_attached — a journal action that updates a Decision's outcome field after the chain has closed. The hash chain excludes outcome, which is what makes the post-close mutation safe.

Slice 0 registers the namespace so later slices can emit and project it. No schema change, no behavior change on existing actions.

Changes

  • src/soul_protocol/spec/journal.py — adds "decision.outcome_attached" to ACTION_NAMESPACES under the # Decisions block with a comment explaining the mutation semantics.
  • src/soul_protocol/spec/decisions.py — adds the same string to the decision_actions filter set inside trace_decision_chain so outcome attachments appear in chain traces alongside agent.proposed, human.corrected, and decision.graduated.
  • tests/test_spec/test_decisions.py — extends test_namespaces_include_decision_actions with one assertion for the new action.

Test plan

  • uv run pytest tests/test_spec/ -v — 87 passed
  • uv run pytest (full suite) — 2436 passed, 4 skipped, 5 pre-existing failures (all ModuleNotFoundError for optional deps fastmcp / httpx; reproduces on pristine origin/main HEAD, unrelated to this change)

RFC reference

temp/brain-storming/to-build/07-decision-graph-query-layer-rfc.md (workspace repo).

  • Line 270: chain-folding semantics for outcome attachment.
  • Line 730: integration touchpoint — "Lands in ACTION_NAMESPACES additively. No schema change."

RFC 07 (Decision Graph Query Layer) introduces decision.outcome_attached
to update a Decision's outcome after the chain has closed. The hash
chain excludes outcome, so this post-close mutation is safe.

Slice 0 registers the namespace so later slices can emit and project
it. Also extends trace_decision_chain's action filter so outcome
attachments appear in chain traces alongside the existing decision
events.

RFC: temp/brain-storming/to-build/07-decision-graph-query-layer-rfc.md
@github-actions
Copy link
Copy Markdown

Issues (must fix)

  • No linked issue found. PRs should reference an issue (Fixes #123).
  • No evidence of local testing found. Please include terminal output or screenshots.

Please update your PR to address these points.

@prakashUXtech prakashUXtech merged commit b6ab6ee into main May 25, 2026
6 checks passed
@prakashUXtech prakashUXtech deleted the feat/rfc07-decision-outcome-attached branch May 25, 2026 07:27
prakashUXtech added a commit that referenced this pull request May 25, 2026
RFC 07 (Decision Graph Query Layer) introduces decision.outcome_attached
to update a Decision's outcome after the chain has closed. The hash
chain excludes outcome, so this post-close mutation is safe.

Slice 0 registers the namespace so later slices can emit and project
it. Also extends trace_decision_chain's action filter so outcome
attachments appear in chain traces alongside the existing decision
events.

RFC: temp/brain-storming/to-build/07-decision-graph-query-layer-rfc.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant