What is the work
Build the format-aware intake lane that converts structured input or messy pasted text into editable source items for the Events Roundup format.
Planned areas:
lib/intake/
convex/intake.ts
docs/agent-guidance/events-roundup-intake.md
tests/fixtures/intake/
lib/intake/*.test.ts
convex/intake.test.ts
Why does it matter
This is the automation lane that removes repetitive Canva-era content loading. It must make messy local event information structured and reviewable without silently inventing facts.
What does done mean
- Structured event-like input becomes source item candidates.
- Messy pasted text becomes candidate source items with review notes.
- Ambiguous or missing facts are flagged, not guessed silently.
- Intake runs are persisted separately from approved source items.
- Agent guidance exists as product-owned documentation/config, not hidden ad hoc prompts.
Acceptance criteria
Blockers
What can make this fail
- The intake lane outputs final slides instead of reviewable source items.
- The parser is not format-aware and starts guessing generic fields.
- Agent guidance is buried in implementation code with no reusable editorial rules.
- Tests depend on a live AI provider instead of deterministic fixtures/mocks.
How should Codex verify it
- Run intake unit tests with structured and messy fixtures.
- Run Convex intake tests for persisted intake runs and review states.
- Include fixtures for ambiguity, missing fields, and unrelated paste.
- Confirm no unreviewed intake result can become an approved slide path.
What is the work
Build the format-aware intake lane that converts structured input or messy pasted text into editable source items for the Events Roundup format.
Planned areas:
lib/intake/convex/intake.tsdocs/agent-guidance/events-roundup-intake.mdtests/fixtures/intake/lib/intake/*.test.tsconvex/intake.test.tsWhy does it matter
This is the automation lane that removes repetitive Canva-era content loading. It must make messy local event information structured and reviewable without silently inventing facts.
What does done mean
Acceptance criteria
Blockers
What can make this fail
How should Codex verify it