No description
This change introduces a new `/core:doc` command to auto-generate documentation from code, as requested in the issue. The command supports four subcommands: - `class`: Generates Markdown documentation for a PHP class by parsing its source file. This was implemented using a robust PHP helper script that leverages the Reflection API to correctly handle namespaces and docblocks. - `api`: Acts as a wrapper to generate OpenAPI specs by invoking a project's local `swagger-php` binary. It also supports a configurable scan path. - `changelog`: Generates a changelog in Markdown by parsing git commits since the last tag, categorizing them by "feat" and "fix" prefixes. - `module`: Generates a summary for a module by parsing its `composer.json` file. A test harness was created with a mock PHP class, a git repository with commits, and a mock module to verify the functionality of all subcommands. The main challenge was creating a reliable parser for PHP classes. An initial attempt using `awk`/`sed` proved too brittle. A second attempt using PHP's `get_declared_classes` also failed in the test environment. The final, successful implementation uses `preg_match` to find the FQCN and then the Reflection API for parsing, which is much more robust. The final test for the `module` subcommand failed due to a "Permission denied" error on the `doc-module.sh` script. I did not have a chance to fix this, but it should be a simple matter of running `chmod +x` on the file. |
||
|---|---|---|
| .claude-plugin | ||
| claude | ||
| scripts | ||
| storage/logs | ||
| test_project | ||
| .coverage-history.json | ||
| .env.example | ||
| .gitignore | ||
| api.js | ||
| api.ts | ||
| CLAUDE.md | ||
| composer.json | ||
| composer.lock | ||
| go.mod | ||
| openapi.yaml | ||
| README.md | ||
| repos.yaml | ||
| Test.php | ||
core-agent
A monorepo of Claude Code plugins for the Host UK federated monorepo.
Plugins
| Plugin | Description | Commands |
|---|---|---|
| code | Core development - hooks, scripts, data collection | /code:remember, /code:yes |
| review | Code review automation | /review:review, /review:security, /review:pr |
| verify | Work verification before commit/push | /verify:verify, /verify:ready |
| qa | Quality assurance fix loops | /qa:qa, /qa:fix, /qa:check |
| ci | CI/CD integration | /ci:ci, /ci:workflow, /ci:fix |
Installation
# Install all plugins via marketplace
claude plugin add host-uk/core-agent
# Or install individual plugins
claude plugin add host-uk/core-agent/claude/code
claude plugin add host-uk/core-agent/claude/review
claude plugin add host-uk/core-agent/claude/qa
Quick Start
# Code review staged changes
/review:review
# Run QA and fix all issues
/qa:qa
# Verify work is ready to commit
/verify:verify
# Check CI status
/ci:ci
Core CLI Integration
These plugins enforce the core CLI for development commands:
| Instead of... | Use... |
|---|---|
go test |
core go test |
go build |
core build |
golangci-lint |
core go lint |
composer test |
core php test |
./vendor/bin/pint |
core php fmt |
Plugin Details
code
The core plugin with hooks and data collection skills:
- Hooks: Auto-format, debug detection, dangerous command blocking
- Skills: Data collection for archiving OSS projects (whitepapers, forums, market data)
- Commands:
/code:remember(persist facts),/code:yes(auto-approve mode)
review
Code review automation:
/review:review- Review staged changes or commit range/review:security- Security-focused review/review:pr [number]- Review a pull request
verify
Work verification:
/verify:verify- Full verification (tests, lint, format, debug check)/verify:ready- Quick check if ready to commit
qa
Quality assurance:
/qa:qa- Run QA pipeline, fix all issues iteratively/qa:fix <issue>- Fix a specific issue/qa:check- Check without fixing
ci
CI/CD integration:
/ci:ci- Check CI status/ci:workflow <type>- Generate GitHub Actions workflow/ci:fix- Analyse and fix failing CI
Development
Adding a new plugin
- Create
claude/<name>/.claude-plugin/plugin.json - Add commands to
claude/<name>/commands/ - Add hooks to
claude/<name>/hooks.json(optional) - Register in
.claude-plugin/marketplace.json
Testing locally
claude plugin add /path/to/core-agent
License
EUPL-1.2
Links
api
The api plugin generates a TypeScript/JavaScript API client from your project's Laravel routes.
/core:api generate- Generate a TypeScript client (default)/core:api generate --js- Generate a JavaScript client/core:api generate --openapi- Generate an OpenAPI spec