Skip to content

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.

Issue dependency graphfrom .ai/repo/project
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:2px

Edges

must finishbeforewhich 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.

Read the same thing at a terminal with majordomus plan graph and majordomus plan waves, or the whole model at the plan.