Skip to content

feat(blocks): add Wave B WordPress query and list content blocks #97

Description

@TheAggressive

Parent roadmap: #95

Outcome

CampaignBridge can build deterministic multi-post email compositions from bounded WordPress queries while preserving the immutable snapshot model established by #69 / PR #94.

Scope

  • campaignbridge/post-query — select/filter a bounded ordered collection of posts/pages/CPTs.
  • campaignbridge/post-list — render only the immutable result of a Post Query through a deterministic item template.
  • Patterns over existing primitives for featured article, latest posts, category digest, event listing, and author digest.

Architecture

  • Query execution belongs to repository/workflow boundaries, never renderers.
  • Compilation consumes frozen normalized snapshots only.
  • Define explicit max item count/query budget.
  • Define deterministic ordering and empty-result policy.
  • Reuse the existing campaignbridge/post-data semantics for individual item fields where possible.
  • Do not add one renderer per post type.
  • Do not let a live query run during compile or preview of an approved snapshot.

Required evidence

  • Same query snapshot + template + design => identical artifact.
  • Source edits after snapshot do not mutate reviewed output.
  • Empty, deleted, private, or inaccessible results fail/behave according to one documented policy.
  • Query limits are enforced before expensive work.
  • Editor, compiler, and snapshot field requirements remain contract-aligned.

Closeout

Close when bounded multi-post content can be authored, snapshotted, compiled, and tested without any live-content read inside renderers.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:blocksWordPress email blocksarea:emailEmail compiler or campaign workflowarea:frontendFrontend source or Node toolingarea:phpPHP or Composer codearea:testsAutomated tests or test configurationrisk:highSecurity or release sensitive; never auto-mergedtype:featureNew capability

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions