Seed the sample events at three sizes - #338
Open
EllAchE wants to merge 4 commits into
Open
Conversation
A seven-speaker demo cannot show what the review queue, the agenda grid or the speaker gallery do under load. These two pure modules are the input to that: three size profiles (small/medium/large, medium keeping the `demo` slug as the default) and an index-addressed generator for the people and proposals that fill them. Nothing is wired up yet.
`demo` keeps its slug and its hand-authored core and is filled out to the medium profile: 45 speakers, 96 proposals, a two-day grid across five rooms, and a review round with enough volume that the queue is worth sorting. The generated programme runs in two rooms the hand-written placements never touch, so the narrative agenda is untouched. `demo-small` and `demo-large` are the same conference at the other two scales, built from the shared form helpers rather than a third hand-written copy of the built-in field list. Generated identities are swept by domain on reseed, because the size profiles change and a name-by-name delete would strand accounts the next insert then collides with.
The two properties that matter are not enforced by any type: portrait ranges must not overlap between events, and generated addresses must be unique and undeliverable. Both fail in ways that only show up on a screen or halfway through a seed run, so they are asserted directly. Extends the existing publication invariants over `sized-roster.ts` — a gallery of forty invited speakers is exactly as empty as a gallery of seven.
README described two seeded events; there are now four, and which one is the default matters to anyone opening the app for the first time. Also extends the architecture note on undeliverable demo identities to name the generated domains, since that property is what the on-screen magic link hangs from.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
db/seeds/event-sizes.tsfor the profiles anddb/seeds/generated-roster.tsfor an index-addressed generator of the people and proposals that fill them.demokeeps its slug and its hand-authored core, and is filled out to the medium profile: 45 speakers, 96 proposals, a two-day grid across five rooms, and a review round with enough volume that sorting the queue is worth doing. The generated programme runs in two rooms the hand-written placements never touch, so the narrative agenda is unchanged.demo-smallanddemo-largeare the same conference at the other two scales, built from the shared form helpers rather than a third hand-written copy of the built-in field list.Test plan
db/seeds/event-sizes.test.tsasserts portrait ranges don't overlap between events — a property no type enforces, and one that otherwise only surfaces visually.db/seeds/generated-roster.test.tsasserts generated addresses are unique and undeliverable.db/seed-publication-invariants.test.tsextended oversized-roster.ts: a gallery of forty invited speakers is exactly as empty as a gallery of seven.docs/02-architecture.mdupdated — the README described two seeded events when there are now four, and the architecture note now names the generated domains, since the on-screen magic link hangs off that property.Provenance
Recovered from a local worktree during a cleanup sweep. These four commits existed only on one disk and had never been pushed; this PR is their first remote copy.
Agent Audit