Repository navigation
4.13.0: plans are short intents, the lead chooses where agents run - #328
Merged
Merged
Conversation
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…tched reviews Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…sk files Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…a string is refused) Refs #316 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sts/flow-minors.js) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ch (#299) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…he task files Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…s restored Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
The escalation of the Spec phase now carries the spec of each chain that passed, with tier_before and tier_after, so its spec/<task id> branch can be seen and pruned. The oracle is tests/spec-escalate.js from spec/311-plan-escalate-specs. Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
parallel() resolves a failed brief-writer to null, and the Briefs phase threw on it. Each null brief now gets 1 retry with its own label, after the first barrier. A brief still null is a problem and the plan escalates. A test in tests/spec-gate.js covers a brief-writer that throws and one that returns null. Co-Authored-By: Claude <noreply@anthropic.com>
verify, workerPrompt, staleAfter, resetup, makeWave, doNotTouch, isoSeconds, badSha and know are written once in wave.js between the shared-helpers marker lines; node tests/workflows.js --write copies the block into flow.js and the test fails on drift. Differences stay as hooks each file defines: onBase/notBase (flow has no base-red list), filesBeside (flow reads leases), redText/extraAsk (flow adds the findings ask), staleSkip, briefOf and STALE (flow: landing, when it starts). merged, work, setupText, setupLine stay apart. Co-Authored-By: Claude <noreply@anthropic.com>
namesTask lives in the shared helpers block: an id with a digit or a hyphen matches as a bare word; any other id matches only after task/tasks, #, a backtick or a quote. flow.js gets it through --write. The merge of spec/299-stale-short-ids kept the shared block; its stub moved there. Co-Authored-By: Claude <noreply@anthropic.com>
asLead and LEAD_REQUEST sit in the shared block of plugin/contract/check.js and reach the five workflows through --write; doc-sdlc.js carries the same text and a test pins it equal. wave and flow wrap in call(); plan, split and review-batch wrap each agent( call. tests/workflows.js and tests/doc-sdlc.js check that every stubbed prompt starts with the line, once. Co-Authored-By: Claude <noreply@anthropic.com>
…4-13-chainA-319 # Conflicts: # tests/run.sh
…lves (#327) plan by default turns the lead's intents (args.intents) into the graph with no agent, or lets 1 agent draft them from the goal. Each task has an intent (its outcome), blockers or a chain, file hints, an oracle command and a tier, and no brief. No brief-writer, spec agent, critic or redraft runs. heavy: true keeps the old path for a one-way door. wave and flow accept a task with no brief: its worker gets the intent and briefs itself, with no brief-writer and no path or check agent before it, and returns the brief in its report (report.brief, new in the schema). The chief-of-staff agent, README and AGENTS-AND-MODELS.md describe this as the default. Tests: plan scenarios for the light path, a wave task with an intent and no brief, a flow task with only issue, parent, group, tier, files and oracle. The heavy tests (tests/workflows.js, spec-gate.js, spec-escalate.js) now pass heavy: true. Co-Authored-By: Claude <noreply@anthropic.com>
With runtime.remote true the worker, sub-lead, integrator, fix, regression and oracle-check prompts of wave, flow and split name the branch and its base and no path under worktree_root; the slot cap is runtime.concurrency alone and flow reads no host load. A local runtime keeps every prompt byte for byte. Also merges spec/316-runtime-contract, spec/316-prompts-no-place and the group branch for runtime.remote (#320). Co-Authored-By: Claude <noreply@anthropic.com>
…views (#326) runFix no longer pushes the group branch: the fix branch lands through integrate (gate and reach) and heads[g] moves only on a validated merge; a refused landing holds the group. A fix landing has no task entry, so integrate takes a spec and runs inside the lane the fix already holds. shipWhenDone waits for the batched reviews that read a landing of its group, and the final partial batch starts before reviewsClosed resolves. tests/flow.js sees the fix landing; tests/run.sh runs flow-minors and shared-helpers. Co-Authored-By: Claude <noreply@anthropic.com>
# Conflicts: # plugin/workflows/plan.js # tests/run.sh
Plans are a short ordered list of intents; workers brief themselves (#327). The lead chooses where agents run: prompts name work, not places (#316, #320, #325). Prompts state the task is the lead's request (#310, #324). Flow and wave share one helpers source (#311, #319). A null brief retries once (#318). Plus #321, #322, #323, #326. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #317
Closes #316
Closes #310
Closes #311
Closes #299
Closes #318
Closes #319
Closes #320
Closes #321
Closes #322
Closes #323
Closes #324
Closes #325
Closes #326
Closes #327
What changes
plantakes the lead's intent list as the graph with 0 agents, or drafts one with 1 agent. Wave and flow give a task with no brief a self-brief: the worker writes a few lines, then the code, and returns its brief in the report.heavy: truekeeps the old path (brief-writers, specs, critic) for a one-way door.runtime.remotemarks a runtime whose agents run elsewhere; prompts then name the work (branch, base, brief, oracle, gate, report) and never a local path; the slot cap comes from the runtime, and the host load check does not apply.Proof
sh tests/run.sh: 318 passed, 0 failed.node tests/workflows.js: 1285 passed, 0 failed.heavy: truethe plan prompts are byte-identical to main. Withruntime.remote, no prompt names a worktree root orgit worktree add.Not verified
🤖 Generated with Claude Code