UofUEpiBio Copilot Custom Agents1
This private repository stores GitHub Copilot custom agent profiles used across the UofUEpiBio organization. Each agent lives as a standalone markdown file inside the agents/ directory with front matter declaring its name and description, followed by clear, actionable operating guidelines.
| Agent Name | Purpose |
|---|---|
r_package_developer |
Expert assistant for epidemiology‐focused R package development (code, docs, tests, scientific validation). |
cpp_statistician |
Expert C++ developer specializing in statistical analysis and modeling implementation. |
Before adding a new agent profile, please review the section on Contributing below.
- Create a new file in
agents/named<agent-name>.agent.md(use kebab_case or snake_case; keep it short and specific). - Add a YAML front matter block:
--- name: short_machine_friendly_name description: One sentence describing the agent's scope. ---
- Write the agent guidance in imperative style ("You do…", "Always…", "Never…").
- Cover: domain scope, priorities, coding standards, review/testing expectations, escalation/clarification guidance.
- Keep instructions concrete; avoid ambiguous adjectives ("clean", "simple") without criteria.
- If the agent should be temporarily disabled, comment out the front matter or wrap the body in HTML comments.
- Open an Issue first describing: purpose, scope boundaries (what it should NOT do), example prompts, and any compliance or data constraints. Use the "New Agent Proposal" issue template if available.
- After issue triage/approval, open a PR referencing the issue (e.g., "Closes #NN"). Include the agent file, plus any supporting assets. Keep the PR focused—one agent per PR.
- Ensure at least one domain maintainer and one governance reviewer approve before merge.
Reference: GitHub Docs – Creating custom agents.
When authoring agent profiles:
- Be explicit about tooling (e.g.,
roxygen2,tinytest,devtools::check()). - List decision heuristics (e.g., "Prefer vectorized operations over loops unless readability suffers").
- State compliance or organizational requirements (badges, documentation, testing levels, data privacy constraints).
- Encourage clarification for domain‐specific or uncertain scientific claims.
Key directives the r_package_developer agent follows:
- Optimize for modern, efficient R; minimize unnecessary dependencies.
- Use
roxygen2for documentation; update docs with every function change (devtools::document()). - Prefer
tinytestunless a project already usestestthat. - Include scientific validation tests (statistical properties, epidemiology relevance) beyond basic unit coverage.
- Maintain
NEWS.md; keep renderedREADMEsynced (e.g., re-knitREADME.Rmd/README.qmd). - Ensure packages pass
R CMD check(ordevtools::check()). - Use public health & epidemiology–relevant examples in docs/vignettes.
Perform periodic (quarterly or pre–major cycle) reviews:
- Verify all external links and badge URLs.
- Confirm tooling practices reflect current organization standards.
- Sunset or archive agents no longer in active use (move to
agents/archive/or add a deprecation note at top).
Workflow summary for new or changed agents:
- Always start with an Issue (proposal or change rationale) before a PR.
- Link PR to Issue (
Closes #issue_number). - Tag at least one domain maintainer and one governance reviewer.
- Provide example scenarios or prompts to validate intended behavior.
- Avoid bundling multiple agents or unrelated changes in one PR.
Do not include proprietary data samples, unpublished results, or PII in agent instructions. Use synthetic, anonymized, or public examples only.
Questions or suggestions? Create an internal issue or start a discussion thread referencing the agent file path.
Footnotes
-
This repository is based on the original template found at https://github.com/docs/custom-agents-template. The original version of this repository was forked from the EpiForeSITE organization. ↩