{"id":44760795,"url":"https://github.com/laxmariappan/abilities-scout","last_synced_at":"2026-02-16T02:31:03.953Z","repository":{"id":337275018,"uuid":"1151850928","full_name":"laxmariappan/abilities-scout","owner":"laxmariappan","description":"Scan any installed WordPress plugin and discover potential abilities for the Abilities API (WP 6.9+).  One click. Static analysis. No code execution.","archived":false,"fork":false,"pushed_at":"2026-02-08T17:37:18.000Z","size":658,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-08T23:23:23.663Z","etag":null,"topics":["abilities-api","ai","wordpres-mcp","wordpress"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/laxmariappan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-07T01:30:38.000Z","updated_at":"2026-02-08T19:16:06.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/laxmariappan/abilities-scout","commit_stats":null,"previous_names":["laxmariappan/abilities-scout"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/laxmariappan/abilities-scout","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laxmariappan%2Fabilities-scout","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laxmariappan%2Fabilities-scout/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laxmariappan%2Fabilities-scout/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laxmariappan%2Fabilities-scout/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/laxmariappan","download_url":"https://codeload.github.com/laxmariappan/abilities-scout/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/laxmariappan%2Fabilities-scout/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29498623,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T02:07:14.481Z","status":"online","status_checked_at":"2026-02-16T02:03:22.852Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["abilities-api","ai","wordpres-mcp","wordpress"],"created_at":"2026-02-16T02:31:03.166Z","updated_at":"2026-02-16T02:31:03.946Z","avatar_url":"https://github.com/laxmariappan.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Abilities Scout\n\nScan any installed WordPress plugin and discover potential abilities for the [Abilities API](https://developer.wordpress.org/apis/abilities/) (WP 6.9+).\n\nOne click. Static analysis. No code execution.\n\n![Abilities Scout — scan results dashboard](assets/screenshots/scan-results.png)\n\n## What It Does\n\nAbilities Scout uses PHP tokenization (`token_get_all()`) to read plugin source code and surface hooks, REST routes, and shortcodes that could become AI-callable abilities.\n\nIt then **scores every discovery** using a point-based classification engine:\n\n- **REST routes** score highest — they're structured APIs already\n- **Hooks with action verbs** (submit, create, delete, export...) score as tools\n- **Hooks with data verbs** (get, list, check, query...) score as resources\n- **Infrastructure plumbing** (nonces, enqueue, CSS) is filtered out\n\nThe result: a ranked list of potential abilities with suggested names, confidence levels, type classification (tool vs resource), and exact source locations.\n\n![Potential abilities cards with confidence badges and suggested names](assets/screenshots/abilities.png)\n\n## Export for AI Agents\n\nAfter scanning, export results as **Markdown** or **JSON**.\n\nThe Markdown export is designed for AI agent consumption — it includes:\n\n- The full `wp_register_ability()` registration pattern\n- All required arguments (label, description, input/output schema, callbacks)\n- Every discovered ability grouped by confidence\n- Source hook names, file paths, and line numbers\n\nHand it to Claude, Cursor, or any AI coding tool and say *\"build these abilities.\"*\n\n| Markdown Export | JSON Export |\n|:-:|:-:|\n| ![Markdown export with scan summary and abilities](assets/screenshots/markdown-output.png) | ![Valid JSON with schema and structured data](assets/screenshots/json-output.png) |\n\n## Quick Start\n\n1. Upload `abilities-scout` to `/wp-content/plugins/`\n2. Activate the plugin\n3. Go to **Abilities \u003e Scout** in the admin menu\n4. Select a plugin, click **Scout Abilities**\n\nWorks standalone or as a companion to [Abilities Explorer](https://github.com/developer-starter/abilitiesexplorer).\n\n## Requirements\n\n- WordPress 6.0+\n- PHP 8.0+\n\n## How Scoring Works\n\n| Signal | Points | Why |\n|--------|--------|-----|\n| REST route | +50 | Already a structured API |\n| Shortcode | +30 | Template-level ability |\n| Action verb in hook name | +20 | Actionable functionality |\n| Plugin-namespaced hook | +15 | Plugin's own API surface |\n| 2+ parameters | +10 | Data transformation |\n| 1 parameter | +5 | Data flow |\n| Static hook name | +5 | Predictable, reliable |\n| Infrastructure pattern | -30 | UI/admin plumbing |\n| Dynamic hook name | -10 | Unpredictable at runtime |\n\n**Confidence levels:** High (60+), Medium (30-59), Low (1-29)\n\n## Example Results\n\n**Akismet** — 22 files, 10ms:\n- 6 high-confidence abilities (REST routes: alert, key, settings, stats, webhook)\n- 17 medium-confidence abilities (submit spam, delete batch, comment check)\n\n**WP Crontrol** — 11 files, 6ms:\n- 12 medium-confidence abilities (schedule management, event editing)\n\n**Plugin Check (PCP)** — 116 files, 35ms:\n- 11 potential abilities (check categories, ignored warnings, restricted contributors)\n\n## Safety\n\n- **Read-only** — never modifies, executes, or includes scanned plugin code\n- **Static analysis only** — uses PHP tokenization, not eval or reflection\n- **Admin-only** — requires `manage_options` capability\n- **No external calls** — everything runs locally, no data leaves your site\n\n## Contributing\n\nFound a bug? Have an idea? Contributions are welcome.\n\n- **Report issues** — [Open an issue](https://github.com/laxmariappan/abilities-scout/issues) with your WP version, PHP version, and the plugin you scanned\n- **Submit a PR** — Fork the repo, create a branch, and send a pull request\n- **Suggest plugins to test** — If you find interesting results scanning a plugin, share them in an issue\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for code standards and guidelines.\n\n## Support the Project\n\nIf Abilities Scout is useful to you:\n\n- ⭐ **Star this repo** — It helps others discover the project\n- 📣 **Share it** — Post about it, mention it in a talk, or tell a fellow developer\n- 🐛 **Open an issue** — Feature requests and bug reports both help improve the tool\n- 🤝 **Contribute** — Code, docs, or testing — every bit counts\n\n## License\n\nGPL v2 or later. See [LICENSE](https://www.gnu.org/licenses/gpl-2.0.html).\n\n---\n\nBuilt by [Lax Mariappan](https://github.com/laxmariappan)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaxmariappan%2Fabilities-scout","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaxmariappan%2Fabilities-scout","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaxmariappan%2Fabilities-scout/lists"}