Skip to content

Move domain-specific SEO, media, and email abilities out of core #2223

@chubes4

Description

@chubes4

Problem

Data Machine core still directly loads and registers several vertical product/domain ability sets.

Code references on origin/main (008878b6):

  • data-machine.php:187-192 — requires media and SEO ability files.
  • data-machine.php:209 — requires email ability file.
  • data-machine.php:282-287 — instantiates media and SEO abilities.
  • data-machine.php:321-330 — instantiates email fetch/publish abilities.

Examples:

  • SEO: inc/Abilities/SEO/*, inc/Abilities/InternalLinkingAbilities.php.
  • Media: inc/Abilities/Media/*.
  • Email: inc/Abilities/Email/EmailAbilities.php, inc/Abilities/Fetch/FetchEmailAbility.php, inc/Abilities/Publish/SendEmailAbility.php, inc/Abilities/Publish/SendEmailQueuedAbility.php.

There is already precedent for moving feature abilities out: GitHubAbilities moved to data-machine-code extension in data-machine.php.

Why this matters

Core 1.0 should be the orchestration/runtime substrate: agents, jobs, flows, steps, files, handler registration, generic WordPress/content primitives, permissions, and APIs. SEO, media generation/rendering, and email client behavior are valuable features, but they read as extension-plugin domains rather than core substrate.

Acceptance criteria

  • Decide the 1.0 core boundary for domain abilities.
  • Move SEO/media/email ability registration to one or more extension plugins, or document why each belongs in core.
  • Keep any generic primitives needed by extensions in core with narrow interfaces.
  • Preserve migration/activation behavior for existing installs that use these abilities.
  • Tests or smoke checks confirm core still boots without the extracted feature plugins.

AI assistance

  • AI assistance: Yes
  • Tool(s): OpenCode (GPT-5.5)
  • Used for: 1.0 technical-debt audit and issue drafting; Chris requested tracking issues for the findings.

Metadata

Metadata

Assignees

No one assigned

    Labels

    1.0-blockerBlocks the Data Machine core 1.0 releasearchitectureFoundational architecture changes

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions