Fill it in, slice 1: the recipes, to rate on the feedback site (#1328) #1354

Merged
claude-bot merged 4 commits from feat/1328-recipes into main 2026-11-06 21:03:46 +00:00
Collaborator

Slice 1 of #1328 "Fill it in": the reviewed recipe data and a rating page, the way the name generator was done (#1257). Nothing in webapp/ or bot/ changes.

  • static/fill-data.js: jobs first (141 jobs, each with its trades, a title per trade, lowest size, traits, relative chance); 23 trades (the 22 from Q227 plus Magic & enchantments, flagged magic) with sizes, headcount, who runs it, required jobs, name patterns on the rolled owner's name, what-it-does lines, place needs; general traits, secrets, wants, fears, rumours; value tables for the suggested facts (generic, pf2e, dnd5e).
  • static/fill-engine.js and static/companies.html: roll a company (trade or Surprise me, size or any, magic switch, name style), rate the trade up or down with a note.
  • Names engine split out of names.html into name-engine.js (a mechanical move) so both pages draw from the same generators.
  • app.py: companies store (PUT /api/responses/companies/<id>, strict document, same share keys and source labels), admin tab, GET /api/export-companies.csv.
  • Tests: tests/test_companies.py (store) and tests/fill_engine_check.js, run through node: every trade at every size it comes in is rolled 2,000 times and checked.

Not deployed. Needs a changelog-free review of the data by the owner.

🤖 Generated with Claude Code

Slice 1 of #1328 "Fill it in": the reviewed recipe data and a rating page, the way the name generator was done (#1257). Nothing in `webapp/` or `bot/` changes. - `static/fill-data.js`: jobs first (141 jobs, each with its trades, a title per trade, lowest size, traits, relative chance); 23 trades (the 22 from Q227 plus Magic & enchantments, flagged `magic`) with sizes, headcount, who runs it, required jobs, name patterns on the rolled owner's name, what-it-does lines, place needs; general traits, secrets, wants, fears, rumours; value tables for the suggested facts (generic, pf2e, dnd5e). - `static/fill-engine.js` and `static/companies.html`: roll a company (trade or Surprise me, size or any, magic switch, name style), rate the trade up or down with a note. - Names engine split out of `names.html` into `name-engine.js` (a mechanical move) so both pages draw from the same generators. - `app.py`: `companies` store (`PUT /api/responses/companies/<id>`, strict document, same share keys and source labels), admin tab, `GET /api/export-companies.csv`. - Tests: `tests/test_companies.py` (store) and `tests/fill_engine_check.js`, run through node: every trade at every size it comes in is rolled 2,000 times and checked. Not deployed. Needs a changelog-free review of the data by the owner. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
feat(feedback): Fill it in, slice 1: the recipes, to rate on the feedback site (#1328)
All checks were successful
CI / Backend lint (ruff) (pull_request) Successful in 35s
CI / Does this change touch the recording path? (pull_request) Successful in 22s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Has been skipped
CI / Bot/backend version sync (pull_request) Successful in 1m6s
CI / Bot tests and audit (pull_request) Successful in 2m9s
CI / Which journeys does this change need? (pull_request) Successful in 26s
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 2m41s
CI / Docker image build (pull_request) Successful in 2m23s
CI / End-to-end journeys (desktop) (pull_request) Has been skipped
CI / Frontend (shard 2/2) (pull_request) Successful in 9m33s
CI / Feedback site tests (pull_request) Successful in 4m12s
CI / Frontend (shard 1/2) (pull_request) Successful in 11m27s
CI / Backend migration, tests, and audit (pull_request) Successful in 45m31s
8916cb2321
Jobs-first recipe data (23 trades), a company roller page at /companies, a
companies rating store with admin readout and CSV, and an engine check that
rolls every trade and size 2,000 times. The names engine moves to
name-engine.js so both pages share it.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Author
Collaborator

Review notes (orchestrator), for the next round. Neither is blocking the owner's rating:

  1. In-laws share the owner's surname. In a large Carter & shipper roll, "Herwin Todwell, Factor at the coast, the owner's in-law" has the owner's surname. An in-law would usually have their own family name. Relatives by marriage (in-law, spouse's sibling) should draw their own surname, and blood relatives (cousin, sibling's child) keep the shared one. The engine check's "kin share the surname" rule needs the same split.
  2. The two what-it-does lines can say the same thing twice. "Barrel-staves along the coast… by cart and coaster" is followed by "Carries barrel-staves by road… and iron bars by water". Draw the second line from a different template group (who they serve, or how they're known) so the pair reads as two facts.

Not deployed. The feedback site gets this only on the owner's say.

**Review notes (orchestrator), for the next round. Neither is blocking the owner's rating:** 1. **In-laws share the owner's surname.** In a large Carter & shipper roll, "Herwin Todwell, Factor at the coast, the owner's in-law" has the owner's surname. An in-law would usually have their own family name. Relatives by marriage (in-law, spouse's sibling) should draw their own surname, and blood relatives (cousin, sibling's child) keep the shared one. The engine check's "kin share the surname" rule needs the same split. 2. **The two what-it-does lines can say the same thing twice.** "Barrel-staves along the coast… by cart and coaster" is followed by "Carries barrel-staves by road… and iron bars by water". Draw the second line from a different template group (who they serve, or how they're known) so the pair reads as two facts. Not deployed. The feedback site gets this only on the owner's say.
Sign in to join this conversation.
No description provided.