- Block REST API endpoints for label creation at the bash level for all agents.
- Restrict `forgejo_create_label` and related MCP tools for all agents.
- Restrict `forgejo_add_issue_labels` to only the `forgejo-label-manager`.
- Ensure all label operations are centralized through the `forgejo-label-manager`.
- Update agent definitions to use the label manager instead of direct API calls or MCP tools for adding labels.
This prevents agents from creating new project-level labels and enforces the use of organization-level labels, resolving the issue of duplicate labels being created.
BREAKING CHANGE: Removed all tier-specific agents in favor of model-agnostic versions
Key changes:
- Create model-agnostic agents:
- behave-tester.md (replaces 4 tier-specific versions)
- robot-tester.md (replaces 4 tier-specific versions)
- coverage-improver.md (replaces coverage-checker with escalation)
- Convert existing agents to support escalation:
- lint-fixer.md (now model-agnostic)
- test-fixer.md (now model-agnostic)
- integration-test-runner.md (now model-agnostic)
- Update tier selectors to support all new agents
- Update quality-gate-escalator to handle all quality fixers
- Update subtask-loop to use quality-gate-escalator for all quality gates
- Empty redundant tier-specific agents for deletion:
- All implementer-{tier}.md files
- All behave-tester-{tier}.md files
- All robot-tester-{tier}.md files
- coverage-checker.md (replaced by coverage-improver.md)
Benefits:
- Eliminates ~90% code duplication
- All agents now support full 4-tier escalation (haiku→codex→sonnet→opus)
- Consistent escalation behavior across all agent types
- Single source of truth for each agent's logic
- Significant cost savings by defaulting to haiku for all quality gates
The system now uses tier selectors (tier-haiku, tier-codex, tier-sonnet,
tier-opus) that set the model and invoke model-agnostic worker agents,
eliminating the need for separate implementations per model tier.