Don
fa9acc85ac
NEO-91: migrate combat targets to three NPC instances
...
Replace alpha/beta dummies with PrototypeNpcRegistry (melee/ranged/elite),
per-archetype max HP from INpcBehaviorDefinitionRegistry, and updated
server tests + Bruno smokes. Documents breaking client change for NEO-97.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-26 23:42:31 -04:00
VinPropane
48535f6bc2
NEO-90: address code review doc tracking gaps.
...
Extend module register and E5.M2 Linear row with NEO-90 HTTP projection;
add Rules cross-link; strike through resolved review items.
2026-05-25 17:50:35 -04:00
VinPropane
d3e765fb8f
NEO-90: add GET /game/world/npc-behavior-definitions projection.
...
Expose read-only npcBehaviors envelope backed by INpcBehaviorDefinitionRegistry,
with integration tests, Bruno smoke, and doc reconciliation.
2026-05-25 17:49:01 -04:00
VinPropane
3134bb6ff6
NEO-89: Address code review — E5.M2 module doc and case-id test.
2026-05-25 17:28:46 -04:00
VinPropane
e25b1406c7
NEO-89: Reconcile plan, backlog, and module docs for NPC registry.
2026-05-25 17:27:17 -04:00
VinPropane
ba776b9b33
NEO-88: Address code review doc gaps for E5.M2 tracking.
...
Extend module register E5.M2 note and freeze Rules with NEO-88 server
startup enforcement; strike through resolved review suggestions.
2026-05-25 17:11:22 -04:00
VinPropane
c56ad22f6f
NEO-88: Reconcile plan, backlog, and module docs for server NPC load.
...
Mark E5M2-02 acceptance complete and update alignment register with
NEO-88 server catalog load landing notes.
2026-05-25 17:08:40 -04:00
VinPropane
6fd9694ff4
NEO-87: ship prototype NpcBehaviorDef catalog, schema, and CI gates.
...
Add three frozen archetype rows under content/npc-behaviors with E5M2
allowlist validation, leash>aggro guard, and module doc freeze updates.
2026-05-25 16:53:55 -04:00
VinPropane
7951a6c148
chore: Decompose E5.M2 prototype backlog and tracking docs.
...
Add E5M2-prototype-backlog (NEO-87–NEO-98), update module register and
alignment for Slice 2 NPC archetypes and telegraphs, and mark E5.M1 Ready.
2026-05-25 14:18:26 -04:00
VinPropane
8d4c048bbe
NEO-86: Address code review test gaps and doc alignment.
...
Promote E5.M1 to Ready in alignment register, fix NEO-85 README link,
add schema-mismatch and deny-path GdUnit cases; strike review suggestions.
2026-05-25 14:01:54 -04:00
VinPropane
b97cace625
NEO-86: Add capstone manual QA, README, and module doc reconciliation.
...
Documents end-to-end Godot combat loop, marks E5M1-12 landed, and updates
E5.M1 alignment rows for Epic 5 Slice 1 client capstone complete.
2026-05-25 13:59:31 -04:00
VinPropane
504d3228dd
NEO-85: Address code review doc sync and 404 test gap.
...
Update module dependency register and E5.M1 related-slices entry for
NEO-85 landed; add combat-targets HTTP 404 GdUnit case; strike review suggestions.
2026-05-25 13:17:47 -04:00
VinPropane
faf3fe1139
NEO-85: Add manual QA, README, and module doc reconciliation.
...
Mark E5M1-11 acceptance complete in backlog and alignment register.
2026-05-25 13:15:59 -04:00
VinPropane
3cbbcb6c2f
NEO-84: Address code review — register sync and hook comment parity.
...
Append NEO-44/NEO-84 to E5.M1 dependency register note, fix E2.M2 NEO-44
status, and add playerId correlation hint on damage-path ability_used hook.
2026-05-25 13:06:04 -04:00
VinPropane
667a1a960a
NEO-84: Add combat telemetry hook sites in CombatOperations.
...
Comment-only ability_used, enemy_defeat, and reserved encounter_start/player_death
markers; README and module docs updated. All 407 server tests pass.
2026-05-25 13:04:11 -04:00
VinPropane
9d9b53332f
NEO-44: Address code review — docs, debug log, Bruno playerId.
...
Update E5.M1/E2.M2 module docs for gig XP path; LogDebug on failed
gig store write; Bruno defeat spine uses {{playerId}}; strike review items.
2026-05-25 12:08:21 -04:00
VinPropane
71a6761f3c
NEO-44: Grant gig XP on combat defeat via dedicated store.
...
Add IPlayerGigProgressionStore (in-memory + Postgres V007), GET
/gig-progression snapshot, and CombatDefeatGigXpGrant on cast accept
when targetDefeated — 25 XP to breach, outside E2.M2 skill XP.
Includes tests, Bruno, README, manual QA, and plan reconciliation.
2026-05-25 12:04:40 -04:00
VinPropane
52b1d4d206
NEO-83: Add GET /game/world/combat-targets HP snapshot.
...
Wire CombatTargetsWorldApi backed by ICombatEntityHealthStore, Bruno happy + cast defeat spine, integration tests, README and module tracking docs.
2026-05-25 11:20:13 -04:00
VinPropane
322798b2ef
NEO-82: Address code review doc sync and test AAA follow-ups.
...
Update E5.M1 module doc, dependency register, and alignment table for
NEO-82 landed; Bruno defeat spine HP stepping; refactor four-pulse cast
test Arrange/Act/Assert; strike through resolved review items.
2026-05-25 10:45:31 -04:00
VinPropane
e8be100f80
NEO-82: Wire cast POST into combat engine and cast response.
...
Invoke CombatOperations.TryResolve after E1 gates; nested combatResolution
on accept; per-ability catalog cooldown; target_defeated deny without
cooldown. Tests, Bruno defeat spine, README and module docs updated.
2026-05-25 10:36:42 -04:00
VinPropane
c7aa75ebc5
NEO-81: Address code review doc sync and test follow-ups.
...
Update module tracking and E5M1 backlog for NEO-81 landed; tighten AAA
in four-pulse test, add guard/dash deny parity and dash smoke test.
2026-05-25 10:20:09 -04:00
VinPropane
bfb0eb9306
NEO-80: Address code review follow-ups for health store.
2026-05-24 22:42:33 -04:00
VinPropane
94b6c67b07
NEO-78: Address code review follow-ups for ability-definitions GET.
...
Update dependency register and E5M1 backlog, tighten tests and Bruno
spot-checks, strike through resolved review items.
2026-05-24 22:26:54 -04:00
VinPropane
44e0056b37
NEO-78: Add GET /game/world/ability-definitions HTTP projection.
...
Expose versioned read-only ability catalog via IAbilityDefinitionRegistry,
with integration tests, Bruno folder, and docs alignment.
2026-05-24 22:22:48 -04:00
VinPropane
0e5bbbff2e
NEO-79: Address code review — docs alignment, null-safe TryNormalizeKnown.
...
Update E5.M1 module page, dependency register, and alignment table for
NEO-79 landed; reconcile plan Bruno note; strike through review findings.
2026-05-24 22:07:37 -04:00
VinPropane
fd2ffee089
NEO-77: Address code review — Bruno folder, E5M1 gate test, docs.
...
Add ability-catalog folder.bru, extra-id E5M1 gate AAA test, dependency
register NEO-77 note, and strike through resolved review suggestions.
2026-05-24 21:44:02 -04:00
VinPropane
7c2697e4cc
NEO-77: Reconcile plan and module docs for E5M1-02 server load.
2026-05-24 21:40:58 -04:00
VinPropane
866f962583
NEO-76: Fix review findings — duplicate ability row and docs.
...
Remove stray prototype_pulse from catalog; restore Epic 5 table layout,
align E5.M1 In Progress status, and close out code review doc.
2026-05-24 21:17:07 -04:00
VinPropane
9b11a521d8
NEO-76: Add prototype ability catalog, schema, and CI gates.
...
Freeze four AbilityDef rows in content with validate_content E5M1
allowlist; document freeze in E5.M1, content README, and CT.M1.
2026-05-24 21:08:16 -04:00
VinPropane
510d71113b
NEO-76: decompose E5.M1 prototype backlog (NEO-76–NEO-86, NEO-44).
...
Add full-stack Epic 5 Slice 1 story backlog with Linear issues, blockedBy
graph, and module/epic register cross-links.
2026-05-24 21:02:07 -04:00
VinPropane
7695527a79
NEO-75: address code review doc consistency findings
...
Update E3.M1/M3 status rows, epic Slice 5 completion note, README HUD
paths, E3S5-04 collapse AC, and strike through resolved review items.
2026-05-24 20:35:32 -04:00
VinPropane
977bcc3b27
NEO-75: capstone manual QA, README loop docs, alignment
...
Add zero-Bruno gather→refine→make checklist, end-to-end README section,
and mark Epic 3 Slice 5 client capstone complete in module docs.
2026-05-24 20:33:51 -04:00
VinPropane
c16b610468
NEO-74: Implement client craft UI, recipe list, and tests.
...
Add recipe-definitions and craft HTTP clients, scrollable recipe panel with
Craft buttons, CraftFeedbackLabel, refine skill HUD row, GdUnit coverage,
manual QA, and plan/module doc reconciliation.
2026-05-24 19:56:38 -04:00
VinPropane
434226a069
NEO-73: address code review follow-ups.
...
Emit interaction_request_failed to clear stale gather pending flag;
add deny/HTTP failure tests; update alignment docs and review file.
2026-05-24 19:09:36 -04:00
VinPropane
e7a61a1b3f
NEO-72: fix HTTP client header types and strengthen tests.
...
Use PackedStringArray for request_completed headers so handlers run;
assert inventory payload shape and display_name_for after sync per review.
2026-05-24 18:43:39 -04:00
VinPropane
8e44d81537
NEO-72: reconcile plan, E3S5 backlog, and module alignment docs.
...
Mark acceptance criteria complete and document landed client inventory HUD.
2026-05-24 18:41:24 -04:00
VinPropane
2d4751021b
NEO-71: add craft telemetry hook comment sites and docs
...
Place item_crafted and craft_failed TODO(E9.M1) anchors in
CraftOperations.TryCraft; document in server README and mark E3.M2
Slice 3 server backlog complete.
2026-05-24 18:23:35 -04:00
VinPropane
46393b8ca5
NEO-70: Add craft POST HTTP, Bruno spine, and docs.
...
Wire POST /game/players/{id}/craft to CraftOperations with CraftResponse DTOs,
integration tests, gather→refine→make Bruno folder, and module/README updates.
2026-05-24 17:57:55 -04:00
VinPropane
51e9f1f5d0
NEO-69: Address code review findings for craft engine.
...
Fix AAA test layout, add batch quantity and simulate-add tests, restore
partial input rollback, and bump E3.M2 register status to In Progress.
2026-05-24 17:18:52 -04:00
VinPropane
308de6b50d
NEO-69: Document craft engine and mark E3M2-05 acceptance complete.
...
Updates server README, module snapshot, alignment register, and backlog
after CraftOperations lands with full automated test coverage.
2026-05-24 17:17:01 -04:00
VinPropane
529cb616f5
NEO-68: Update docs and strike through code review findings.
...
Mark E3M2-04 landed, refresh alignment register and README, reconcile plan AC.
2026-05-24 17:08:18 -04:00
VinPropane
81b0e3fc4b
NEO-67: add IRecipeDefinitionRegistry and DI adapter
...
Thin registry over RecipeDefinitionCatalog mirrors NEO-52/59: TryGetDefinition,
GetDefinitionsInIdOrder, AAA unit/host tests, README and alignment doc updates.
2026-05-24 16:57:17 -04:00
VinPropane
f209636e7e
NEO-66: Fail-fast server recipe catalog load at startup.
...
Add Game/Crafting loader, Slice 3 gate rules, DI registration, and AAA tests
mirroring item/resource-node catalog patterns; cross-check item and skill ids.
2026-05-24 16:41:48 -04:00
VinPropane
d4a4795eb1
NEO-65: Address code review doc alignment and NEO-66 sync note.
...
Bump E3.M2 module status to In Progress with NEO-65 snapshot; add
PROTOTYPE_SLICE3_RECIPE_IDS kickoff reminder for E3M2-02; strike through
resolved review suggestions.
2026-05-24 16:25:49 -04:00
VinPropane
b4f27b4a18
NEO-65: Document recipe catalog CI and mark E3M2-01 complete.
...
Update CT.M1 PR gate, E3.M2 freeze rules, alignment register, and backlog
checkboxes after prototype recipe validation lands.
2026-05-24 16:21:46 -04:00
VinPropane
2cd17e293a
chore: Epic 3 Slice 5 client backlog and full-stack epic policy
...
Add E3S5-client-prototype-backlog (NEO-72–NEO-75), epic_03 Slice 5,
full-stack epics rule in decomposition README, and cross-links from
E3 module docs and prototype backlogs.
2026-05-24 16:16:51 -04:00
VinPropane
458e9b10e8
NEO-65: E3.M2 Slice 3 decomposition backlog and freeze docs
...
Add E3M2 prototype backlog (NEO-65–NEO-71), eight-recipe freeze table,
content/README Slice 3 CI note, and cross-links in alignment/decomposition docs.
2026-05-24 16:09:50 -04:00
VinPropane
a578d9b684
NEO-64: address code review follow-ups.
...
Nest gather_node_depleted hook in remainingGathers == 0 guard,
add E3M1-08 deny-branch out-of-scope note, and give README NEO-64
its own subsection anchor.
2026-05-24 16:00:02 -04:00
VinPropane
847cda97a3
NEO-64: add gather telemetry hook sites and doc updates.
...
Comment-only resource_gathered and gather_node_depleted anchors in
GatherOperations.TryGather; README, module docs, manual QA, and E3.M1
backlog marked complete.
2026-05-24 15:58:29 -04:00
VinPropane
01dc48a50a
NEO-63: add plan, manual QA, and doc updates.
...
README gather-via-interact section; E3.M1 anchor coords; backlog landed.
2026-05-24 15:44:15 -04:00
VinPropane
f58ab4a2eb
NEO-62: update docs for gather engine landing.
...
README, E3.M1 module doc, alignment table, backlog checkboxes.
2026-05-24 15:41:28 -04:00
VinPropane
0cc5bb8925
NEO-61: address code review follow-ups.
...
Fix AAA layout in depletion tests, add ResourceNodeInstanceIds.Normalize,
throw on failed lazy-init after catalog hit, and update dependency register
footnote plus review doc strikethroughs.
2026-05-24 15:15:25 -04:00
VinPropane
6d2d3c040a
NEO-61: add world node instance depletion store.
...
Split IResourceNodeInstanceStore + ResourceNodeInstanceOperations with
lazy init from catalog maxGathers, atomic decrement, node_depleted and
unknown_node reason codes, V006 Postgres migration, and parity tests.
2026-05-24 15:03:05 -04:00
VinPropane
2b66df86b8
NEO-60: address code review — register footnote and Bruno comment
...
Extend E3.M1 dependency register note with NEO-57–NEO-60 landed slices;
add StringComparer.Ordinal comment to Bruno ordinal test for parity.
2026-05-24 14:49:15 -04:00
VinPropane
97f8f31682
NEO-60: add GET /game/world/resource-node-definitions endpoint
...
Versioned read-only projection backed by IResourceNodeDefinitionRegistry
with nested yield DTOs, integration test, Bruno, manual QA, and docs.
2026-05-24 14:47:23 -04:00
VinPropane
01dec2b6c8
NEO-59: document registry in README, alignment, and backlog
...
Mark acceptance criteria complete in the implementation plan.
2026-05-24 14:26:23 -04:00
VinPropane
0384b63046
NEO-58: add fail-fast resource-node catalog load at startup
...
Loader, Slice 2 gates, DI registration, AAA tests, README and plan updates.
Cross-checks yield itemIds against ItemDefinitionCatalog loaded first.
2026-05-24 14:01:29 -04:00
VinPropane
fba6bff24f
NEO-57: align E3.M1 contract table with two-file content layout
...
Update illustrative fields to match landed node + yield row schemas.
2026-05-24 13:54:42 -04:00
VinPropane
b68d74b0b8
NEO-57: add prototype resource node catalogs, schemas, and CI gates
...
Four frozen ResourceNodeDef rows and per-node yield tables under
content/resource-nodes/ with JSON Schema validation and Slice 2 gates
(four nodeDefIds, gatherLens coverage, scrap_metal_bulk yields only).
2026-05-24 13:49:47 -04:00
VinPropane
17daf9a9ca
NEO-57: merge E3.M1 Slice 2 decomposition docs
...
Bring E3M1-prototype-backlog, E3.M1 freeze table, and register notes
from chore/e3m1-slice2-decomposition onto the story branch.
2026-05-24 13:47:55 -04:00
VinPropane
011289a154
chore: decompose E3.M1 Slice 2 gather backlog (NEO-57–64)
...
Epic 3 Slice 2 follows completed E3.M3 inventory work: eight-story
backlog, expanded module doc, register note, and Linear issues for
resource nodes, yields, depletion, and gather integration.
2026-05-24 13:43:23 -04:00
VinPropane
deed0c4314
NEO-56: address code review follow-ups
...
Extend E3.M3 dependency register footnote; expand post-mutation deny hook
comments; clarify Deny payload at call sites; strike review items Done.
2026-05-24 13:40:12 -04:00
VinPropane
dc5141ed03
NEO-56: add inventory telemetry hook comment sites
...
item_created on successful TryAddStack; inventory_transfer_denied on
all Denied paths. README, module docs, manual QA, plan ACs updated.
2026-05-24 13:32:21 -04:00
VinPropane
fddbb95a45
NEO-55: address code review suggestions for inventory HTTP
...
Add remove round-trip and invalid_quantity API tests, Bruno remove request,
dependency register NEO-55 footnote, and strike-through review follow-ups.
2026-05-23 22:51:59 -04:00
VinPropane
69327f50b4
NEO-55: player inventory GET/POST HTTP, Bruno, and docs
...
Versioned snapshot read and mutationKind add/remove POST backed by
PlayerInventoryOperations; AAA API tests; Bruno happy path + deny case.
2026-05-23 22:45:27 -04:00
VinPropane
ac3900c194
NEO-54: address code review suggestions for inventory tests and docs
2026-05-23 19:31:26 -04:00
VinPropane
01e391b03a
NEO-54: player inventory store, stack/slot rules engine, and tests
2026-05-23 19:26:57 -04:00
VinPropane
52590fa749
NEO-53: address code review suggestions
...
Register footnote NEO-53, Bruno exact id-order test, test indent fix,
review doc strikethroughs.
2026-05-23 19:12:20 -04:00
VinPropane
08428c4da4
NEO-53: GET world item-definitions, Bruno, docs, and tests
...
Registry-backed read model at /game/world/item-definitions; Bruno
collection, manual QA checklist, README and module alignment updates.
2026-05-23 19:09:46 -04:00
VinPropane
0d904527ac
NEO-52: address code review doc suggestions for registry
...
Add NEO-52 registry bullet to E3.M3 module doc, extend dependency
register footnote, and mark review suggestions done.
2026-05-23 18:17:27 -04:00
VinPropane
792b38d8a9
NEO-52: add IItemDefinitionRegistry with DI and lookup tests
...
Thin adapter over ItemDefinitionCatalog mirroring NEO-35 skill registry;
registers singleton in AddItemDefinitionCatalog with TryGetDefinition,
GetDefinitionsInIdOrder, and AAA unit + host DI tests.
2026-05-23 18:11:33 -04:00
VinPropane
38f0c56711
NEO-51: Address code review — tests, docs, review strikethroughs.
...
Add Slice 1 role/stackMax and missing-path loader tests; E3.M3 server
load bullet; register footnote; host test temp-dir cleanup.
2026-05-17 22:04:03 -04:00
VinPropane
d23f6dd8ab
NEO-51: Document item catalog boot and mark plan complete.
...
README, alignment register, and acceptance checklist updated.
2026-05-17 21:56:12 -04:00
VinPropane
bbc6b20fd3
NEO-50: Document frozen prototype item spine and update alignment.
2026-05-17 21:25:06 -04:00
VinPropane
56233bfe2c
NEO-50: Add E3.M3 prototype backlog and decomposition doc links.
...
Documents Epic 3 Slice 1 story order (NEO-50–NEO-56), frozen prototype item ids,
and register/module pointers for ItemizationAndInventorySchema.
2026-05-17 21:15:42 -04:00
VinPropane
39c54c3881
NEO-48: perk-state HTTP, Bruno, tests, and docs
...
GET/POST /game/players/{id}/perk-state with versioned JSON, engine-backed
branch selection, PerkStateApiTests, Bruno collection, README, and E2.M3 alignment.
2026-05-17 20:10:31 -04:00
VinPropane
5058bc1963
NEO-49: address code review follow-ups for telemetry hooks
2026-05-17 19:21:21 -04:00
VinPropane
38ef54c238
NEO-49: document perk_unlock hook sites in README, module, and manual QA
2026-05-17 19:10:14 -04:00
VinPropane
0a2a6fe45b
NEO-47: address code review follow-ups for perk unlock engine
...
Retroactive path-auto unlock on branch pick, unlock rollback, CanWritePlayer
gate, expanded deny tests, gather-hook smoke, decomposition docs, review strikethroughs.
2026-05-17 18:45:11 -04:00
VinPropane
07fc566e2c
NEO-46: address code review follow-up.
...
Add loader deny-path and registry enumeration tests, tierIndex 1..N gate
in validate_content.py, E2.M3 handoff doc update, and review strikethroughs.
2026-05-17 18:12:39 -04:00
VinPropane
174c390aa4
NEO-46: fail-fast mastery catalog load at server startup.
...
Mirror validate_content.py gates in MasteryCatalogLoader, expose IMasteryCatalogRegistry, cross-check skillIds against the skill catalog, and enforce tierIndex 1..N per track.
2026-05-17 18:06:50 -04:00
VinPropane
594287c199
NEO-45: address docs review suggestions for E2.M3 Slice 4.
...
Expand data contract and NEO-46 handoff, gigs.md gig-mastery clarification,
acceptance footnote, and mark docs review items Done.
2026-05-17 13:16:49 -04:00
VinPropane
4a9730c577
NEO-45: address code review doc alignment and CI nits.
...
Align E2.M3 In Progress status, backlog checkboxes, perks map doc;
reject unreferenced PerkDef rows; tier-2 branch displayNames; review Done.
2026-05-16 20:05:51 -04:00
VinPropane
f5f04d8258
NEO-45: lock prototype salvage mastery catalog, schemas, and CI.
...
Add mastery JSON schema and salvage-only Slice 4 catalog with tier/branch
freeze; extend validate_content.py for skillId, perkId, and branch gates;
update E2.M3 decomposition, content README, and implementation plan.
2026-05-16 19:50:09 -04:00
VinPropane
0b16de6d6f
NEO-43: close code review doc follow-ups (alignment + E7 status)
2026-05-15 20:36:08 -04:00
VinPropane
2af9b1c011
NEO-43: mission reward skill XP grant helper and docs
2026-05-15 20:30:43 -04:00
VinPropane
caa400f43d
NEO-42: address review — decomposition docs, plan AC, grant helper, test assert
2026-05-10 19:46:49 -04:00
VinPropane
29a6c6d1a7
NEO-41: address code review (E3.M1 status, deny-path test)
2026-05-10 19:13:56 -04:00
VinPropane
c1e77280e3
NEO-41: grant salvage activity XP on resource_node interact
2026-05-10 19:10:35 -04:00
VinPropane
35b666ed60
NEO-40: sync E2.M2 alignment doc; close review feedback
2026-05-10 18:54:17 -04:00
VinPropane
effd234ee3
NEO-40: add progression telemetry hook comment sites
2026-05-10 18:49:40 -04:00
VinPropane
236040a5c2
NEO-39: add data-driven level curve with startup schema validation
...
Replace placeholder XP level math with content-backed thresholds validated in CI and at server boot, and update docs/manual QA/review artifacts to reflect NEO-39 delivery and follow-up fixes.
2026-05-06 23:10:06 -04:00
VinPropane
b2999f3ed9
NEO-38: address review — docs alignment, Bruno deny, README levelUps trim
2026-05-06 22:26:23 -04:00
VinPropane
295eb34c68
NEO-37: reconcile decomposition docs + review feedback
2026-05-06 21:51:44 -04:00
VinPropane
4236d1ec00
chore: link E2.M2 backlog to Linear NEO-37–NEO-44
2026-05-04 20:57:01 -04:00
VinPropane
a0c3599525
NEO-36: address code review (manual QA header, alignment, README, Bruno)
2026-05-04 20:44:52 -04:00
VinPropane
035e915934
NEO-35: address NEO-35 code review (AAA, docs, null id, cleanup)
2026-05-04 19:53:53 -04:00
VinPropane
9da5e7dbf5
NEO-34: address code review follow-ups (docs, appsettings, AAA)
...
Update E2.M1 alignment table for landed catalog load; add Content placeholders
to appsettings.json; align implementation plan tests/appsettings notes; expand
manual QA header to project standard; strike review suggestions; tighten host
catalog test Arrange/Act/Assert.
2026-05-02 19:50:02 -04:00
VinPropane
9afaad71ca
NEO-33: Apply code review feedback (validate_content, E2.M1)
2026-05-02 19:27:28 -04:00
VinPropane
583201cc7c
NEO-33: Freeze prototype SkillDef trio in CI and docs
2026-05-02 19:23:47 -04:00