Step 1 of 10

Compile Deltas into Artifact

7of 10~10 min
  • The delta merge algorithm
  • Artifact structure and versioning
  • Using the linter to catch issues
What you'll do
  • Extract deltas from agent messages
  • Compile into unified artifact
  • Run the linter

Each agent has posted their contributions as DELTA messages. Now you'll compile these into a unified research artifact — the tangible output of your session.

1Verify All Agents Responded

Before compiling, confirm all three roles have submitted their contributions:

Terminal
# Check session status
brenner session status --thread-id "$SESSION_ID"
# Expected output:
# Session: RS-2026-0105-cell-fate
# Status: ready_to_compile
# Roles:
# hypothesis_generator: ✓ (2 deltas)
# test_designer: ✓ (3 deltas)
# adversarial_critic: ✓ (2 deltas)

2Compile the Artifact

The compile command extracts all deltas and merges them into a structured artifact:

Terminal
# Compile the artifact
brenner session compile \
--thread-id "$SESSION_ID" \
--output sessions/$SESSION_ID/artifact.json
# View the compiled artifact
cat sessions/$SESSION_ID/artifact.json | jq .

Artifact Structure:

artifact.json
{
"meta": {
"session_id": "RS-2026-0105-cell-fate",
"compiled_at": "2026-01-05T12:00:00Z",
"contributors": ["BlueLake", "PurpleMountain", "GreenValley"]
},
"research_thread": { ... },
"hypothesis_slate": [ ... ],
"discriminative_tests": [ ... ],
"assumption_ledger": [ ... ],
"adversarial_critique": [ ... ],
"predictions_table": [ ... ]
}

3Lint the Artifact

The linter checks for common issues in research artifacts:

Terminal
# Run the linter
brenner lint sessions/$SESSION_ID/artifact.json
# Example output:
# ✓ Research thread present
# ✓ At least 2 hypotheses defined
# ⚠ Warning: No third alternative marked
# ✗ Error: Test "Isolation A/B" missing potency check
# ⚠ Warning: Assumption "Scale check" has no test defined

Errors (must fix)

  • • Missing mechanism on hypothesis
  • • Test without potency check
  • • Circular assumption dependencies

Warnings (should fix)

  • • No third alternative marked
  • • Assumption without scale check
  • • Untested predictions

4Fix Lint Issues

If the linter finds issues, you have two options:

Option A: Request Revision

Send a message to the relevant agent asking for a fix.

Terminal
brenner send \
--thread-id "$SESSION_ID" \
--from Orchestrator \
--to PurpleMountain \
--subject "REVISION: Add potency check" \
--body "Test 'Isolation A/B' needs a potency check."

Option B: Manual Edit

Edit the artifact directly for small fixes.

Terminal
# Edit the artifact
vim sessions/$SESSION_ID/artifact.json
# Re-run lint to verify
brenner lint sessions/$SESSION_ID/artifact.json
Pro Tip
Export the artifact as markdown for easier reading:brenner artifact render --file artifact.json --format markdown

Artifact Clean? When the linter passes with no errors, you're ready to score the session in the next step.