End-to-end testing is how Open Agentic CMO validates that the full multi-agent workflow works correctly from start to finish.
The goal of E2E testing is not only to check that agents produce outputs.
The goal is to verify that the entire system behaves deterministically, respects contracts, expands vague operator prompts into complete subtasks, persists clean data, and stops safely when something is invalid.
The full workflow is:
Research → Strategy → Content → Notion → Delivery
The canonical agent execution order is:
Porky → Babe → Porky → Hamm → Porky → Pumba → Porky
A successful E2E test validates that:
- Porky creates only the Babe subtask first.
- Porky creates a complete Babe subtask description, not a title-only task.
- Babe produces a valid
auditartifact. - Babe posts the
auditartifact andAUDIT_READYsignal on the parent issue. - Porky validates Babe’s audit.
- Porky produces a valid
strategyartifact. - Porky emits
SYNTHESIS_READYon the parent issue. - Porky creates Hamm only after audit and strategy validation pass.
- Porky creates a complete Hamm subtask description.
- Hamm produces a valid
content_setartifact. - Hamm posts the
content_setartifact andCONTENT_SET_READYsignal on the parent issue. - Porky validates Hamm’s content.
- Porky creates Pumba only after content validation passes.
- Porky creates a complete Pumba subtask description.
- Pumba persists content into the Notion Content Pipeline.
- Pumba persists Babe research into
Research Babe. - Pumba sends a Telegram summary.
- Pumba posts final persistence and delivery artifacts on the parent issue.
- Porky validates every phase.
- The workflow stops only after
DELIVERY_COMPLETE.
Multi-agent systems can appear to work while silently failing.
Common hidden failures include:
- Completion signals emitted before artifacts exist
- Agents posting summaries instead of structured artifacts
- Downstream agents running too early
- Porky creating all subtasks at workflow initialization
- Porky creating title-only subtasks
- Subtasks missing source context, strategy, artifact requirements, or validation criteria
- Agents posting final artifacts only on subtasks
- Content being persisted into
Notes - Missing Notion properties such as
VersionorWeek - Threads being merged into one unstructured block
- Research context being lost
Research Babepage missing- Duplicate Notion pages
- Duplicate Telegram summaries
- Porky advancing despite validation failures
- Babe spending the run on Paperclip reference discovery instead of completing the audit
- Pumba waking early and producing noisy
BLOCKEDsignals before it was explicitly delegated
E2E testing catches these failures.
Use progressive testing.
Do not start with a large campaign test.
Recommended order:
- Controlled 3-day test with a vague operator prompt
- Weekly 7-day test with a normal production-style prompt
- Extended 11-day test
- Failure-case tests
- Regression tests after agent changes
The key rule: the system should pass with a realistic, high-level parent issue.
The parent issue should not need to spell out every internal artifact, signal, and phase rule. Porky must expand the vague prompt into rich phase-specific subtasks.
Use this test after changing:
- Agent instructions
- Signal contracts
- Artifact contracts
- Sequential delegation rules
- Subtask creation rules
- Notion persistence rules
- Porky validation gates
- Babe research execution rules
- Pumba delivery rules
Validate the full artifact-based pipeline with minimal scope.
This test should confirm that a simple operator prompt is enough for Porky to:
- infer the workflow
- delegate only the next valid phase
- create complete subtask descriptions
- validate artifacts
- prevent premature downstream execution
- persist final outputs correctly
May 11, 2026 → May 13, 2026
- 3 total content items
- Exactly 1 item per scheduled date
- 1 X thread
- 1 X post
- 1 LinkedIn post
- 1 Research Babe page
- 1 Telegram summary
- Porky
- Babe
- Hamm
- Pumba
Piglet is excluded.
Copy this into a new parent issue assigned to Porky:
TITLE: Controlled E2E Test — Piggy Wallet Content Workflow
DESCRIPTION:
Run a controlled Piggy Wallet content workflow for May 11–13, 2026.
Create 3 content items:
- 1 X thread
- 1 X post
- 1 LinkedIn post
Save the content and the research context to Notion, then send the Telegram summary.
This prompt is intentionally simple.
The test passes only if Porky expands this vague prompt into complete phase-specific execution.
The expected workflow behavior is:
- Porky starts the parent workflow.
- Porky creates only the Babe research subtask.
- Babe subtask has a complete description.
- Hamm is not created yet.
- Pumba is not created yet.
- Babe publishes the full
auditartifact on the parent issue. - Babe emits
AUDIT_READYon the parent issue. - Porky validates the audit.
- Porky publishes the
strategyartifact on the parent issue. - Porky emits
SYNTHESIS_READYon the parent issue. - Porky creates the Hamm content subtask.
- Hamm subtask has a complete description including strategy context.
- Hamm publishes the full
content_setartifact on the parent issue. - Hamm emits
CONTENT_SET_READYon the parent issue. - Porky validates the content set.
- Porky creates the Pumba Notion + Delivery subtask.
- Pumba subtask has a complete description including audit and content_set context.
- Pumba persists content into Notion Content Pipeline.
- Pumba persists Babe research into Research Babe.
- Pumba publishes
notion_content_pipelineartifact on the parent issue. - Pumba emits
NOTION_SYNC_COMPLETEon the parent issue. - Pumba sends Telegram summary.
- Pumba publishes
telegram_deliveryartifact on the parent issue. - Pumba emits
DELIVERY_COMPLETEon the parent issue. - Porky validates final state.
- Porky posts final summary.
The controlled test passes only if:
- Creates only Babe first
- Does not create Hamm before Babe completes and strategy is valid
- Does not create Pumba before Hamm content is valid
- Produces a
strategyartifact beforeSYNTHESIS_READY - Creates complete phase-specific subtask descriptions
- Does not create title-only subtasks
- Validates every artifact before advancing
- Posts final summary only after final validation
- Executes the assigned research task directly
- Does not spend the run on broad Paperclip reference discovery
- Produces
ARTIFACT: type: audit - Includes all required audit sections
- Includes
critical_flags, even if empty - Posts artifact on the parent issue
- Emits
AUDIT_READYon the parent issue
- Starts only after Porky explicitly delegates content
- Consumes Porky’s strategy artifact
- Respects
excluded_claimsandsafe_framingif present - Produces
ARTIFACT: type: content_set - Produces exactly 3 content items
- Posts artifact on the parent issue
- Emits
CONTENT_SET_READYon the parent issue
- Starts only after Porky explicitly delegates Notion + Delivery
- Does not run early
- Does not emit noisy
BLOCKEDbefore explicit delegation - Persists content into Notion Content Pipeline
- Persists research into Research Babe
- Does not store final content in
Notes - Preserves thread tweets as ordered body blocks
- Sends Telegram summary once
- Posts final artifacts and signals on the parent issue
Use this after the controlled 3-day test passes.
Validate a normal weekly content workflow using a realistic high-level prompt.
- 7 X posts or threads, one per day
- 2 LinkedIn posts during the week
- 9 total content items
- Research Babe page
- Telegram summary
- Normal weekly distribution
- Multi-platform mix
- Week field generation
- Notion deduplication
- Research traceability
- Porky’s ability to expand a vague operator prompt
- Rich subtask descriptions under a production-like request
Copy this into a new parent issue assigned to Porky:
TITLE: Social Media Content Creation — Week #2 May
DESCRIPTION:
Generate content for the Piggy Wallet X and LinkedIn accounts for the week of May 11 to May 17, 2026.
I want:
- 1 post for X per day
- 2 posts for LinkedIn during the week
Take into account that last week the Piggy Wallet team attended Consensus Miami.
Please research relevant speakers, side events, activities, and themes from Consensus Miami, and use that context to create useful content for Piggy Wallet’s audience.
The content should stay aligned with Piggy Wallet’s mission:
- helping families in emerging markets protect savings from inflation
- making financial education easier for families
- using Web3 infrastructure under the hood while keeping the experience simple
- building long-term trust through educational content
Please complete the full workflow:
Research → Strategy → Content → Notion → Delivery
This issue is intentionally high-level.
It should work without listing every internal signal, artifact, or subtask template.
The weekly test passes only if:
- Porky creates only Babe first
- Babe subtask has a complete description
- Babe completes the audit on the parent issue
- Porky validates audit before creating strategy
- Porky creates Hamm only after strategy is valid
- Hamm subtask has a complete description
- Hamm creates 9 total content items
- Hamm posts content_set on the parent issue
- Porky creates Pumba only after content_set validation
- Pumba subtask has a complete description
- Pumba persists 9 content items in Notion
- Pumba persists Research Babe
- Pumba sends Telegram once
- All final artifacts and signals are visible on the parent issue
The weekly test fails if:
- Hamm is created before Babe completes
- Pumba is created before Hamm completes
- Any subtask is title-only
- Any final artifact exists only on a subtask
- Content is persisted in Notes
- Research Babe is missing
- Telegram is duplicated
- Porky completes without final validation
Use this for larger campaign validation.
Validate a longer content range and stronger scheduling behavior.
- 11 total content items, unless otherwise specified
- Exactly 1 item per scheduled date when requested
- At least 3 X threads per week when weekly thread rules apply
- No missing dates
- No duplicates
- Research Babe page
- Telegram summary
- Longer range execution
- Date coverage
- Thread ratio
- Notion scaling
- Idempotency across more items
- Stability of the orchestration loop across a larger workload
After every E2E test, verify the following manually or automatically.
- Parent issue contains all final artifacts
- Parent issue contains all final signals
- Parent issue shows clear phase progression
- Final Porky summary exists
- No final completion depends only on subtask-only evidence
- Babe subtask exists first
- Babe subtask has a complete description
- Hamm subtask is created only after audit and strategy validation
- Hamm subtask has a complete description
- Pumba subtask is created only after content validation
- Pumba subtask has a complete description
- No title-only subtasks exist
ARTIFACT: type: auditexists- Artifact appears before
AUDIT_READY - Required sections are present
critical_flagsexists, even if empty- Uncertainty is included
- Recommended content angles are included
- Artifact and signal appear on parent issue
- Babe does not run broad Paperclip reference discovery before completing audit
ARTIFACT: type: strategyexists- Artifact appears before
SYNTHESIS_READY - Date range is present
- Expected item count is present
- Messaging pillars are present
- Content angles are present
- Strategy maps to audit
- If risks exist,
excluded_claimsandsafe_framingexist - Porky does not advance with invalid artifacts
- Porky does not create downstream subtasks early
ARTIFACT: type: content_setexists- Artifact appears before
CONTENT_SET_READY item_countmatches actual items- Every content item has required fields
- Posts include
body - Threads include
thread_idandtweets - Thread tweets are ordered
- No duplicate titles
- Content respects
excluded_claims - Content uses
safe_framingwhen required - Artifact and signal appear on parent issue
- Pumba starts only after explicit delegation
- Content Pipeline pages exist
- Research Babe page exists
- No duplicate content pages
- No duplicate Research Babe page
Versionis populatedWeekis populatedContent Typeis populated- Content is in page body
- Content is not in
Notes - Threads are split into ordered body blocks
- Telegram summary is sent once
notion_content_pipelineartifact appears on parent issuetelegram_deliveryartifact appears on parent issue- Both Pumba signals appear on parent issue
Failure tests are as important as successful E2E tests.
They validate that the system blocks safely.
Simulate:
- Hamm emits
CONTENT_SET_READY - No full
content_setartifact exists
Expected behavior:
- Porky treats signal as incomplete
- Porky blocks
- Pumba does not run
- Porky requests full artifact from Hamm
Simulate:
- Pumba persists content into
Notesinstead of page body
Expected behavior:
- Porky rejects
NOTION_SYNC_COMPLETE - Workflow blocks
- Pumba must fix Notion body structure
Simulate:
- Pumba persists content pages
- Pumba skips Research Babe
Expected behavior:
- Porky rejects
NOTION_SYNC_COMPLETE - Workflow blocks
- Pumba must create or update Research Babe page
Simulate:
- Content pages exist
VersionorWeekis empty
Expected behavior:
- Porky rejects Notion validation
- Workflow blocks
- Pumba must update missing properties
Simulate:
- Same content item appears twice in Notion
Expected behavior:
- Porky rejects Notion validation
- Workflow blocks
- Pumba must deduplicate safely
Simulate:
- Porky creates a Babe, Hamm, or Pumba subtask with only a title and no complete description
Expected behavior:
- The delegation is invalid
- Porky must update the subtask description if possible
- If Porky cannot update it, Porky must block and identify missing context
- The assigned specialist should not guess missing requirements
Simulate:
- Hamm starts before Babe audit and Porky strategy are valid
Expected behavior:
- Hamm must not generate content
- Hamm should block or stop based on missing strategy
- Porky should treat the premature execution as invalid
- Pumba must not run
Simulate:
- Pumba wakes before Porky explicitly delegates Notion + Delivery
Expected behavior:
- Pumba must not persist content
- Pumba must not send Telegram
- Pumba must not emit
NOTION_SYNC_COMPLETE - Pumba must not emit
DELIVERY_COMPLETE - Pumba should exit cleanly or leave a waiting note
- This should not be treated as workflow failure unless Porky had already delegated Pumba
Simulate:
- Babe publishes an audit artifact without
critical_flags
Expected behavior:
- Porky treats the audit artifact as incomplete
- Porky blocks before strategy
- Babe must republish the audit artifact with
critical_flags, even if empty
Simulate:
- Babe flags an unsafe claim
- Porky strategy excludes the claim
- Hamm uses the excluded claim anyway
Expected behavior:
- Porky rejects
CONTENT_SET_READY - Workflow blocks
- Hamm must revise content to remove excluded claims
Run a controlled E2E test after changing:
- Any
AGENTS.md - Any
HEARTBEAT.md - Signal contract
- Artifact contract
- Notion schema
- Pumba persistence logic
- Porky validation gates
- Delivery behavior
- Subtask creation behavior
- Direct assignment execution behavior
Recommended regression test:
- 3-day controlled E2E
- Vague parent issue
- 1 X thread
- 1 X post
- 1 LinkedIn post
- Research Babe required
- Telegram required
An E2E test passes only when:
- All required artifacts exist
- All required signals exist
- Artifacts appear before completion signals
- All final artifacts and signals appear on the parent issue
- Porky validates each phase
- Porky delegates sequentially
- Porky creates complete subtask descriptions
- No title-only subtasks exist
- Hamm does not start early
- Pumba does not start early
- Notion content is correctly persisted
- Research Babe is created or updated
- Telegram summary is sent once
- No duplicates exist
- No content is stored in Notes
- Final Porky summary confirms all gates passed
E2E testing confirms that Open Agentic CMO works as a system, not just as a collection of agents.
A valid test proves that the workflow is:
- deterministic
- sequential
- artifact-driven
- signal-driven
- validation-first
- context-rich
- idempotent
- recoverable
- human-reviewable
The most important rule is simple:
If the system cannot prove correctness, it must block.