Skip to content

Latest commit

 

History

History
50 lines (41 loc) · 2.34 KB

File metadata and controls

50 lines (41 loc) · 2.34 KB

Development Rules

Primary standard

Favour code a future human can follow over abstractions that merely look enterprise-ready. Keep names concrete, files focused, and dependency direction obvious.

Rules

  1. Keep Core independent of frameworks and persistence.
  2. Put implementation details behind Core-owned interfaces only when a real alternate implementation, external concern, or test seam justifies it.
  3. Keep ASP.NET endpoint code thin: validate HTTP input, call an application boundary, and return a response.
  4. Do not put SQL, database types, Razor components, or HttpClient in Core.
  5. Do not add a generic service, repository, event bus, mediator, or base class until duplicated real code proves the shared abstraction.
  6. Give extension contributions stable, namespaced IDs. Reject duplicate IDs; never silently overwrite a contribution.
  7. Add an extension API only after an in-tree feature has exercised it.
  8. Prefer ordinary HTTP request/response behavior for user operations. Do not require persistent browser connections unless the feature truly needs them.
  9. Keep mutable Universe state separate from reusable templates.
  10. Before adding a durable design decision, update docs/ in the same change.
  11. Prefer one set of shared visual primitives (world-shell, panel, item-list, form controls) over page-specific component styling. Use the platform's built-in HTML elements until a repeated interaction justifies a component.
  12. Never edit an applied SQLite migration. Append a new migration and test upgrading an existing database shape.
  13. Features own canonical state and Driver contracts. Drivers return typed proposals; Providers expose external capabilities. Neither may bypass Core validation or write canonical feature data directly.

Verification

Before considering code complete:

  1. build the solution;
  2. run Core, Infrastructure, and API integration tests when their behavior changes;
  3. smoke-test a changed HTTP or UI path when applicable;
  4. update relevant documentation;
  5. avoid leaving generated test databases or running local servers behind.

Documentation standard

Documents should record decisions and their reasons, not narrate every edit. When a decision changes, revise the old statement rather than accumulating contradictory historical instructions. Use version control for history.