Skip to main content
@obversa/builtin-workflows ships three teams you configure instead of write: a writer and a reviewer, a review panel with a threshold, and a nine-stage feature delivery. Give one its brief, workspace, expected files, test command and engine seats, and it returns a job for run from @obversa/runtime. To declare your own roles and stages, use workflow() from the Runtime instead; this package doesn’t export the builders.

Install

Included in @obversa/obversa.

Quickstart

A writer, a real Node check and a reviewer, with scripted engines so it runs offline:
examples/builtin-workflows.ts (excerpt)
The writer writes the file, the test command checks it, and the reviewer reads it back; a rejection returns the findings to the writer. Run it with npx tsx builtin-workflows.ts:
Output

Choose a recipe

Every configuration extends TeamInput. A seat is a TeamSeat from @obversa/api, an engine with its declared identity:
examples/builtin-workflows.ts (excerpt)

Read a review decision

outcomeFromAgentText(text, target?) reads a reviewer’s reply: the first JSON decision object becomes a pass, or findings aimed at target. INVALID_TEAM_DECISION is the message for a reply that holds no decision. Both are re-exported from @obversa/runtime/workflow-support.

Options

TeamInput

Seats and thresholds

Errors

  • A reply with no decision is marked INVALID_TEAM_DECISION by outcomeFromAgentText.
  • Seats from one model family on both sides of a review are refused before any model runs.
examples/builtin-workflows.ts

API

  • writerReviewerPair(config), thresholdPanel(config), featureDelivery(config): the three recipes. Choose a recipe.
  • outcomeFromAgentText, INVALID_TEAM_DECISION: read a reviewer’s reply. Read a review decision.
  • Types: PairConfig, PanelConfig, FeatureDeliveryConfig, TeamInput, TestCommand, ReviewerSeat.

Next steps

  • A writer and a reviewer: the same pair declared with workflow() and run on real engines.
  • Runtime: workflow, stage and person for a team of your own.