feat: example 09 - best-time-to-implement (a task graph that schedules itself) - #7
Merged
Conversation
…s itself) A backlog modeled as a dependency graph that schedules itself: deterministic and hand-checkable, no AI. Readiness (deps met) + Phi (value/cost) over the ready set + the longest-cost critical path + sensitivity for what unblocks the most, via a cmg ModelGraph (assess -> classify -> prioritize). The assess stage is the seam where a model later judges state from evidence. TS and Python output byte-identical; self-check PASS; expected-output.txt included. Co-Authored-By: Claude Opus 4.8 (1M context) <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.
What
A backlog modeled as a dependency graph that schedules itself. The "best time to implement" falls out of the graph structure, no flat to-do list. This is the raw, deterministic engine (state is data, every number hand-checkable); a later layer lets a model judge state from evidence at the
assessseam, without touching the scheduling logic.Four readouts, and the point is they disagree:
doneorblocked(with the named unmet dep).usefulFlowScore) - the ready set by what earns its cost first.rankSensitivity) - completing which task raises the most downstream available value/cost ("what unblocks the most").The seed backlog includes the canonical case, domain-free: a task blocked on an unbuilt dependency ("move assets into object storage" waits on "build the storage adapter"), held as
blocked untilso it is not forgotten and surfaces when its blocker is done.How
A cmg
ModelGraphof three transforms,assess -> classify -> prioritize, each recording a signal (the run's trace shows how the plan was built).assessis the identity today; it is the seam for a model-call transform later. ReusesusefulFlowScore(core) +rankSensitivity(math). Built onmain(the primitives from #6/#5).Verify
TS and Python output is byte-identical (
expected-output.txt); the self-check confirms every claim against the seed data. No keys, no network, no AI. Domain-free.🤖 Generated with Claude Code