# Agents.md

This folder contains files used to construct a single root `AGENTS.md`

We do this because
- The single commonality between almost all AI tools is that they look for a root `AGENTS.md`
- Having the information in a single place for all AI tools is better than duplicating and maintaining the information in multiple files for each AI tool

## Process
1. Add files to or update files in `./docs/agents.md/agents`, `./docs/agents.md/personas`, `./docs/agents.md/contributors`.
2. Each file must
  - Start markdown headers at the `##` level
  - End in a new line
  - Order contents in AGENTS.md by giving an optional number prefix
3. Run `yarn agents:generate`.
   - Take the contents of `./docs/agents.md/template_agents.md`
   - Insert the contents of the agents, personas and contributors files
   - Output to `./AGENTS.md`
4. Commit all changes, including root `./AGENTS.md` and any files that link to it

## Guidance

### Examples

When referencing code or configuration it's good to include an example

## Future Tasks
- Add real world examples when referencing code
- Create a GH workflow to monitor `agents.md` folder files in a PR, if changed run generate script and add new AGENTS.md to PR
- Discuss
  - Three multi AI tool related questions
    - Questions
      - how AI specific patterns, like co-pilot instructions, can be expressed in a way to be adopted by or reduce duplication with the root agents.md
      - how AI tool specific metadata code can be included
      - multiple agents vs personas approach works
    - Proposal
      - Generic information applicable to all AI tools is added to the root `agents.md`
      - Agent, instruction or other AI specific files or patterns can be used in files specific to that AI tool. They must not contain duplicate information to the root `agents.md`
      - The root `agents.md` continues to be AI tool agnostic
  - How can folder specific agents be used
    - Proposal
      - `agents.md` are added to folders as long as most LLMs can make use of them and they do not duplicate information in the root `agents.md`

## Test Prompts

To validate LLMs are picking up information consider running the following prompts.

### Information

Can they provide correct information?

- `what's this project about?`
- `can you tell me the process for fixing a github issue in this repo?`
- `what makes a good software developer?`
- `what should never be done in this project?`
- `what are the folders in this project for?`
- `what are the env vars i could use when running e2e tests?`

### Actions

Can they use the information in their actions?

Pending
