Files
project-work/worker-toolkit-stocks-in-the-future/repo/docs/map/objects/CONTEXT.md

2.1 KiB

objects — the nouns

One job: hold one card per durable noun in the app, so an editor can answer what is this and what else moves without reading the model tree.

Inputs

  • Reference (every read): ../CONTEXT.md — universes and traps
  • Reference (every write): ../_meta/schema.md, ../_templates/object.md
  • Working: the app tree — app/models/, db/schema.rb, app/services/

Clusters

Clustered by how an editor asks, not by where the files sit.

Cluster The question it answers Cards
identity/ who is this person and what may they do user, student, teacher
org/ how are school, time, and roster shaped school, year, school-year, quarter, classroom, classroom-enrollment, grade-level
gradebook/ how is earning recorded grade-book, grade-entry
money/ where do SIF dollars live portfolio, portfolio-transaction, earnings-summary
trading/ what is bought and held stock, order, portfolio-stock, portfolio-position, portfolio-snapshot
announcement.md site-wide notices (singleton, unclustered) announcement

Pure join tables with no behaviour of their own — teacher_classrooms, classroom_grades — do not get cards. They are described inside the parents they join. classroom-enrollment does get a card: it carries primary/unenroll behaviour.

Process

  1. Copy ../_templates/object.md. Never start from a blank page.
  2. Fill Shape from the source, citing path:line. Prefer db/schema.rb for columns and the model for behaviour.
  3. Fill If you change this as Hits / Does not hit, first-order only. "Does not hit" must name the obvious next noun that is the wrong one — that line is the whole value of the card.
  4. Set status: verified only with a date, a commit, and citations in the body.
  5. Run ../_meta/build-index.sh.

Outputs

  • One card per noun, in its cluster folder
  • _index.md — regenerated, never hand-edited

Human check

Pick one card you did not write. Follow its first citation into the app tree. If the line it lands on does not state the claim, the card is wrong — fix the card, not the citation.