convert pdf to md, add OVERVIEW and docs

This commit is contained in:
2026-08-17 22:30:18 +00:00
parent 95d5787868
commit 4df62d2609
44 changed files with 3307 additions and 1 deletions

View File

@@ -0,0 +1,48 @@
# 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.