Scaffolding: README, MIT license, Godot project, daisy addon spine + smoke test #1
Loading…
Reference in a new issue
No description provided.
Delete branch "muse-lantern/da-daisy:scaffolding"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What this PR is
The first commit on
dead-air/daisy: the working spine of the D.A.I.Sy prototype — README, MIT license, a minimal Godot 4.6.3 project, thedaisyaddon with the three layers as real code, a main scene, and one smoke scenario that proves the load-bearing rule from day one. It is scaffolding, not the build: enough structure to churn on the algos against, with the open design questions filed as issues rather than guessed at here.What it contains
README.md— what D.A.I.Sy is, the three layers, the daisy-chain metaphor, the bounded-knowledge rule, status, layout, how to run the smoke test.LICENSE— MIT, copied fromdead-air/engine.project.godot— minimal Godot 4.6 project, Mobile renderer, main scenesimulation/main.tscn. The addon is deliberately NOT enabled in project.godot.addons/daisy/— the reusable framework addon. The editor plugin (plugin.gd) is inert by design; the framework is plainRefCountedclasses undersrc/:knowledge.gd—DaisyKnowledgeEntry: what, where, when, who perceived it, confidence, propagation path. Decay is a documented no-op hook — the rules are undecided (see the knowledge issue).orders.gd—DaisyOrders: the PROVISIONAL order vocabulary (move_to,hold_position,patrol,investigate,target,retreat,reinforce) as constants, withis_valid()for validating model orders later. Growth by addition only.npc_entity.gd—DaisyNPCEntity: the small brain. Takes an order, tracks execution state, perception hooks (perceive_sight/perceive_hearing) that hand entries upward. Never decides what to do.commander.gd—DaisyCommander: team roster, knowledge ledger, environment knowledge,issue_order,receive_objective(translates "reinforce" intomove_toorders), and the load-bearing rule —on_npc_lostdrops a stealth-killed NPC from the roster with NO alert, NO ledger entry, NO trace;on_body_foundwrites the entry, raises the alert, and tells the Director.director.gd—DaisyDirector: commander registry,issue_objective(specific commanders or all),union_knowledge()computed on demand, and the coordination guardcheck_coordination()— flags the all-commanders-on-one-objective failure mode and otherwise stays out of their tactics.on_commander_alertflows the alert down to every Commander.simulation/main.tscn+main.gd— the prototype's main scene; boots and points at the smoke test.tests/daisy_smoke_check.gd— headless SceneTree suite in the da-game style (phases, check counting, verdict line, completion latch). Stands up a Director + 2 Commanders + 3 NPCs each, scripts a silent stealth-kill and asserts the roster drops with no alert and no knowledge entry anywhere, then has a second NPC find the body and asserts the Commander goes on alert and the alert flows down to the other Commander. Also covers the coordination guard both ways.docs/design.md— the design as filed in dead-air/game-planning #32, kept with the prototype so code and design travel together..gitignore— standard Godot (.godot/,*.tmp,.DS_Store;.importfiles intentionally not ignored).Readme.mdrenamed toREADME.md.Verification
On lantern-vm, Godot 4.6.3 standard, from a wiped
.godot/:--import: 0 ERROR on both passes, exit 0.DAISY SMOKE CHECK PASS (26 checks), exit 0, 0 SCRIPT ERROR lines in the raw output. (The ObjectDB-leak warning at exit is the standard headless-suite noise.)Deliberately NOT in this PR
orders.gdis provisional, pending the vocabulary issue.Open questions