Skip to content

feat(loops): add research loop skeleton#97

Merged
ncolesummers merged 5 commits into
mainfrom
codex/43-research-loop-skeleton
Jul 22, 2026
Merged

feat(loops): add research loop skeleton#97
ncolesummers merged 5 commits into
mainfrom
codex/43-research-loop-skeleton

Conversation

@ncolesummers

Copy link
Copy Markdown
Owner

Summary

  • add a durable, fixture-backed research-loop with planning -> researching -> authoring -> done
  • route spike + agent-ready webhook deliveries to research-specific simulated, durable, and disabled no-op outcomes
  • expose the research skeleton through the neutral root orchestrator, portal fixtures, persisted run projection, Storybook, telemetry, and durable documentation

Closes #43.

Why

Loopworks had a development-specific durable path but no second loop shape proving that the orchestration, webhook, persistence, and portal contracts were genuinely loop-neutral. This slice establishes the research actor and artifact boundaries without pulling forward the Eve subagents, live fan-out, provider evals, or versioned research payload schemas owned by #44-#46.

Contract

Stage Actor Timeline Artifact
planning research-planner planning Research plan
researching researcher research One findings placeholder per subquestion from isolated child sessions
authoring research-author authoring Research document
done loopworks done Completion summary

The implementation persists four run steps and four artifact placeholders using the existing schema. Delivery idempotency is scoped to research-loop; disabled research triggers persist research_loop_noop and never create development no-op events. Raw issue bodies and artifact content are excluded from telemetry.

Review focus

  1. Check the transactional idempotency lock in src/lib/loops/research-run.ts, especially concurrent delivery behavior.
  2. Confirm the manifest and webhook action sets cannot drift and that development responses remain unchanged.
  3. Verify the neutral root fails closed for research stages until Research planner subagent #44-Research author subagent #46 declare their actors.
  4. Inspect persisted-to-portal projection of researching and authoring; the fixture and database paths should render identically.

Validation

  • bun run validate
  • bun run build
  • bunx eve info
  • focused research-loop, manifest, observability, webhook, PGlite, routing, portal, and run-record tests
  • two independent adversarial reviews; concurrency idempotency, manifest/action drift, and persisted timeline projection findings were fixed
  • agent-browser validation at 390x844, 1280x832, and 1440x960 for the main and disabled-loop paths
  • Playwright axe scans in light and dark

Final validation: 27 Playwright tests passed; formatting, linting, agent docs, Markdown, TypeScript, Vitest, and Storybook gates passed. Storybook emitted its existing bundle-size advisory only.

Browser evidence

Research run

Mobile Laptop Desktop
Research run at 390x844 Research run at 1280x832 Research run at 1440x960

Disabled research routing

Mobile Laptop Desktop
Disabled research routing at 390x844 Disabled research routing at 1280x832 Disabled research routing at 1440x960

Scope boundaries

  • no database migration
  • no research Eve subagents or live child-session fan-out
  • no provider evaluations or versioned loopworks.research_*.v1 payloads
  • no approval, agent-plan, GitHub writeback, or reusable-component redesign

Co-authored-by: OpenAI Codex GPT-5 noreply@openai.com

uidaho-nsummers and others added 5 commits July 21, 2026 21:26
Define the four-stage research skeleton, semantic artifacts, manifest policy, durable idempotency, and OTel run/no-op events with focused coverage.

Co-Authored-By: OpenAI Codex GPT-5 <noreply@openai.com>
Return research-specific outcomes, persist idempotent runs and no-ops, align trigger actions with the manifest, and correct the signed issue 43 fixture.

Co-Authored-By: OpenAI Codex GPT-5 <noreply@openai.com>
Expose loop identity in stage context and fail closed for undeclared research actors while preserving development fixture routing.

Co-Authored-By: OpenAI Codex GPT-5 <noreply@openai.com>
Add the completed issue 43 fixture, research registry entry, Storybook story, persisted projections, responsive checks, and light/dark accessibility coverage.

Co-Authored-By: OpenAI Codex GPT-5 <noreply@openai.com>
Record the research actor and artifact boundaries, root orchestration contract, manifest policy, telemetry behavior, and operator expectations in the existing durable documentation.

Co-Authored-By: OpenAI Codex GPT-5 <noreply@openai.com>
@vercel

vercel Bot commented Jul 22, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
loopworks Ready Ready Preview, Comment Jul 22, 2026 4:32am

Request Review

@ncolesummers
ncolesummers marked this pull request as ready for review July 22, 2026 04:38
Copilot AI review requested due to automatic review settings July 22, 2026 04:38

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@ncolesummers
ncolesummers merged commit 61c6a53 into main Jul 22, 2026
4 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in Loopworks Backlog Jul 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Research loop skeleton

3 participants