Skip to content

feat: migrate ability categories for pipeline tool scoping#201

Merged
chubes4 merged 1 commit intomainfrom
feature/ability-categories
Apr 15, 2026
Merged

feat: migrate ability categories for pipeline tool scoping#201
chubes4 merged 1 commit intomainfrom
feature/ability-categories

Conversation

@chubes4
Copy link
Copy Markdown
Member

@chubes4 chubes4 commented Apr 14, 2026

Summary

  • Migrates all abilities from the flat 'datamachine' category to 4 semantic subcategories under the datamachine-events/ namespace
  • Adds ability metadata to all 9 chat tools for category-based tool scoping
  • New AbilityCategories.php centralizes category registration

Context

Data Machine core PR #1052 split the flat datamachine category into 18 subcategories and removed the old single category registration. This left all data-machine-events abilities orphaned — their 'category' => 'datamachine' pointed to a category that no longer existed.

Categories

Category Slug Abilities
Events datamachine-events/events 13 files, 20 ability registrations
Venues datamachine-events/venues 4 files, 10 ability registrations
Testing datamachine-events/testing 3 files, 3 ability registrations
Settings datamachine-events/settings 1 file, 2 ability registrations

Files Changed (32)

  • New: inc/Abilities/AbilityCategories.php — category registration with constants
  • Modified: data-machine-events.php — wire ensure_registered() before ability loading
  • Modified: 20 ability files — category string migration
  • Modified: 9 chat tool files — add ability metadata to registerTool() calls

Backward Compatible

No pipeline or chat behavior changes. Category-based tool filtering only activates when a pipeline explicitly declares tool_categories.

Follows the pattern established in data-machine core PR #1052 which
removed the flat 'datamachine' category in favor of 18 subcategories.

Changes:
- Add AbilityCategories.php with 4 categories (events, venues, testing, settings)
- Update all 20 ability files (31 category references) from 'datamachine'
  to appropriate 'datamachine-events/*' subcategories
- Add ability metadata to all 9 chat tools for category-based tool scoping
- Wire category registration into plugin bootstrap before ability loading
@homeboy-ci
Copy link
Copy Markdown
Contributor

homeboy-ci bot commented Apr 14, 2026

Homeboy Results — data-machine-events

Audit

⚡ Scope: changed files only

audit (changed files only)

  • Alignment score: 0.877
  • Outliers in current run: 13
  • Drift increased: no
  • Severity counts: info: 26, unknown: 13, warning: 48
  • Top actionable findings:
    1. inc/Abilities/AbilityCategories.php — naming_mismatch — Helper-like name does not match convention suffix 'Abilities': AbilityCategories
    2. inc/Steps/Upsert/Events/EventUpsert.php — god_file — File has 1670 lines (threshold: 1000)
    3. inc/Abilities/FilterAbilities.php — duplicate_function — Duplicate function flatten_hierarchy — also in inc/Blocks/Calendar/Taxonomy_Helper.php
    4. inc/Abilities/BatchTimeFixAbilities.php — intra_method_duplicate — Duplicated block in executeBatchTimeFix — 5 identical lines at line 244 and line 268
    5. inc/Abilities/DiceFmTest.php — intra_method_duplicate — Duplicated block in parseDateTimeUtc — 5 identical lines at line 327 and line 345
    6. inc/Abilities/EventHealthAbilities.php — intra_method_duplicate — Duplicated block in registerAbility — 5 identical lines at line 70 and line 77
    7. inc/Abilities/EventScraperTest.php — intra_method_duplicate — Duplicated block in test — 7 identical lines at line 115 and line 269
    8. inc/Abilities/MetaSyncAbilities.php — intra_method_duplicate — Duplicated block in executeResyncEventMeta — 5 identical lines at line 280 and line 296
    9. inc/Abilities/MetaSyncAbilities.php — intra_method_duplicate — Duplicated block in registerAbilities — 5 identical lines at line 74 and line 135
    10. inc/Abilities/TimezoneAbilities.php — intra_method_duplicate — Duplicated block in findBrokenTimezoneEvents — 9 identical lines at line 273 and line 285
Audit findings (10 shown)
1. **inc/Abilities/AbilityCategories.php** — naming_mismatch — Helper-like name does not match convention suffix 'Abilities': AbilityCategories
2. **inc/Steps/Upsert/Events/EventUpsert.php** — god_file — File has 1670 lines (threshold: 1000)
3. **inc/Abilities/FilterAbilities.php** — duplicate_function — Duplicate function `flatten_hierarchy` — also in inc/Blocks/Calendar/Taxonomy_Helper.php
4. **inc/Abilities/BatchTimeFixAbilities.php** — intra_method_duplicate — Duplicated block in `executeBatchTimeFix` — 5 identical lines at line 244 and line 268
5. **inc/Abilities/DiceFmTest.php** — intra_method_duplicate — Duplicated block in `parseDateTimeUtc` — 5 identical lines at line 327 and line 345
6. **inc/Abilities/EventHealthAbilities.php** — intra_method_duplicate — Duplicated block in `registerAbility` — 5 identical lines at line 70 and line 77
7. **inc/Abilities/EventScraperTest.php** — intra_method_duplicate — Duplicated block in `test` — 7 identical lines at line 115 and line 269
8. **inc/Abilities/MetaSyncAbilities.php** — intra_method_duplicate — Duplicated block in `executeResyncEventMeta` — 5 identical lines at line 280 and line 296
9. **inc/Abilities/MetaSyncAbilities.php** — intra_method_duplicate — Duplicated block in `registerAbilities` — 5 identical lines at line 74 and line 135
10. **inc/Abilities/TimezoneAbilities.php** — intra_method_duplicate — Duplicated block in `findBrokenTimezoneEvents` — 9 identical lines at line 273 and line 285
Tooling versions
  • Homeboy CLI: homeboy 0.88.7+5c7de6f
  • Extension: wordpress from https://github.com/Extra-Chill/homeboy-extensions
  • Extension revision: unknown
  • Action: Extra-Chill/homeboy-action@v2

Homeboy Action v1

@chubes4 chubes4 merged commit 15cb4fe into main Apr 15, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant