Dependency graph
Every issue, every dependency, and the execution waves the graph implies — drawn from the canonical edges, never by hand.
Every node below is an issue in the canonical model and every arrow is a depends_on entry. The diagram is generated by majordomus plan graph; the table under it is the same edge list in text, for a reader who cannot see the picture.
flowchart LR
I0001["I0001<br/>Audit what actually plans work in this repository"]:::done
I0002["I0002<br/>Define the canonical milestone and issue schema"]:::done
I0003["I0003<br/>Implement the model loader and the status derivation engine"]:::done
I0004["I0004<br/>Implement DAG validation and execution waves"]:::done
I0005["I0005<br/>Implement the plan command surface"]:::done
I0006["I0006<br/>Generate the Mermaid DAG from the graph"]:::done
I0007["I0007<br/>Enforce the canonical model as doctrine"]:::done
I0008["I0008<br/>Project the model to GitHub milestones and issues"]:::done
I0009["I0009<br/>Project the model into the website"]:::done
I0010["I0010<br/>Behavioural tests for schema, status, graph and command"]:::done
I0011["I0011<br/>Cross-surface consistency and mutation tests"]:::done
I0012["I0012<br/>Make CI refuse an invalid model or a stale projection"]:::done
I0013["I0013<br/>Document the semantics and the dogfooding rule"]:::done
I0014["I0014<br/>Make the worker instructions require the model"]:::done
I0015["I0015<br/>Open the first real milestone and execute one issue through it"]:::done
I0101["I0101<br/>Reproduce the escaped blocker as an executable case"]:::done
I0102["I0102<br/>Decide whether a question transfers or the gate widens"]:::done
I0103["I0103<br/>Implement the decision and prove it holds"]:::done
I0104["I0104<br/>Move the claim from planned to guaranteed"]:::done
I0201["I0201<br/>Declare which profile axis may become which runtime limit"]:::ready
I0202["I0202<br/>Resolve a task's effective limits and print them as data"]:::blocked
I0203["I0203<br/>Make enforcement opt-in, and prove a repository that declines is unaffected"]:::blocked
I0204["I0204<br/>Apply one derived limit for real and prove it changes what happens"]:::blocked
I0205["I0205<br/>Declare the clamp as a doctrine so the mapping and the adapter cannot drift"]:::blocked
I0206["I0206<br/>Publish the runtime-adapters claim with the test that proves it and the limits it does not cover"]:::blocked
I0301["I0301<br/>Define the execution record, including what an absence looks like"]:::blocked
I0302["I0302<br/>Record telemetry a provider reports, and refuse anything it did not"]:::blocked
I0303["I0303<br/>Prove a silent provider produces an explicit absence, never a guess"]:::blocked
I0304["I0304<br/>Read the measurements back through the history surface, under a bound"]:::blocked
I0305["I0305<br/>Publish the telemetry claim and record what remains unmeasured"]:::blocked
I0401["I0401<br/>Define an accepted outcome, and join it to its measurements without storing the join"]:::blocked
I0402["I0402<br/>Report cost only where measurement and acceptance both exist"]:::blocked
I0403["I0403<br/>Make a thin denominator say so rather than average it away"]:::blocked
I0404["I0404<br/>Publish the cost-per-outcome claim with its unit defined beside it"]:::blocked
I0501["I0501<br/>Group comparable work from what the records already carry"]:::blocked
I0502["I0502<br/>Recommend a profile from measured cost, naming the measurements"]:::blocked
I0503["I0503<br/>Return no recommendation where the data is too thin, and say why"]:::blocked
I0504["I0504<br/>Prove the recommendation is advisory and publish it as such"]:::blocked
I0601["I0601<br/>Let a policy name a shared source it does not copy"]:::blocked
I0602["I0602<br/>Make a local override explicit and prove it survives an update of the shared source"]:::blocked
I0603["I0603<br/>Report drift from the shared policy in one command"]:::blocked
I0604["I0604<br/>Prove the offline guarantee survives sharing"]:::blocked
I0605["I0605<br/>Publish the shared-policy claim and what sharing still cannot do"]:::blocked
I0701["I0701<br/>Reproduce the misattribution as an executable case"]:::ready
I0702["I0702<br/>Decide how a record is attributed, between named alternatives"]:::blocked
I0703["I0703<br/>Implement the decision and prove it holds"]:::blocked
I0704["I0704<br/>Publish what attribution guarantees, and what it still cannot"]:::blocked
I0801["I0801<br/>Narrow the Clean Extraction Boundary and record what was adopted"]:::done
I0802["I0802<br/>Specify the session record before writing one"]:::done
I0803["I0803<br/>Open a session and report its status"]:::done
I0804["I0804<br/>Close a session into an envelope derived from the ledger"]:::done
I0805["I0805<br/>Read sessions back with a divergence label"]:::done
I0806["I0806<br/>Make the session rules doctrines, with retention and archiving"]:::ready
I0807["I0807<br/>Discover knowledge sources from git, not from the filesystem"]:::done
I0808["I0808<br/>Extract nodes with identities that survive a rebuild"]:::done
I0809["I0809<br/>Record only edges that a file states, each with where it was observed"]:::done
I0810["I0810<br/>A content-hash manifest that makes a second sync cheap"]:::ready
I0811["I0811<br/>Read-only knowledge lookup with an ordering that can be explained"]:::blocked
I0812["I0812<br/>Validate the graph, and let doctor and watch ask the same validator"]:::blocked
I0813["I0813<br/>A closed session becomes a node that points at its episode"]:::blocked
I0814["I0814<br/>Give the worker a bounded slice of knowledge, not the knowledge base"]:::blocked
I0815["I0815<br/>Say what is now true in the claims, the documentation and the worker instructions"]:::blocked
I0816["I0816<br/>Prove the loop on a real issue, without a transcript"]:::blocked
I0817["I0817<br/>Phase timing and work counters behind MJ_TIMING"]:::done
I0818["I0818<br/>The command registry is read in one pass"]:::done
I0819["I0819<br/>The project model is loaded with one flatten per file and no per-file lookups"]:::done
I0820["I0820<br/>Catalogue, DAG, context and command-surface validators read their inputs once"]:::ready
I0821["I0821<br/>Flattened YAML is cached under .ai/local/cache by content hash"]:::ready
I0822["I0822<br/>Every canonical file is flattened at most once per command"]:::blocked
I0823["I0823<br/>majordomus bench: targets derived from the command registry"]:::done
I0824["I0824<br/>Bench persists local runs and keeps a latest projection"]:::done
I0825["I0825<br/>An explicit committed baseline"]:::done
I0826["I0826<br/>bench --check refuses a regression by policy"]:::done
I0827["I0827<br/>The benchmark policy block"]:::done
I0828["I0828<br/>doctor under a declared budget, and the hook inherits it"]:::blocked
I0829["I0829<br/>Performance doctrine as project rules"]:::done
I0830["I0830<br/>docs/PERFORMANCE.md, README, CONTRIBUTING and CLI reference"]:::done
I0831["I0831<br/>Performance claims at their proven status"]:::blocked
I0832["I0832<br/>generate-site-data instrumented and its hot spots removed"]:::ready
I0833["I0833<br/>knowledge nodes and edges read each source once"]:::done
I0834["I0834<br/>The test runner reports per-case time and the suite budget"]:::blocked
I0835["I0835<br/>CI runs the structural performance checks"]:::blocked
I0836["I0836<br/>A synthetic repository generator for scaling cases"]:::ready
I0837["I0837<br/>Timing report as JSON"]:::ready
I0838["I0838<br/>bench compare and the top regressions report"]:::ready
I0839["I0839<br/>watch inherits every doctor fix and its own budget"]:::blocked
I0840["I0840<br/>context and its subcommands under a second"]:::blocked
I0841["I0841<br/>Cache equivalence proved by property-shaped cases"]:::blocked
I0842["I0842<br/>Before and after evidence for every optimisation"]:::blocked
I0843["I0843<br/>The performance workflow is discoverable and complete"]:::blocked
I0901["I0901<br/>The deployment description is a kind of the layer, not a provider file"]:::ready
I0902["I0902<br/>The deployment object becomes typed Rust that refuses nonsense"]:::blocked
I0903["I0903<br/>Deployment reads are declared once and projected everywhere"]:::blocked
I0904["I0904<br/>The listen address is one fact with two projections"]:::blocked
I0905["I0905<br/>Liveness and readiness are registered capabilities, not router hacks"]:::blocked
I0906["I0906<br/>Termination is graceful and proved against the real container"]:::blocked
I0907["I0907<br/>The running process says what it is, from an allowlist"]:::blocked
I0908["I0908<br/>A hosted process has no repository, and says so instead of failing"]:::blocked
I0909["I0909<br/>The production image is a generated projection of the build specification"]:::blocked
I0910["I0910<br/>The release profile is chosen by measurement, not by folklore"]:::blocked
I0911["I0911<br/>A source change does not rebuild the world, and the context stays small"]:::blocked
I0912["I0912<br/>The image serves the site the canonical pipeline produced"]:::blocked
I0913["I0913<br/>The provider configuration is generated, and the cheap profile is declared"]:::blocked
I0914["I0914<br/>One deployment core, one command, and a dry run that mutates nothing"]:::blocked
I0915["I0915<br/>Deployment joins the diagnostics that already exist"]:::blocked
I0916["I0916<br/>The smoke suite is derived from the route registry, never written twice"]:::blocked
I0917["I0917<br/>A bad deployment can be undone deterministically"]:::blocked
I0918["I0918<br/>The bootstrap credential is used once and belongs to nothing"]:::blocked
I0919["I0919<br/>Nothing secret and nothing local leaves in the image"]:::blocked
I0920["I0920<br/>The image's dependencies are known and its advisories are policy"]:::blocked
I0921["I0921<br/>Size is measured first and budgeted second"]:::blocked
I0922["I0922<br/>The memory hypothesis is tested, not asserted"]:::blocked
I0923["I0923<br/>Cold start and endpoint cost are benchmark targets like everything else"]:::blocked
I0924["I0924<br/>The decision is recorded where architecture decisions are recorded"]:::blocked
I0925["I0925<br/>Every deployment rule is a check that runs"]:::blocked
I0926["I0926<br/>The deployment documentation is generated and reachable"]:::blocked
I0927["I0927<br/>The cockpit shows the deployment from the same data"]:::blocked
I0928["I0928<br/>A pull request cannot merge a deployment that would not work"]:::blocked
I0929["I0929<br/>Production deploys from CI with a token scoped to one application"]:::blocked
I0930["I0930<br/>The real image runs under the real limits before anything is deployed"]:::blocked
I0931["I0931<br/>The application exists, one machine runs it, and the URL answers"]:::blocked
I0932["I0932<br/>The milestone is accepted on its evidence"]:::blocked
I1001["I1001<br/>One typed graph composes the registries that already own their facts"]:::done
I1002["I1002<br/>Relations are typed, inferred from stable identities, and never dangle"]:::done
I1003["I1003<br/>Skills, rules, decisions, documents, use cases and benchmarks enter the graph as themselves"]:::done
I1004["I1004<br/>Availability and visibility are metadata, not conditions in a template"]:::done
I1005["I1005<br/>The graph is a generated artifact with a schema and no unsafe field"]:::done
I1006["I1006<br/>The runtime reads the graph through the registry, like every other read"]:::ready
I1007["I1007<br/>The site renders the same graph, generated once"]:::ready
I1008["I1008<br/>The two projections are proved to be the same model"]:::blocked
I1009["I1009<br/>Every menu in this repository comes from one derivation"]:::ready
I1010["I1010<br/>The overview is what exists, counted rather than claimed"]:::ready
I1011["I1011<br/>The coverage matrix reports evidence, and never a green cell without one"]:::ready
I1012["I1012<br/>One detail view, assembled from what a node actually has"]:::ready
I1013["I1013<br/>Search over the graph, generated, with nothing to run"]:::blocked
I1014["I1014<br/>The relation view reads the graph and holds no data of its own"]:::blocked
I1015["I1015<br/>A surface with no server behind it is not offered as if it had one"]:::active
I1016["I1016<br/>The Cockpit works on a phone and before JavaScript runs"]:::blocked
I1017["I1017<br/>Live state is an overlay that degrades to nothing"]:::blocked
I1018["I1018<br/>The surface rules exist as checks, proved by making them fail"]:::blocked
I1019["I1019<br/>One skill runs the whole loop, and is itself in the graph"]:::blocked
I1020["I1020<br/>The graph's health is answered by the doctor that already answers everything else"]:::blocked
I1021["I1021<br/>A browser proves the interface, at the widths people use"]:::blocked
I1022["I1022<br/>Drift in any derived surface fails the build"]:::blocked
I1023["I1023<br/>Nothing private reaches a published page"]:::ready
I1024["I1024<br/>The interface has a weight, and it is measured"]:::blocked
I1025["I1025<br/>The federated model and its two projections are an architecture decision"]:::done
I1026["I1026<br/>The architecture explains itself, from inside itself"]:::blocked
I1027["I1027<br/>A synthetic capability proves the architecture instead of describing it"]:::blocked
I1028["I1028<br/>The inventories this replaces are removed, not left running beside it"]:::blocked
I1029["I1029<br/>The gate refuses what would silently break the interface"]:::blocked
I1030["I1030<br/>The milestone is accepted on its evidence"]:::blocked
I1031["I1031<br/>A served surface says which checkout it is serving"]:::ready
I1101["I1101<br/>What this tool leaves behind, established by inspection rather than by memory"]:::ready
I1102["I1102<br/>The two namespaces are a typed contract, not a habit"]:::blocked
I1103["I1103<br/>Whether a file is authored or derived is a field, not a naming convention"]:::blocked
I1104["I1104<br/>Both namespaces carry their contracts, all the way down"]:::blocked
I1105["I1105<br/>The repository is discovered once, into one model"]:::blocked
I1106["I1106<br/>The registries are views of the model, not separate discoveries"]:::blocked
I1107["I1107<br/>Discovery is deterministic, cached, and its cost is known"]:::blocked
I1108["I1108<br/>The desired integration is a value, and the plan is a diff"]:::blocked
I1109["I1109<br/>Everything placed outside the two namespaces is recorded, with what it was"]:::blocked
I1110["I1110<br/>The second run changes nothing, and a test says so"]:::blocked
I1111["I1111<br/>Uninstall gives back exactly what was taken"]:::blocked
I1112["I1112<br/>What touches the root is two small blocks, and they never change again"]:::blocked
I1113["I1113<br/>Entering a directory is local, bounded and silent about the network"]:::blocked
I1114["I1114<br/>A provider is an adapter over the model, and adding one is an implementation"]:::blocked
I1115["I1115<br/>Completion comes from the command model, not from a second list"]:::blocked
I1116["I1116<br/>This repository's own footprint moves, through the reconciler"]:::blocked
I1117["I1117<br/>The hand-maintained lists are removed, not left running beside the derivation"]:::blocked
I1118["I1118<br/>Every invariant of this milestone is a rule with a check that runs"]:::blocked
I1119["I1119<br/>The budgets are measured, and a regression fails rather than being noticed"]:::blocked
I1120["I1120<br/>A refusal says what to do about it"]:::blocked
I1121["I1121<br/>Every surface shows the integration from the one model"]:::blocked
I1122["I1122<br/>A foreign repository, adopted, upgraded and given back"]:::blocked
I1123["I1123<br/>The milestone is accepted on its evidence"]:::blocked
I1201["I1201<br/>An identity provider is a declarative object, and Google and Facebook are two of them"]:::ready
I1202["I1202<br/>One typed provider model reads the objects, and no code names a provider"]:::blocked
I1203["I1203<br/>One flow serves every provider, and it refuses everything it did not start"]:::blocked
I1204["I1204<br/>The session is signed, short, and revocable from the server"]:::blocked
I1205["I1205<br/>Identity is resolved once, in the router, and every surface reads it from there"]:::blocked
I1206["I1206<br/>What an anonymous reader may do is derived from the effect classification, not from a list"]:::blocked
I1207["I1207<br/>No credential reaches any output, and hostile provider metadata renders safely"]:::blocked
I1208["I1208<br/>Adding a provider is one file, removing one is one deletion, and both are executed rather than described"]:::blocked
I1301["I1301<br/>A workspace is a declared object of the layer; only its content is local"]:::done
I1302["I1302<br/>Identity, provenance and support level are typed fields, not prose"]:::ready
I1303["I1303<br/>The store is bounded, measured and invisible to every published projection"]:::blocked
I1304["I1304<br/>The browser transport is the one this repository already drives"]:::blocked
I1305["I1305<br/>An observed contract has a fingerprint, a compatibility state and a fixture"]:::blocked
I1306["I1306<br/>A sync resumes, repeats itself without harm, and says how fresh it is"]:::blocked
I1307["I1307<br/>The ChatGPT shape is mapped from evidence and never becomes the canonical model"]:::blocked
I1308["I1308<br/>The executable's share is one capability, shaped like continuity"]:::blocked
I1309["I1309<br/>The boundaries this milestone asserts are gates, not sentences"]:::blocked
I1310["I1310<br/>The subsystem is documented where a person looks, and the plan is closed against the repository"]:::blocked
I1401["I1401<br/>The identity of a projected record is what the record carries, not what its title says"]:::done
I1402["I1402<br/>A finding says which of six states it found, and the state that could hide a person's edit is no longer one of them"]:::done
I1403["I1403<br/>Backfill the projection once, deliberately, and record what it created"]:::ready
I1404["I1404<br/>The drift check is a gate, so a projection that stops being applied cannot stay silent"]:::done
I1405["I1405<br/>A pull request names the issue it realises, and the edge is derived rather than remembered"]:::done
I1406["I1406<br/>The plan's derivations are capabilities, so every surface reads the readiness the terminal reads"]:::done
I1407["I1407<br/>One issue travels the whole path and back, as an executable case"]:::done
I1408["I1408<br/>The documents stop claiming a projection nobody runs"]:::done
I0001 --> I0002
I0002 --> I0003
I0003 --> I0004
I0004 --> I0005
I0004 --> I0006
I0004 --> I0010
I0005 --> I0007
I0005 --> I0008
I0005 --> I0009
I0005 --> I0013
I0005 --> I0014
I0006 --> I0009
I0008 --> I0011
I0009 --> I0011
I0010 --> I0011
I0011 --> I0012
I0012 --> I0015
I0013 --> I0014
I0014 --> I0015
I0101 --> I0102
I0102 --> I0103
I0103 --> I0104
I0201 --> I0202
I0202 --> I0203
I0203 --> I0204
I0204 --> I0205
I0205 --> I0206
I0301 --> I0302
I0302 --> I0303
I0303 --> I0304
I0304 --> I0305
I0401 --> I0402
I0402 --> I0403
I0403 --> I0404
I0501 --> I0502
I0502 --> I0503
I0503 --> I0504
I0601 --> I0602
I0602 --> I0603
I0603 --> I0604
I0604 --> I0605
I0701 --> I0702
I0702 --> I0703
I0703 --> I0704
I0801 --> I0807
I0802 --> I0803
I0803 --> I0804
I0804 --> I0805
I0805 --> I0806
I0806 --> I0813
I0807 --> I0808
I0808 --> I0809
I0809 --> I0810
I0810 --> I0811
I0811 --> I0812
I0811 --> I0814
I0812 --> I0813
I0813 --> I0815
I0814 --> I0815
I0815 --> I0816
I0817 --> I0818
I0817 --> I0819
I0817 --> I0821
I0817 --> I0823
I0817 --> I0832
I0817 --> I0833
I0817 --> I0837
I0818 --> I0820
I0818 --> I0822
I0818 --> I0828
I0818 --> I0842
I0819 --> I0820
I0819 --> I0822
I0819 --> I0828
I0819 --> I0832
I0819 --> I0836
I0819 --> I0842
I0820 --> I0822
I0820 --> I0828
I0820 --> I0840
I0820 --> I0842
I0821 --> I0840
I0821 --> I0841
I0822 --> I0831
I0822 --> I0835
I0823 --> I0824
I0823 --> I0827
I0823 --> I0830
I0824 --> I0825
I0825 --> I0826
I0826 --> I0830
I0826 --> I0831
I0826 --> I0835
I0826 --> I0838
I0827 --> I0828
I0828 --> I0834
I0828 --> I0839
I0829 --> I0830
I0830 --> I0843
I0831 --> I0843
I0832 --> I0842
I0833 --> I0842
I0835 --> I0843
I0841 --> I0843
I0842 --> I0843
I0901 --> I0902
I0901 --> I0924
I0902 --> I0903
I0902 --> I0904
I0902 --> I0905
I0902 --> I0907
I0902 --> I0908
I0902 --> I0909
I0902 --> I0913
I0902 --> I0918
I0903 --> I0913
I0903 --> I0914
I0903 --> I0926
I0903 --> I0927
I0904 --> I0906
I0904 --> I0909
I0905 --> I0909
I0905 --> I0916
I0906 --> I0930
I0909 --> I0910
I0909 --> I0911
I0909 --> I0912
I0909 --> I0914
I0909 --> I0919
I0909 --> I0920
I0909 --> I0930
I0910 --> I0921
I0911 --> I0921
I0912 --> I0930
I0913 --> I0914
I0913 --> I0926
I0913 --> I0931
I0914 --> I0915
I0914 --> I0916
I0914 --> I0917
I0914 --> I0931
I0915 --> I0925
I0916 --> I0931
I0917 --> I0931
I0918 --> I0929
I0918 --> I0931
I0919 --> I0928
I0920 --> I0932
I0921 --> I0928
I0922 --> I0931
I0923 --> I0932
I0924 --> I0926
I0925 --> I0932
I0926 --> I0932
I0927 --> I0932
I0928 --> I0932
I0929 --> I0932
I0930 --> I0922
I0930 --> I0923
I0930 --> I0928
I0930 --> I0931
I0931 --> I0929
I0931 --> I0932
I1001 --> I1002
I1001 --> I1003
I1001 --> I1004
I1001 --> I1025
I1002 --> I1005
I1002 --> I1011
I1002 --> I1014
I1002 --> I1020
I1004 --> I1005
I1004 --> I1009
I1004 --> I1015
I1005 --> I1006
I1005 --> I1007
I1005 --> I1009
I1005 --> I1010
I1005 --> I1012
I1005 --> I1023
I1006 --> I1008
I1006 --> I1017
I1007 --> I1008
I1007 --> I1013
I1007 --> I1014
I1007 --> I1020
I1007 --> I1022
I1009 --> I1016
I1009 --> I1028
I1010 --> I1030
I1011 --> I1018
I1012 --> I1026
I1013 --> I1030
I1014 --> I1021
I1014 --> I1024
I1015 --> I1018
I1015 --> I1021
I1016 --> I1021
I1017 --> I1030
I1018 --> I1019
I1018 --> I1027
I1019 --> I1027
I1020 --> I1030
I1021 --> I1029
I1022 --> I1029
I1023 --> I1029
I1024 --> I1030
I1025 --> I1026
I1026 --> I1030
I1027 --> I1030
I1028 --> I1030
I1029 --> I1030
I1101 --> I1102
I1101 --> I1105
I1102 --> I1103
I1102 --> I1104
I1104 --> I1123
I1105 --> I1106
I1106 --> I1107
I1106 --> I1108
I1106 --> I1117
I1107 --> I1123
I1108 --> I1109
I1108 --> I1120
I1109 --> I1110
I1109 --> I1111
I1109 --> I1112
I1110 --> I1116
I1110 --> I1118
I1110 --> I1122
I1111 --> I1122
I1112 --> I1113
I1112 --> I1114
I1112 --> I1116
I1112 --> I1121
I1113 --> I1119
I1114 --> I1115
I1115 --> I1123
I1116 --> I1118
I1116 --> I1122
I1117 --> I1123
I1118 --> I1123
I1119 --> I1123
I1120 --> I1123
I1121 --> I1122
I1122 --> I1123
I1201 --> I1202
I1202 --> I1203
I1202 --> I1208
I1203 --> I1204
I1204 --> I1205
I1204 --> I1207
I1205 --> I1206
I1206 --> I1208
I1301 --> I1302
I1302 --> I1303
I1302 --> I1304
I1302 --> I1307
I1303 --> I1306
I1303 --> I1308
I1303 --> I1309
I1304 --> I1305
I1305 --> I1306
I1305 --> I1307
I1308 --> I1309
I1308 --> I1310
I1309 --> I1310
I1401 --> I1402
I1401 --> I1403
I1401 --> I1405
I1402 --> I1403
I1402 --> I1404
I1404 --> I1403
I1404 --> I1407
I1404 --> I1408
I1405 --> I1407
I1406 --> I1407
classDef done stroke:#16a34a,fill:#052e16,stroke-width:2px
classDef active stroke:#2563eb,fill:#eff6ff,stroke-width:2px
classDef verify stroke:#7c3aed,fill:#f5f3ff,stroke-width:2px
classDef ready stroke:#0891b2,fill:#ecfeff,stroke-width:2px
classDef blocked stroke:#b45309,fill:#fffbeb,stroke-width:2px
classDef cancelled stroke:#6b7280,fill:#f9fafb,stroke-width:2pxEdges
| must finish | before | which is |
|---|---|---|
| I0001 DONE | I0002 | DONE Define the canonical milestone and issue schema |
| I0002 DONE | I0003 | DONE Implement the model loader and the status derivation engine |
| I0003 DONE | I0004 | DONE Implement DAG validation and execution waves |
| I0004 DONE | I0005 | DONE Implement the plan command surface |
| I0004 DONE | I0006 | DONE Generate the Mermaid DAG from the graph |
| I0004 DONE | I0010 | DONE Behavioural tests for schema, status, graph and command |
| I0005 DONE | I0007 | DONE Enforce the canonical model as doctrine |
| I0005 DONE | I0008 | DONE Project the model to GitHub milestones and issues |
| I0005 DONE | I0009 | DONE Project the model into the website |
| I0005 DONE | I0013 | DONE Document the semantics and the dogfooding rule |
| I0005 DONE | I0014 | DONE Make the worker instructions require the model |
| I0006 DONE | I0009 | DONE Project the model into the website |
| I0008 DONE | I0011 | DONE Cross-surface consistency and mutation tests |
| I0009 DONE | I0011 | DONE Cross-surface consistency and mutation tests |
| I0010 DONE | I0011 | DONE Cross-surface consistency and mutation tests |
| I0011 DONE | I0012 | DONE Make CI refuse an invalid model or a stale projection |
| I0012 DONE | I0015 | DONE Open the first real milestone and execute one issue through it |
| I0013 DONE | I0014 | DONE Make the worker instructions require the model |
| I0014 DONE | I0015 | DONE Open the first real milestone and execute one issue through it |
| I0101 DONE | I0102 | DONE Decide whether a question transfers or the gate widens |
| I0102 DONE | I0103 | DONE Implement the decision and prove it holds |
| I0103 DONE | I0104 | DONE Move the claim from planned to guaranteed |
| I0201 READY | I0202 | BLOCKED Resolve a task's effective limits and print them as data |
| I0202 BLOCKED | I0203 | BLOCKED Make enforcement opt-in, and prove a repository that declines is unaffected |
| I0203 BLOCKED | I0204 | BLOCKED Apply one derived limit for real and prove it changes what happens |
| I0204 BLOCKED | I0205 | BLOCKED Declare the clamp as a doctrine so the mapping and the adapter cannot drift |
| I0205 BLOCKED | I0206 | BLOCKED Publish the runtime-adapters claim with the test that proves it and the limits it does not cover |
| I0301 BLOCKED | I0302 | BLOCKED Record telemetry a provider reports, and refuse anything it did not |
| I0302 BLOCKED | I0303 | BLOCKED Prove a silent provider produces an explicit absence, never a guess |
| I0303 BLOCKED | I0304 | BLOCKED Read the measurements back through the history surface, under a bound |
| I0304 BLOCKED | I0305 | BLOCKED Publish the telemetry claim and record what remains unmeasured |
| I0401 BLOCKED | I0402 | BLOCKED Report cost only where measurement and acceptance both exist |
| I0402 BLOCKED | I0403 | BLOCKED Make a thin denominator say so rather than average it away |
| I0403 BLOCKED | I0404 | BLOCKED Publish the cost-per-outcome claim with its unit defined beside it |
| I0501 BLOCKED | I0502 | BLOCKED Recommend a profile from measured cost, naming the measurements |
| I0502 BLOCKED | I0503 | BLOCKED Return no recommendation where the data is too thin, and say why |
| I0503 BLOCKED | I0504 | BLOCKED Prove the recommendation is advisory and publish it as such |
| I0601 BLOCKED | I0602 | BLOCKED Make a local override explicit and prove it survives an update of the shared source |
| I0602 BLOCKED | I0603 | BLOCKED Report drift from the shared policy in one command |
| I0603 BLOCKED | I0604 | BLOCKED Prove the offline guarantee survives sharing |
| I0604 BLOCKED | I0605 | BLOCKED Publish the shared-policy claim and what sharing still cannot do |
| I0701 READY | I0702 | BLOCKED Decide how a record is attributed, between named alternatives |
| I0702 BLOCKED | I0703 | BLOCKED Implement the decision and prove it holds |
| I0703 BLOCKED | I0704 | BLOCKED Publish what attribution guarantees, and what it still cannot |
| I0801 DONE | I0807 | DONE Discover knowledge sources from git, not from the filesystem |
| I0802 DONE | I0803 | DONE Open a session and report its status |
| I0803 DONE | I0804 | DONE Close a session into an envelope derived from the ledger |
| I0804 DONE | I0805 | DONE Read sessions back with a divergence label |
| I0805 DONE | I0806 | READY Make the session rules doctrines, with retention and archiving |
| I0806 READY | I0813 | BLOCKED A closed session becomes a node that points at its episode |
| I0807 DONE | I0808 | DONE Extract nodes with identities that survive a rebuild |
| I0808 DONE | I0809 | DONE Record only edges that a file states, each with where it was observed |
| I0809 DONE | I0810 | READY A content-hash manifest that makes a second sync cheap |
| I0810 READY | I0811 | BLOCKED Read-only knowledge lookup with an ordering that can be explained |
| I0811 BLOCKED | I0812 | BLOCKED Validate the graph, and let doctor and watch ask the same validator |
| I0811 BLOCKED | I0814 | BLOCKED Give the worker a bounded slice of knowledge, not the knowledge base |
| I0812 BLOCKED | I0813 | BLOCKED A closed session becomes a node that points at its episode |
| I0813 BLOCKED | I0815 | BLOCKED Say what is now true in the claims, the documentation and the worker instructions |
| I0814 BLOCKED | I0815 | BLOCKED Say what is now true in the claims, the documentation and the worker instructions |
| I0815 BLOCKED | I0816 | BLOCKED Prove the loop on a real issue, without a transcript |
| I0817 DONE | I0818 | DONE The command registry is read in one pass |
| I0817 DONE | I0819 | DONE The project model is loaded with one flatten per file and no per-file lookups |
| I0817 DONE | I0821 | READY Flattened YAML is cached under .ai/local/cache by content hash |
| I0817 DONE | I0823 | DONE majordomus bench: targets derived from the command registry |
| I0817 DONE | I0832 | READY generate-site-data instrumented and its hot spots removed |
| I0817 DONE | I0833 | DONE knowledge nodes and edges read each source once |
| I0817 DONE | I0837 | READY Timing report as JSON |
| I0818 DONE | I0820 | READY Catalogue, DAG, context and command-surface validators read their inputs once |
| I0818 DONE | I0822 | BLOCKED Every canonical file is flattened at most once per command |
| I0818 DONE | I0828 | BLOCKED doctor under a declared budget, and the hook inherits it |
| I0818 DONE | I0842 | BLOCKED Before and after evidence for every optimisation |
| I0819 DONE | I0820 | READY Catalogue, DAG, context and command-surface validators read their inputs once |
| I0819 DONE | I0822 | BLOCKED Every canonical file is flattened at most once per command |
| I0819 DONE | I0828 | BLOCKED doctor under a declared budget, and the hook inherits it |
| I0819 DONE | I0832 | READY generate-site-data instrumented and its hot spots removed |
| I0819 DONE | I0836 | READY A synthetic repository generator for scaling cases |
| I0819 DONE | I0842 | BLOCKED Before and after evidence for every optimisation |
| I0820 READY | I0822 | BLOCKED Every canonical file is flattened at most once per command |
| I0820 READY | I0828 | BLOCKED doctor under a declared budget, and the hook inherits it |
| I0820 READY | I0840 | BLOCKED context and its subcommands under a second |
| I0820 READY | I0842 | BLOCKED Before and after evidence for every optimisation |
| I0821 READY | I0840 | BLOCKED context and its subcommands under a second |
| I0821 READY | I0841 | BLOCKED Cache equivalence proved by property-shaped cases |
| I0822 BLOCKED | I0831 | BLOCKED Performance claims at their proven status |
| I0822 BLOCKED | I0835 | BLOCKED CI runs the structural performance checks |
| I0823 DONE | I0824 | DONE Bench persists local runs and keeps a latest projection |
| I0823 DONE | I0827 | DONE The benchmark policy block |
| I0823 DONE | I0830 | DONE docs/PERFORMANCE.md, README, CONTRIBUTING and CLI reference |
| I0824 DONE | I0825 | DONE An explicit committed baseline |
| I0825 DONE | I0826 | DONE bench --check refuses a regression by policy |
| I0826 DONE | I0830 | DONE docs/PERFORMANCE.md, README, CONTRIBUTING and CLI reference |
| I0826 DONE | I0831 | BLOCKED Performance claims at their proven status |
| I0826 DONE | I0835 | BLOCKED CI runs the structural performance checks |
| I0826 DONE | I0838 | READY bench compare and the top regressions report |
| I0827 DONE | I0828 | BLOCKED doctor under a declared budget, and the hook inherits it |
| I0828 BLOCKED | I0834 | BLOCKED The test runner reports per-case time and the suite budget |
| I0828 BLOCKED | I0839 | BLOCKED watch inherits every doctor fix and its own budget |
| I0829 DONE | I0830 | DONE docs/PERFORMANCE.md, README, CONTRIBUTING and CLI reference |
| I0830 DONE | I0843 | BLOCKED The performance workflow is discoverable and complete |
| I0831 BLOCKED | I0843 | BLOCKED The performance workflow is discoverable and complete |
| I0832 READY | I0842 | BLOCKED Before and after evidence for every optimisation |
| I0833 DONE | I0842 | BLOCKED Before and after evidence for every optimisation |
| I0835 BLOCKED | I0843 | BLOCKED The performance workflow is discoverable and complete |
| I0841 BLOCKED | I0843 | BLOCKED The performance workflow is discoverable and complete |
| I0842 BLOCKED | I0843 | BLOCKED The performance workflow is discoverable and complete |
| I0901 READY | I0902 | BLOCKED The deployment object becomes typed Rust that refuses nonsense |
| I0901 READY | I0924 | BLOCKED The decision is recorded where architecture decisions are recorded |
| I0902 BLOCKED | I0903 | BLOCKED Deployment reads are declared once and projected everywhere |
| I0902 BLOCKED | I0904 | BLOCKED The listen address is one fact with two projections |
| I0902 BLOCKED | I0905 | BLOCKED Liveness and readiness are registered capabilities, not router hacks |
| I0902 BLOCKED | I0907 | BLOCKED The running process says what it is, from an allowlist |
| I0902 BLOCKED | I0908 | BLOCKED A hosted process has no repository, and says so instead of failing |
| I0902 BLOCKED | I0909 | BLOCKED The production image is a generated projection of the build specification |
| I0902 BLOCKED | I0913 | BLOCKED The provider configuration is generated, and the cheap profile is declared |
| I0902 BLOCKED | I0918 | BLOCKED The bootstrap credential is used once and belongs to nothing |
| I0903 BLOCKED | I0913 | BLOCKED The provider configuration is generated, and the cheap profile is declared |
| I0903 BLOCKED | I0914 | BLOCKED One deployment core, one command, and a dry run that mutates nothing |
| I0903 BLOCKED | I0926 | BLOCKED The deployment documentation is generated and reachable |
| I0903 BLOCKED | I0927 | BLOCKED The cockpit shows the deployment from the same data |
| I0904 BLOCKED | I0906 | BLOCKED Termination is graceful and proved against the real container |
| I0904 BLOCKED | I0909 | BLOCKED The production image is a generated projection of the build specification |
| I0905 BLOCKED | I0909 | BLOCKED The production image is a generated projection of the build specification |
| I0905 BLOCKED | I0916 | BLOCKED The smoke suite is derived from the route registry, never written twice |
| I0906 BLOCKED | I0930 | BLOCKED The real image runs under the real limits before anything is deployed |
| I0909 BLOCKED | I0910 | BLOCKED The release profile is chosen by measurement, not by folklore |
| I0909 BLOCKED | I0911 | BLOCKED A source change does not rebuild the world, and the context stays small |
| I0909 BLOCKED | I0912 | BLOCKED The image serves the site the canonical pipeline produced |
| I0909 BLOCKED | I0914 | BLOCKED One deployment core, one command, and a dry run that mutates nothing |
| I0909 BLOCKED | I0919 | BLOCKED Nothing secret and nothing local leaves in the image |
| I0909 BLOCKED | I0920 | BLOCKED The image's dependencies are known and its advisories are policy |
| I0909 BLOCKED | I0930 | BLOCKED The real image runs under the real limits before anything is deployed |
| I0910 BLOCKED | I0921 | BLOCKED Size is measured first and budgeted second |
| I0911 BLOCKED | I0921 | BLOCKED Size is measured first and budgeted second |
| I0912 BLOCKED | I0930 | BLOCKED The real image runs under the real limits before anything is deployed |
| I0913 BLOCKED | I0914 | BLOCKED One deployment core, one command, and a dry run that mutates nothing |
| I0913 BLOCKED | I0926 | BLOCKED The deployment documentation is generated and reachable |
| I0913 BLOCKED | I0931 | BLOCKED The application exists, one machine runs it, and the URL answers |
| I0914 BLOCKED | I0915 | BLOCKED Deployment joins the diagnostics that already exist |
| I0914 BLOCKED | I0916 | BLOCKED The smoke suite is derived from the route registry, never written twice |
| I0914 BLOCKED | I0917 | BLOCKED A bad deployment can be undone deterministically |
| I0914 BLOCKED | I0931 | BLOCKED The application exists, one machine runs it, and the URL answers |
| I0915 BLOCKED | I0925 | BLOCKED Every deployment rule is a check that runs |
| I0916 BLOCKED | I0931 | BLOCKED The application exists, one machine runs it, and the URL answers |
| I0917 BLOCKED | I0931 | BLOCKED The application exists, one machine runs it, and the URL answers |
| I0918 BLOCKED | I0929 | BLOCKED Production deploys from CI with a token scoped to one application |
| I0918 BLOCKED | I0931 | BLOCKED The application exists, one machine runs it, and the URL answers |
| I0919 BLOCKED | I0928 | BLOCKED A pull request cannot merge a deployment that would not work |
| I0920 BLOCKED | I0932 | BLOCKED The milestone is accepted on its evidence |
| I0921 BLOCKED | I0928 | BLOCKED A pull request cannot merge a deployment that would not work |
| I0922 BLOCKED | I0931 | BLOCKED The application exists, one machine runs it, and the URL answers |
| I0923 BLOCKED | I0932 | BLOCKED The milestone is accepted on its evidence |
| I0924 BLOCKED | I0926 | BLOCKED The deployment documentation is generated and reachable |
| I0925 BLOCKED | I0932 | BLOCKED The milestone is accepted on its evidence |
| I0926 BLOCKED | I0932 | BLOCKED The milestone is accepted on its evidence |
| I0927 BLOCKED | I0932 | BLOCKED The milestone is accepted on its evidence |
| I0928 BLOCKED | I0932 | BLOCKED The milestone is accepted on its evidence |
| I0929 BLOCKED | I0932 | BLOCKED The milestone is accepted on its evidence |
| I0930 BLOCKED | I0922 | BLOCKED The memory hypothesis is tested, not asserted |
| I0930 BLOCKED | I0923 | BLOCKED Cold start and endpoint cost are benchmark targets like everything else |
| I0930 BLOCKED | I0928 | BLOCKED A pull request cannot merge a deployment that would not work |
| I0930 BLOCKED | I0931 | BLOCKED The application exists, one machine runs it, and the URL answers |
| I0931 BLOCKED | I0929 | BLOCKED Production deploys from CI with a token scoped to one application |
| I0931 BLOCKED | I0932 | BLOCKED The milestone is accepted on its evidence |
| I1001 DONE | I1002 | DONE Relations are typed, inferred from stable identities, and never dangle |
| I1001 DONE | I1003 | DONE Skills, rules, decisions, documents, use cases and benchmarks enter the graph as themselves |
| I1001 DONE | I1004 | DONE Availability and visibility are metadata, not conditions in a template |
| I1001 DONE | I1025 | DONE The federated model and its two projections are an architecture decision |
| I1002 DONE | I1005 | DONE The graph is a generated artifact with a schema and no unsafe field |
| I1002 DONE | I1011 | READY The coverage matrix reports evidence, and never a green cell without one |
| I1002 DONE | I1014 | BLOCKED The relation view reads the graph and holds no data of its own |
| I1002 DONE | I1020 | BLOCKED The graph's health is answered by the doctor that already answers everything else |
| I1004 DONE | I1005 | DONE The graph is a generated artifact with a schema and no unsafe field |
| I1004 DONE | I1009 | READY Every menu in this repository comes from one derivation |
| I1004 DONE | I1015 | ACTIVE A surface with no server behind it is not offered as if it had one |
| I1005 DONE | I1006 | READY The runtime reads the graph through the registry, like every other read |
| I1005 DONE | I1007 | READY The site renders the same graph, generated once |
| I1005 DONE | I1009 | READY Every menu in this repository comes from one derivation |
| I1005 DONE | I1010 | READY The overview is what exists, counted rather than claimed |
| I1005 DONE | I1012 | READY One detail view, assembled from what a node actually has |
| I1005 DONE | I1023 | READY Nothing private reaches a published page |
| I1006 READY | I1008 | BLOCKED The two projections are proved to be the same model |
| I1006 READY | I1017 | BLOCKED Live state is an overlay that degrades to nothing |
| I1007 READY | I1008 | BLOCKED The two projections are proved to be the same model |
| I1007 READY | I1013 | BLOCKED Search over the graph, generated, with nothing to run |
| I1007 READY | I1014 | BLOCKED The relation view reads the graph and holds no data of its own |
| I1007 READY | I1020 | BLOCKED The graph's health is answered by the doctor that already answers everything else |
| I1007 READY | I1022 | BLOCKED Drift in any derived surface fails the build |
| I1009 READY | I1016 | BLOCKED The Cockpit works on a phone and before JavaScript runs |
| I1009 READY | I1028 | BLOCKED The inventories this replaces are removed, not left running beside it |
| I1010 READY | I1030 | BLOCKED The milestone is accepted on its evidence |
| I1011 READY | I1018 | BLOCKED The surface rules exist as checks, proved by making them fail |
| I1012 READY | I1026 | BLOCKED The architecture explains itself, from inside itself |
| I1013 BLOCKED | I1030 | BLOCKED The milestone is accepted on its evidence |
| I1014 BLOCKED | I1021 | BLOCKED A browser proves the interface, at the widths people use |
| I1014 BLOCKED | I1024 | BLOCKED The interface has a weight, and it is measured |
| I1015 ACTIVE | I1018 | BLOCKED The surface rules exist as checks, proved by making them fail |
| I1015 ACTIVE | I1021 | BLOCKED A browser proves the interface, at the widths people use |
| I1016 BLOCKED | I1021 | BLOCKED A browser proves the interface, at the widths people use |
| I1017 BLOCKED | I1030 | BLOCKED The milestone is accepted on its evidence |
| I1018 BLOCKED | I1019 | BLOCKED One skill runs the whole loop, and is itself in the graph |
| I1018 BLOCKED | I1027 | BLOCKED A synthetic capability proves the architecture instead of describing it |
| I1019 BLOCKED | I1027 | BLOCKED A synthetic capability proves the architecture instead of describing it |
| I1020 BLOCKED | I1030 | BLOCKED The milestone is accepted on its evidence |
| I1021 BLOCKED | I1029 | BLOCKED The gate refuses what would silently break the interface |
| I1022 BLOCKED | I1029 | BLOCKED The gate refuses what would silently break the interface |
| I1023 READY | I1029 | BLOCKED The gate refuses what would silently break the interface |
| I1024 BLOCKED | I1030 | BLOCKED The milestone is accepted on its evidence |
| I1025 DONE | I1026 | BLOCKED The architecture explains itself, from inside itself |
| I1026 BLOCKED | I1030 | BLOCKED The milestone is accepted on its evidence |
| I1027 BLOCKED | I1030 | BLOCKED The milestone is accepted on its evidence |
| I1028 BLOCKED | I1030 | BLOCKED The milestone is accepted on its evidence |
| I1029 BLOCKED | I1030 | BLOCKED The milestone is accepted on its evidence |
| I1101 READY | I1102 | BLOCKED The two namespaces are a typed contract, not a habit |
| I1101 READY | I1105 | BLOCKED The repository is discovered once, into one model |
| I1102 BLOCKED | I1103 | BLOCKED Whether a file is authored or derived is a field, not a naming convention |
| I1102 BLOCKED | I1104 | BLOCKED Both namespaces carry their contracts, all the way down |
| I1104 BLOCKED | I1123 | BLOCKED The milestone is accepted on its evidence |
| I1105 BLOCKED | I1106 | BLOCKED The registries are views of the model, not separate discoveries |
| I1106 BLOCKED | I1107 | BLOCKED Discovery is deterministic, cached, and its cost is known |
| I1106 BLOCKED | I1108 | BLOCKED The desired integration is a value, and the plan is a diff |
| I1106 BLOCKED | I1117 | BLOCKED The hand-maintained lists are removed, not left running beside the derivation |
| I1107 BLOCKED | I1123 | BLOCKED The milestone is accepted on its evidence |
| I1108 BLOCKED | I1109 | BLOCKED Everything placed outside the two namespaces is recorded, with what it was |
| I1108 BLOCKED | I1120 | BLOCKED A refusal says what to do about it |
| I1109 BLOCKED | I1110 | BLOCKED The second run changes nothing, and a test says so |
| I1109 BLOCKED | I1111 | BLOCKED Uninstall gives back exactly what was taken |
| I1109 BLOCKED | I1112 | BLOCKED What touches the root is two small blocks, and they never change again |
| I1110 BLOCKED | I1116 | BLOCKED This repository's own footprint moves, through the reconciler |
| I1110 BLOCKED | I1118 | BLOCKED Every invariant of this milestone is a rule with a check that runs |
| I1110 BLOCKED | I1122 | BLOCKED A foreign repository, adopted, upgraded and given back |
| I1111 BLOCKED | I1122 | BLOCKED A foreign repository, adopted, upgraded and given back |
| I1112 BLOCKED | I1113 | BLOCKED Entering a directory is local, bounded and silent about the network |
| I1112 BLOCKED | I1114 | BLOCKED A provider is an adapter over the model, and adding one is an implementation |
| I1112 BLOCKED | I1116 | BLOCKED This repository's own footprint moves, through the reconciler |
| I1112 BLOCKED | I1121 | BLOCKED Every surface shows the integration from the one model |
| I1113 BLOCKED | I1119 | BLOCKED The budgets are measured, and a regression fails rather than being noticed |
| I1114 BLOCKED | I1115 | BLOCKED Completion comes from the command model, not from a second list |
| I1115 BLOCKED | I1123 | BLOCKED The milestone is accepted on its evidence |
| I1116 BLOCKED | I1118 | BLOCKED Every invariant of this milestone is a rule with a check that runs |
| I1116 BLOCKED | I1122 | BLOCKED A foreign repository, adopted, upgraded and given back |
| I1117 BLOCKED | I1123 | BLOCKED The milestone is accepted on its evidence |
| I1118 BLOCKED | I1123 | BLOCKED The milestone is accepted on its evidence |
| I1119 BLOCKED | I1123 | BLOCKED The milestone is accepted on its evidence |
| I1120 BLOCKED | I1123 | BLOCKED The milestone is accepted on its evidence |
| I1121 BLOCKED | I1122 | BLOCKED A foreign repository, adopted, upgraded and given back |
| I1122 BLOCKED | I1123 | BLOCKED The milestone is accepted on its evidence |
| I1201 READY | I1202 | BLOCKED One typed provider model reads the objects, and no code names a provider |
| I1202 BLOCKED | I1203 | BLOCKED One flow serves every provider, and it refuses everything it did not start |
| I1202 BLOCKED | I1208 | BLOCKED Adding a provider is one file, removing one is one deletion, and both are executed rather than described |
| I1203 BLOCKED | I1204 | BLOCKED The session is signed, short, and revocable from the server |
| I1204 BLOCKED | I1205 | BLOCKED Identity is resolved once, in the router, and every surface reads it from there |
| I1204 BLOCKED | I1207 | BLOCKED No credential reaches any output, and hostile provider metadata renders safely |
| I1205 BLOCKED | I1206 | BLOCKED What an anonymous reader may do is derived from the effect classification, not from a list |
| I1206 BLOCKED | I1208 | BLOCKED Adding a provider is one file, removing one is one deletion, and both are executed rather than described |
| I1301 DONE | I1302 | READY Identity, provenance and support level are typed fields, not prose |
| I1302 READY | I1303 | BLOCKED The store is bounded, measured and invisible to every published projection |
| I1302 READY | I1304 | BLOCKED The browser transport is the one this repository already drives |
| I1302 READY | I1307 | BLOCKED The ChatGPT shape is mapped from evidence and never becomes the canonical model |
| I1303 BLOCKED | I1306 | BLOCKED A sync resumes, repeats itself without harm, and says how fresh it is |
| I1303 BLOCKED | I1308 | BLOCKED The executable's share is one capability, shaped like continuity |
| I1303 BLOCKED | I1309 | BLOCKED The boundaries this milestone asserts are gates, not sentences |
| I1304 BLOCKED | I1305 | BLOCKED An observed contract has a fingerprint, a compatibility state and a fixture |
| I1305 BLOCKED | I1306 | BLOCKED A sync resumes, repeats itself without harm, and says how fresh it is |
| I1305 BLOCKED | I1307 | BLOCKED The ChatGPT shape is mapped from evidence and never becomes the canonical model |
| I1308 BLOCKED | I1309 | BLOCKED The boundaries this milestone asserts are gates, not sentences |
| I1308 BLOCKED | I1310 | BLOCKED The subsystem is documented where a person looks, and the plan is closed against the repository |
| I1309 BLOCKED | I1310 | BLOCKED The subsystem is documented where a person looks, and the plan is closed against the repository |
| I1401 DONE | I1402 | DONE A finding says which of six states it found, and the state that could hide a person's edit is no longer one of them |
| I1401 DONE | I1403 | READY Backfill the projection once, deliberately, and record what it created |
| I1401 DONE | I1405 | DONE A pull request names the issue it realises, and the edge is derived rather than remembered |
| I1402 DONE | I1403 | READY Backfill the projection once, deliberately, and record what it created |
| I1402 DONE | I1404 | DONE The drift check is a gate, so a projection that stops being applied cannot stay silent |
| I1404 DONE | I1403 | READY Backfill the projection once, deliberately, and record what it created |
| I1404 DONE | I1407 | DONE One issue travels the whole path and back, as an executable case |
| I1404 DONE | I1408 | DONE The documents stop claiming a projection nobody runs |
| I1405 DONE | I1407 | DONE One issue travels the whole path and back, as an executable case |
| I1406 DONE | I1407 | DONE One issue travels the whole path and back, as an executable case |
Waves
The layering the graph implies. Nothing in wave n can start before everything it depends on in earlier waves is done.
wave 0
I0001DONEI0101DONEI0201READYI0301BLOCKEDI0401BLOCKEDI0501BLOCKEDI0601BLOCKEDI0701READYI0801DONEI0802DONEI0817DONEI0829DONEI0901READYI1001DONEI1031READYI1101READYI1201READYI1301DONEI1401DONEI1406DONE
wave 1
I0002DONEI0102DONEI0202BLOCKEDI0302BLOCKEDI0402BLOCKEDI0502BLOCKEDI0602BLOCKEDI0702BLOCKEDI0803DONEI0807DONEI0818DONEI0819DONEI0821READYI0823DONEI0833DONEI0837READYI0902BLOCKEDI0924BLOCKEDI1002DONEI1003DONEI1004DONEI1025DONEI1102BLOCKEDI1105BLOCKEDI1202BLOCKEDI1302READYI1402DONEI1405DONE
wave 2
I0003DONEI0103DONEI0203BLOCKEDI0303BLOCKEDI0403BLOCKEDI0503BLOCKEDI0603BLOCKEDI0703BLOCKEDI0804DONEI0808DONEI0820READYI0824DONEI0827DONEI0832READYI0836READYI0841BLOCKEDI0903BLOCKEDI0904BLOCKEDI0905BLOCKEDI0907BLOCKEDI0908BLOCKEDI0918BLOCKEDI1005DONEI1011READYI1015ACTIVEI1103BLOCKEDI1104BLOCKEDI1106BLOCKEDI1203BLOCKEDI1303BLOCKEDI1304BLOCKEDI1404DONE
wave 3
I0004DONEI0104DONEI0204BLOCKEDI0304BLOCKEDI0404BLOCKEDI0504BLOCKEDI0604BLOCKEDI0704BLOCKEDI0805DONEI0809DONEI0822BLOCKEDI0825DONEI0828BLOCKEDI0840BLOCKEDI0842BLOCKEDI0906BLOCKEDI0909BLOCKEDI0913BLOCKEDI0927BLOCKEDI1006READYI1007READYI1009READYI1010READYI1012READYI1018BLOCKEDI1023READYI1107BLOCKEDI1108BLOCKEDI1117BLOCKEDI1204BLOCKEDI1305BLOCKEDI1308BLOCKEDI1403READYI1407DONEI1408DONE
wave 4
I0005DONEI0006DONEI0010DONEI0205BLOCKEDI0305BLOCKEDI0605BLOCKEDI0806READYI0810READYI0826DONEI0834BLOCKEDI0839BLOCKEDI0910BLOCKEDI0911BLOCKEDI0912BLOCKEDI0914BLOCKEDI0919BLOCKEDI0920BLOCKEDI0926BLOCKEDI1008BLOCKEDI1013BLOCKEDI1014BLOCKEDI1016BLOCKEDI1017BLOCKEDI1019BLOCKEDI1020BLOCKEDI1022BLOCKEDI1026BLOCKEDI1028BLOCKEDI1109BLOCKEDI1120BLOCKEDI1205BLOCKEDI1207BLOCKEDI1306BLOCKEDI1307BLOCKEDI1309BLOCKED
wave 5
I0007DONEI0008DONEI0009DONEI0013DONEI0206BLOCKEDI0811BLOCKEDI0830DONEI0831BLOCKEDI0835BLOCKEDI0838READYI0915BLOCKEDI0916BLOCKEDI0917BLOCKEDI0921BLOCKEDI0930BLOCKEDI1021BLOCKEDI1024BLOCKEDI1027BLOCKEDI1110BLOCKEDI1111BLOCKEDI1112BLOCKEDI1206BLOCKEDI1310BLOCKED
wave 6
I0011DONEI0014DONEI0812BLOCKEDI0814BLOCKEDI0843BLOCKEDI0922BLOCKEDI0923BLOCKEDI0925BLOCKEDI0928BLOCKEDI1029BLOCKEDI1113BLOCKEDI1114BLOCKEDI1116BLOCKEDI1121BLOCKEDI1208BLOCKED
wave 7
I0012DONEI0813BLOCKEDI0931BLOCKEDI1030BLOCKEDI1115BLOCKEDI1118BLOCKEDI1119BLOCKEDI1122BLOCKED
wave 9
Read the same thing at a terminal with majordomus plan graph and majordomus plan waves, or the whole model at the plan.