Skip to content

feat: policy-gated action loop v0 — intervention fixtures and enhanced checker#285

Open
mdheller wants to merge 1 commit into
mainfrom
feat/policy-gated-action-loop-v0
Open

feat: policy-gated action loop v0 — intervention fixtures and enhanced checker#285
mdheller wants to merge 1 commit into
mainfrom
feat/policy-gated-action-loop-v0

Conversation

@mdheller

Copy link
Copy Markdown
Member

Summary

  • Adds valid.blocked-intervention.json: bounded action loop where policy blocks a risk_class=high emit_audit_packet action; demonstrates intervention record emitted when policy blocks, with trace_status=blocked and result=blocked and audit_ref present
  • Adds valid.modified-action.json: bounded action loop where policy modifies scope of a risk_class=moderate action; demonstrates intervention record with trace_status=modified and result=modified with trait_drift_metric (observational only)
  • Updates check_bounded_action_loop.py:
    • Now validates all valid.*.json fixtures (was previously hardcoded to one)
    • Enforces trace_status and outcome.result must match (runtime trace always consistent)
    • Enforces intervention outcomes (blocked/modified/escalated) require audit_ref
    • Preserves existing recorded trace requires low risk in v0 constraint

All 4 v0 runtime rules now verified: no action without policy decision, every action emits trace, intervention recorded for blocked/modified, trait drift observational only.

Closes #162

Test plan

  • make validate-bounded-action-loop passes
  • valid.blocked-intervention.json validates successfully
  • valid.modified-action.json validates successfully
  • Existing invalid fixtures still fail validation

…d checker (#162)

Adds valid.blocked-intervention.json: blocked action loop with trace_status=blocked
and outcome result=blocked, demonstrating intervention record emitted when
policy blocks a high-risk action.

Adds valid.modified-action.json: modified action loop with trace_status=modified
and outcome result=modified, demonstrating intervention record emitted when
policy constrains scope of a moderate-risk action.

Updates check_bounded_action_loop.py:
- Validates all valid.*.json fixtures (not just one)
- Enforces trace_status and outcome result must match (runtime trace always consistent)
- Enforces intervention outcomes (blocked/modified/escalated) require audit_ref
- Preserves existing recorded-trace-requires-low-risk constraint

All 4 runtime rules now verified: no action without policy decision, every
action emits trace, intervention recorded for blocked/modified, trait drift
is observational only.

Closes #162
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement policy-gated action loop v0 with audit hooks

1 participant