Epic: Decision Framework #394
Labels
No labels
auto/needs-reevaluation
controller-managed
auto/blocked-by-deps
auto/ci-timeout
auto/claimed-implementer
auto/claimed-merge
auto/claimed-reviewer
auto/driver-down
auto/invariant-violation
auto/last-attempt-tier-0
auto/last-attempt-tier-1
auto/last-attempt-tier-2
auto/last-attempt-tier-min
Automation Tracking
auto/needs-conflict-resolution
auto/needs-implementer
auto/postmortem
auto/ready-to-merge
auto/restart-throttled
auto/revert
auto/sentinel
auto/stale-inactivity
auto/unstable
Blocked
Bounty
$100
Bounty
$1000
Bounty
$10000
Bounty
$20
Bounty
$2000
Bounty
$250
Bounty
$50
Bounty
$500
Bounty
$5000
Bounty
$750
MoSCoW
Could have
MoSCoW
Must have
MoSCoW
Should have
Needs Feedback
Points
1
Points
13
Points
2
Points
21
Points
3
Points
34
Points
5
Points
55
Points
8
Points
88
Priority
Backlog
Priority
CI Blocker
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Signed-off: Owner
Signed-off: Scrum Master
Signed-off: Tech Lead
Spike
State
Completed
State
Duplicate
State
In Progress
State
In Review
State
Paused
State
Unverified
State
Verified
State
Wont Do
Type
Automation
Type
Bug
Type
Discussion
Type
Documentation
Type
Epic
Type
Feature
Type
Legendary
Type
Refactor
Type
Support
Type
Task
Type
Testing
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
Depends on
#375 Legendary: Execution Pipeline & Decisions
cleveragents/cleveragents-core
#170 feat(decision): add decision domain and context snapshots
cleveragents/cleveragents-core
#171 feat(decision): add decision persistence
cleveragents/cleveragents-core
#172 feat(service): add decision recording and snapshot store
cleveragents/cleveragents-core
#174 feat(cli): add plan explain and decision tree outputs
cleveragents/cleveragents-core
#173 feat(di): wire decision services
cleveragents/cleveragents-core
#180 test(persistence): add decision persistence suites
cleveragents/cleveragents-core
#198 feat(actor): add plan_subplan tool and decision emission
cleveragents/cleveragents-core
#829 feat(plan): wire Invariant Reconciliation Actor auto-invocation during lifecycle transitions
cleveragents/cleveragents-core
#931 feat(plan): enforce decision type phase-gating at recording time
cleveragents/cleveragents-core
#1440 UAT:
agents invariant add --plan and --action flags not repeatable — spec requires multi-target support
cleveragents/cleveragents-core
#1469 UAT:
agents plan execute rich output missing spec-required structured panels (Execution, Sandbox, Strategy Summary, Progress)
cleveragents/cleveragents-core
#2048 UAT:
agents plan tree JSON/YAML output missing spec-required envelope and summary fields
cleveragents/cleveragents-core
#2070 Bug:
agents validation attach does not enforce mutual exclusivity of --project and --plan flags
cleveragents/cleveragents-core
#2612 UAT:
agents plan execute rich output missing spec-required panels — Execution, Sandbox, Strategy Summary, and Progress panels not rendered
cleveragents/cleveragents-core
#2618 UAT:
agents plan apply rich output missing spec-required panels — Apply Summary, Validation, Sandbox Cleanup, Plan Lifecycle, and Next Steps panels not rendered
cleveragents/cleveragents-core
#2818 UAT:
agents invariant add --plan and --action flags are not repeatable as required by spec
cleveragents/cleveragents-core
#2825 UAT:
agents invariant add silently defaults to --global scope when no scope flag is given, but spec requires at least one scope flag
cleveragents/cleveragents-core
#2831 UAT:
agents plan correct rich output missing spec-required structured panels (Affected Subtree, Sandbox Rollback, Recompute, History)
cleveragents/cleveragents-core
#2834 UAT:
agents plan explain JSON/YAML output uses wrong key names — created_at instead of created, alternatives_considered instead of alternatives
cleveragents/cleveragents-core
#2836 UAT:
agents invariant list --effective --action excludes action-scoped invariants from effective set — spec requires action invariants to be included
cleveragents/cleveragents-core
#2841 UAT:
agents plan explain JSON/YAML output missing spec-required fields: correction_hint, impact, and sequence (formatted)
cleveragents/cleveragents-core
#2842 UAT:
agents plan tree rich output missing spec-required panels (Tree Summary, Child Plans, Decision IDs for correction)
cleveragents/cleveragents-core
#2855 UAT:
agents plan correct rich output missing spec-required panels — Correction, Affected Subtree, Sandbox Rollback, Recompute, History, Append Detail, and Queued panels not rendered
cleveragents/cleveragents-core
#2873 UAT:
domain/repositories directory is empty — clean architecture repository interfaces missing from domain layer
cleveragents/cleveragents-core
#2890 UAT: InvariantEnforcementRecord.decision_id is a random ULID unlinked to the actual Decision tree node — enforcement records cannot be traced back to decisions
cleveragents/cleveragents-core
#2930 UAT:
CorrectionService has no database persistence — correction attempts are lost on service restart
cleveragents/cleveragents-core
#2939 UAT:
NamespacedName in plan.py does not enforce provider namespace restrictions — actions and plans can be created with reserved openai/, anthropic/ namespaces
cleveragents/cleveragents-core
#2950 UAT:
decisions table column names use _json suffix — deviates from spec DDL column names
cleveragents/cleveragents-core
#2963 UAT: Spec defines two conflicting DDL schemas for
correction_attempts table — attempt_id vs correction_attempt_id primary key
cleveragents/cleveragents-core
#2965 UAT:
_normalise_executor_output does not preserve original output in data.raw_output — spec requires malformed validation returns to be preserved for debugging
cleveragents/cleveragents-core
#2976 UAT:
decisions table missing UNIQUE(plan_id, sequence_number) constraint — duplicate sequence numbers can be inserted silently
cleveragents/cleveragents-core
#3064 Proposal: update specification — fix invariant precedence chain and document non_overridable flag
cleveragents/cleveragents-core
#3066 fix(invariant): InvariantSet.merge() missing action-scope parameter — only handles 3-tier instead of 4-tier precedence
cleveragents/cleveragents-core
#3107 UAT:
agents plan correct JSON output format does not match spec — flat structure instead of nested correction/affected_subtree/sandbox_rollback/recompute/history
cleveragents/cleveragents-core
#3108 UAT:
agents plan correct --mode revert never restores actor reasoning state — decisions parameter not passed to execute_correction, actor_state_ref always empty
cleveragents/cleveragents-core
#3113 UAT:
execute_revert never supersedes decisions in the tree — CorrectionService not wired to DecisionService, affected decisions remain active after correction
cleveragents/cleveragents-core
#3114 UAT:
agents plan correct --mode=append is a stub — generates random ULIDs but does not create a real child plan or decision in the system
cleveragents/cleveragents-core
#3116 UAT: Invariant domain model missing frozen=True — model is mutable, contradicting spec requirement for immutability
cleveragents/cleveragents-core
#3119 UAT:
agents plan correct rich output is a single line — spec requires 4-5 structured panels (Correction, Affected Subtree, Sandbox Rollback, Recompute, History)
cleveragents/cleveragents-core
#3128 UAT: InvariantService.get_effective_invariants() silently drops action-scoped invariants — missing action_name parameter
cleveragents/cleveragents-core
#3134 UAT: agents invariant list --effective cannot specify action scope — no --action flag when computing effective invariant set
cleveragents/cleveragents-core
#3146 UAT: agents invariant add missing --non-overridable flag — no CLI way to set non_overridable field on global invariants
cleveragents/cleveragents-core
#3196 UAT:
agents invariant remove rich output does not match spec — missing panel and invariant details
cleveragents/cleveragents-core
#3260 UAT: LLMStrategizeActor bypasses Invariant Reconciliation Actor — invariants accepted without reconciliation
cleveragents/cleveragents-core
#3326 UAT:
agents plan rollback does not discard decisions or invalidate child plans after checkpoint — only filesystem is reverted
cleveragents/cleveragents-core
#3388 TEST-INFRA: [test-data-quality] Replace static decision tree fixtures with dynamic data generation
cleveragents/cleveragents-core
#3494 UAT:
FixThenRevalidateOrchestrator wired with validation_pipeline=None in DI container — fix-then-revalidate orchestration is broken
cleveragents/cleveragents-core
#3523 UAT: agents invariant add/remove output missing rich Panel format — uses plain text instead of bordered panel
cleveragents/cleveragents-core
#3527 UAT: agents invariant list --effective missing "Conflicts Resolved" section and panel format
cleveragents/cleveragents-core
#3529 UAT: agents invariant add/list missing -p shorthand for --project flag
cleveragents/cleveragents-core
#3531 UAT: agents invariant add --plan and --action flags not repeatable — spec requires multi-value support
cleveragents/cleveragents-core
#3535 UAT: agents invariant add silently defaults to --global when no scope flag provided — spec requires at least one scope flag
cleveragents/cleveragents-core
#3539 UAT: InvariantService still uses in-memory storage — invariants lost between CLI invocations (issue #1022 closed but fix not merged)
cleveragents/cleveragents-core
#3569 UAT:
DecisionService._record_dependencies does not persist influence edges to decision_dependencies table — edges lost on service restart
cleveragents/cleveragents-core
#3593 UAT: plan explain missing Impact section and Correction hint panel
cleveragents/cleveragents-core
#3605 UAT: plan correct output missing spec-required panels (Affected Subtree, Sandbox Rollback, Recompute, History)
cleveragents/cleveragents-core
#3642 UAT:
agents plan artifacts JSON/YAML output format completely wrong — uses changeset fields instead of spec-required artifacts/summary/by_plan structure
cleveragents/cleveragents-core
#3647 UAT:
agents plan artifacts rich output missing spec-required panels — Artifacts table, Summary, and By Plan panels not rendered
cleveragents/cleveragents-core
#3681 UAT:
agents plan list JSON/YAML output format mismatch — outputs flat plan list instead of spec-required {plans, filters, summary} envelope structure
cleveragents/cleveragents-core
#3686 UAT:
agents plan list rich output has extra columns (Name, Invariants) not in spec, and Summary panel missing Cancelled count
cleveragents/cleveragents-core
#3707 UAT: DecisionRepositoryProtocol missing 4 methods used by DecisionService — protocol/implementation contract mismatch
cleveragents/cleveragents-core
#3720 UAT: CrossPlanCorrectionService._rollback_completed_actions() is a stub — cascade atomicity guarantee broken
cleveragents/cleveragents-core
#3732 UAT: ErrorPatternService.record_failure() missing fail-fast argument validation — violates spec code standards
cleveragents/cleveragents-core
#3737 UAT: ErrorRecoveryService.record_error() missing fail-fast argument validation for plan_id, phase, and message
cleveragents/cleveragents-core
#3741 UAT: DecisionService.mark_superseded() missing fail-fast validation for decision_id parameter
cleveragents/cleveragents-core
#3752 UAT: CorrectionService.analyze_impact() returns synthetic placeholder file/artifact paths — real resource tracking not implemented
cleveragents/cleveragents-core
#3790 BUG-HUNT: [type-safety] Missing arguments in constructor calls in decision_persistence_bench.py
cleveragents/cleveragents-core
#3820 UAT:
Plan domain model missing spec-required execution_log and checkpoint_graph fields for Execute phase
cleveragents/cleveragents-core
#3834 UAT:
Plan domain model missing spec-required Apply phase fields — applied_artifacts, approval_record, and deployment_record
cleveragents/cleveragents-core
#3839 UAT:
PlanApplyService.apply_with_validation_gate() never calls sandbox.commit() — Apply phase does not merge sandbox changes into real project resources
cleveragents/cleveragents-core
#3938 UAT: FixThenRevalidateOrchestrator registered in DI container with validation_pipeline=None - will raise ValidationError on resolution
cleveragents/cleveragents-core
#3952 UAT:
new_repositories.DecisionRepository uses wrong field names — will raise AttributeError at runtime when persisting decisions
cleveragents/cleveragents-core
Reference
cleveragents/cleveragents-core#394
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Background
Covers decision domain model, persistence layer, CLI surface, and integration with plan lifecycle. Decisions can be recorded, queried, and used to influence plan execution flow.
Expected Behavior
Decisions are modeled as first-class domain objects, persisted durably, exposed through CLI commands, and integrated into the plan lifecycle to influence execution flow.
Child Issues
Definition of Done
This Epic is complete when all child issues are closed and merged. Decisions recorded and queryable.
agents plan treeJSON output missing spec-required envelope (command, status, exit_code, data, timing, messages) #1417agents plan explainJSON output missing spec-required fields (impact, correction_hint, envelope, alternatives format) #1421UAT discovered a spec-compliance bug in the
agents plan treeJSON output. A new child issue has been filed:agents plan treeJSON output missing spec-required envelope (command, status, exit_code, data, timing, messages)This issue is a child of this Epic and should be resolved before the Epic can be closed.
Child issue added: #1421 — UAT:
agents plan explainJSON output missing spec-required fields (impact, correction_hint, envelope, alternatives format)This bug was discovered during UAT of the Decision Framework CLI surface. The
_build_explain_dictfunction inplan.pyproduces output that diverges from the spec in 7 ways (missing envelope, missingimpact, missingcorrection_hint, wrongsequenceformat, wrongalternativesformat, wrongcreated_atfield name, and extra non-spec fields). Fixing this is required for the Decision Framework to be considered complete.agents plan executerich output missing spec-required structured panels (Execution, Sandbox, Strategy Summary, Progress) #1469agents plan executerich output missing spec-required structured panels (Execution, Sandbox, Strategy Summary, Progress)agents plan executerich output missing spec-required structured panels (Execution, Sandbox, Strategy Summary, Progress) #1469agents plan treeJSON/YAML output missing spec-required envelope and summary fields #2048agents plan treeJSON/YAML output missing spec-required envelope and summary fieldsagents plan treeJSON/YAML output missing spec-required envelope and summary fields #2048agents validation attachdoes not enforce mutual exclusivity of--projectand--planflags #2070agents validation attachdoes not enforce mutual exclusivity of--projectand--planflagsInvariantService.get_effective_invariants()silently drops ACTION-scope invariants — spec requires action invariants to participate in effective set #2526agents validation listandagents validation showcommands are missing — spec requires both commands #2529agents invariant list --effectiveJSON output missingconflicts_resolvedfield — spec requires conflict resolution details in effective set output #2531agents invariant addmissing--non-overridableflag — spec-defined non-overridable global invariants cannot be created via CLI #2534InvariantSet.merge()andmerge_invariants()missingaction_invariantsparameter — action scope cannot participate in merge precedence #2535agents plan applyrich output missing spec-required panels — Apply Summary, Validation, Sandbox Cleanup, Plan Lifecycle, and Next Steps panels not renderedagents plan executerich output missing spec-required panels — Execution, Sandbox, Strategy Summary, and Progress panels not renderedagents plan applyrich output missing spec-required panels — Apply Summary, Validation, Sandbox Cleanup, Plan Lifecycle, and Next Steps panels not rendered #2618agents plan executerich output missing spec-required panels — Execution, Sandbox, Strategy Summary, and Progress panels not rendered #2612agents invariant add--planand--actionflags are not repeatable as required by spec #2818agents invariant add--planand--actionflags are not repeatable as required by specagents invariant addsilently defaults to--globalscope when no scope flag is given, but spec requires at least one scope flag #2825agents invariant addsilently defaults to--globalscope when no scope flag is given, but spec requires at least one scope flagagents plan correctrich output missing spec-required structured panels (Affected Subtree, Sandbox Rollback, Recompute, History) #2831agents plan correctrich output missing spec-required structured panels (Affected Subtree, Sandbox Rollback, Recompute, History)agents invariant list --effective --actionexcludes action-scoped invariants from effective set — spec requires action invariants to be included #2836agents invariant list --effective --actionexcludes action-scoped invariants from effective set — spec requires action invariants to be includedagents plan explainJSON/YAML output missing spec-required fields:correction_hint,impact, andsequence(formatted) #2841agents plan treerich output missing spec-required panels (Tree Summary, Child Plans, Decision IDs for correction) #2842agents plan explainJSON/YAML output missing spec-required fields:correction_hint,impact, andsequence(formatted)agents plan treerich output missing spec-required panels (Tree Summary, Child Plans, Decision IDs for correction)agents plan correctrich output missing spec-required panels — Correction, Affected Subtree, Sandbox Rollback, Recompute, History, Append Detail, and Queued panels not rendered #2855agents plan correctrich output missing spec-required panels — Correction, Affected Subtree, Sandbox Rollback, Recompute, History, Append Detail, and Queued panels not rendereddomain/repositoriesdirectory is empty — clean architecture repository interfaces missing from domain layer #2873domain/repositoriesdirectory is empty — clean architecture repository interfaces missing from domain layerdomain/repositoriesdirectory is empty — clean architecture repository interfaces missing from domain layer #2873agents plan explainJSON/YAML output missing spec-required fields:correction_hint,impact, andsequence(formatted) #2841agents plan explainJSON/YAML output uses wrong key names —created_atinstead ofcreated,alternatives_consideredinstead ofalternatives#2834agents plan correctrich output missing spec-required structured panels (Affected Subtree, Sandbox Rollback, Recompute, History) #2831agents plan explainJSON/YAML output uses wrong key names —created_atinstead ofcreated,alternatives_consideredinstead ofalternativesCorrectionServicehas no database persistence — correction attempts are lost on service restart #2930CorrectionServicehas no database persistence — correction attempts are lost on service restartNamespacedNameinplan.pydoes not enforce provider namespace restrictions — actions and plans can be created with reservedopenai/,anthropic/namespaces #2939NamespacedNameinplan.pydoes not enforce provider namespace restrictions — actions and plans can be created with reservedopenai/,anthropic/namespacesdecisionstable column names use_jsonsuffix — deviates from spec DDL column names #2950decisionstable column names use_jsonsuffix — deviates from spec DDL column namescorrection_attemptstable —attempt_idvscorrection_attempt_idprimary key #2963_normalise_executor_outputdoes not preserve original output indata.raw_output— spec requires malformed validation returns to be preserved for debugging #2965correction_attemptstable —attempt_idvscorrection_attempt_idprimary key_normalise_executor_outputdoes not preserve original output indata.raw_output— spec requires malformed validation returns to be preserved for debuggingdecisionstable missingUNIQUE(plan_id, sequence_number)constraint — duplicate sequence numbers can be inserted silently #2976decisionstable missingUNIQUE(plan_id, sequence_number)constraint — duplicate sequence numbers can be inserted silentlyagents plan correctJSON output format does not match spec — flat structure instead of nested correction/affected_subtree/sandbox_rollback/recompute/history #3107agents plan correct --mode revertnever restores actor reasoning state —decisionsparameter not passed toexecute_correction,actor_state_refalways empty #3108agents plan correctJSON output format does not match spec — flat structure instead of nested correction/affected_subtree/sandbox_rollback/recompute/historyagents plan correct --mode revertnever restores actor reasoning state —decisionsparameter not passed toexecute_correction,actor_state_refalways emptyexecute_revertnever supersedes decisions in the tree —CorrectionServicenot wired toDecisionService, affected decisions remain active after correction #3113execute_revertnever supersedes decisions in the tree —CorrectionServicenot wired toDecisionService, affected decisions remain active after correctionagents plan correct --mode=appendis a stub — generates random ULIDs but does not create a real child plan or decision in the systemagents plan correctrich output is a single line — spec requires 4-5 structured panels (Correction, Affected Subtree, Sandbox Rollback, Recompute, History) #3119execute_revertnever supersedes decisions in the tree —CorrectionServicenot wired toDecisionService, affected decisions remain active after correction #3113agents plan correct --mode revertnever restores actor reasoning state —decisionsparameter not passed toexecute_correction,actor_state_refalways empty #3108agents plan correct --mode=appendis a stub — generates random ULIDs but does not create a real child plan or decision in the system #3114agents plan correctJSON output format does not match spec — flat structure instead of nested correction/affected_subtree/sandbox_rollback/recompute/history #3107agents plan correctrich output is a single line — spec requires 4-5 structured panels (Correction, Affected Subtree, Sandbox Rollback, Recompute, History)agents invariant removerich output does not match spec — missing panel and invariant details #3196agents invariant removerich output does not match spec — missing panel and invariant detailsagents invariant removerich output does not match spec — missing panel and invariant details #3196agents invariant add--plan and --action flags not repeatable — spec requires multi-target support #1440agents invariant add--plan and --action flags not repeatable — spec requires multi-target supportagents plan rollbackdoes not discard decisions or invalidate child plans after checkpoint — only filesystem is revertedFixThenRevalidateOrchestratorwired withvalidation_pipeline=Nonein DI container — fix-then-revalidate orchestration is broken #3494FixThenRevalidateOrchestratorwired withvalidation_pipeline=Nonein DI container — fix-then-revalidate orchestration is brokenDecisionService._record_dependenciesdoes not persist influence edges todecision_dependenciestable — edges lost on service restart #3569DecisionService._record_dependenciesdoes not persist influence edges todecision_dependenciestable — edges lost on service restartDecisionService._record_dependenciesdoes not persist influence edges todecision_dependenciestable — edges lost on service restart #3569agents plan artifactsJSON/YAML output format completely wrong — uses changeset fields instead of spec-required artifacts/summary/by_plan structure #3642agents plan artifactsJSON/YAML output format completely wrong — uses changeset fields instead of spec-required artifacts/summary/by_plan structureagents plan artifactsrich output missing spec-required panels — Artifacts table, Summary, and By Plan panels not rendered #3647agents plan artifactsrich output missing spec-required panels — Artifacts table, Summary, and By Plan panels not renderedagents plan listJSON/YAML output format mismatch — outputs flat plan list instead of spec-required{plans, filters, summary}envelope structure #3681agents plan listJSON/YAML output format mismatch — outputs flat plan list instead of spec-required{plans, filters, summary}envelope structureagents plan listrich output has extra columns (Name,Invariants) not in spec, and Summary panel missingCancelledcount #3686agents plan listrich output has extra columns (Name,Invariants) not in spec, and Summary panel missingCancelledcount #3686agents plan listrich output has extra columns (Name,Invariants) not in spec, and Summary panel missingCancelledcountagents plan artifactsJSON/YAML output format completely wrong — uses changeset fields instead of spec-required artifacts/summary/by_plan structure #3642Plandomain model missing spec-requiredexecution_logandcheckpoint_graphfields for Execute phase #3820Plandomain model missing spec-requiredexecution_logandcheckpoint_graphfields for Execute phasePlandomain model missing spec-required Apply phase fields —applied_artifacts,approval_record, anddeployment_record#3834Plandomain model missing spec-required Apply phase fields —applied_artifacts,approval_record, anddeployment_recordPlanApplyService.apply_with_validation_gate()never callssandbox.commit()— Apply phase does not merge sandbox changes into real project resources #3839PlanApplyService.apply_with_validation_gate()never callssandbox.commit()— Apply phase does not merge sandbox changes into real project resourcesnew_repositories.DecisionRepositoryuses wrong field names — will raiseAttributeErrorat runtime when persisting decisions #3952new_repositories.DecisionRepositoryuses wrong field names — will raiseAttributeErrorat runtime when persisting decisionsDecisionType.ERROR_RECOVERYis defined but never recorded in the decision tree — spec requires error recovery decisions to be persisted #4022DecisionType.ERROR_RECOVERYis defined but never recorded in the decision tree — spec requires error recovery decisions to be persistedSandboxManager.commit_all()implements atomicity (spec line 45938) but spec line 19193 allows partial apply — spec contradiction needs resolution #4025SandboxManager.commit_all()implements atomicity (spec line 45938) but spec line 19193 allows partial apply — spec contradiction needs resolutionHAL9000 referenced this issue2026-05-08 05:42:01 +00:00