Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
{
"schema": "decodex.decision_contract/1",
"record_version": 1,
"contract_id": "research-x-loop-contract",
"status": "draft_latent",
"source_intent": {
"summary": "Research X and shape follow-up work.",
"user_utterance": "research X",
"source_issue_identifier": "XY-852"
},
"research_provenance": [
{
"kind": "spec",
"reference": "docs/spec/loop-runtime.md",
"summary": "Research output remains latent until accepted or promoted."
},
{
"kind": "conversation",
"reference": "codex-thread:research-x",
"summary": "Natural-language research request produced a candidate decision package."
}
],
"research_evidence": [
{
"claim": "A research result can carry enough detail for later issue shaping.",
"support": "The contract keeps objectives, constraints, assumptions, objections, and stop conditions together before promotion.",
"source_ref": "docs/spec/loop-runtime.md"
},
{
"claim": "A latent contract is not execution authority.",
"support": "The status remains draft_latent and promotion metadata is absent.",
"source_ref": "docs/spec/loop-runtime.md"
}
],
"accepted_authority": {
"accepted_objectives": [
"Define the runtime-facing Decision Contract model.",
"Preserve private runtime evidence as the source of truth while exposing only sparse public projection references."
],
"non_goals": [
"Do not auto-execute research output.",
"Do not expose graph mechanics as the user workflow."
],
"constraints": [
"Store contract payloads in local runtime SQLite.",
"Keep Linear as a coarse public mirror."
],
"assumptions": [
"Future issue-shaping code can consume the accepted contract without asking the user to restate all details."
],
"objections": [
"Promotion must fail when required acceptance criteria are missing."
],
"stop_conditions": [
"Request human decision when unresolved direction affects acceptance criteria.",
"Reject or supersede a contract when later evidence invalidates it."
]
},
"execution_readiness": {
"summary": "Ready for issue shaping after acceptance; latent status prevents queueing until promotion.",
"ready_for_issue_shaping": true,
"missing_decisions": [],
"validation_expectations": [
"Serialization round-trip passes.",
"Promotion transition records acceptance metadata."
],
"risk_notes": [
"Do not infer execution authority from research provenance alone."
]
},
"links": {
"generated_issue_ids": [],
"generated_issue_identifiers": [],
"execution_program_node_ids": []
},
"evidence_boundary": {
"private_evidence_refs": [
{
"project_id": "decodex",
"issue_id": "XY-852",
"run_id": "research-x-run",
"attempt_number": 1,
"record_id": 1,
"event_type": "research_result"
}
],
"public_projection_refs": [
{
"surface": "linear",
"reference": "XY-852",
"summary": "Public issue briefing names the research-to-execution handoff without containing private loop evidence."
}
],
"public_summary": "Latent research-to-execution contract awaiting acceptance."
}
}
1 change: 1 addition & 0 deletions apps/decodex/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ mod commit_message;
mod default_branch_sync;
mod git_credentials;
mod github;
mod loop_contract;
mod maintenance;
mod manual;
mod orchestrator;
Expand Down
Loading