Skip to content

feat: ability categories — migrate from flat 'datamachine' to semantic subcategories #200

@chubes4

Description

@chubes4

Context

Data Machine core is introducing ability categories (Extra-Chill/data-machine#1052) to solve pipeline tool bloat and align with the wp-ai-client migration (#1027). The flat 'datamachine' category is being replaced with 18+ semantic subcategories across core and extensions.

data-machine-events has 31 ability registrations across 20 files, all using 'category' => 'datamachine'. These need to migrate to extension-specific categories.

Proposed categories

Category Abilities
datamachine-events/events event-query, event-date-query, event-update, event-health, event-quality-audit, filter, calendar, upcoming-count, duplicate-detection, encoding-fix, batch-time-fix, ticket-url-resync, meta-sync
datamachine-events/venues venue CRUD, venue-map, geocoding
datamachine-events/settings events extension settings
datamachine-events/testing ticketmaster-test, dice-fm-test, event-scraper-test

What needs to happen

  1. Register the extension categories in data-machine-events.php bootstrap (on wp_abilities_api_categories_init)
  2. Update all 31 'category' => 'datamachine' to the correct subcategory across 20 files
  3. Add ability metadata to the 9 chat tool registerTool() calls in inc/Api/Chat/Tools/
  4. The upsert_event handler tool (registered via chubes_ai_tools in EventUpsertFilters.php) doesn't need changes — handler tools bypass category filtering

Files to update

Abilities (category string replacement):

  • inc/Abilities/EventQueryAbilities.phpdatamachine-events/events
  • inc/Abilities/EventDateQueryAbilities.phpdatamachine-events/events
  • inc/Abilities/EventUpdateAbilities.phpdatamachine-events/events
  • inc/Abilities/EventHealthAbilities.phpdatamachine-events/events
  • inc/Abilities/EventQualityAuditAbilities.phpdatamachine-events/events
  • inc/Abilities/FilterAbilities.phpdatamachine-events/events
  • inc/Abilities/CalendarAbilities.phpdatamachine-events/events
  • inc/Abilities/UpcomingCountAbilities.phpdatamachine-events/events
  • inc/Abilities/DuplicateDetectionAbilities.phpdatamachine-events/events
  • inc/Abilities/EncodingFixAbilities.phpdatamachine-events/events
  • inc/Abilities/BatchTimeFixAbilities.phpdatamachine-events/events
  • inc/Abilities/TicketUrlResyncAbilities.phpdatamachine-events/events
  • inc/Abilities/MetaSyncAbilities.phpdatamachine-events/events
  • inc/Abilities/TimezoneAbilities.phpdatamachine-events/events
  • inc/Abilities/VenueAbilities.phpdatamachine-events/venues
  • inc/Abilities/VenueMapAbilities.phpdatamachine-events/venues
  • inc/Abilities/GeocodingAbilities.phpdatamachine-events/venues
  • inc/Abilities/SettingsAbilities.phpdatamachine-events/settings
  • inc/Abilities/TicketmasterTest.phpdatamachine-events/testing
  • inc/Abilities/DiceFmTest.phpdatamachine-events/testing
  • inc/Abilities/EventScraperTest.phpdatamachine-events/testing

Chat tools (add ability meta):

  • inc/Api/Chat/Tools/UpdateEvent.php
  • inc/Api/Chat/Tools/UpdateVenue.php
  • inc/Api/Chat/Tools/GetVenueEvents.php
  • inc/Api/Chat/Tools/EventHealthCheck.php
  • inc/Api/Chat/Tools/EventQualityAudit.php
  • inc/Api/Chat/Tools/VenueHealthCheck.php
  • inc/Api/Chat/Tools/FindBrokenTimezoneEvents.php
  • inc/Api/Chat/Tools/FixEventTimezone.php
  • inc/Api/Chat/Tools/TestEventScraper.php

Reference

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