Skip to content

Phase 1: Core extraction — standalone GitHub + Workspace #3

@chubes4

Description

@chubes4

Summary

Phase 1 establishes Data Machine Code as a working standalone extension by completing the extraction from Data Machine core. The plugin already has all ported code — this phase makes it fully functional and removes the duplicates from core.

Tasks

Extension Plugin (data-machine-code)

  • Scaffold plugin structure with PSR-4 autoloading
  • Port GitHubAbilities (6 abilities)
  • Port WorkspaceAbilities (14 abilities)
  • Port Workspace, WorkspaceReader, WorkspaceWriter core classes
  • Port GitHubIssueTool, GitHubTools (5 tools), WorkspaceTools (5 tools)
  • Port GitHubIssueTask system task
  • Port GitHubCommand and WorkspaceCommand CLI
  • Port GitHub fetch handler and settings
  • Own settings management for github_pat and github_default_repo
  • Settings migration: read from core, write to own options
  • Settings admin UI panel (React or simple form)

Core Removal (data-machine)

  • Remove GitHubAbilities from core (guard with class_exists check)
  • Remove WorkspaceAbilities from core
  • Remove Workspace, WorkspaceReader, WorkspaceWriter from core
  • Remove GitHub/Workspace tools from ToolServiceProvider
  • Remove GitHubIssueTask from SystemAgentServiceProvider
  • Remove GitHub settings from SettingsAbilities
  • Remove GitHub CLI commands from Bootstrap.php
  • Remove GitHub section from SystemContextDirective (already has class_exists guard)
  • Update data-machine.php require/instantiation

Integration Testing

  • Verify plugin activates cleanly with Data Machine core
  • Verify CLI commands work: wp datamachine-code github status
  • Verify CLI commands work: wp datamachine-code workspace list
  • Verify chat tools register properly
  • Verify system task registers via datamachine_tasks filter
  • Verify GitHub fetch handler registers for pipelines

Dependencies

  • Data Machine core (base classes: BaseTool, SystemTask, BaseCommand, FetchHandler, PermissionHelper)
  • WordPress 6.9+ Abilities API

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions