| 0001 | Adopt the closed Tool Management contract | Tools: Why it works this way |
| 0002 | Keep proof resources task-owned and production separate | Incus topologies: Exact ownership |
| 0003 | Adopt the singleton Metrics role contract | Metrics role |
| 0004 | Define the verify-only Doctor boundary | doctor: Why it works this way |
| 0005 | Adopt a rolling Incus development topology (superseded) | Incus topologies: Composed from role images |
| 0006 | Separate disposable discovery from immutable proof (superseded in part) | Incus topologies: A live mount |
| 0008 | Define typed app-dev node storage settings | Node settings |
| 0009 | Adopt clustered Instance routing | Routes: Set up private traffic |
| 0010 | Record decisions before implementation issues (superseded) | Contributor guide: Decisions ship with their feature |
| 0011 | Define clustered production ingress and app-prod placement | Routes: Publish a public Route |
| 0012 | Ubuntu 24.04 operator clients (withdrawn) | Node provisioning: Add a Node |
| 0013 | Manage schedules with native systemd timers | Schedules |
| 0014 | Maintain verified documentation as implementation context | Contributor guide: One documentation corpus |
| 0015 | Retain Incus proof by recorded-input equivalence (superseded) | Contributor guide: Review reproduces on a discovery topology |
| 0016 | Reconcile App identity and source-default updates | Projects: Update a Project |
| 0017 | Make Cluster placement optional | cluster: Placement and TLDs |
| 0018 | Register caller-local development worktrees as Instances | Applications: Registration takes ownership (superseded by 0027) |
| 0019 | Run disposable Incus scenario lanes (superseded) | Incus topologies: Composed from role images |
| 0021 | Pin Sury PHP-FPM with OPcache profiles per role | PHP runtimes: Why it works this way |
| 0022 | Track the issue workspace and delete it before merge (superseded) | Contributor guide: Review reproduces on a discovery topology |
| 0023 | Separate hostname selection from Cluster routing | Routes: Why it works this way |
| 0024 | Make generated Route identity follow its target | Routes: Why it works this way |
| 0025 | Stabilize the default Instance identity | Applications: The default Instance keeps its name |
| 0026 | Identify each App by one repository | Projects: Repository identity |
| 0027 | Adopt local Git sources into Instance ownership | Applications: Register an existing checkout |
| 0028 | Require one Route per active Instance | Routes: Why it works this way |
| 0029 | Manage Laravel application URLs through Orbit | Applications: Laravel application URL |
| 0030 | Complete Instance provisioning without application health gates | Applications: Active does not mean healthy |
| 0031 | Clone initial production source during provisioning | Instance cloning (superseded by 0047) |
| 0032 | Preserve explicit Instance branch selection | Applications: An explicit branch stays explicit |
| 0033 | Trust WireGuard members for private Node traffic | Routes: Private network trust |
| 0034 | Select Instance PHP from Composer constraints | PHP runtimes: Select the PHP version |
| 0035 | Close out mutating proofs by refreshing the topology snapshot (superseded) | Incus topologies: Composed from role images |
| 0036 | Support only Instances | Applications: One application model |
| 0037 | Promote fresh three-node topology snapshots (superseded) | Incus topologies: Composed from role images |
| 0038 | Cascade Instance removal through processes and schedules | Instance removal: Processes and Schedules |
| 0039 | Use round-robin for production Route pools | Routes: Serve a production pool |
| 0040 | Extend issue proof with one app-prod Node (superseded) | Incus topologies: Declared Nodes |
| 0041 | Delete an empty Route during Instance removal | Routes: Remove a Route |
| 0042 | Provision Tool Managers on demand | Tools: Managers on demand |
| 0043 | Manage Homebrew Core formulae | Tools: Homebrew formulae |
| 0044 | Own Instance environment configuration in Orbit | Instance environment variables |
| 0045 | Isolate production PHP-FPM by Unix user | PHP runtimes: Production runtime |
| 0046 | Own production release deployment in Orbit | Production release layout |
| 0047 | Create production Instances from candidates | Instance cloning |
| 0048 | Copy Project process and schedule definitions into Instances | Processes and schedules: Production copies |
| 0049 | Keep delivery artifacts off the merge head (superseded) | Contributor guide: Review reproduces on a discovery topology |
| 0050 | Release successful proof resources before landing (superseded) | Contributor guide: Review reproduces on a discovery topology |
| 0051 | Select discovery-only feature delivery (superseded) | Contributor guide: Review reproduces on a discovery topology |
| 0052 | Seed worktrees from successful main test baselines | Feature delivery: Main caches come only from clean main |
| 0053 | Use local review checks for feature landing (superseded) | Feature delivery: The candidate gate |
| 0054 | Maintain main caches asynchronously | Feature delivery: Maintenance runs in the background |
| 0055 | Restrict Grafana access to authorized Gateway peers | Metrics role: Grafana access |
| 0056 | Retain proof topologies for interactive review (superseded) | Contributor guide: Review reproduces on a discovery topology |
| 0057 | Limit Metrics exporters to managed Nodes | Metrics role: Exporter selection |
| 0058 | Separate Incus requirements from delivery flow (superseded) | Contributor guide: Review reproduces on a discovery topology |
| 0059 | Make the Builder own the candidate quality gate (superseded) | Feature delivery: The candidate gate |
| 0060 | Record the latest Schedule run status | Schedules: Latest run |
| 0061 | Use VPN DNS by default on managed peers | Private DNS: Resolver selection |
| 0062 | Select Cluster Router DNS addresses from LAN intent | Private DNS: Cluster Router addresses |
| 0063 | Prefer active Cluster TLDs for generated Routes | Routes: Select a domain and scope |
| 0064 | Name application endpoints as domains | Routes: Why it works this way |
| 0065 | Replace Routes when domains change | Routes: Change an explicit domain |
| 0066 | Transfer development Instances between Nodes | Instance transfer |
| 0067 | Serve development servers on the Route origin | Routes: Development-server endpoint |
| 0068 | Accept only apps.path as the node storage setting path | Node settings: One typed setting |
| 0069 | Allow Process targets of Instance or managed Node | Processes and schedules: Owners |
| 0070 | Keep the database role as a Docker baseline | Database role |
| 0071 | Use one verb vocabulary across the CLI, route names, and SDK | CLI command vocabulary: Why it works this way |
| 0072 | Add and remove Nodes without changing the machine | Node provisioning: Removal does not clean the machine |
| 0073 | Store deploy steps as named Instance records | Production release layout: Deploy steps |
| 0074 | Hibernate idle app-dev Instance Processes | App-dev runtime hibernation |
| 0075 | Prune idle app-dev checkout dependencies | App-dev runtime hibernation: Dependency prune |
| 0076 | Deliver features through complete pull requests | Contributor guide: Decisions ship with their feature |
| 0077 | Allow the database role beside router | Database role: The remaining conflicts |
| 0078 | Assign Vite ports to development Instances | Assigned Vite ports |
| 0079 | Publish linux-x64 from hosted GitHub Actions and macos-arm64 from mini | CLI binaries |
| 0080 | Add node-owned custom proxy Routes for arbitrary hostnames | Routes: Custom proxy Routes |
| 0081 | Query registered mysql, pgsql, and sqlite connections through PDO | Database connections: Inspect a registered connection |
| 0082 | Wire Agentation watch mode through Instance Processes | Agentation |
| 0083 | Default SQLite journal_mode to WAL | SQLite WAL default |
| 0084 | Broadcast record changes through Reverb | Realtime events |
| 0085 | Build orbit top as a thin TUI client (superseded) | Web app: One live fleet view |
| 0086 | Offer the API as MCP tools | MCP server: Why it works this way |
| 0087 | Run Reverb through a websocket role | Realtime events with Reverb |
| 0088 | CLI reads display metrics from Grafana | Metrics role: Read Node metrics |
| 0089 | Index Instance dependencies | Instance dependencies |
| 0090 | Relocate the gateway role independently of vpn | node: A dedicated relocate for gateway |
| 0091 | Rename a Node without changing WireGuard identity | node: node:rename |
| 0092 | Publish private DNS on the VPN node after gateway relocate | Relocate the gateway role |
| 0093 | Show live UFW and desired rules that match converge | firewall: Read the managed and live rules |
| 0094 | Project WireGuard hub config onto the VPN node | Node provisioning: The hub stays on the vpn Node |
| 0095 | Relocate relocatable singleton roles as one Orbit action | node: node:role:relocate |
| 0096 | Run Plausible through an analytics role | Analytics role |
| 0097 | Publish analytics tracking hosts for Instances | Analytics role: Why it works this way |
| 0098 | Read GitHub repositories through a Gateway-owned GitHub App | GitHub App: Why it works this way |
| 0099 | Collect role-specific service metrics | Service metrics |
| 0100 | Install Caddy from the pinned Caddy apt source (superseded) | Node provisioning: Caddy from its GitHub release, not its apt source |
| 0101 | Keep one Route publication field and terminate public Ingress with Let’s Encrypt | Routes: Publish a public Route |
| 0102 | Read Instance analytics through a fleet driver | Instance analytics stats |
| 0103 | Absorb Commander tasks as a Gateway extension | Tasks: An optional, generic extension |
| 0104 | Own CLIProxyAPI quota through the proxycli extension | proxycli: Why it works this way |
| 0105 | Name applications as Project and Instance | Projects: Project and Instance |
| 0106 | Derive instance capabilities from Project type | Projects: Project types |
| 0107 | Key isolation and releases to Node role | Instance environment variables: Laravel mode, Production release layout, and Instance cloning |
| 0108 | Persist managed environment on systemd Processes | Processes and schedules: Environment of a systemd Process |
| 0109 | Publish the proxycli collector on a subdomain | proxycli: A reserved name, not a Route |
| 0110 | Route task sessions with Laravel AI Jev | Tasks: Session routing (Jev routing removed) |
| 0111 | Retain completed transfer history through Instance removal | Instance removal: Keep unfinished transfer history |
| 0112 | Isolate agent threads behind drivers | Tasks: Agent threads |
| 0113 | Gate task completion on validation and review | Tasks: Rubric and reminders |
| 0114 | Expand the three-node Incus Cluster (superseded) | Incus topologies: Declared roles only |
| 0114 | Judge task completion as separate checks | Tasks: Rubric and reminders |
| 0115 | Run Project setup commands on development Instances | Instance setup and teardown |
| 0116 | Run task implementers on Pi | Tasks: Drivers |
| 0117 | Judge the blocked question on the role’s own evidence | Tasks: Rubric and reminders (Jev question removed) |
| 0118 | Skip selected Nodes for a Project | Development node exclusions |
| 0119 | Share caches after bootstrap | Feature delivery: Only main CI publishes |
| 0120 | Extract the agent annotation package | Agent annotation |
| 0121 | End agent turns with a turn receipt | Tasks: Turn receipt |
| 0122 | Hold tasks in Backlog until they are ready | Tasks: Prepare a task in Backlog |
| 0123 | Serve the web app from the Gateway origin | Web app: Why it works this way |
| 0124 | Plan Backlog tasks with a T3 planner | Tasks: Prepare a task in Backlog (planner removed) |
| 0125 | Run the Project check when the implementer hands off | Tasks: Project check |
| 0126 | Limit browser API calls to Orbit origins | Browser access to the Gateway |
| 0127 | Share one SSH connection per Node | Node provisioning: SSH connections |
| 0128 | Run a visibility-only agent on managed Nodes | Node agent: The agent only observes |
| 0129 | Publish Node presence and Process state on per-Node presence channels | Realtime events: Node agent channels |
| 0130 | Publish agent binaries as GitHub releases | Node agent: Releases |
| 0131 | Seed task workspace clones from the registered main cache store | Feature delivery: Seed a checkout |
| 0132 | Pause a task only for its acting thread or a real question | Tasks: Session routing |
| 0133 | Verify typed subtask deliverables at handoff | Tasks: Deliverables |
| 0134 | Resume Pi agent streams from a cursor | Tasks: Agent viewer |
| 0135 | Run Incus topologies for task workspace clones through a bridge worktree | Deleted with shared mode: Incus topologies |
| 0136 | Run long-lived topology processes as transient units | Incus topologies: Long-lived processes as systemd units |
| 0137 | Refuse carried Caddy global options | Caddy configuration: Why it works this way |
| 0138 | Opt public Ingress sites into Caddy certificate automation | Caddy configuration: Public Ingress certificates |
| 0139 | Collect Caddy HTTP metrics on every Node | Caddy configuration: Published layout |
| 0140 | Watch settling pull requests for conflicts and failed checks | Tasks: Fix a settling pull request |
| 0141 | Build each Node’s Caddyfile on the Gateway | Caddy configuration: Node Caddy build |
| 0142 | Apply Plausible’s ClickHouse configuration from the analytics role | Analytics role: ClickHouse configuration |
| 0143 | Record topology evidence and sync without verification | Incus topologies: Evidence log |
| 0144 | Migrate waiting connections when Caddy reloads | Node provisioning: Caddy reloads |
| 0145 | Publish the proxycli collector on collector.cli-proxy-api.orbit | proxycli: A reserved name, not a Route |
| 0146 | Retire the Herdr integration | extension (Herdr is removed) |
| 0147 | Retire orbit top | Web app: One live fleet view |
| 0148 | Keep a Gateway view of Node agent state | Node agent: Gateway view |
| 0149 | Install the private DNS listener from the Gateway | Private DNS: Release and sockets |
| 0150 | Keep extension commands local and confirm the proxycli fleet stop | extension: Why it works this way |
| 0151 | Push task and Process usage changes over realtime | Realtime events: Tasks |
| 0152 | Sample successful read activity | activity: What the Gateway records |
| 0153 | Tail Instance and Process logs live through the Node agent | Live logs |
| 0154 | Recover the Gateway agent view without a membership change | Node agent: Rejoin to ask for a snapshot |
| 0155 | Authenticate the Node agent with a per-Node secret | Node agent: Agent secret |
| 0156 | Route the private domain on the Gateway machine to VPN DNS | Private DNS: The Gateway machine |
| 0157 | Keep private Caddy sites off the public listener | Caddy configuration: Listener addresses |
| 0158 | End interrupted Activity | activity: Interrupted requests |
| 0159 | Push Activity changes to the web app | Realtime events: Activity |
| 0160 | Push each approved subtask and remove the finished workspace clone | Tasks: Pull request and settle metrics |
| 0161 | Set a stale Caddyfile aside when Caddy is absent | Caddy configuration: When Caddy is absent |
| 0162 | Verify web UI changes with bin/web-verify | Web verification: Why it works this way |
| 0163 | Prove a failing test on the start commit | Tasks: Prove a command fails on the start commit |
| 0164 | Heal a settling pull request with a fixup subtask | Tasks: Fix a settling pull request |
| 0165 | Record per-thread token metrics | Tasks: Thread token metrics |
| 0166 | Raise PHPStan one level at a time | Feature delivery: Findings are fixed, not silenced |
| 0167 | Resume a Pi turn interrupted by a server restart | Tasks: Recover a Pi server restart |
| 0168 | Offload large Pi tool output | Pi server: Large tool output |
| 0169 | Start each subtask review in a fresh thread | Tasks: Review a subtask |
| 0170 | Edit Todo subtasks after a group starts | Tasks: Change subtasks |
| 0171 | Reset fixup caps after operator work | Tasks: Fix a settling pull request |
| 0172 | Count every T3 model call in thread metrics | Tasks: Thread token metrics |
| 0173 | Record and label every Jev decision | Tasks: Jev decision records |
| 0174 | Match the task gate to CI and repeated findings | Feature delivery: The candidate gate |
| 0175 | Keep the docs-impact check in Orbit’s repository | Contributor guide: Docs impact stays in the repository |
| 0176 | File recurring production problems as repro-first bug groups | Tasks: Outer loop |
| 0177 | Remove the app compatibility surface | Projects: One public name without compatibility |
| 0178 | Run project-agnostic Tasks without a planner | Tasks: Project-owned task policy |
| 0179 | Gate every extension surface with one Gateway switch | extension: Why it works this way |
| 0180 | Absorb built decisions into the documentation | Architecture decisions: Why it works this way |
| 0181 | Name the domain Project and Instance everywhere | Projects: Project and Instance |
| 0183 | Manage macOS tools without service roles | Node provisioning: A Mac needs no service role |
| 0184 | Adopt selected tools from existing managers | Tools: Selected adoption |
| 0185 | Report informational tool discoveries in Doctor | doctor: Informational findings stay healthy |
| 0187 | Ask the reviewer before the operator and record every question | Tasks: Questions go through the reviewer |
| 0188 | Read private GitHub repositories through the Gateway’s GitHub CLI | GitHub App: Read through the GitHub CLI |
| 0189 | Register Instances only for existing Projects | Projects: Registration needs a Project |
| 0192 | Run task agents on Pi only | Tasks: Task agents run on Pi |
| 0192 | Stop a group whose pull request ended | Tasks: A watched pull request is not the reviewed pull request |
| 0193 | Run task agents as a dedicated user | Pi server: One user for every task agent; GitHub App: The checkout cannot inherit the token |
| 0193 | Record development branch renames | Applications: Development branch reconciliation |
| 0194 | Respond to GitHub review feedback | Tasks: Trusted reviews are input, not merge authority |
| 0195 | Request topologies for review with an operator container | Incus topologies: Nested in the task VM; Incus topologies: An isolated operator for web work |
| 0197 | Native Project Documents with private UpCloud S3 storage | Project Documents: Why it works this way |
| 0199 | Post direction requests to OpsBot immediately | Tasks: Direction wakes OpsBot immediately |
| 0201 | Release the Gateway automatically from green main | Update and recover a Gateway: Automatic releases; Update and recover a Gateway: Why it works this way |
| 0202 | The fleet follows the Gateway through orbit self-update | Update and recover a Gateway: Fleet rollout; Orbit self-update; Node agent: The agent only observes |
| 0203 | Review and merge pull requests inside Orbit | Tasks: Review and merge; Tasks: Orbit reviews before it pushes; GitHub App: How Orbit reviews and merges a pull request |
| 0208 | Deploy the Gateway with Laravel migrations and explicit database recovery | Update and recover a Gateway: Laravel owns migrations |