MaveraMavera Docs
Reference
Checking…
Use or share this pageSend the page itself, print it, or open its complete context in your AI workspace.

SOW executions

Compile a naming research SOW into an evidence-gated execution graph, queue fieldwork, and inspect completion.

3 min readDocs build Updated Jul 26, 2026

A SOW execution turns contract language into a typed research plan with requirements, modules, acceptance gates, fieldwork jobs, evidence references, and a durable completion state.

Current scope

The compiler currently accepts naming-study SOWs with 12 candidate names and a primary-plus-fresh-repeat design. It rejects unsupported or incomplete research scopes instead of pretending they are executable.

Lifecycle

Compile or create

POST /api/v1/sow-executions with mode: "compile" returns a deterministic spec without writing a record. Use mode: "create" to persist a draft execution.

Supply fieldable inputs

PATCH /api/v1/sow-executions/{id} with action: "set_inputs" accepts the exact 12 candidateNames and an existing audienceId. They can be supplied together or in separate calls.

Approve

action: "approve" is refused while required inputs are missing. Approval freezes the contract that will be executed.

Start

action: "start" runs the real audience_health tool first. Health errors block execution. A passing health result and stimulus manifest complete the two gates, then the primary MaxDiff wave is queued.

Reconcile and inspect

The study worker updates module progress from linked StudyJob records, fans out the fresh repeat, runs code-only reducers, and persists artifacts. GET /api/v1/sow-executions/{id} returns the spec, runtime, completion audit, artifacts, error, and timestamps.

Execution graph

audience_health ─┬─> maxdiff_primary ─> maxdiff_repeat ─> stability ───────────────┐
stimuli_validation┘                                                                │
                   ├─> preference_crosscheck_field ─> preference_crosscheck ───────┤
                   ├─> name_diagnostics ─> diagnostic_pairwise ────────────────────┤
                   └─> open_ends ─> red_flags ──────────────────────────────────────┤
                                                                                    ├─> scoreboard
maxdiff_primary + name_diagnostics + open_ends ─> subaudience_prevalence ──────────┤
stability + preference_crosscheck + diagnostic_pairwise ─> confidence_quality ────┘
scoreboard + subaudience_prevalence + confidence_quality ─> defensibility_dossier

The compiled naming contract has 15 modules and a 26-item requirement ledger. Every required module must be complete with evidence before the execution can report complete: true.

Fieldwork plan

Every job is deliberately small enough for the bounded worker lease.

WorkJobsn per jobPlanned assignments
Primary balanced MaxDiff40502,000
Fresh repeat MaxDiff1650800
12 names × 5 diagnostics60503,000
Name-specific open ends1250600
Direct-choice preference cross-check1650800
Total1447,200

7,200 is the total number of study assignments across modules, not a claim of 7,200 unique people. The MaxDiff contract itself retains the SOW's primary n=2,000, fresh repeat n=800, and total n=2,800.

The 12-name MaxDiff design uses nine deterministic four-item blocks. Every name appears three times across the block skeleton and no pair repeats. Jobs use unique seeds and the repeat wave has its own seed range.

Built-in analysis artifacts

The worker currently computes and stores:

  • primary and repeat MaxDiff utilities, preference shares, best counts, worst counts, and rank
  • primary-versus-repeat Spearman rank agreement and stable, moved, or reversed classifications
  • per-name, per-dimension means and 95% intervals for recall, fit, pronounceability, distinctiveness, and connotation
  • all 330 diagnostic pairwise contrasts with Benjamini-Hochberg correction
  • direct-choice shares with Wilson intervals and all 66 corrected pairwise contrasts
  • open-end associations, source-row IDs, and deterministic high/medium red-flag terms

Downstream subaudience, confidence, scoreboard, and dossier modules remain evidence-gated. They do not auto-complete merely because fieldwork exists. A worker or operator must attach their required artifacts through a module transition.

Fail-closed behavior

A job is complete only when it returns:

  • a persisted study ID
  • a positive integer nFielded
  • aggregate IDs for quantitative work, or a persisted respondent-row artifact for qualitative work

Zero respondents, missing lineage, failed jobs, underfilled modules, missing evidence, or unmet dependencies block advancement. Retried dispatch is idempotent through the execution/job key pair.

Compile a SOW

Edit the body, inspect the exact request object, and run the compiler. compile does not persist or start fieldwork.

Loading live API schema…

Control an execution

Enter the execution ID in the path field. Change the action and body parameters as the execution moves from inputs to approval, start, or a manual evidence transition.

Loading live API schema…

Actions

ActionEffect
set_inputsBinds names and/or the fieldable audience; regenerates deterministic job plans.
approveMoves a complete draft contract to approved.
startRuns audience health, completes the two gates, queues the primary jobs, and triggers the worker.
transitionApplies a module state, evidence references, completed units, or an error while enforcing dependencies and acceptance gates.
cancelCancels an execution that is not already complete.

The standalone full API reference remains available at Mavera API Reference.

On this page