Skip to content

spec(config): align reference workflows with real parallelism and native report delivery #295

Description

@LeXwDeX

Blocked by: #293

Ticket 3/4 of the harness workstream (see #293). Primary source: docs/harness-review-2026-08-16.md (sections B-5, B-6, 七.4). Blocked by #293's merge SHA (incompatible block rule per runtime-compat.json policy). Work happens in the LeXwDeX/opencode-dag-config repository, not this one.

Problem Statement

The saved workflow library currently overpromises in two ways:

  1. The full project-development route advertises "parallel slices", but the runtime compiled those slices into a serial chain. Once spec(dag): parallel workspace writers with implementation evidence aggregator #293 lands, the wording becomes truthful — and the plan blocks must carry the write-set discipline that real parallelism demands.
  2. One route synthesizes its final report via a hand-rolled delivery contract (write a markdown file to a temp dir, submit only the path). The runtime now natively supports output-by-reference: submitting an absolute file path records a content_ref with size and SHA-256 into the managed workflow-reports area with automatic gitignore handling. The hand-rolled version bypasses the integrity receipt and writes outside the managed area.

Solution

  1. Update the full project-development reference so its parallel-slice wording is honest, and bake the triple-disjoint write-set contract into the plan block's instruction: source files, generated artifacts, and lockfiles must all be disjoint across parallel writers, and no shared build may be triggered.
  2. Delete the hand-rolled delivery-contract block from the full route; rely on the runtime's native output-by-reference for the final report.
  3. Sweep remaining route/library wording for serialization promises.
  4. Bump runtime-compat.json to the spec(dag): parallel workspace writers with implementation evidence aggregator #293 merge SHA and pass the config repo's template-validation CI in the same change.

User Stories

  1. As a parent orchestrator reading a saved route, I want "parallel slices" to mean what it says, so that my concurrency budget is a real expectation.
  2. As a plan block worker, I want my instruction to state the triple-disjoint rule explicitly, so that I partition write sets correctly before parallel slices spawn.
  3. As a report consumer, I want final reports delivered through the managed reports area with an integrity receipt, so that report content is verifiable.
  4. As the config-repo maintainer, I want runtime-compat pinned to the exact runtime merge SHA, so that CI template validation runs against the compiler that produced these shapes.

Implementation Decisions

  1. Wording and contract changes only — no graph-shape changes in this ticket; the parallel compilation behaviour comes from spec(dag): parallel workspace writers with implementation evidence aggregator #293.
  2. The triple-disjoint contract is expressed in block instructions (plan slice), not as new schema fields.
  3. Native report delivery replaces the temp-file mechanism; the route keeps one synthesize block and depends on runtime file-ref capture.
  4. Landing rule: runtime merge first, then this repo's PR bumps the SHA and updates templates in the same change, matching the documented policy for incompatible block rules.

Testing Decisions

  • The config repository's own template-validation CI (which validates every root YAML with the runtime-owned validator at the pinned SHA) is the acceptance gate.
  • Prior art: existing route YAMLs validated the same way.

Out of Scope

Further Notes

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions