No description
ShapeClassifier::classify($ticket) returns 'A'|'B'|'C' per policy v1: - (severity=critical OR priority=urgent) → A - has tag in ['security','crypto','core'] → A - (severity=major OR priority=high) → B - everything else → C ProfileSelector::pickFor($ticket) walks AgentProfile::active(), matches capability tags case-insensitively against ticket.tags: - Class A: cheapest matching profile (cost_class alphabetic order) - Class B: any active profile with quota_headroom_pct >= 25 - Class C: deterministic round-robin via last_dispatched_at Pest Unit tests cover Good (matching profile picked), Bad (no match → null), Ugly (all profiles disabled → null), plus class A/B headroom gating + class C round-robin determinism. Codex note: php -l clean; pest skipped — no vendor/ at this repo root (downstream lab/lthn.ai owns composer install). Closes tasks.lthn.sh/view.php?id=826 Co-authored-by: Codex <noreply@openai.com> |
||
|---|---|---|
| .agents/skills | ||
| .claude-plugin | ||
| .codex | ||
| .core | ||
| .github/workflows | ||
| claude | ||
| cmd/core-agent | ||
| codex | ||
| config | ||
| docker | ||
| docs | ||
| google/gemini-cli | ||
| hermes | ||
| php | ||
| pkg | ||
| plugins | ||
| scripts | ||
| tests | ||
| ui | ||
| .DS_Store | ||
| .gitattributes | ||
| .gitignore | ||
| .gitleaks.toml | ||
| .gitleaksignore | ||
| .mcp.json | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| CODEX.md | ||
| composer.json | ||
| core-agent | ||
| core-agent.backup | ||
| go.mod | ||
| go.sum | ||
| llm.txt | ||
| Makefile | ||
| README.md | ||
| repos.yaml | ||
| setup.sh | ||
| version.go | ||
| version_example_test.go | ||
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