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

51 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Stocks in the Future — system map
An edit map of this Rails app: what the nouns are, how they move, and what else moves
when you change one. **The app tree is the source of truth** — cards cite `path:line`
and never restate behaviour. Read a card, then read the source it points at.
Built on ICM: folders carry sequencing, hierarchy carries context, files carry state.
## Where things live
| Folder | What it holds |
|---|---|
| `objects/` | one card per noun, clustered by how an editor asks |
| `processes/` | the six movements that actually run |
| `effects/` | change-impact index — "changing X? open these cards" |
| `_meta/` | schema: the closed set of node types and labels |
| `_templates/` | blank object/process cards — a new card is a copy |
## Route by what you are doing
| If you are… | Go to | Then stop at |
|---|---|---|
| orienting cold | `CONTEXT.md` | universes + traps, then one card |
| asking "what is X?" | `objects/_index.md` | the one card it names |
| asking "how does X happen?" | `processes/CONTEXT.md` | the one movement card |
| about to change something | `effects/CONTEXT.md` | the cards it lists |
| checking coverage | `objects/_index.md` | `status:` column |
## Names that collide
Read this table before editing. Full detail and citations: `CONTEXT.md`.
| You will hear | It actually is |
|---|---|
| "SIF dollars" | `portfolio_transactions.amount_cents` — integer cents, no `Money` type |
| "balance" | derived, never stored. `portfolios` has **no cash column** |
| "grade" | two things: `Grade` = level 5–8; `GradeEntry#math_grade` = letter `"A+"`..`"F"` |
| "admin" | a boolean column, **not** an STI type. Only `Student`/`Teacher` are types |
| "log in" | by `username`, **not** email |
| "the student's classroom" | two rival paths: `users.classroom_id` **and** `classroom_enrollments` |
| "Stocks for Good" | same app. Code says `StocksInTheFuture` |
## The one rule
A card may be wrong; the source cannot. If a card and the code disagree, the code wins —
fix the card the same day and set `status: stale` if you cannot.
---
`AGENTS.md` and `routing.md` are generated copies of this file. Never hand-edit them —
edit `CLAUDE.md` and run `_meta/sync-twins.sh`.