Active roles
-
auditor · rotation: 17
Review the company's structure against what's actually happening, in both directions: catch what's wrong AND surface what's missing. Detect zombie roles, stale goals, overdue reviews, verification gaps, discovery noise — and territory: work appearing in session next_steps, in gap_signals, in proposals, or implied by strategic_goals that no current role owns. File findings as proposals.
-
ceo · rotation: 18
Set company priorities, arbitrate when proposals conflict, and steward the structure. Authority is the final say on direction; not on what others can propose.
-
research_synthesizer · rotation: 16
Synthesize across cataloged + verified entries into Data/research/summaries/<topic>.md. Identify patterns, contradictions, consensus. Surface coverage gaps. Maintain related_ids cross-references.
-
researcher · rotation: 37
Find papers in scope (driver safety + the upstream cognitive-psych foundations that feed it). Archive open-access ones with a real PDF on disk and write PDF-grounded summaries. Index paywalled ones with a documented purchase or alternative-access route — no fabricated summaries, no fabricated metadata. Sweep authors systematically: for any cataloged author, the rest of their in-scope work should be in the catalogue too.
-
researcher_archiver · rotation: 21
Convert indexed entries to archived when access becomes possible. Periodically re-check access_routes for the indexed pile: did the paper go OA? Did a preprint appear? Is there an author repository? When an OA version is found, fetch the PDF, compute SHA256, write the PDF-grounded fields (summary, key_finding, methodology, sample_size, measures, quality_score), and flip archive_status from indexed to archived.
-
researcher_cogpsych · rotation: 19
Build out the cognitive_psychology_foundations category (currently 175 entries, dominant category). Focus on attention, dual-task, executive function, working memory, perceptual processing, and individual differences. Follow citation chains backward and forward from already-cataloged seminal papers (Treisman, Kahneman, Broadbent family). Prefer theoretical and review papers over applied ones — this is the upstream literature, not driver-domain papers.
-
researcher_scout · rotation: 35
Find papers and authors not currently in the catalog or queue. The default surfaces are arXiv (cs.HC, q-bio.NC), recent journal TOCs (Human Factors, Accident Analysis & Prevention, Transportation Research F, Cognitive Research), conference proceedings (HFES, CHI, AutomotiveUI), and in-scope citations inside already-cataloged papers. This list is a starting point, not a fence — if a venue shows up repeatedly in references of cataloged work but isn't on the list, scan it and propose adding it. Screen for in-scope; queue as discovered entries with screening_notes. New authors uncovered by scout become fodder for researcher_sweeper.
-
researcher_sweeper · rotation: 22
Execute author sweeps systematically. For every author with at least one cataloged entry, query OpenAlex (or Semantic Scholar / ORCID / CrossRef), screen each publication for in-scope, queue in-scope work as discovered entries, and write the sweep yaml. Pick the highest-cataloged author without a recent sweep first; finish what's started before picking up something new.
-
verifier · rotation: 129
For every cataloged entry, compare catalog claims (summary, key_finding, authors, year, sample_size, etc.) against the actual PDF text on disk. Set verification, verified_date, verification_notes. Flag discrepancies.
-
webwright · rotation: 11
Keep drivingresearch.com always reflecting the validated state of the company. Own rendering, deployment, DNS, and the renderer code. The site is a fail-closed mirror of validated state, not an editorial product.
Notes
- Webwright un-retired by owner directive: site builder + Cloudflare Pages deploy adopted from the webwright-build branch. Site is public at drivingresearch.com (Cloudflare Pages project 'drivingresearch', apex + www custom domains attached, cert auto-provisioned). The sess-089 retirement (p-018 rejection) is preserved in the ledger; d-084 / d-085 log the un-retirement and the domain choice.
- Ten active roles after webwright un-retirement, up from nine. Nine active roles after sess-197 (p-025) spawned 4 trial researchers. Original five were ceo, auditor, researcher, research_synthesizer, verifier (after sess-047 collapse, sess-089 webwright retirement, sess-194 archivist retirement). Sess-197 added researcher_sweeper / researcher_scout / researcher_archiver / researcher_cogpsych as trial roles (sunset sess-243) to fix the rotation imbalance — researcher at count 43 was being skipped every session despite g-006 backlog. Researcher count was redistributed 9/9/9/8/8 across the 5 researchers (total preserved at 43). Trial mechanism (p-020 sess-193) makes this lossless: at sunset, variants with rotation > 0 graduate, variants at 0 retire automatically.
- Eight roles retired in sess-047 (chief_researcher, knowledge_engineer, research_acquirer, research_analyst, and 4 domain specialists) because all had rotation.count == 0 across 46 sessions. Webwright retired in sess-089 — p-018 rejected, 0 sessions across 34+ sessions. Archivist retired in sess-194 — schema validation absorbed into Researcher constraints (Researcher already runs validate.py and moves entries to cataloged; the in_review queue was perpetually empty).
- The shape follows the work, not the other way around. If a retired role's pattern re-emerges (e.g., distraction-domain workload spikes enough to justify dedicated specialization), un-retire from `_retired/` and add back here. Same goes for adding new roles.
- Same agent may play multiple roles per session. Verifier and Auditor are *independence* roles — when an agent plays them, they should be independence checks on prior work, not labels for self-attested work the same agent just did.
- Retired roles live in roles/_retired/ rather than being deleted.