Open Items Register¶
This is the single register for open work, open design questions, unresolved documentation debt, and known code/design divergence pointers.
Rules:
- Every gap found by any pass gets logged here immediately, in the same pass that found it.
Kindsays what has to happen before a row can move.defect— something is wrong today and the fix is already knownundecided— a decision has not been made; nobody can act until it istask— agreed work, not a correction- Log
undecidedwhile designing, not while comparing documents. A reconciliation pass that records every unmade decision as a finding manufactures a backlog that can never empty, and buries the real defects among ordinary unfinished design. During a document comparison, logdefectandtask; logundecidedonly when the gap blocks something else, or when a specific audit was asked for. - Nothing may exist only in a design document.
- Design documents describe the design. Open work lives here.
- The register is the only place open work lives; if it isn't here, it doesn't exist.
- IDs are stable. Never reuse or renumber an ID.
- ⚠️ When editing rows by script, anchor matches to the start of a line. An ID also appears inside the
Blocked bycolumn, so searching for| OI-041 |finds another row's blocker field before it finds the row itself. That has silently spliced two rows together twice. - Prefix note.
CI-001toCI-053inclosed-items.mdare the batch closed during the 2026-08-26 consolidation, before this register existed. They keep that prefix permanently. Every item closed since then keeps itsOI-id when it moves, starting withOI-024. The two blocks are not renumbered into one scheme:CI-andOI-numbers overlap (CI-001andOI-001are unrelated items), so unifying them would mean assigning 53 new IDs, which is renumbering done to tidy up how the never-renumber rule was applied. - When an item closes, move the row to
docs/closed-items.mdand add how it resolved. Never delete a row.
| ID | Area | Kind | Item | Intent steer | Detail lives in | Blocked by | Priority | Raised |
|---|---|---|---|---|---|---|---|---|
| OI-001 | code | task | Implement fluid as a production input path for buildings. | - | AGENTS.md -> Known Code/Design Divergences; 04_Factory -> Resources -> Fluids |
- | DO FIRST | 2026-08-26 |
| OI-004 | ports | task | Unblocked 2026-08-30; this is now the refactor itself. Plan and implement the coordinated port refactor that replaces IoConnector and PipeConnector. Sequencing constraint: the Building Detail Panel does not exist and is on the critical path. All ports default to DISABLED (OI-058) and port configuration lives in that panel, so merging without it produces a factory that cannot move anything; the panel must cover every port in both directions and also carry recipe selection (OI-320), since ports cannot be configured before the building knows what it makes. Port reconfiguration is an instant UI action, not a Genesis task (OI-259), so GenesisTask.Type shrinks by two and grows by none. Regression baseline exists as of OI-258: tests/unit/test_item_transport.gd covers the chain end to end and pins constraints C3, C4 and C5, and is designed to be re-run after the refactor. Split the passes: the item half is well-bounded (~400 changed lines across 11 files); the fluid half is now scopeable since OI-003 decided direct transfer (two touching fluid ports are a pair-equalisation pair with the pipe removed). C5 connector chaining is the one deliberate loss - test_connector_chaining_passes_items_between_adjacent_connectors should be deleted as part of the work, not quietly broken. |
item half first; delete the C5 test knowingly | 23_Port System Design -> Code Impact Summary; tests/unit/test_item_transport.gd; AGENTS.md -> Known Code/Design Divergences |
- | DO FIRST | 2026-08-25 |
| OI-008 | art | task | Keep Mk accent tab pitch at or above 0.4 m. | >= 0.4 m | 07_Art Direction Style Bible -> Form Language |
- | HIGH | 2026-08-26 |
| OI-009 | art | task | Use a reduced 0.15 m port band for 1x1 buildings. | 0.15 m | 07_Art Direction Style Bible -> Form Language |
- | HIGH | 2026-08-26 |
| OI-010 | code | task | Move Chemical Gas onto the fluid path. Previously scoped as "retype the .tres to FLUID", which would not have fixed anything: nothing enforces the belt/pipe split via tier. Belts never check tier or any fluid flag; the separation is structural, with fluids moving through fluid_inventory / pop_fluid_output() and items through inventory / pop_output_item(). Chemical Gas rides belts because it has an item-shaped definition, not because its tier is 0. The real work is moving it to the fluid path, which is why it was always blocked behind OI-001. Under the new model it becomes chemical / GAS, and rides pipes because it is a gas rather than because a field says so. |
gases travel as FLUID |
06_Design Session Decision Log -> Resource Data Model; AGENTS.md -> Known Code/Design Divergences |
OI-001; OI-276 | HIGH | 2026-08-26 |
| OI-017 | code | undecided | Decide the BuildingCategory enum value for environmental buildings. |
- | 04_Factory -> Waste & Environmental Buildings |
- | HIGH | 2026-08-26 |
| OI-018 | docs | task | Reconcile 04_Factory train signalling and locomotive fuel claims with Canonical Design Facts. |
- | - | - | HIGH | 2026-08-26 |
| OI-019 | docs | task | Remove category colour-coding from design documents that still prescribe it. | - | - | - | HIGH | 2026-08-26 |
| OI-023 | docs | defect | Replace duplicate fluid tables in 04_Factory with a generated or extracted reference. |
- | - | - | NORMAL | 2026-08-26 |
| OI-026 | art | task | Rewrite the old Art Direction Document for the current clean chamfered hard-surface style. | - | 01_Art Direction Document -> Open Questions; 07_Art Direction Style Bible |
- | HIGH | 2026-08-25 |
| OI-027 | art | defect | Replace the Recraft master style prompt that still specifies the deleted cel-shader direction. | - | 01_Art Direction Document -> Recraft Master Style Prompt |
OI-026 | HIGH | 2026-08-25 |
| OI-028 | art | task | Remove cel-shader requirements from the asset quality checklist. | - | 05_Asset List & Delivery Specification -> Quality checklist |
OI-026 | HIGH | 2026-08-25 |
| OI-029 | art | task | Update the asset tech spec away from flat-colour-only StandardMaterial3D and no texture maps. |
- | 05_Asset List & Delivery Specification -> Tech spec |
OI-026 | HIGH | 2026-08-25 |
| OI-030 | art | defect | Remove obsolete io_connector and pipe_connector assets. |
- | 05_Asset List & Delivery Specification; 23_Port System Design -> Code Impact Summary |
OI-004 | HIGH | 2026-08-25 |
| OI-031 | art | task | Add the shared building_base kit asset. |
- | 07_Art Direction Style Bible -> Modular Kit |
OI-004 | HIGH | 2026-08-25 |
| OI-032 | logistics | task | Remove Splitter, Merger, and Filter Splitter assets and add the Router asset. | - | 20_Belt Logistics - The Router -> Consequences Elsewhere |
OI-004 | HIGH | 2026-08-25 |
| OI-033 | storage | task | Rename buffer_chest asset and concept language to Silo. |
- | - | - | HIGH | 2026-08-25 |
| OI-035 | restoration | undecided | Resolve the RECLAIM naming collision with Outpost Mode. | - | 28_Restoration - Third Endgame Path -> Naming - Collision With Outpost |
- | NORMAL | 2026-08-25 |
| OI-036 | docs | task | Backfill five months of roadmap history after M2.3. | - | - | - | HIGH | 2026-08-26 |
| OI-037 | docs | task | Watch AGENTS.md length and split Known Code/Design Divergences if it keeps growing. |
accuracy beats brevity | - | - | NORMAL | 2026-08-26 |
| OI-038 | tooling | task | Consider porting repo checks from PowerShell to Node when either script needs real work. | - | - | - | DEFERRED | 2026-08-26 |
| OI-039 | docs | defect | Rewrite or retire stale 04_AI Tool Selection Guide.md advice. |
- | - | - | NORMAL | 2026-08-26 |
| OI-040 | art | task | Rescope or remove M5.2 Art Pass because it assumes a cel-shader. | - | - | OI-026 | NORMAL | 2026-08-25 |
| OI-042 | storage | task | Rename building_storage_chest and building_buffer_chest in 04_Factory to Silo terms. |
- | - | - | HIGH | 2026-08-25 |
| OI-043 | docs | task | Rename tutorial references to chest, including Genesis dialogue in steps 10 and 11. | - | - | - | HIGH | 2026-08-25 |
| OI-044 | docs | task | Rename chest_vault achievement skin. |
- | 11_Achievements Design Document -> Cosmetic Reward Catalogue |
- | NORMAL | 2026-08-25 |
| OI-045 | docs | task | Rename Buffer Chest concept prompt references in 03_Prompt Library. |
- | - | - | NORMAL | 2026-08-25 |
| OI-046 | ui | task | Rename build toolbar Chest button label and Ch letter code. |
- | - | - | HIGH | 2026-08-25 |
| OI-047 | ui | task | Rename genesis_queue_ui_v5.html SUBJ_MAP chest references. |
- | - | - | NORMAL | 2026-08-25 |
| OI-048 | code | task | Rename ChestMode to StorageRole and values to UNASSIGNED, DEPOSIT, CONSTRUCTION. |
- | AGENTS.md -> Known Code/Design Divergences; 04_Factory -> Storage Roles |
OI-004 | HIGH | 2026-08-25 |
| OI-049 | code | task | Rename get_chests_sorted_by_distance() and related code identifiers. |
- | - | OI-048 | HIGH | 2026-08-25 |
| OI-050 | art | task | Fix the Mining Drill .glb size. |
- | - | - | HIGH | 2026-08-25 |
| OI-051 | art | task | Rebuild the Mining Drill concept to Image 3 standard. | - | 07_Art Direction Style Bible -> Surface finish |
- | NORMAL | 2026-08-25 |
| OI-052 | art | task | Add orange exhaust tips to the logo. | - | - | - | NORMAL | 2026-08-25 |
| OI-053 | art | task | Consolidate the two Blender docs and incorporate the modular kit and Blender MCP workflow. | - | - | - | NORMAL | 2026-08-25 |
| OI-054 | tooling | task | Install the official Blender MCP server and test on a saved file. | - | - | - | NORMAL | 2026-08-25 |
| OI-055 | ports | undecided | Decide the new role for R and E keys after connectors are removed. |
- | 23_Port System Design -> Input Keys |
OI-004 | NORMAL | 2026-08-25 |
| OI-056 | ports | undecided | Decide central aperture dimensions. | - | 23_Port System Design -> Central aperture |
OI-007 | NORMAL | 2026-08-25 |
| OI-057 | ports | undecided | Confirm that fluid and item ports can coexist on one base. | assumed yes via medium field |
23_Port System Design -> Open Questions |
OI-001 | HIGH | 2026-08-25 |
| OI-061 | art | undecided | Verify protruding nozzles and Mk tabs do not read as clutter at Base Mk3. | - | 07_Art Direction Style Bible -> Port Geometry - Direction |
- | NORMAL | 2026-08-25 |
| OI-064 | logistics | undecided | Decide Mk1 Router split behaviour: strictly even or round-robin. | round-robin simpler and steady-state equivalent | 20_Belt Logistics - The Router -> Open Questions |
OI-004 | NORMAL | 2026-08-25 |
| OI-066 | logistics | undecided | Decide whether the Router needs a base ring and status despite being 1x1. | - | 20_Belt Logistics - The Router -> Open Questions |
OI-009 | NORMAL | 2026-08-25 |
| OI-067 | logistics | undecided | Decide whether there should be a belt balancer building or manual balancer design. | - | - | OI-063 | NORMAL | 2026-02-22 |
| OI-070 | modules | undecided | Decide whether to include a Speed module or let Productivity cover it. | - | 24_Module System Design -> Research node names |
- | NORMAL | 2026-08-25 |
| OI-071 | modules | undecided | Decide whether modules have Mk tiers. | no, flat for Phase 1 | 24_Module System Design -> Research node names |
- | NORMAL | 2026-08-25 |
| OI-072 | modules | task | Define upgrade kit recipes and Module Crafter inputs. | - | 24_Module System Design -> Upgrade Kits |
- | HIGH | 2026-08-25 |
| OI-073 | modules | undecided | Confirm upgrade defaults: downtime, kit recovery on downgrade, and kit cost. | brief downtime; recoverable or partial return; expensive | 24_Module System Design -> Other defaults |
- | NORMAL | 2026-08-25 |
| OI-074 | power | undecided | Decide roof-mounted pole coverage radius relative to ground poles. | increased coverage would make research feel worth it | 24_Module System Design -> Power Poles |
- | NORMAL | 2026-08-25 |
| OI-075 | modules | task | Define module recipes and Module Crafter inputs. | - | 24_Module System Design -> Open Questions |
OI-072 | NORMAL | 2026-08-25 |
| OI-076 | modules | undecided | Decide whether modules can be removed and recovered or are consumed on install. | affects experimentation | 24_Module System Design -> Open Questions |
- | NORMAL | 2026-08-25 |
| OI-077 | modules | undecided | Confirm which buildings actually get Mk levels. | most buildings | 24_Module System Design -> Open Questions |
- | NORMAL | 2026-08-25 |
| OI-078 | modules | task | Defer Network / IoT modules to the automation idea. | - | 24_Module System Design -> Open Questions; 00_Ideas/03_Idea - Network, IoT & Factory Automation.md |
- | DEFERRED | 2026-08-25 |
| OI-080 | power | undecided | Decide Machine Mk superlinear draw exponent. | Mk2 = 2x output, 2.4x draw | 25_Power System Design -> Machine Mk |
- | NORMAL | 2026-08-25 |
| OI-083 | power | undecided | Decide which of Biomass, Coal, Wind, and Nuclear ship in Early Access. Now decidable on evidence: §5.1 gives all nine sources real output and fuel numbers, so each one's cost can be weighed rather than guessed. The expensive one is unambiguous - Nuclear, which needs a uranium resource that does not exist in data/resources/ (the coolant does - fld_coolant.tres ships), a waste chain, and the fluid-input path still blocked on OI-001. Biomass and Coal are cheap and both already have their resources. Wind needs no new work at all: the building exists and its numbers were already specified in 06_Vertical Layers. |
numbers exist now; this is a scope call | 25_Power System Design -> §5.1, §5.4 |
- | HIGH | 2026-08-25 |
| OI-084 | power | undecided | Confirm which planet resource tables include wood, coal, and uranium per planet type. | - | 25_Power System Design -> Why planet type matters |
- | HIGH | 2026-08-25 |
| OI-085 | power | undecided | Design interplanetary power approach. | risks trivialising Trade Station layer | 25_Power System Design -> Interplanetary Power - NOT DESIGNED |
- | DEFERRED | 2026-08-25 |
| OI-088 | power | undecided | Decide transmission clearance height and Sky Level interaction. | - | 25_Power System Design -> Transmission Line Clearance |
- | HIGH | 2026-08-25 |
| OI-089 | pollution | undecided | Decide air pollution dispersal model: radius falloff or coarse grid diffusion. | diffusion is more interesting and more expensive | 26_Pollution, Waste & Organic Systems Design -> Three Pollutants, Three Media |
- | HIGH | 2026-08-25 |
| OI-090 | pollution | undecided | Decide whether recycling returns usable material or only neutralises waste. | returning material is satisfying but risks perpetual-motion loops | 26_Pollution, Waste & Organic Systems Design -> Nuclear waste is the exception |
- | HIGH | 2026-08-25 |
| OI-091 | pollution | undecided | Decide whether scavengers appear in PvE/peaceful sessions. | - | 26_Pollution, Waste & Organic Systems Design -> Hostiles - Scavengers, Not Biters |
- | NORMAL | 2026-08-25 |
| OI-092 | pollution | undecided | Decide which planet types support farming. | Rogue has no light — but artificial lighting ([27_Organic Farming & Biomass Design](<01_Design Documents/27_Organic Farming & Biomass Design.md>) section 5.1) may make Rogue viable, which was previously assumed impossible. Costs power, and is only as clean as the grid |
26_Pollution, Waste & Organic Systems Design -> Open Questions |
- | NORMAL | 2026-08-25 |
| OI-093 | pollution | undecided | Decide whether pollution persists across sessions in a persistent world. | - | 26_Pollution, Waste & Organic Systems Design -> Open Questions; 17_HUD Panel Flap -> Tab 7 Pollution |
- | NORMAL | 2026-08-25 |
| OI-094 | pollution | undecided | Decide whether the Air Scrubber produces a solid waste byproduct. | captured particulates | 26_Pollution, Waste & Organic Systems Design -> Air Scrubber |
- | NORMAL | 2026-08-25 |
| OI-095 | pollution | undecided | Decide underground decay multiplier versus surface. | - | 26_Pollution, Waste & Organic Systems Design -> Open Questions |
- | NORMAL | 2026-08-25 |
| OI-096 | pollution | undecided | Decide leach rate, per-level attenuation, and delay. | backend tuning | 26_Pollution, Waste & Organic Systems Design -> Ground contamination leaches downward |
- | NORMAL | 2026-08-25 |
| OI-097 | pollution | undecided | Decide whether contamination decays naturally or only via Soil Remediation. | - | 26_Pollution, Waste & Organic Systems Design -> Restoration - Soil Remediation |
- | NORMAL | 2026-08-25 |
| OI-098 | pollution | undecided | Decide remediation rate relative to contamination rate. | far slower than contamination | 04_Factory -> Waste & Environmental Buildings; Pollution -> Restoration - Soil Remediation |
- | HIGH | 2026-08-26 |
| OI-099 | pollution | undecided | Decide whether base Mk and Machine Mk levels affect emission rates. | - | 26_Pollution, Waste & Organic Systems Design -> Open Questions |
OI-080 | NORMAL | 2026-08-25 |
| OI-100 | pollution | undecided | Decide footprints for all five environmental buildings and five new generators. | - | 04_Factory -> Waste & Environmental Buildings; 04_Factory -> Power Buildings |
- | HIGH | 2026-08-26 |
| OI-102 | pollution | undecided | Decide Recycler and Water Treatment power draw. | significant | 04_Factory -> Waste & Environmental Buildings |
OI-001 for Water Treatment | HIGH | 2026-08-26 |
| OI-103 | pollution | undecided | Decide Soil Remediation power draw. | power-hungry | 04_Factory -> Waste & Environmental Buildings |
- | HIGH | 2026-08-26 |
| OI-105 | pollution | undecided | Decide recipe quantities and rates for the five environmental buildings and five new generators. | - | 04_Factory -> Waste & Environmental Buildings; 04_Factory -> Power Buildings |
OI-001 where fluid inputs are involved | HIGH | 2026-08-26 |
| OI-106 | logistics | undecided | Decide Incinerator heat recovery fraction. | always a fraction of embodied energy, never more | 04_Factory -> Waste & Environmental Buildings; 20_Belt Logistics - The Router -> The deliberate way out |
- | NORMAL | 2026-08-26 |
| OI-107 | pollution | undecided | Decide Air Scrubber neutralisation rate. | - | 04_Factory -> Waste & Environmental Buildings |
- | NORMAL | 2026-08-26 |
| OI-108 | pollution | undecided | Decide Air Scrubber and Soil Remediation zone/radius of effect. | - | 04_Factory -> Waste & Environmental Buildings |
- | NORMAL | 2026-08-26 |
| OI-109 | pollution | undecided | Decide Recycler output. | - | 04_Factory -> Waste & Environmental Buildings |
OI-090 | HIGH | 2026-08-26 |
| OI-110 | trains | undecided | Decide electrified rail power draw: per-tile or per-active-train. | - | 22_Trains & Rail -> Electric train is only as clean as your grid |
- | NORMAL | 2026-08-25 |
| OI-111 | trains | undecided | Decide whether schedules are per-train or per-route with trains assigned. | per-route is simpler at scale | 22_Trains & Rail -> Schedules |
- | NORMAL | 2026-08-25 |
| OI-112 | trains | undecided | Decide whether trains cross vertical levels or are surface-only. | underground rail adds a lot | 22_Trains & Rail -> Open Questions |
- | DEFERRED | 2026-08-25 |
| OI-113 | trains | undecided | Decide whether rail can cross belts and pipes or blocks them. | - | 22_Trains & Rail -> Open Questions |
- | NORMAL | 2026-08-25 |
| OI-114 | trains | undecided | Decide wagon types or one generic wagon with port config. | port config | 22_Trains & Rail -> Open Questions |
OI-004 | NORMAL | 2026-08-25 |
| OI-115 | trains | undecided | Decide whether Nuclear locomotive waste is handled at station or carried to disposal. | carrying it makes train part of waste chain | 22_Trains & Rail -> Open Questions |
OI-001 | NORMAL | 2026-08-25 |
| OI-116 | trains | undecided | Decide whether platforms can be shared between two stations on parallel tracks. | - | 22_Trains & Rail -> Open Questions |
- | NORMAL | 2026-08-25 |
| OI-117 | trains | undecided | Decide what a train does when it has nowhere to go. | hold at station or park in depot | 22_Trains & Rail -> Open Questions |
- | NORMAL | 2026-08-25 |
| OI-118 | trains | undecided | Decide whether Steam locomotive coal demand should share the Coal Generator bottleneck. | may be a good tension | 22_Trains & Rail -> Open Questions |
- | NORMAL | 2026-08-25 |
| OI-119 | restoration | undecided | Decide whether Planet Health feeds supply chain contribution or is a parallel currency. | - | 28_Restoration - Third Endgame Path -> Measuring It |
- | NORMAL | 2026-08-25 |
| OI-120 | restoration | undecided | Decide restoration contract structure, pricing, and abuse prevention. | prevent deliberately wrecking planets to farm contracts | 28_Restoration - Third Endgame Path -> The Economy |
- | NORMAL | 2026-08-25 |
| OI-121 | restoration | undecided | Decide whether procedurally damaged planets are available from the start or only after player wrecks exist. | - | 28_Restoration - Third Endgame Path -> Open Questions |
- | NORMAL | 2026-08-25 |
| OI-122 | restoration | undecided | Decide whether restoration has a completion state or endless gradient. | - | 28_Restoration - Third Endgame Path -> Open Questions |
- | NORMAL | 2026-08-25 |
| OI-123 | restoration | undecided | Decide whether restored planets can be re-wrecked. | owner or raider | 28_Restoration - Third Endgame Path -> Open Questions |
- | NORMAL | 2026-08-25 |
| OI-124 | restoration | undecided | Decide consent, anonymisation, and attribution for harvesting player wrecks as scenarios. | opt-in is safer, and could carry a reward | 28_Restoration - Third Endgame Path -> Where the scenarios come from |
- | HIGH | 2026-08-25 |
| OI-125 | restoration | undecided | Decide whether Restoration Mode reuses Outpost Mode's three-mode structure. | Progression / Seasonal / Sandbox | 28_Restoration - Third Endgame Path -> Restoration Mode |
- | NORMAL | 2026-08-25 |
| OI-126 | restoration | undecided | Decide which leaderboard scoring metric leads Restoration Mode. | time, material spent, or elegance | 28_Restoration - Third Endgame Path -> Restoration Mode |
- | NORMAL | 2026-08-25 |
| OI-127 | ui | undecided | Decide whether the Pollution tab appears from the start or unlocks on first pollution. | empty tab in hour one teaches nothing | 17_HUD Panel Flap -> Tab 7 Pollution |
- | NORMAL | 2026-08-25 |
| OI-128 | ui | undecided | Decide whether the Pollution tab needs a planet-wide history graph or only current state. | - | 17_HUD Panel Flap -> Tab 7 Pollution |
OI-093 | NORMAL | 2026-03-31 |
| OI-129 | docs | undecided | Decide whether the Genesis Image 3 design becomes canonical and changes tutorial voice/personality docs. | - | 06_Design Session Decision Log -> Open Questions; 01_World Bible -> Open Questions |
- | NORMAL | 2026-08-25 |
| OI-130 | art | undecided | Decide whether AI-to-3D is acceptable for static props. | rocks, debris, scatter | 06_Design Session Decision Log -> Open Questions |
- | DEFERRED | 2026-08-25 |
| OI-132 | power | undecided | Design per-building waste heat recovery from smelters, refineries, and similar. | deferred session topic | 26_Pollution, Waste & Organic Systems Design -> Incinerator |
- | DEFERRED | 2026-08-25 |
| OI-133 | code | undecided | Design combat and territory systems. | - | - | - | DEFERRED | 2026-08-25 |
| OI-134 | logistics | undecided | Design trade and the Trade Station. | - | 14_Win Conditions & Faction Allegiance -> Trade Network |
- | DEFERRED | 2026-08-25 |
| OI-135 | genesis | undecided | Design Genesis behaviour beyond the current task queue. | - | - | - | DEFERRED | 2026-08-25 |
| OI-136 | tooling | task | Build Data Pipeline stage 1: schema, seed data, validator, and exporters. | no UI first | 03_Data Pipeline & Design Console - Plan -> Console - Staged, and NOT UI-First |
- | HIGH | 2026-08-25 |
| OI-137 | tooling | task | Build a read-only data console for browsing, visualising chains, running validation, and seeing balance ratios. | - | 03_Data Pipeline & Design Console - Plan -> Console - Staged, and NOT UI-First |
OI-136 | NORMAL | 2026-08-25 |
| OI-138 | tooling | task | Build editing UI for the data console only if DB Browser proves annoying. | low priority | 03_Data Pipeline & Design Console - Plan -> Console - Staged, and NOT UI-First |
OI-136 | DEFERRED | 2026-08-25 |
| OI-139 | tooling | task | Generate wiki pages into the vault from the data pipeline. | Obsidian [[wikilinks]] |
03_Data Pipeline & Design Console - Plan -> The Wiki - Nearly Free |
OI-136 | NORMAL | 2026-08-25 |
| OI-140 | networking | undecided | Decide maximum player count per session. | likely 8 | 02_Server Architecture Document -> Open Questions |
- | NORMAL | 2026-02-22 |
| OI-141 | networking | undecided | Decide how player names work before Steam integration. | - | 02_Server Architecture Document -> Open Questions |
- | NORMAL | 2026-02-22 |
| OI-142 | networking | undecided | Decide whether the host can pause simulation for all players. | - | 02_Server Architecture Document -> Open Questions |
- | NORMAL | 2026-02-22 |
| OI-143 | networking | undecided | Decide whether there is a spectator mode. | - | 02_Server Architecture Document -> Open Questions |
- | DEFERRED | 2026-02-22 |
| OI-144 | achievements | undecided | Decide how many achievements ship at Early Access launch. | target 20-30 | 02_Server Architecture Document -> Open Questions; 11_Achievements Design Document |
- | NORMAL | 2026-02-22 |
| OI-145 | achievements | undecided | Decide whether achievement progress is visible mid-session. | e.g. 750/1000 Metal Plates | 11_Achievements Design Document -> Open Questions |
- | NORMAL | 2026-02-22 |
| OI-146 | ui | undecided | Decide how the Open to Friends toggle works in the UI. | pause-menu button? | 02_Server Architecture Document -> Open Questions |
- | NORMAL | 2026-02-23 |
| OI-147 | monetization | undecided | Decide whether to offer a supporter pack. | artbook, soundtrack, behind-the-scenes | 03_Monetization Design Document -> Open Questions |
- | DEFERRED | 2026-02-22 |
| OI-148 | monetization | undecided | Decide mobile monetization flow. | separate app or shared codebase flow | 03_Monetization Design Document -> Open Questions |
- | DEFERRED | 2026-02-22 |
| OI-149 | monetization | undecided | Decide whether the soundtrack is sold separately as DLC. | - | 03_Monetization Design Document -> Open Questions |
- | DEFERRED | 2026-02-22 |
| OI-150 | monetization | undecided | Decide referral or gifting discount for multiplayer groups. | - | 03_Monetization Design Document -> Open Questions |
- | DEFERRED | 2026-02-22 |
| OI-151 | monetization | undecided | Decide whether Early Access has a Founder's Edition cosmetic bonus. | - | 03_Monetization Design Document -> Open Questions |
- | DEFERRED | 2026-02-22 |
| OI-152 | world | undecided | Decide whether orbital stations persist when Genesis leaves or are dismantled. | - | 05_World Generation & Planet Types -> Open Questions |
- | DEFERRED | 2026-02-26 |
| OI-153 | world | undecided | Decide whether multiple players can each have an orbital station above the same Gas Giant. | - | 05_World Generation & Planet Types -> Open Questions |
- | DEFERRED | 2026-02-26 |
| OI-154 | art | task | Define the 3D-space visual representation of an orbital station. | - | 05_World Generation & Planet Types -> Open Questions |
- | DEFERRED | 2026-02-26 |
| OI-155 | world | undecided | Decide whether Rogue Planets appear inside solar systems or only in deep space. | - | 05_World Generation & Planet Types -> Open Questions |
- | DEFERRED | 2026-02-26 |
| OI-156 | logistics | task | Define planet contribution factor formula for supply chain contribution. | deferred milestone | 05_World Generation & Planet Types; 06_Vertical Layers -> Open Questions |
- | DEFERRED | 2026-02-26 |
| OI-157 | vertical | undecided | Decide whether Genesis can be on a different level than the camera. | - | 06_Vertical Layers -> Open Questions |
- | DEFERRED | 2026-02-26 |
| OI-158 | vertical | undecided | Decide what happens to buildings on a level if the structure above is destroyed. | - | 06_Vertical Layers -> Open Questions |
- | DEFERRED | 2026-02-26 |
| OI-159 | vertical | undecided | Decide whether underground levels are always the same grid size as the surface. | - | 06_Vertical Layers -> Open Questions |
- | DEFERRED | 2026-02-26 |
| OI-160 | vertical | undecided | Decide Sky Platform construction flow. | scaffolding first or direct level add | 06_Vertical Layers -> Open Questions |
- | DEFERRED | 2026-02-26 |
| OI-161 | vertical | undecided | Decide whether multiple Item Lifts or Fluid Risers can connect the same two levels at different cells. | yes | 06_Vertical Layers -> Open Questions |
- | NORMAL | 2026-02-26 |
| OI-162 | pipes | undecided | Decide whether two different fluids can exist in the same pipe network. | current assumption: no | 07_Pipe & Fluid System Design -> Open Questions |
- | NORMAL | 2026-02-27 |
| OI-163 | pipes | undecided | Decide what happens when a Storage Tank switches fluid type. | drain first or block switching | 07_Pipe & Fluid System Design -> Open Questions |
- | NORMAL | 2026-02-27 |
| OI-164 | pipes | undecided | Decide whether pipe HP is visible without the diagnostic overlay. | - | 07_Pipe & Fluid System Design -> Open Questions |
- | NORMAL | 2026-02-27 |
| OI-165 | pipes | undecided | Decide whether Fire Suppressor is a placeable building or consumable carried by Genesis. | - | 07_Pipe & Fluid System Design -> Open Questions |
- | DEFERRED | 2026-02-27 |
| OI-166 | pipes | undecided | Decide whether viscosity affects heat loss as well as flow rate. | - | 07_Pipe & Fluid System Design -> Open Questions |
- | NORMAL | 2026-02-27 |
| OI-167 | pipes | undecided | Decide Pipe Connector E-key output rotation research unlock tier. | - | 07_Pipe & Fluid System Design -> Open Questions |
OI-004 | NORMAL | 2026-02-27 |
| OI-168 | pipes | undecided | Decide whether pipe complexity can change between sessions or is locked per save file. | - | 07_Pipe & Fluid System Design -> Open Questions |
- | NORMAL | 2026-02-27 |
| OI-169 | pipes | task | Add a fluid-consuming building/content path to test pipe-to-building end-to-end. | content gap, not a bug | 07_Pipe & Fluid System Design -> Open Questions |
OI-001 | HIGH | 2026-02-27 |
| OI-170 | ui | undecided | Decide whether Build Menu auto-hides when not in Build Mode. | - | 09_UI-UX Design Document -> Open Questions |
- | NORMAL | 2026-03-31 |
| OI-171 | ui | undecided | Decide whether HUD layout is player-configurable beyond flap width/collapse. | - | 09_UI-UX Design Document -> Open Questions |
- | NORMAL | 2026-03-31 |
| OI-172 | ui | undecided | Decide tooltip delay: 0.5s or instant. | - | 09_UI-UX Design Document -> Open Questions |
- | NORMAL | 2026-03-31 |
| OI-173 | ui | undecided | Decide how Full Planet Map handles very large planets performance-wise. | - | 09_UI-UX Design Document -> Open Questions |
- | NORMAL | 2026-03-31 |
| OI-174 | ui | undecided | Decide Chat panel position. | above build toolbar or floating | 09_UI-UX Design Document -> Open Questions |
- | NORMAL | 2026-03-31 |
| OI-175 | ui | undecided | Decide how Right Flap Production tab handles very large chain diagrams on small screens. | - | 09_UI-UX Design Document -> Open Questions |
- | NORMAL | 2026-03-31 |
| OI-176 | achievements | undecided | Decide whether achievement toasts appear to all multiplayer players or only the earner. | - | 11_Achievements Design Document -> Open Questions |
- | NORMAL | 2026-03-08 |
| OI-177 | achievements | undecided | Decide whether tiered achievements show the next tier goal once a tier is completed. | yes | 11_Achievements Design Document -> Open Questions |
- | NORMAL | 2026-03-08 |
| OI-178 | achievements | undecided | Decide whether Tier III chains should be designed now or left until post-EA. | - | 11_Achievements Design Document -> Open Questions |
- | DEFERRED | 2026-03-08 |
| OI-179 | achievements | undecided | Decide whether Genesis skins affect visor/laser colour. | yes | 11_Achievements Design Document -> Open Questions |
- | NORMAL | 2026-03-08 |
| OI-180 | gauntlet | undecided | Decide whether Gauntlet wave rewards are fixed per wave or random from a pool. | - | 12_Gauntlet Planet Design -> Open Questions |
- | DEFERRED | 2026-02-27 |
| OI-181 | gauntlet | undecided | Decide whether the player can visit the Gauntlet Planet multiple times per session. | - | 12_Gauntlet Planet Design -> Open Questions |
- | DEFERRED | 2026-02-27 |
| OI-182 | gauntlet | undecided | Decide whether multiplayer Gauntlet defence is shared or instanced. | - | 12_Gauntlet Planet Design -> Open Questions |
- | DEFERRED | 2026-02-27 |
| OI-183 | gauntlet | undecided | Decide Gauntlet Planet story/lore reason. | - | 12_Gauntlet Planet Design -> Open Questions |
- | DEFERRED | 2026-02-27 |
| OI-184 | gauntlet | undecided | Decide Gauntlet arena visual direction. | alien ruins or ancient structure | 12_Gauntlet Planet Design -> Open Questions |
- | DEFERRED | 2026-02-27 |
| OI-185 | gauntlet | undecided | Decide whether Gauntlet has a maximum wave or is truly infinite. | - | 12_Gauntlet Planet Design -> Open Questions |
- | DEFERRED | 2026-02-27 |
| OI-186 | gauntlet | undecided | Decide whether failed Gauntlet runs give partial rewards. | - | 12_Gauntlet Planet Design -> Open Questions |
- | DEFERRED | 2026-02-27 |
| OI-187 | gauntlet | undecided | Decide available building set on the Gauntlet Planet. | defence-only or full factory | 12_Gauntlet Planet Design -> Open Questions |
- | DEFERRED | 2026-02-27 |
| OI-188 | progression | undecided | Decide whether XP is visible to other players in multiplayer lobbies. | could create pressure | 13_Player Levelling System -> Open Questions |
- | DEFERRED | 2026-02-27 |
| OI-189 | progression | undecided | Decide whether there is a level cap or infinite levels. | - | 13_Player Levelling System -> Open Questions |
- | DEFERRED | 2026-02-27 |
| OI-190 | progression | undecided | Decide whether multiplayer sessions award a bonus XP multiplier. | reward cooperative play | 13_Player Levelling System -> Open Questions |
- | DEFERRED | 2026-02-27 |
| OI-191 | progression | undecided | Decide level 100 prestige system. | reset for cosmetic badge, keep mechanical bonuses? | 13_Player Levelling System -> Open Questions |
- | DEFERRED | 2026-02-27 |
| OI-192 | progression | undecided | Decide activities that should explicitly not give XP. | anti-farming | 13_Player Levelling System -> Open Questions |
- | DEFERRED | 2026-02-27 |
| OI-193 | progression | undecided | Decide whether offline/idle time gives XP. | probably not | 13_Player Levelling System -> Open Questions |
- | DEFERRED | 2026-02-27 |
| OI-194 | factions | undecided | Decide exact session reward for first ship launch. | - | 14_Win Conditions & Faction Allegiance -> Open Questions |
- | DEFERRED | 2026-03-31 |
| OI-195 | factions | task | Define exact material requirements for the Master Rill. | - | 14_Win Conditions & Faction Allegiance -> Open Questions |
- | DEFERRED | 2026-03-31 |
| OI-196 | factions | undecided | Decide whether factions can go to war with each other independent of the player. | - | 14_Win Conditions & Faction Allegiance -> Open Questions |
- | DEFERRED | 2026-03-31 |
| OI-197 | factions | undecided | Decide whether aliens are a negotiable fifth faction. | - | 14_Win Conditions & Faction Allegiance -> Open Questions |
- | DEFERRED | 2026-03-31 |
| OI-198 | factions | undecided | Decide what The Remnants actually want. | - | 14_Win Conditions & Faction Allegiance -> Open Questions; 01_World Bible -> Factions |
- | DEFERRED | 2026-03-31 |
| OI-199 | factions | undecided | Decide whether multiplayer faction relationships are per-player or shared. | - | 14_Win Conditions & Faction Allegiance -> Open Questions |
- | DEFERRED | 2026-03-31 |
| OI-200 | factions | undecided | Decide whether factions can be permanently destroyed. | - | 14_Win Conditions & Faction Allegiance -> Open Questions |
- | DEFERRED | 2026-03-31 |
| OI-201 | factions | undecided | Decide whether faction relationships persist across worlds. | - | 14_Win Conditions & Faction Allegiance -> Open Questions |
- | DEFERRED | 2026-03-31 |
| OI-202 | ships | undecided | Decide whether APR is visible to other players in multiplayer. | could affect diplomacy/intimidation | 15_Ship & Army Points Design -> Open Questions |
- | DEFERRED | 2026-02-27 |
| OI-203 | ships | undecided | Decide whether fleet APR factors into War layer supply-chain demand. | - | 15_Ship & Army Points Design -> Open Questions |
- | DEFERRED | 2026-02-27 |
| OI-204 | ships | undecided | Decide whether faction fleets show APR before scanning or only after scanner reveal. | - | 15_Ship & Army Points Design -> Open Questions |
- | DEFERRED | 2026-02-27 |
| OI-205 | ships | undecided | Decide whether research nodes boost APR calculation. | tactics bonuses | 15_Ship & Army Points Design -> Open Questions |
- | DEFERRED | 2026-02-27 |
| OI-206 | ships | undecided | Decide whether APR scales with pilot skill/experience in later phases. | - | 15_Ship & Army Points Design -> Open Questions |
- | DEFERRED | 2026-02-27 |
| OI-207 | lore | undecided | Decide exact cause of The Collapse. | may remain permanently ambiguous | 01_World Bible -> Open Questions |
- | DEFERRED | 2026-02-22 |
| OI-208 | lore | undecided | Decide whether discoverable lore fragments appear in Phase 1 or are deferred to Phase 2. | - | 01_World Bible -> Open Questions |
- | DEFERRED | 2026-02-22 |
| OI-209 | lore | undecided | Decide what the ancient ruins are and who built them. | can remain mystery through v1.0 | 01_World Bible -> Open Questions |
- | DEFERRED | 2026-02-22 |
| OI-210 | factions | undecided | Decide whether factions exist in Phase 1 as AI opponents or only in Phase 3. | - | 01_World Bible -> Open Questions |
- | DEFERRED | 2026-02-22 |
| OI-211 | factions | undecided | Decide whether players can name their faction and customise its colours. | - | 01_World Bible -> Open Questions |
- | DEFERRED | 2026-02-22 |
| OI-212 | lore | undecided | Decide whether in-game narrative progression exists or the story is purely systemic. | - | 01_World Bible -> Open Questions |
- | DEFERRED | 2026-02-22 |
| OI-213 | art | undecided | Decide polygon budget per building. | deferred to optimisation pass | 01_Art Direction Document -> Open Questions |
OI-026 | NORMAL | 2026-03-03 |
| OI-214 | factory | undecided | Decide exact passive Field Data RP rates. | prototype and balance | - | - | NORMAL | 2026-02-22 |
| OI-215 | pipes | undecided | Decide whether fluids have temperature as a mechanic. | - | 07_Pipe & Fluid System Design -> Temperature System |
- | NORMAL | 2026-02-22 |
| OI-216 | genesis | undecided | Decide Genesis mining speed relative to a Mining Drill. | - | - | - | NORMAL | 2026-02-22 |
| OI-217 | genesis | undecided | Decide whether multiple players can direct Genesis simultaneously or only through a queue. | - | - | - | NORMAL | 2026-02-22 |
| OI-218 | code | defect | Pointer: IoConnector / PipeConnector still ship despite design replacing them with ports. |
- | AGENTS.md -> Known Code/Design Divergences |
OI-004 | HIGH | 2026-08-26 |
| OI-219 | code | defect | Pointer: BuildingInstance.ChestMode exists but is unassigned and unserialized. |
- | AGENTS.md -> Known Code/Design Divergences |
OI-048 | HIGH | 2026-08-26 |
| OI-220 | code | defect | Pointer: Splitter/Merger/Filter Splitter are removed in design but Router does not exist in code. | - | AGENTS.md -> Known Code/Design Divergences |
OI-063 | HIGH | 2026-08-26 |
| OI-221 | code | defect | Pointer: power is data only; no simulation consumes power_draw or power_output. |
- | AGENTS.md -> Known Code/Design Divergences |
OI-079 | HIGH | 2026-08-26 |
| OI-222 | code | defect | Pointer: upgrade implementation must preserve modules, ports, storage contents, role, and in-progress work. | - | AGENTS.md -> Known Code/Design Divergences |
OI-072 | HIGH | 2026-08-26 |
| OI-223 | code | defect | Pointer: building status is on the wrong surface; base ring, working lights, and pulse rhythms do not exist. | - | AGENTS.md -> Known Code/Design Divergences |
OI-026 | HIGH | 2026-08-26 |
| OI-224 | code | defect | Pointer: minimap coordinate conversion misses the +100 world offset. | - | AGENTS.md -> Known Code/Design Divergences |
- | HIGH | 2026-08-26 |
| OI-225 | code | defect | Pointer: no building can receive fluid as a production input. | - | AGENTS.md -> Known Code/Design Divergences |
OI-001 | HIGH | 2026-08-26 |
| OI-226 | art | defect | Pointer: only the Mining Drill has a 3D asset; all other buildings are procedural boxes. | - | AGENTS.md -> Known Code/Design Divergences |
OI-031 | NORMAL | 2026-08-26 |
| OI-227 | code | defect | Pointer: ScenarioTestRunner docstring says F8 but binding is F9. |
- | AGENTS.md -> Known Code/Design Divergences |
- | NORMAL | 2026-08-26 |
| OI-228 | outpost | undecided | Specify Outpost navigation UI. | pending 08_Navigation & UI.md |
06_Outpost/01_Outpost Mode Overview -> Open Questions |
- | DEFERRED | 2026-03-13 |
| OI-229 | outpost | undecided | Decide exact alien detection radius per storey depth. | balance pass | 06_Outpost/03_Enemy Design -> Open Questions |
- | DEFERRED | 2026-03-13 |
| OI-230 | outpost | undecided | Decide whether internal drones patrol before Genesis is detected. | AI design | 06_Outpost/03_Enemy Design -> Open Questions |
- | DEFERRED | 2026-03-13 |
| OI-231 | outpost | undecided | Decide command drone special abilities beyond high flight. | tower design doc | 06_Outpost/03_Enemy Design -> Open Questions |
- | DEFERRED | 2026-03-13 |
| OI-232 | outpost | task | Define the full Outpost hazard list and mechanical effects. | procedural generation doc | 06_Outpost/03_Enemy Design -> Open Questions |
- | DEFERRED | 2026-03-13 |
| OI-233 | outpost | undecided | Decide exact building completion multiplier values. | balance pass | 06_Outpost/04_Progression & Rewards -> Open Questions |
- | DEFERRED | 2026-03-09 |
| OI-234 | outpost | undecided | Decide passive trickle rate per outpost type and level. | balance pass | 06_Outpost/04_Progression & Rewards -> Open Questions |
- | DEFERRED | 2026-03-09 |
| OI-235 | outpost | undecided | Decide whether request bonus XP scales with difficulty or is flat. | - | 06_Outpost/04_Progression & Rewards -> Open Questions |
- | DEFERRED | 2026-03-09 |
| OI-236 | outpost | undecided | Decide social visibility settings for Outpost session records. | - | 06_Outpost/04_Progression & Rewards -> Open Questions |
- | DEFERRED | 2026-03-09 |
| OI-237 | outpost | undecided | Decide exact storey count ranges per outpost type and level. | balance pass | 06_Outpost/05_Procedural Generation -> Open Questions |
- | DEFERRED | 2026-03-09 |
| OI-238 | outpost | undecided | Decide whether the full outpost map is visible immediately or revealed through exploration. | - | 06_Outpost/05_Procedural Generation -> Open Questions |
- | DEFERRED | 2026-03-09 |
| OI-239 | outpost | undecided | Decide whether players can share Outpost seeds. | - | 06_Outpost/05_Procedural Generation -> Open Questions |
- | DEFERRED | 2026-03-09 |
| OI-240 | outpost | task | Define visual differentiation between outpost types. | art pass | 06_Outpost/05_Procedural Generation -> Open Questions |
- | DEFERRED | 2026-03-09 |
| OI-241 | ideas | undecided | Decide whether Quantum Silo being invalid as production input is too strict. | protects the belt game | 00_Ideas/04_Idea - Quantum Silo.md -> Interaction With the Store Redesign |
- | DEFERRED | 2026-08-25 |
| OI-249 | art | task | 07_Art Direction Style Bible section 4, Concept Prompt Template, is marked Pending and blocks all concept generation. The Recraft and Leonardo master prompts in 01_Art Direction Document specified cel-shading, thick dark outlines, flat colour faces and per-category accent colours - all superseded - and were removed in the v0.6 rewrite. They were not replaced in that document, because writing them there would author the authority's pending content downstream and invert the precedence rule. Section 4 must embed the section 1 palette values plus a locked reference render. |
must embed section 1 values plus a locked reference render | 07_Art Direction Style Bible -> Concept Prompt Template; 01_Art Direction Document -> Concept Generation Prompts |
- | HIGH | 2026-08-27 |
| OI-250 | art | defect | Faction badge colours conflict with the single-accent rule. 01_Art Direction Document assigns five saturated badge colours (Salvagers orange, Vanguard steel blue, Cultivators forest green, Remnants dark purple, plus player white), applied as a band at the base of every building. Canonical section 6 says Accent Orange is the only accent colour, and the base ring is a signal channel that is unlit when healthy. Faction identity may be a legitimate exception, or badges may need moving off the base ring entirely - a coloured band at ground level sits exactly where fault status lives. |
- | 01_Art Direction Document -> Faction Badge System; 07_Art Direction Style Bible -> Base Ring Status |
- | HIGH | 2026-08-27 |
| OI-251 | art | defect | Primary Visual References may no longer describe the target style. 01_Art Direction Document cites Satisfactory, Astroneer, Townscaper and Factorio, chosen when the style was cel-shaded low poly with thick outlines. The Style Bible instead anchors on a locked reference render it calls "Image 3" and specifies clean chamfered hard-surface, matte PBR, no outlines. Decide whether the four references still hold, and replace them with the locked render if not. |
- | 01_Art Direction Document -> Primary Visual References; 07_Art Direction Style Bible -> Surface finish |
- | NORMAL | 2026-08-27 |
| OI-252 | art | defect | Cyan selection highlight collides with a signal channel. 01_Art Direction Document specifies Bright Cyan #00E5FF for selection highlight, while Emissive Cyan #2ED9E8 at energy 2.5 means alive and working on every building (Style Bible section 1.7a). Two cyans a few hex values apart, one a UI state and one a world signal. Also check the translucent green/red placement ghosts against the amber/red fault palette. |
- | 01_Art Direction Document -> Colour System; 07_Art Direction Style Bible -> Working Lights |
- | NORMAL | 2026-08-27 |
| OI-253 | power | defect | The Atmospheric Harvester is missing from the power generation source table. It is fully specified in 06_Vertical Layers with a per-level efficiency table (surface 50%, Sky L1 75%, Sky L2 100%, Sky L3+ 125%), planet modifiers (Rogue 0% - no atmosphere, Carbon 60% - thin) and an unlock (High Altitude Construction), but 25_Power System Design section 5.1 lists nine sources and it is not among them. Flagged in the vertical addendum as "not accounted for in the power source table" and carried over when that document was merged. Adding the row needs an output value and variability rating that were never decided. |
- | 06_Vertical Layers -> Planet-Type Efficiency Modifiers; 25_Power System Design -> Source Table |
- | NORMAL | 2026-08-27 |
| OI-254 | code | defect | Every pipe connector runs tick_pull/tick_push twice per simulation tick. WorldScene._place_pipe_connector_at() registers the same object into both PipeSystem._connectors and SimulationManager._pipe_connectors (WorldScene.gd:1143-1144). SimulationManager._simulation_tick() ticks them at P3b/P3c (:174-182), then P3d calls PipeSystem.simulation_tick() which ticks the same objects again (PipeSystem.gd:139-142). Fluid throughput on connector-mediated links is currently 2x the intended rate. Fix or measure before the port refactor, or the port system will look like a 50% fluid nerf. |
- | SimulationManager.gd:174-186; PipeSystem.gd:136-144; WorldScene.gd:1143 |
- | DO FIRST | 2026-08-27 |
| OI-255 | code | defect | SAVE_VERSION is written but never read. SaveManager.gd:12 defines it and :42 writes it into the save dict; nothing anywhere compares data["version"] on load. Bumping the constant will not reject old saves. This matters now because the port refactor renumbers GenesisTask.Type: removing PLACE_CONNECTOR (index 4) and PLACE_PIPE_CONNECTOR (index 6) shifts FETCH_MATERIALS 7->5 and DEPOSIT_MATERIALS 8->6, and the load match has no default arm, so an old save silently constructs the wrong task type and then errors on a missing key. Add the version gate as part of the refactor, not after. |
refuse to load version < 2 | SaveManager.gd:12,42; GenesisTask.gd:11-21; WorldScene.gd:2093-2130 |
- | HIGH | 2026-08-27 |
| OI-256 | data | defect | Building footprints in 04_Factory disagree with the shipped .tres files. gas_pump is 2x2 in data, 2x3 in the doc. advanced_press is 2x3 in data, 4x5 in the doc. refinery matches at 3x4. This is load-bearing for the port refactor: port count per face derives from footprint edge length, so the design's worked examples do not match what would actually be generated. Audit all 24 .tres against the doc tables and decide which side is right in each case. |
- | 04_Factory -> Building List; data/buildings/*.tres |
- | HIGH | 2026-08-27 |
| OI-257 | code | defect | Three dead artefacts to delete with the port refactor, not build on. BuildingInstance.install_port() (:283-286) is an empty uncalled function whose comment claims "kept for API compatibility" for an API that never shipped - the only commit touching it is the one that added it, and its untyped int signature is wrong for a per-cell port model. BuildingInstance.tick_output() (:166-171) is an uncalled no-op still sitting in the tick path's shape. src/entities/pipes/PipeConnector.gd is a 171-byte dead stub superseded by the buildings/ version, and is not listed in the refactor's deletion table. |
- | BuildingInstance.gd:166,283; src/entities/pipes/PipeConnector.gd |
- | NORMAL | 2026-08-27 |
| OI-260 | trains | defect | Freight and Fuel Platforms were described as buildings with ports, which under 24_Module System Design section 2.2 gave a four-wagon station five module slots. Converted to extensions of the Station Head 2026-08-27, matching farm bays. The contradiction that remains: 22_Trains & Rail section 4.2 keeps the four-commodity capability, but its stated mechanism was "each platform's ports are configured independently" and platforms now have no ports. Presumably reachable via the Station Head's own ports with per-wagon filters, but no document specifies that. Decide the mechanism; do not drop the capability. |
extensions, matching farm bays | 22_Trains & Rail -> Stations Are Modular; [27_Organic Farming & Biomass Design](<01_Design Documents/27_Organic Farming & Biomass Design.md>) -> Two Buildings, One Pattern |
- | HIGH | 2026-08-27 |
| OI-261 | farming | undecided | Decide the greenhouse air input: a zonal yield bonus from local air pollution, or a piped capture fluid taken from generator exhaust. | piped; zonal makes smog locally good and fights Pollution section 2. Capture uses where the Air Scrubber neutralises |
[27_Organic Farming & Biomass Design](<01_Design Documents/27_Organic Farming & Biomass Design.md>) -> The air input is open |
- | HIGH | 2026-08-27 |
| OI-262 | farming | undecided | Decide whether Algae is a distinct resource or the Pond Head produces fld_fuel via an intermediate. |
- | [27_Organic Farming & Biomass Design](<01_Design Documents/27_Organic Farming & Biomass Design.md>) -> Algae |
- | HIGH | 2026-08-27 |
| OI-263 | farming | undecided | Decide the flue capture ceiling. Must be below 100%. | zero requires stopping combustion, not out-plumbing it; full capture would collapse the dirty-versus-clean axis into a plumbing puzzle solved once | [27_Organic Farming & Biomass Design](<01_Design Documents/27_Organic Farming & Biomass Design.md>) -> The Zero-Pollution Planet |
OI-261 | HIGH | 2026-08-27 |
| OI-264 | farming | undecided | Decide footprints for Control Hut, Greenhouse Bay, Pond Head and Pond Bay. | - | [27_Organic Farming & Biomass Design](<01_Design Documents/27_Organic Farming & Biomass Design.md>) -> What This Touches |
- | HIGH | 2026-08-27 |
| OI-265 | farming | undecided | Decide artificial lighting power draw, and whether it replaces ambient light fully or only supplements it. | - | [27_Organic Farming & Biomass Design](<01_Design Documents/27_Organic Farming & Biomass Design.md>) -> Artificial lighting is allowed |
- | NORMAL | 2026-08-27 |
| OI-266 | farming | undecided | Decide maximum bay count per head, and whether bays must be contiguous with the head. | placement validation is new; nothing else in the vault does this | [27_Organic Farming & Biomass Design](<01_Design Documents/27_Organic Farming & Biomass Design.md>) -> Control Hut plus Bays |
- | NORMAL | 2026-08-27 |
| OI-267 | farming | undecided | Decide the fertiliser recipe and which recycled organic waste produces it. | - | [27_Organic Farming & Biomass Design](<01_Design Documents/27_Organic Farming & Biomass Design.md>) -> Inputs; Pollution -> Waste Handling |
- | NORMAL | 2026-08-27 |
| OI-270 | tooling | task | Delete sync_docs.bat. The vault sync workflow is retired. The OneDrive Obsidian folder it pushed to has been removed, so the script has no destination and no purpose. It was already non-functional: both hardcoded paths were wrong for this machine and it exited 2 without copying, so no sync had happened for as long as the repo has been at its current path. docs/ in the repo is now the only copy. |
delete, do not repoint | sync_docs.bat |
- | NORMAL | 2026-08-27 |
| OI-272 | logistics | undecided | Design barrels. A barrel turns a fluid into an item so belts, trains and ordinary drones can carry it. Nothing about barrels exists in the vault. This is a lever on the entire fluid story: barrelling makes pipes optional for low volume rather than mandatory for all fluid. Decide barrel capacity against pipe throughput deliberately, or barrels either trivialise pipes or are never worth using. | - | 06_Design Session Decision Log -> Transport & Logistics |
- | HIGH | 2026-08-27 |
| OI-274 | trade | undecided | Decide whether quantum travel replaces ship travel time as a late-game upgrade to the trade route, or runs as a parallel channel alongside ships. Scope is settled: player-to-player only, never to yourself, which is what keeps the transport ship layer intact. This is the remaining question. | upgrade reads better than a parallel channel: it changes something the player has felt the cost of for hours | 06_Design Session Decision Log -> Transport & Logistics; 14_Win Conditions & Faction Allegiance -> Trade |
- | NORMAL | 2026-08-27 |
| OI-276 | data | task | Replace ResourceTier with category, substance, type and phase on ResourceDefinition. type (RAW/REFINED/COMPONENT) is what tier was reaching for; the word and the mixed-in FLUID value were wrong, not the instinct. The tier enum conflates production depth (RAW/REFINED/COMPONENT/ADVANCED) with transport medium (FLUID), so a resource that is raw by origin and fluid by medium cannot be described correctly. Drop tier entirely. It is not serialised, it is read once as a fallback in FactoryStats whose primary path already derives category from the producing building, and that reader bypasses it for fluids with a begins_with("fld_") check. Production depth is derivable from the recipe graph. Transport is derived from phase, not stored - solids ride belts, liquids and gases ride pipes, as a rule in code rather than a field. 19 .tres files. Do this before the port refactor (OI-004): ports gating on phase is cleaner than ports gating on an enum about to be deleted. |
four axes; ids stay as stable handles, nothing collapses | 06_Design Session Decision Log -> Resource Data Model; ResourceDefinition.gd; FactoryStats.gd |
- | DO FIRST | 2026-08-28 |
| OI-277 | data | task | Collapse ResourceDefinition and FluidDefinition into one class. They are separate classes, not inheritance, joined only by a shared id string, and nothing enforces that a fluid-medium resource has a matching FluidDefinition. That is how Chemical Gas ended up with a ResourceDefinition and no fluid properties at all - no viscosity, density or temperatures. With phase as a field, the fluid physical properties become optional fields on the same resource and the whole failure mode disappears. |
one class, optional fluid properties | 06_Design Session Decision Log -> Resource Data Model; FluidDefinition.gd; ResourceDefinition.gd |
OI-276 | HIGH | 2026-08-28 |
| OI-278 | logistics | task | Add barrelling and debarrelling recipes, plus an empty-barrel item. A filled barrel is not a liquid in a different form - it is a steel container, an ordinary SOLID item that happens to hold liquid, so it rides belts for the same reason every other solid does. Barrelling needs no special machinery: coolant (LIQUID) + empty_barrel (SOLID) -> coolant_barrel (SOLID) and the reverse, with the relationship living in the recipe graph like every other production relationship. Still needs a decision on barrel capacity against pipe throughput (OI-272). |
ordinary recipes, no new concepts | 06_Design Session Decision Log -> Resource Data Model |
OI-276 | HIGH | 2026-08-28 |
| OI-279 | data | defect | No recipe produces any fluid, and Liquid Metal has no production path at all. None of the ten shipped recipes outputs an fld_* resource. fld_liquid_metal is iron in liquid phase, but the model had no way to express a phase change, so the smelting step that would produce it was never written. Under the new model this becomes an honest SOLID -> LIQUID recipe on one substance rather than a mapping between two unrelated rows. |
smelting is a phase change | 06_Design Session Decision Log -> Resource Data Model; data/recipes/ |
OI-276 | HIGH | 2026-08-28 |
| OI-280 | data | defect | ResourceTier is already wrong on its own terms, in shipped data. cmp_structural_frame is made from cmp_hull_plating and cmp_power_cell from cmp_circuit_board, so two of five components are made from components and the ladder does not hold. Nothing is tier 3 - ADVANCED has zero resources. Recorded as evidence for OI-276 rather than as separate work; it closes with the tier removal. |
- | 06_Design Session Decision Log -> Resource Data Model; data/recipes/ |
OI-276 | NORMAL | 2026-08-28 |
| OI-281 | logistics | undecided | Drone payload is determined by the cache box it carries, not a flat per-drone figure. Capacity is a property of the box, so a drone's throughput is chosen at load time rather than fixed by the drone. Still to decide: how many box sizes exist, whether box size affects flight speed or battery drain, whether a fluid-carrier drone uses a box or a dedicated tank, and how box capacity compares to a belt's throughput over the same distance. | capacity belongs to the box, not the drone | 06_Design Session Decision Log -> Transport & Logistics |
- | HIGH | 2026-08-28 |
| OI-282 | logistics | task | Make belts data-driven with real Mk tiers. 04_Factory documents Basic 1/sec, Fast 2/sec and Express 4/sec, but there is one hardcoded speed - BeltSegment.BELT_TICKS = 20 - and no belt .tres exists at all among the 24 building definitions. This is prototype scaffolding, not a design gap: the tiers were documented ahead of the data. Needs belt definitions in data/, the speed moved out of the script per the no-hardcoded-balance rule, and a decision on how belt tiers compose with Base Mk, which raises port throughput - two throughput systems that currently have no stated interaction. |
prototype scaffolding to replace, not a defect to fix | 06_Design Session Decision Log -> Transport & Logistics; BeltSegment.gd:22; 04_Factory -> Conveyor Belts |
- | HIGH | 2026-08-28 |
| OI-283 | data | undecided | Decide whether substance, viscosity and density earn their place - after the whole game has been reviewed, not before. All three are currently unread. viscosity and density are declared on FluidDefinition and consumed nowhere; substance is proposed but has no consumer yet, and no shipped comparison game has an equivalent (Satisfactory keeps Iron Ore and Molten Iron as unrelated items). Deliberately deferred rather than cut: systems not yet designed may need them, and cutting a field because today's code does not read it is how the game ends up unable to describe something later. Revisit once the full system pass is done. |
do not cut on today's evidence alone | 06_Design Session Decision Log -> Transport & Logistics; FluidDefinition.gd |
- | NORMAL | 2026-08-28 |
| OI-284 | docs | task | Keep 05_Reference/04_Data Dictionary.md current, and sweep the vault against its deprecated word list. The dictionary is new and its deprecated column is the actionable part: chest, Wood, Solar Collector, generic Shaft, Splitter/Merger/Filter Splitter, ResourceTier, Module Expansion, cel-shader and category accent colour all still appear in places across docs, code identifiers, UI labels and asset filenames. Sweep each, and add new terms to the dictionary before using them rather than after. |
one term, one meaning | 05_Reference/04_Data Dictionary.md -> Deprecated Words |
- | HIGH | 2026-08-28 |
| OI-285 | design | undecided | Decide the Simulation Level payoff. Structure is settled: a global level sets defaults, per-system overrides are allowed, and pipe_complexity becomes one facet rather than a special case. What higher levels reward is deliberately open. Precedent exists - pipe_complexity already grants a permanent supply chain contribution multiplier of x1.0 / x1.15 / x1.30. Candidates recorded, none chosen: extend the contribution multiplier; content that only exists higher up (temperature-dependent recipes are meaningless at Basic, so Full has recipes Basic cannot run, which costs no balance tuning); separate leaderboards per simulation level; reduced player-to-player transfer cost. Also decide which systems get an override. |
global default + per-system overrides | 06_Design Session Decision Log -> Resource Properties and Simulation Level; 01_Master GDD -> Session Rules |
- | HIGH | 2026-08-28 |
| OI-286 | data | task | Split raw_biomass into wood and algae. biomass is a category; wood and algae are substances inside it, so raw_biomass is named one level too high - the equivalent of a resource called metal instead of iron. Touches the Biomass Harvester output, the Biomass Burner's accepted fuel, ref_polymer's inputs, and Soil Remediation's organic input. Partly reverses the farming pass, which was right that three crops feeding identical outputs was duplication but collapsed to the category name rather than a substance name. |
wood and algae are substances, biomass is their category | 06_Design Session Decision Log -> Resource Properties and Simulation Level; 04_Factory -> Resource List |
OI-276 | HIGH | 2026-08-28 |
| OI-287 | data | task | Let recipes accept any substance in a category. ref_polymer should take any biomass rather than naming wood and algae separately, or the split in OI-286 forces duplicate polymer recipes. This is what makes category load-bearing rather than organisational: the recipe system becomes a reader of it, which is the test tier failed. Needs RecipeDefinition.inputs to express a category as well as a resource id. |
any-substance-in-category inputs | 06_Design Session Decision Log -> Resource Properties and Simulation Level; RecipeDefinition.gd |
OI-276; OI-286 | HIGH | 2026-08-28 |
| OI-288 | tooling | task | Add a validator for the refining rule: a component is never made directly from raw. True in all ten shipped recipes, but written down nowhere until now. Warn, do not fail. In reality almost nothing skips a step, but the step is often trivial - stone is cut, logs are sawn - and forcing a refined intermediate every time risks padding the chain with a machine and a belt that add no decision. A warning catches accidents while allowing a deliberate override. This validator is what gives type a reader; without it type is a hand-maintained label nobody consumes, which is how tier died. |
warning, never a hard failure | 06_Design Session Decision Log -> Resource Properties and Simulation Level |
OI-276 | HIGH | 2026-08-28 |
| OI-289 | data | task | Add fuel_value to resources, and an accepted-fuel list to burners. Energy per unit is a property of the substance a burner cannot know, so it lives on the resource. There is deliberately no fuel_type: Steam burns coal and Diesel burns liquid fuel, and both are combustion, so a COMBUSTION tag would let a steam locomotive eat diesel. Per-burner lists are simpler and more expressive. ⚠️ Burning cannot be a recipe - RecipeDefinition outputs a resource, and power is not a resource - so burners need their own fuel mechanism regardless. No fuel system exists today: coal_generator.tres has empty accepted_recipe_ids. |
fuel_value on the substance, accepted list on the burner | 06_Design Session Decision Log -> Resource Properties and Simulation Level; coal_generator.tres |
OI-276 | HIGH | 2026-08-28 |
| OI-290 | trains | undecided | Decide whether steam locomotives consume water, as a Simulation Level feature. A steam locomotive burns coal; water is the working fluid, not the fuel, and 22_Trains & Rail section 3 currently lists coal only. Realistic, but loading coal and water into every depot is a heavy burden for the earliest locomotive, which is already the highest-burden option. Candidate for a higher Simulation Level rather than a baseline. |
opt-in realism, not baseline | 06_Design Session Decision Log -> Resource Properties and Simulation Level; 22_Trains & Rail -> Locomotive Types |
OI-285 | NORMAL | 2026-08-28 |
| OI-291 | docs | defect | 27_Organic Farming & Biomass Design section 2.1 is now partly wrong. It states that raw_wood, organic carbon and bio-polymer crops were "deleted rather than defined". Under the category model, wood is a substance in category biomass and is restored; only organic carbon and bio-polymer crops remain deleted as duplicates. The document's conclusion still holds - three crops feeding identical outputs was duplication - but it collapsed to the category name. Not edited unilaterally: it is an authored design document and this reverses a stated decision in it. |
wood restored, the other two stay deleted | 06_Design Session Decision Log -> Resource Properties and Simulation Level; 27_Organic Farming & Biomass Design -> The Correction |
OI-286 | HIGH | 2026-08-28 |
| OI-292 | trains | task | Design the nuclear reprocessing chain. Reprocessing is the Treat option for nuclear waste in the existing three-way Store / Treat / Dump structure (Pollution section 5), and it is what turns nuclear from a penalty into a system. Needs the building, the recipe, and a recovery rate. ⚠️ Recovery must never reach 100% - the third instance of this guard rail after Incinerator heat recovery and the flue capture ceiling. |
reduces the problem, never removes it | 06_Design Session Decision Log -> Locomotive Power; 26_Pollution, Waste & Organic Systems Design -> Waste Handling |
- | HIGH | 2026-08-28 |
| OI-293 | trains | undecided | Decide the battery-electric locomotive's numbers and its charging station. Battery is now an electric variant alongside catenary, paying in time rather than distance: a charging station at each stop plus charging duration. Needs range per charge, charge time, station cost and footprint, and whether a battery train can use catenary where it exists. The distinction that must survive: catenary cost scales with route length, battery cost with number of stops. | point infrastructure, not none | 06_Design Session Decision Log -> Locomotive Power; 22_Trains & Rail -> Locomotive Types |
- | HIGH | 2026-08-28 |
| OI-294 | trains | undecided | Decide nuclear's concrete advantage over the other two. Framed as strongest for long hauls and remote lines, but no numbers exist. Candidates: range between refuels, payload, or speed sustained without stops. Must be enough that a player who has built the waste chain feels rewarded, without making catenary and battery pointless on the routes they suit. | strongest where neither wiring nor stopping is acceptable | 06_Design Session Decision Log -> Locomotive Power |
OI-292 | NORMAL | 2026-08-28 |
| OI-295 | logistics | undecided | Decide drone numbers. Battery range per charge, charge time in the module, flight speed, and cache box sizes. Range is the load-bearing one: it sets how far a route can be before poles are needed en route, and therefore how much the Simulation Level stranding behaviour actually bites. | range constrains route length; poles are insurance, not required | 06_Design Session Decision Log -> Drones; 04_Factory -> Drones |
- | HIGH | 2026-08-28 |
| OI-296 | logistics | undecided | Decide drone module mechanics. Can a module hold a drone and transfer cargo at the same time, or are docking and transfer separate phases? One drone per module, or several? Now also: how an assigned drone's module interacts with a reserve drone arriving from the pit - does the reserve dock in the same module, and can both be present at once? | - | 06_Design Session Decision Log -> Drones |
- | NORMAL | 2026-08-28 |
| OI-297 | logistics | undecided | Specify the drone-making building and the fluid-carrier variant. The building needs a name, footprint, recipe and category. The fluid-carrier drone needs deciding against barrels: if an ordinary drone can carry a barrel, what does a dedicated fluid drone add - capacity, or the ability to skip barrelling entirely? | - | 06_Design Session Decision Log -> Drones; 04_Factory -> Drones |
OI-272 | NORMAL | 2026-08-28 |
| OI-298 | docs | defect | The Drone Port survives in two roadmap documents after being deleted from the design. 01_Development Roadmap.md has "Drone Port building implemented" and "Drones consume power at Drone Port"; ROADMAP.md has "Implement the Drone Port building" and lists Drone Port power consumption under M2.4. Both describe a building that no longer exists - charging moved to the drone module, construction to a dedicated building, fleet visibility to a HUD tab. Note 01_Development Roadmap.md is already ~5 months stale (recorded in AGENTS.md) and ROADMAP.md is a root-level stray flagged for relocation or archiving, so this may be absorbed by fixing those rather than as its own task. |
- | 06_Design Session Decision Log -> Drones |
- | NORMAL | 2026-08-28 |
| OI-299 | data | task | Add unit_size to resources. Silo capacity is measured in units, not items: a Silo of capacity 10 holds two things of unit_size 5. Makes storage spatial rather than a count. May also give density a job - it exists on FluidDefinition and is read by nothing, and is the natural fluid analogue. Needs values assigned per substance, which is balance work. |
unit_size on the resource, capacity on the Silo |
06_Design Session Decision Log -> Storage Model; ResourceDefinition.gd |
OI-276 | HIGH | 2026-08-29 |
| OI-300 | code | defect | inventory_capacity means two different things in the same class. receive_item() caps per substance; receive_items() caps the total across all substances. A building with capacity 10 holds 10 iron and 10 copper when belt-fed, but Genesis refuses to deposit once the total reaches 10 - same field, two meanings, depending on which door the items came through. Per-substance is correct for buildings (machines buffer, Silos store), so receive_items is the one to fix. |
per-substance for buildings | 06_Design Session Decision Log -> Storage Model; BuildingInstance.gd:183,255 |
- | HIGH | 2026-08-29 |
| OI-301 | code | task | Delete max_input_slots and max_output_slots from BuildingDefinition. Under the port model any port can be INPUT or OUTPUT and port count derives from footprint, so the player decides how many of each - a separate cap is the pre-port model left behind. The code only reads them as > 0 booleans meaning "does this accept input at all", which ports answer better. Confirms the port refactor's instinct rather than reviving them. Set in all 24 building .tres. |
ports replace them entirely | 06_Design Session Decision Log -> Storage Model; BuildingDefinition.gd:56,60 |
OI-004 | HIGH | 2026-08-29 |
| OI-302 | logistics | task | Specify the packing station and the packing module. Two ways to feed drones, both kept: belt or pipe into a packing station that drones collect from (centralised, one station serving many routes, costs space and a building), or a packing module on the building itself (local, no belt run, costs a module slot). Needs the building, the module, footprints, power and what packing actually consumes. | both routes stay; they scale differently | 06_Design Session Decision Log -> Storage Model; 04_Factory -> Drones |
OI-295 | HIGH | 2026-08-29 |
| OI-303 | logistics | undecided | Decide how the packing capability is obtained. ⚠️ Approach superseded by OI-306: rather than crafting a combined module from two and swapping it in, the installed drone module is upgraded in place, reusing the Upgrade Kit pattern. That gives two functions in one slot without reviving stacking. What remains open is the cost: available from the start, research-gated (recommended), or not at all so drone logistics simply costs two slots. Recommendation is research-gating, on the same shape as an existing decision - the ground Power Pole is free and the roof-mounted pole module is research-gated. | research-gated, mirroring the roof Power Pole | 06_Design Session Decision Log -> Storage Model; 24_Module System Design -> No Stacking |
OI-302; OI-306 | HIGH | 2026-08-29 |
| OI-304 | storage | undecided | Decide Silo capacity scaling, and whether Tanks follow the same rule. Canonical says Silo capacity scales by Mk, but not by how much, and unit_size now means the same Silo holds very different amounts of different substances. Also confirm the Tank is single-fluid by the same rule the Silo is single-substance - the pipe no-mixing rule already implies it but it is not written as a storage rule. |
Tank should mirror the Silo | 06_Design Session Decision Log -> Storage Model; 00_Canonical Design Facts -> Storage |
OI-299 | NORMAL | 2026-08-29 |
| OI-305 | docs | defect | 09_UI-UX Design Document specifies the Building Detail Panel and Module UI on six removed decisions. Researched module slots; a whole Module Stack UI section built on stacking; Stack position: 2 of 3; Combined effect: +45%; a Speed Module II implying confirmed module tiers when they are OPEN; and a status line reading "uses building state colours (green/yellow/orange - matches building mesh colour)", which is both the green-for-running model replaced by healthy-is-unlit and the whole-building tint the design forbids. This is the document someone would implement the module screen from. |
rewrite against fixed roof slots and the four signal channels | 06_Design Session Decision Log -> Module Installation UI; 09_UI-UX Design Document -> Building Detail Panel |
- | HIGH | 2026-08-29 |
| OI-306 | ui | task | Specify module installation and in-place upgrade in the Building Detail Panel. One screen lists roof slots, what is installed and what can go in them, and upgrades a module where it sits rather than crafting a replacement and swapping it. Reuses the Upgrade Kit pattern - crafted item, applied by Genesis in place, changes level and nothing else - which delivers two functions in one slot without reviving stacking. Supersedes the combined-module-crafted-from-both proposal in OI-303. | upgrade in place, mirroring Upgrade Kits | 06_Design Session Decision Log -> Module Installation UI; 09_UI-UX -> Building Detail Panel |
OI-305 | HIGH | 2026-08-29 |
| OI-307 | ui | task | Surface prerequisites at the point of choice, in the Building Detail Panel and the research tree. A drone module with no packing anywhere is a dead investment and the player finds out only when nothing moves. Generalise it: the panel's job is not only to show state but to show what this building still needs in order to work. The same trap already exists for ports, which default to DISABLED, so a newly placed building does nothing and nothing says why. |
show what is missing, not just what is | 06_Design Session Decision Log -> Module Installation UI; 23_Port System Design -> Default on placement |
OI-305 | HIGH | 2026-08-29 |
| OI-308 | logistics | task | Specify the drone pit. Holds the shared reserve: drones are stationed there, charge there, and are dispatched to any configured route that spikes. Needs the building, footprint, power draw, how many drones it holds, and how a player assigns drones into it. Rules already settled: serves any selected route at any distance with no coverage radius, trips always finish with no mid-route recall, and an empty pit simply means no more drones - the route runs at assigned capacity. | no radius; distance is paid for, not prohibited | 06_Design Session Decision Log -> Drone Routing; 04_Factory -> The drone pit |
OI-295 | HIGH | 2026-08-29 |
| OI-309 | logistics | undecided | Decide cache box numbers. Settled: a box holds one substance, a drone carries several boxes, and capacity per box type is a tuning value so cardboard and metal can differ. Still needed: box capacity in units per material, boxes per drone, and whether more boxes costs battery drain - coupling capacity to range would keep bigger from being strictly better, using the constraint that already makes stranding bite. | couple capacity to battery drain, not free | 06_Design Session Decision Log -> Drone Routing; 04_Factory -> Drones |
OI-299 | HIGH | 2026-08-29 |
| OI-310 | data | task | Specify the cardboard chain and both box items. New: a cardboard substance from wood, plus flat box and assembled box as distinct items in each material. Flat ships normally; assembled exists only at modules and in drone cargo, which is what breaks the ship-boxes-inside-boxes recursion. Needs recipes for cardboard, flat boxes in both materials, and assembly at the module. Gives the Biomass Farm a customer beyond fuel and polymer. | flat ships, assembled packs | 06_Design Session Decision Log -> Cache Boxes; 04_Factory -> Cache boxes |
OI-286 | HIGH | 2026-08-29 |
| OI-311 | logistics | undecided | Decide box degradation and worn-box handling at Simulation Level 3. Rate is configured per substance, so metal and plastic wear differently - a tuning value, not a design decision. Still needed: the values, whether wear is per trip or per unit carried, and how worn boxes are collected from modules. Worn boxes are recycled, not repaired - they go to the Recycler and return as material, which reuses an existing building rather than inventing item repair. ⚠️ Recovery must be below 100%, or cardboard becomes free and metal has no reason to exist. | recycle never repair; lossy recovery; per-substance rate | 06_Design Session Decision Log -> Cache Boxes; Pollution -> Waste Handling |
OI-310 | NORMAL | 2026-08-29 |
| OI-313 | docs | defect | Nine documents are linked but were never written. 23 wiki links across the vault point at documents that do not exist: 08_Economy & Progression Design (7 references), 06_Combat & War System Design (6), 07_Space Exploration Design (3), 03_Cross-Platform Strategy (2), 05_Spaceship Design & Building System, and 07_Reclaim in the Outpost folder, plus three unprefixed variants of the same names. None appears in the AGENTS.md Design Document Index, so they were planned and dropped rather than lost. Economy and Combat are the two that matter - seven and six documents each expect them to exist. Decide per document: write it, or remove the links. Do not create stubs, which would make the vault look complete while saying nothing. |
write or delink; never stub | AGENTS.md -> Design Document Index |
- | HIGH | 2026-08-29 |
| OI-314 | docs | task | Roadmap milestone M3.4 is named for a removed screen. It reads Advanced Diagnostics & Factory Overview, but the full-screen Factory Overview was removed in 09_UI-UX Design Document v0.6 and 05_Reference/04_Data Dictionary lists it as deprecated. The diagnostics half survives - Supply Chain Overlay, Shortage Alerts, the Analytics tab - so this is a rescope, not a deletion. Appears in both 01_Development Roadmap Phase 3 and docs/ROADMAP.md. Same shape as OI-040, and left unfixed for the same reason: renaming a milestone is a roadmap decision, not a wording fix. |
rescope, do not silently rename | 01_Development Roadmap -> Phase 3; 09_UI-UX Design Document -> Global Factory Overview |
- | NORMAL | 2026-08-29 |
| OI-315 | docs | defect | closed-items.md has three row shapes and its header describes one. The header declares nine columns and omits Kind, matching all 53 CI- rows. But 30 of the 31 OI- rows carry ten, keeping Kind from open-items.md, so Markdown renders their extra cell into a column with no heading. The 31st is OI-016, which carries nine and is missing its Kind entirely - a one-off that predates this finding and is the clearest evidence the shape was never deliberate. Practice across 30 closures is consistent, so the header is what is wrong, but correcting it means giving 53 historical rows a Kind they were never assigned, and reconstructing one for OI-016. Not fixed unilaterally because it means editing append-only history. |
header follows practice; historical rows take -; OI-016 gets its Kind back |
docs/closed-items.md |
- | NORMAL | 2026-08-29 |
| OI-316 | code | task | The orthographic-vs-perspective camera question was never answered; the engine default answered it. 01_Technical Architecture Document -> Open Technical Questions still lists it unticked as (Test both in prototype), and the test was never run. scenes/main.tscn sets no projection and no fov on the Camera3D, so perspective at 75 degrees is Godot's default rather than a choice - CI-001 recorded those numbers as fact without noting that nothing chose them. Left unticked deliberately: marking it resolved would record a decision that was not made. Worth settling early, because projection changes how buildings read at distance and the Style Bible leans on that - silhouette as the category signal (§1.1), tab counting at range (§1.7), and tabs breaking the silhouette. |
run the comparison, or accept perspective on purpose | 01_Technical Architecture Document -> Open Technical Questions; scenes/main.tscn; 07_Art Direction Style Bible §1.7 |
- | NORMAL | 2026-08-29 |
| OI-317 | data | task | Write the decided power values into the .tres files. All nine sources now have output and fuel rates in 25_Power System Design §5.1 and §5.1a, so the numbers exist; the data does not. Every generator still ships power_output = 0.0 (coal_generator, fuel_generator, solar_panel, accumulator) while consumers carry real draws. Needs Coal 100, Fuel 250, Solar 50 peak, Biomass 40, Wind 60 base, Geothermal 300, Nuclear 600, and the Core Power Station left formula-driven from CER. Also needs the fuel rate fields, which do not exist on BuildingDefinition at all, and the two scale knobs from §1a.3. Distinct from OI-221, which is that no simulation reads these fields. |
§5.1 is the authority; do not re-derive | 25_Power System Design -> §5.1, §5.1a, §1a.3; data/buildings/*.tres |
- | HIGH | 2026-08-29 |
| OI-318 | data | task | Give the Accumulator its storage and rate fields. The design is settled - 25_Power System Design §5.5 sets capacity 500 PU·s, charge and discharge capped at 100 PU, round-trip 0.90 - but accumulator.tres has no capacity field and power_draw and power_output are both 0.0, so it neither charges nor discharges. BuildingDefinition needs the three fields. Note the unit: storage is PU·s, not PU, and 04_Factory has been corrected. §4a.7 depends on reading current charge and on knowing whether the discharge rate can hold for the restore dwell window. |
PU·s for storage, PU for the rate | 25_Power System Design -> §5.5; data/buildings/accumulator.tres; BuildingDefinition.gd |
- | HIGH | 2026-08-29 |
| OI-319 | code | task | BuildingDefinition has no power priority field. It carries power_draw and power_output and nothing else power-related, but 04_Factory -> Power Priority System specifies a 1-5 per-building priority set in the building detail panel after Power Management research, and 25_Power System Design §4a.6 makes that priority the primary shed ordering. Needs the field, the default order (Research Labs -> Drones -> Storage -> Processing -> Extraction), the pre-research fixed-order behaviour, and persistence in saves, since a player's priority settings must survive a reload. Note the panel dependency: like the port work in OI-004, the setting lives in a Building Detail Panel that does not exist yet. |
field, default, save, panel | 04_Factory -> Power Priority System; 25_Power System Design -> §4a.6; BuildingDefinition.gd |
- | HIGH | 2026-08-29 |
| OI-321 | code | defect | Pipe basic complexity does not use a fixed flow rate, though the design says it does. 07_Pipe & Fluid System Design line 182 states "pressure simulation active in Standard and Full modes. Basic mode uses fixed flow rate." In code, PipeNetwork.simulation_tick() calls _propagate_fluid(pipe_system, true) for basic, but that function's _fixed_flow parameter is explicitly unused - its own comment says "kept for API compatibility... unused here" - so basic and standard move fluid identically at 40% of the difference, and basic differs only by skipping pressure propagation. Surfaced by a GUT test that had asserted the fixed-flow model since before 336270d and had been failing on main ever since (fixed under OI-258). Decide which is right: implement fixed flow for basic and give the parameter a job, or drop the claim from the document and delete the dead parameter. The second is likely, since pair equalisation exists precisely to stop the oscillation the old push-flow model caused, and reintroducing a fixed rate for one mode risks reintroducing it there. |
probably delete the claim, not add the feature | 07_Pipe & Fluid System Design -> Flow Rate Formula; PipeNetwork.gd -> _propagate_fluid |
- | NORMAL | 2026-08-30 |
| OI-323 | modules | defect | Two documents give the power module different names for the same mechanism. 24_Module System Design §2 and §4 call it a Power Pole that "distributes power over an area from the building roof", and 08_Research Tree Design Branch 8 follows that. 25_Power System Design §8 says it is "no longer a 'roof-mounted pole'" but "a range extender on the building's integrated transmitter, turning any building into a distribution relay without a dedicated pole", and 25_Power §4c.4 gives it a concrete +8 tiles. The mechanism agrees in both readings - the module makes a building act as a distribution point - so this is a naming and framing conflict rather than a design one, which is why it was not settled during the OI-246 audit. 24_Module is the stated authority for modules and its name was kept in the tree pending this. Decide which framing is canonical and make the other match; the roof-pole framing carries a spatial-upgrade rationale (§4, reclaimed ground) that the range-extender framing does not, and that rationale is worth keeping or consciously dropping. |
one name, and keep the spatial rationale if it survives | 24_Module System Design §2, §4; 25_Power System Design §8, §4c.4; 08_Research Tree Design Branch 8 |
- | NORMAL | 2026-08-30 |