Skip to content

Define task revision semantics and action-specific continuation prerequisites - #9

Merged
LevinGuy merged 2 commits into
mainfrom
fix/task-dependency-semantics
Oct 5, 2026
Merged

LevinGuy merged 2 commits into
mainfrom
fix/task-dependency-semantics

Conversation

@LevinGuy

@LevinGuy LevinGuy commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Task revisions and continuation readiness now have deterministic interpretation in both reference implementations. Dependencies resolve at the selected task boundary, and a destination computes prerequisites for the specific next action. The same capture can be ready to display a decision or reconcile a job while remaining blocked for model execution.

Closes #2. Closes #3. Based on main after #8. Stacked PR #10 introduces the 0.4 review-draft version identifiers and migration guidance. Merge this PR first.

Normative proposal / RFC

Task dependencies name session-local task IDs and resolve to the latest selected revision. Each revision replaces the dependency list: omitted means unknown and [] means none. Graphs must be acyclic after each selected update. Prerequisites are descriptive; only a selected completed task is satisfied, and later status changes never silently cascade to dependents. Missing initial predecessors require partial coverage and retain reconstruction gaps. Corrections use previous_revision, not envelope supersession; reactivation of terminal tasks requires reopen_reason.

Continuation requiredness uses an explicit five-action table and monotonic prerequisite closure. Waiting activates read requirements; reconciliation adds continue requirements; model/native actions also activate context requirements. Selected subjects remain inventoried even when optional. Transitive edges can promote dependencies with empty required_for, optional capabilities and shared resources. Core checkpoint/environment requirements and destination recovery evidence have explicit report subjects/fields. Only typed references select resources; unrelated historical resources and opaque JSON lookalikes cannot accidentally block readiness.

Reports require exactly one assessment for every applicable subject with the computed flag. Missing/extra records or false support claims invalidate a report; unresolved required subjects produce a valid blocked result. Optional deferral and unaccepted optional adaptations do not block the assessed action. Actual information loss still needs a loss record. Waiting and recovery reports cannot establish agent-execution readiness.

Implementation and alternatives

Both validators and state reducers implement the same rules, with 35 task mutation cases and shared continuation expectations. Add task boundary/partial-history examples and one unchanged capture assessed for all five next actions. Report schemas, generators, field documentation and conformance guidance are updated. A TypeScript set-comparison fix prevents extra assessments being accepted when an iterator is exhausted.

Pinned task-revision dependencies would require a different representation. Automatic status cascades would invent scheduling behavior. Requiring every selected continuation subject would unnecessarily block passive actions; ignoring transitive edges would omit real prerequisites. The chosen closure preserves both the complete inventory and action-specific blockers.

Compatibility and privacy

This changes interpretation requirements and adds environment/core-requirement report subjects and resolved recovery fields. The follow-up version PR isolates the identifier bump and migration guidance. Existing task-envelope supersession, unchecked dependency cycles and conservative report flags must be migrated/reassessed. No source evidence is rewritten by report assessment. All fixtures are synthetic; no external service, credential lookup, scheduler or agent execution is added. Local parity does not establish independent interoperability.

Validation

  • Python: 131 reference checks, 65 shared continuation cases, 27 schema checks; 12 core examples and 5 negative checks.
  • TypeScript: typecheck and 179 tests passed, including every shared continuation case.
  • Python/TypeScript CLI and package exchange: 10 checks passed.
  • Documentation: 125 objects and 137 schema-validated examples, generated freshness and links; strict MkDocs build passed.
  • git diff --check passed.

@LevinGuy LevinGuy added feature New specification or format capability specification Normative semantics, schemas, or format contracts priority:P0 Must resolve before the capability or conformance claim stated in the issue labels Oct 5, 2026
@LevinGuy LevinGuy changed the title Define task dependency and revision semantics Define task revision semantics and action-specific continuation prerequisites Oct 5, 2026
@LevinGuy
LevinGuy merged commit 73211fe into main Oct 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New specification or format capability priority:P0 Must resolve before the capability or conformance claim stated in the issue specification Normative semantics, schemas, or format contracts

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[P0] Define action-specific prerequisite requiredness for continuation [P0] Specify task dependency and revision semantics

1 participant