Skip to content
Fabrica

3.3.1Plan

Updated (this page's updates)

Planned. Has an outline, but is not yet written out.

What this section will cover

  • Planning one slice before an agent builds it
  • The more you settle in the plan, the less structural verification you need later: a plan that pins down the architecture, the boundaries, and the approach leaves less for review to catch
  • A common failure mode: getting impatient and telling the agent to "just get started already," which moves the hard thinking into verification, where it costs more
  • Capture a planning checklist as a Code Rules rule, so every plan gets checked against it, whether you run the check or the agent checks its own plan
  • Start a review checklist of what's "must review" and what's "nice to review"
    • Must review: layers, major data flows, schemas, and system vocabulary
    • Nice to review: function interfaces

Layer diagrams

  • Layer diagrams are super useful for planning and for PR reviews
  • They show each layer, what it's for, and which layers it may depend on, so you can see at a glance whether a plan or a change respects the architecture
  • For a PR, highlight the layers the change touches, such as the transport layer here
Layers of a typical serviceEntry points wire up a bootstrap layer, which builds an app facade. The transport layer calls the facade, which forwards each operation to a bounded context's use cases. Use cases rely on a store interface, which an SQL adapter implements, and the store depends on the domain, which imports nothing above it. The transport layer is highlighted as the layer a change touches. Platform A bounded context wires forwards constructs builds calls uses implements Entry pointsAPI server, desktop app Bootstrapopens the database, builds the facade App facadeone entry point for every operation TransportHTTP and RPC handlerschanged in this PR Composition rootconnection pool, adapters Use casesvalidate, authorize, orchestrate Storethe interface Store adapterthe SQL Domaintypes and invariants; imports nothing above

Suggest an edit to this page