Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[DEL-A4] Deterministic Task Coordination Reducer and Task Admission Protocol

Open
#332 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
python

Research direction

Start with hard dependency #316, which ratifies the input types and action vocabulary, and read the existing phase acceptance and execution paths to understand how proposals are recorded. Implement the reducer and tests for determinism, replay, budgets, import boundaries, Memory independence, and disabled-feature behavior. Done means all listed acceptance criteria pass without adding unannounced persisted fields or assuming a protocol number.

Written by the indexing model from the issue text.

Description

Parent: EPIC #315 · Stage M2 (deterministic coordination foundation) · Size L · Created 2026-10-25 (UTC) by the Memory-first reconciliation of #315, against main at f04db5f (state protocol 12).

Objective

Implement a pure, provider-neutral, deterministic decision layer for intra-issue task coordination. It decides what may happen next. It never launches an agent, never writes files itself and never touches GitHub; the engine executes its proposals through existing paths.

Contract: given the same recorded task state, policy version and evidence snapshot, the reducer returns the same decision.

Inputs (conceptual; #316 ratifies the types)

  • authoritative task state and the task dependency graph;
  • the policy snapshot and its version;
  • provider capability observations, as recorded;
  • the current candidate identity;
  • verification outcomes from the existing gates;
  • resource budgets and their recorded consumption;
  • previous attempt outcomes;
  • explicit operator decisions where the policy requires one.

Bounded advisory Memory context may be passed through to a launch's prompt. Natural-language memory text never becomes a decision input.

Outputs

Strictly typed action proposals, for example:

ADMIT_TASK
LAUNCH_WORKER
VERIFY_TASK
RETRY_TASK
REQUEST_OPERATOR_ACTION
WAIT
STOP

#316 ratifies the exact set before implementation. They are not shell commands and not GitHub effects. The engine records each proposal's outcome before the reducer runs again.

Properties

  • Deterministic ordering and stable tie-breaking, independent of dictionary, set or API order and of time.
  • Pure decision logic: no I/O, no clock, no randomness.
  • Idempotent replay: on the recorded state after a crash it yields the same proposal, and it never proposes an outcome that is already recorded.
  • No provider execution and no GitHub write.
  • No independent scheduler: #176 / ADR 0008 own cross-issue scheduling, claims and the L0/L1/L2 locks.
  • No new workflow authority: phase completion stays with the existing phase acceptance path.
  • No implicit budget increase: a proposal that would exceed a budget becomes STOP or the ratified operator action.
  • Unknown outcomes are explicit: a launch whose outcome is unknown is reconciled before anything else is proposed.
  • Task admission is separate from phase completion.

Dependencies

  • Hard (native): #316.
  • Blocks (native): #319.
  • Coordination: #317, for compatible EvidenceRef and context contracts. There is no edge to DEL-A5 (the single-agent Memory integration under #315): the reducer and the Memory MVP progress independently once #316 is ratified. FTS5 and advanced retrieval (#324) never block this issue.

Acceptance criteria

  • The reducer is a pure function over typed inputs, using the action vocabulary #316 ratified.
  • Property tests prove determinism under input permutation and stable tie-breaking.
  • Replay tests: for every recorded prefix of a fake run, the reducer reproduces the recorded decision. An interrupted launch with an unknown outcome leads to reconciliation, never to a second launch.
  • Budget tests: an exhausted call, runtime, storage or attempt budget yields STOP (or the ratified operator action); no proposal raises a budget.
  • A structural test proves the module imports no provider, executor, GitHub client or filesystem writer.
  • Changing only the advisory Memory context leaves every decision unchanged.
  • With the feature disabled, nothing calls the reducer and single-agent behaviour is unchanged.
  • No persisted field lands without its announcement on #23; no protocol number is assumed.

Non-goals

An LLM Manager; launching or supervising agents; cross-issue scheduling; Memory storage; retrieval.

Dominant language
Python
Stars
0
Forks
0
Avg merge
6h
Merged PRs (30d)
78

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from iceboundrock/AutoForge

All issues in iceboundrock/AutoForge

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.