Skip to content

feat: adopt .agent.md naming convention for Copilot backend#95

Merged
jafreck merged 5 commits intomainfrom
feat/copilot-agent-md-naming
Feb 23, 2026
Merged

feat: adopt .agent.md naming convention for Copilot backend#95
jafreck merged 5 commits intomainfrom
feat/copilot-agent-md-naming

Conversation

@jafreck
Copy link
Copy Markdown
Owner

@jafreck jafreck commented Feb 23, 2026

Summary

  • feat: adopt .agent.md naming convention for the Copilot backend
  • fix: add max bounds to maxParallelIssues (20) and maxParallelAgents (10) in config schema
  • ci: add canonical labels.yml and label-sync workflow
  • chore: lower maxParallelIssues to 10 and maxParallelAgents to 4 in cadre.config.json

All 1768 tests pass.

- Add copilot branch to agentFilePath() producing <name>.agent.md paths
- Add resolveBackend() helper reading config.agent?.backend (default: copilot)
- Update AgentLauncher.validateAgentFiles() to accept backend param
- Pass backend to validateAgentFiles() in the run command
- Update tests to expect .agent.md paths for copilot default
- Remove stale .github/agents/*.md files (superseded by .agent.md)
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Feb 23, 2026

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 65.21739% with 8 lines in your changes missing coverage. Please review.
✅ Project coverage is 76.18%. Comparing base (930f73a) to head (503bd8e).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
src/core/agent-launcher.ts 50.00% 4 Missing ⚠️
src/cli/agents.ts 83.33% 2 Missing ⚠️
src/index.ts 0.00% 2 Missing ⚠️
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #95      +/-   ##
==========================================
- Coverage   76.26%   76.18%   -0.08%     
==========================================
  Files          70       70              
  Lines        6859     6875      +16     
  Branches      894      899       +5     
==========================================
+ Hits         5231     5238       +7     
- Misses       1610     1619       +9     
  Partials       18       18              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@jafreck jafreck merged commit e0240cb into main Feb 23, 2026
2 checks passed
@jafreck
Copy link
Copy Markdown
Owner Author

jafreck commented Feb 23, 2026

Code Review — REQUEST CHANGES

The .agent.md naming convention feature itself is correctly implemented and consistently applied across cli/agents.ts, agent-launcher.ts, index.ts, and the test updates. However, the PR bundles unrelated changes that must be separated before merge.

🔴 Blockers

1. Schema guardrail removal is a silent safety regression (unrelated to this PR)
src/config/schema.ts removes .max(100) on limit, .max(20) on maxParallelIssues, and .max(10) on maxParallelAgents. With the config bumped to maxParallelIssues: 100 / maxParallelAgents: 10, this opens the door to 1,000 simultaneous agent processes with no schema validation backstop. These changes need their own PR with an explicit justification.

2. Config escalation bundled into a naming-convention PR
cadre.config.json bumps limit 20 → 1000 and maxParallelIssues 8 → 100. These are 12.5× and 5× operational increases with no rationale in this PR. Separate PR, please.

🟡 Medium Issues

3. Stale test description in tests/cli-agents.test.ts
The test description still says <agentDir>/<name>.md but the assertion correctly checks .agent.md. Must be updated.

4. Missing test coverage for validateAgentFiles() with backend = 'claude' and fallback
The three-branch logic in agent-launcher.ts has only one branch tested (default 'copilot'). Add tests for backend = 'claude' (should look for <name>/CLAUDE.md) and explicit backend = 'other' (fallback .md).

🔵 Minor

5. DRY: config.agent?.backend ?? 'copilot' is inlined in index.ts rather than calling resolveBackend(). Since resolveBackend is already defined, wire it through or export it.

6. No migration note for users who scaffolded .md files before this change (the error message is helpful but a CHANGELOG entry would be better UX).

What's Correct

  • The three-way naming logic is identical between agentFilePath() and validateAgentFiles() — no drift.
  • The resolveBackend() helper correctly handles the agent block being entirely absent from config.
  • All primary tests are updated to match the new default.

@jafreck jafreck deleted the feat/copilot-agent-md-naming branch February 25, 2026 01:18
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.

2 participants