Plan #
What sds is building, and roughly in what order. One file per epic.
The id is the commit scope #
Each epic's filename is its id, and that id never changes. plan/features.md is
features, so its commits read feat(features): .... Archiving moves the file
into complete/ and never renames it.
plan is a valid scope too, for changes to this register.
Status #
open - being worked on or ready to be.
blocked - cannot start until something in dependsOn lands.
continuous - no exit criterion. Worked whenever adjacent code is open.
declined - decided against. Not blocked, which is waiting: the answer is no
rather than not yet. The file stays, because a decision that is not written down
gets made again.
shipped - the exit criterion is met. A shipped epic with nothing open moves to
complete/.
The tables are generated #
scripts/gen-plan-readme.py reads every epic's frontmatter and rewrites what
sits between the <!-- generated: ... --> fences. Everything outside a fence is
hand-written and passed through. The plan-register prek hook runs it with
--check, so a row that disagrees with the file it points at fails the commit.
Adding an epic is one file and one command: write plan/<id>.md with the
frontmatter keys every other epic carries, run the script, stage both.
Open #
| id | title | status | depends on |
|---|---|---|---|
| harness | The benchmark produces results you can believe | open | - |
| scenarios | A suite that spans sizes, maps and technology | open | - |
| protocol | The observation carries what a bot needs to reason | open | - |
| hierarchy | Units propose, forces decide | open | - |
| ev | Damage as a distribution, not a mean | open | protocol |
| los | Line of sight computed here, checked against MegaMek | open | - |
| features | A normalised, named feature basis | open | protocol, los, ev |
| scoring | One basis, not two | open | features |
| tactics | A force is doing one nameable thing, and can be told to do another | blocked | scoring, hierarchy |
| beliefs | What the bot thinks is happening | blocked | features |
| objectives | What winning means, and what to do when it stops being available | blocked | tactics |
| doctrine | Composable lenses - culture, commander, personality, experience | blocked | tactics |
| capability | Forces and doctrines map to each other | blocked | tactics |
| difficulty | Fallible, never absurd | blocked | beliefs, doctrine |
| training | Weights fitted from recorded play | blocked | features, harness |
| shape | A feature's weight is a curve, not a number | blocked | training, features |
| observability | Read back what the bot believed and chose | open | beliefs |
| artillery | A shell fired this round lands next round | open | ev, beliefs |
| battle-armor | Battle armor plays, mounted and on foot | open | unit-types, candidates |
| bridges | A bridge is a floor above the ground | open | protocol |
| buildings | Buildings are terrain the bot can see, enter and destroy | open | los, protocol |
| c3 | A C3 lance shoots from where its friends can see | open | los, candidates |
| candidates | Propose positions, not four verbs | open | los, ev, features |
| chat | The bot says what it is doing, in the match | open | observability |
| contract | The wire is a contract, and every rule has one home | open | protocol, puzzles |
| exotic-ammo | The round in the tube changes the shot | open | ev, features |
| exotic-weapons | Weapons that disable rather than damage | open | ev, features |
| fire-modes | Ultra and Rotary autocannon rates are a choice | open | ev |
| heat-damage | Making the enemy hot is a way to win | open | ev, features |
| infantry | A platoon is a headcount, not a body plan | open | unit-types, features |
| matchup | The bot can see what it is up against | open | features, scenarios |
| melee | The bot throws a punch | open | features, ev |
| mines | Ground that hurts to walk on | open | protocol, beliefs |
| mounting | A platoon aboard a transport is worth something the basis cannot say | open | candidates, features |
| smoke-and-fire | Terrain that appears during the match | open | los, buildings |
| teams | More than two sides | open | hierarchy, protocol |
| tsm | Triple Strength Myomer rewards running hot | open | features |
| unit-types | Vehicles and infantry play, not just Meks | open | protocol, features |
| vocabulary | A diagrammed reference for every feature and label | open | features, training |
Continuous #
| id | title | status | depends on |
|---|
Not pursued #
| id | title | status | depends on |
|---|
Complete #
Nothing open, nothing left to decide. These live in complete/ so the list above stays the list of things somebody might work on. They are not deleted: how something was built, and what it cost to learn, is worth more after it works than before. Their ids stay valid commit scopes.
| id | title |
|---|