mirror of
https://github.com/github/awesome-copilot.git
synced 2026-04-30 12:15:56 +00:00
Consolidate scripts and automate report management (#1540)
* removing old scripts * consolidated folder * Updating usage of scripts * Adding script to generate an open PR report, rather than making AI gen it each time * Adding step to close old quality report discussions
This commit is contained in:
57
AGENTS.md
57
AGENTS.md
@@ -57,18 +57,21 @@ npm run skill:create -- --name <skill-name>
|
||||
|
||||
All agent files (`*.agent.md`) and instruction files (`*.instructions.md`) must include proper markdown front matter. Agent Skills are folders containing a `SKILL.md` file with frontmatter and optional bundled assets. Hooks are folders containing a `README.md` with frontmatter and a `hooks.json` configuration file:
|
||||
|
||||
#### Agent Files (*.agent.md)
|
||||
#### Agent Files (\*.agent.md)
|
||||
|
||||
- Must have `description` field (wrapped in single quotes)
|
||||
- File names should be lower case with words separated by hyphens
|
||||
- Recommended to include `tools` field
|
||||
- Strongly recommended to specify `model` field
|
||||
|
||||
#### Instruction Files (*.instructions.md)
|
||||
#### Instruction Files (\*.instructions.md)
|
||||
|
||||
- Must have `description` field (wrapped in single quotes, not empty)
|
||||
- Must have `applyTo` field specifying file patterns (e.g., `'**.js, **.ts'`)
|
||||
- File names should be lower case with words separated by hyphens
|
||||
|
||||
#### Agent Skills (skills/*/SKILL.md)
|
||||
#### Agent Skills (skills/\*/SKILL.md)
|
||||
|
||||
- Each skill is a folder containing a `SKILL.md` file
|
||||
- SKILL.md must have `name` field (lowercase with hyphens, matching folder name, max 64 characters)
|
||||
- SKILL.md must have `description` field (wrapped in single quotes, 10-1024 characters)
|
||||
@@ -78,7 +81,8 @@ All agent files (`*.agent.md`) and instruction files (`*.instructions.md`) must
|
||||
- Asset files should be reasonably sized (under 5MB per file)
|
||||
- Skills follow the [Agent Skills specification](https://agentskills.io/specification)
|
||||
|
||||
#### Hook Folders (hooks/*/README.md)
|
||||
#### Hook Folders (hooks/\*/README.md)
|
||||
|
||||
- Each hook is a folder containing a `README.md` file with frontmatter
|
||||
- README.md must have `name` field (human-readable name)
|
||||
- README.md must have `description` field (wrapped in single quotes, not empty)
|
||||
@@ -89,7 +93,8 @@ All agent files (`*.agent.md`) and instruction files (`*.instructions.md`) must
|
||||
- Follow the [GitHub Copilot hooks specification](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/coding-agent/use-hooks)
|
||||
- Optionally includes `tags` field for categorization
|
||||
|
||||
#### Workflow Files (workflows/*.md)
|
||||
#### Workflow Files (workflows/\*.md)
|
||||
|
||||
- Each workflow is a standalone `.md` file in the `workflows/` directory
|
||||
- Must have `name` field (human-readable name)
|
||||
- Must have `description` field (wrapped in single quotes, not empty)
|
||||
@@ -98,7 +103,8 @@ All agent files (`*.agent.md`) and instruction files (`*.instructions.md`) must
|
||||
- Only `.md` files are accepted — `.yml`, `.yaml`, and `.lock.yml` files are blocked by CI
|
||||
- Follow the [GitHub Agentic Workflows specification](https://github.github.com/gh-aw/reference/workflow-structure/)
|
||||
|
||||
#### Plugin Folders (plugins/*)
|
||||
#### Plugin Folders (plugins/\*)
|
||||
|
||||
- Each plugin is a folder containing a `.github/plugin/plugin.json` file with metadata
|
||||
- plugin.json must have `name` field (matching the folder name)
|
||||
- plugin.json must have `description` field (describing the plugin's purpose)
|
||||
@@ -112,12 +118,14 @@ All agent files (`*.agent.md`) and instruction files (`*.instructions.md`) must
|
||||
When adding a new agent, instruction, skill, hook, workflow, or plugin:
|
||||
|
||||
**For Agents and Instructions:**
|
||||
|
||||
1. Create the file with proper front matter
|
||||
2. Add the file to the appropriate directory
|
||||
3. Update the README.md by running: `npm run build`
|
||||
4. Verify the resource appears in the generated README
|
||||
|
||||
**For Hooks:**
|
||||
|
||||
1. Create a new folder in `hooks/` with a descriptive name
|
||||
2. Create `README.md` with proper frontmatter (name, description, hooks, tags)
|
||||
3. Create `hooks.json` with hook configuration following GitHub Copilot hooks spec
|
||||
@@ -126,16 +134,16 @@ When adding a new agent, instruction, skill, hook, workflow, or plugin:
|
||||
6. Update the README.md by running: `npm run build`
|
||||
7. Verify the hook appears in the generated README
|
||||
|
||||
|
||||
**For Workflows:**
|
||||
|
||||
1. Create a new `.md` file in `workflows/` with a descriptive name (e.g., `daily-issues-report.md`)
|
||||
2. Include frontmatter with `name` and `description`, plus agentic workflow fields (`on`, `permissions`, `safe-outputs`)
|
||||
3. Compile with `gh aw compile --validate` to verify it's valid
|
||||
4. Update the README.md by running: `npm run build`
|
||||
5. Verify the workflow appears in the generated README
|
||||
|
||||
|
||||
**For Skills:**
|
||||
|
||||
1. Run `npm run skill:create` to scaffold a new skill folder
|
||||
2. Edit the generated SKILL.md file with your instructions
|
||||
3. Add any bundled assets (scripts, templates, data) to the skill folder
|
||||
@@ -144,6 +152,7 @@ When adding a new agent, instruction, skill, hook, workflow, or plugin:
|
||||
6. Verify the skill appears in the generated README
|
||||
|
||||
**For Plugins:**
|
||||
|
||||
1. Run `npm run plugin:create -- --name <plugin-name>` to scaffold a new plugin
|
||||
2. Define agents, commands, and skills in `plugin.json` using Claude Code spec fields
|
||||
3. Edit the generated `plugin.json` with your metadata
|
||||
@@ -152,6 +161,7 @@ When adding a new agent, instruction, skill, hook, workflow, or plugin:
|
||||
6. Verify the plugin appears in `.github/plugin/marketplace.json`
|
||||
|
||||
**For External Plugins:**
|
||||
|
||||
1. Edit `plugins/external.json` and add an entry with `name`, `source`, `description`, and `version`
|
||||
2. The `source` field should be an object specifying a GitHub repo, git URL, npm package, or pip package (see [CONTRIBUTING.md](CONTRIBUTING.md#adding-external-plugins))
|
||||
3. Run `npm run build` to regenerate marketplace.json
|
||||
@@ -168,25 +178,28 @@ npm run skill:validate
|
||||
npm run build
|
||||
|
||||
# Fix line endings (required before committing)
|
||||
bash scripts/fix-line-endings.sh
|
||||
bash eng/fix-line-endings.sh
|
||||
```
|
||||
|
||||
Before committing:
|
||||
|
||||
- Ensure all markdown front matter is correctly formatted
|
||||
- Verify file names follow the lower-case-with-hyphens convention
|
||||
- Run `npm run build` to update the README
|
||||
- **Always run `bash scripts/fix-line-endings.sh`** to normalize line endings (CRLF → LF)
|
||||
- **Always run `bash eng/fix-line-endings.sh`** to normalize line endings (CRLF → LF)
|
||||
- Check that your new resource appears correctly in the README
|
||||
|
||||
## Code Style Guidelines
|
||||
|
||||
### Markdown Files
|
||||
|
||||
- Use proper front matter with required fields
|
||||
- Keep descriptions concise and informative
|
||||
- Wrap description field values in single quotes
|
||||
- Use lower-case file names with hyphens as separators
|
||||
|
||||
### JavaScript/Node.js Scripts
|
||||
|
||||
- Located in `eng/` and `scripts/` directories
|
||||
- Follow Node.js ES module conventions (`.mjs` extension)
|
||||
- Use clear, descriptive function and variable names
|
||||
@@ -201,29 +214,32 @@ When creating a pull request:
|
||||
2. **Front matter validation**: Ensure all markdown files have the required front matter fields
|
||||
3. **File naming**: Verify all new files follow the lower-case-with-hyphens naming convention
|
||||
4. **Build check**: Run `npm run build` before committing to verify README generation
|
||||
5. **Line endings**: **Always run `bash scripts/fix-line-endings.sh`** to normalize line endings to LF (Unix-style)
|
||||
5. **Line endings**: **Always run `bash eng/fix-line-endings.sh`** to normalize line endings to LF (Unix-style)
|
||||
6. **Description**: Provide a clear description of what your agent/instruction does
|
||||
7. **Testing**: If adding a plugin, run `npm run plugin:validate` to ensure validity
|
||||
|
||||
### Pre-commit Checklist
|
||||
|
||||
Before submitting your PR, ensure you have:
|
||||
|
||||
- [ ] Run `npm install` (or `npm ci`) to install dependencies
|
||||
- [ ] Run `npm run build` to generate the updated README.md
|
||||
- [ ] Run `bash scripts/fix-line-endings.sh` to normalize line endings
|
||||
- [ ] Run `bash eng/fix-line-endings.sh` to normalize line endings
|
||||
- [ ] Verified that all new files have proper front matter
|
||||
- [ ] Tested that your contribution works with GitHub Copilot
|
||||
- [ ] Checked that file names follow the naming convention
|
||||
|
||||
### Code Review Checklist
|
||||
|
||||
For instruction files (*.instructions.md):
|
||||
For instruction files (\*.instructions.md):
|
||||
|
||||
- [ ] Has markdown front matter
|
||||
- [ ] Has non-empty `description` field wrapped in single quotes
|
||||
- [ ] Has `applyTo` field with file patterns
|
||||
- [ ] File name is lower case with hyphens
|
||||
|
||||
For agent files (*.agent.md):
|
||||
For agent files (\*.agent.md):
|
||||
|
||||
- [ ] Has markdown front matter
|
||||
- [ ] Has non-empty `description` field wrapped in single quotes
|
||||
- [ ] Has `name` field with human-readable name (e.g., "Address Comments" not "address-comments")
|
||||
@@ -231,7 +247,8 @@ For agent files (*.agent.md):
|
||||
- [ ] Includes `model` field (strongly recommended)
|
||||
- [ ] Considers using `tools` field
|
||||
|
||||
For skills (skills/*/):
|
||||
For skills (skills/\*/):
|
||||
|
||||
- [ ] Folder contains a SKILL.md file
|
||||
- [ ] SKILL.md has markdown front matter
|
||||
- [ ] Has `name` field matching folder name (lowercase with hyphens, max 64 characters)
|
||||
@@ -240,7 +257,8 @@ For skills (skills/*/):
|
||||
- [ ] Any bundled assets are referenced in SKILL.md
|
||||
- [ ] Bundled assets are under 5MB per file
|
||||
|
||||
For hook folders (hooks/*/):
|
||||
For hook folders (hooks/\*/):
|
||||
|
||||
- [ ] Folder contains a README.md file with markdown front matter
|
||||
- [ ] Has `name` field with human-readable name
|
||||
- [ ] Has non-empty `description` field wrapped in single quotes
|
||||
@@ -250,7 +268,8 @@ For hook folders (hooks/*/):
|
||||
- [ ] Follows [GitHub Copilot hooks specification](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/coding-agent/use-hooks)
|
||||
- [ ] Optionally includes `tags` array field for categorization
|
||||
|
||||
For workflow files (workflows/*.md):
|
||||
For workflow files (workflows/\*.md):
|
||||
|
||||
- [ ] File has markdown front matter
|
||||
- [ ] Has `name` field with human-readable name
|
||||
- [ ] Has non-empty `description` field wrapped in single quotes
|
||||
@@ -260,7 +279,8 @@ For workflow files (workflows/*.md):
|
||||
- [ ] No `.yml`, `.yaml`, or `.lock.yml` files included
|
||||
- [ ] Follows [GitHub Agentic Workflows specification](https://github.github.com/gh-aw/reference/workflow-structure/)
|
||||
|
||||
For plugins (plugins/*/):
|
||||
For plugins (plugins/\*/):
|
||||
|
||||
- [ ] Directory contains a `.github/plugin/plugin.json` file
|
||||
- [ ] Directory contains a `README.md` file
|
||||
- [ ] `plugin.json` has `name` field matching the directory name (lowercase with hyphens)
|
||||
@@ -275,6 +295,7 @@ For plugins (plugins/*/):
|
||||
## Contributing
|
||||
|
||||
This is a community-driven project. Contributions are welcome! Please see:
|
||||
|
||||
- [CONTRIBUTING.md](CONTRIBUTING.md) for contribution guidelines
|
||||
- [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) for community standards
|
||||
- [SECURITY.md](SECURITY.md) for security policies
|
||||
|
||||
Reference in New Issue
Block a user