Skills Index — Cross-Reference
Three AI assistants are configured for this project, each with their own skill directory:
- Gemini CLI →
.gemini/skills/
- GitHub Copilot →
.github/skills/
- Claude Code →
.claude/skills/ (mirrors most, not all, of the shared skills below — see the table's Claude Skill column for which)
Skills with the same purpose exist in more than one, sometimes under different names and with different depth. This index maps them so you can find the richer version when needed. A CI check (scripts/check_skill_pairs.py, run as check-skill-pairs in .github/workflows/code-checks.yml) flags PRs that touch some but not all files in a mirrored group - non-blocking, since some divergence is intentional.
Shared Skills (exist in more than one tree)
| Topic |
Gemini Skill |
Copilot Skill |
Claude Skill |
Notes |
| Testing |
testing-workflow |
testing-workflow |
testing-workflow |
All three cover the full-suite-by-default rule, PYTHONPATH, auth/token retrieval, and the sys.modules stubbing pitfall |
| Settings & config |
settings |
settings-management |
— |
Gemini version is more comprehensive (22-point guide + PR checklist); Copilot version covers ccd() and get_setting_value() usage |
| MCP activation |
mcp-activation |
mcp-activation |
— |
Gemini version covers Gemini CLI session restart; Copilot version covers VS Code window reload |
| Project navigation |
project-navigation |
project-navigation |
— |
Copilot version has full path tables and env vars; Gemini version is a brief reference |
| Plugin dev |
plugin-development |
plugin-run-development |
plugin-development |
All three cover data contract, phases, formats, the RUN_TIMEOUT kill-timer gotcha (timeoutMultiplier/per_item_timeout()), and a pre-PR pointer to the Conventions Checklist in docs/PLUGINS_DEV.md |
| Plugin README docs |
plugin-readme |
plugin-readme |
plugin-readme |
All three cover README structure, the "don't re-document settings" rule, the docs.netalertx.com cross-linking convention, and common defects (template leftovers, copy-paste errors) found during a full-repo audit |
| Devcontainer |
devcontainer-management |
devcontainer-services + devcontainer-setup + devcontainer-configs |
— |
Gemini combines into one (uses docker exec); Copilot splits into 3 focused skills |
| PR review |
pr-analysis |
pr-analysis |
pr-analysis |
How to classify and respond to PR comments; pre-flight skill loading checklist |
| Logging |
logging-standards |
logging-standards |
— |
mylog levels, message format, what not to log |
| Scan pipeline internals |
scan-pipeline |
scan-pipeline |
scan-pipeline |
process_scan() call order and why it's load-bearing, CurrentScan/Events/Sessions/DevicesView relationships, how a session actually closes (no close_session() exists), and the FIELD_SPECS field-write authority mechanism. Complements database-patterns (Devices write-path/*Source attribution) rather than duplicating it. |
| Database patterns |
database-patterns |
database-patterns |
database-patterns |
Devices table write-path inventory, the FIELD_SOURCE_MAP/*Source attribution system in server/db/authoritative_handler.py, SQLite trigger vs. Python-hook tradeoffs, and event-sourced vs. snapshot audit logging. |
| PRD writing |
prd-writing |
prd-writing |
prd-writing |
Methodology for writing a design doc: challenge the idea, verify every claim against actual code, trace every downstream consumer of a new mechanism, evaluate performance impact against the real schema/indexes, record rejected alternatives and open-issue decisions explicitly, final-check pass before done. |
| UX/frontend design |
ux-design-patterns |
ux-design-patterns |
ux-design-patterns |
Don't invent new UX behavior/visual patterns unless a PRD calls for it - search front/ for an existing pattern first and reuse it. Priority order for design tradeoffs when several options are reasonable: existing behavior > intuitiveness > information density > usability > utility > uniqueness > industry practices > generic UI. |
| Skill hygiene |
skill-hygiene |
skill-hygiene |
skill-hygiene |
Read before writing/editing any SKILL.md, or any research/audit doc in .gemini/internal-docs/research/. Two standing rules: state current behavior only (no "Correction:", no "as of ", no "caught in review" narration - that trail belongs in PRDs), and prefer plain, short wording. Includes the grep sweep to run before calling a doc clean. |
Copilot-Only Skills
No Gemini equivalent yet:
| Copilot Skill |
Purpose |
api-development |
Creating REST API endpoints |
authentication |
API tokens and 401/403 debugging |
code-standards |
Coding conventions and style rules |
database-reset |
Wipe and regenerate the database and config |
docker-build |
Build Docker images for testing or production |
docker-prune |
Clean unused Docker resources (destructive — requires confirmation) |
sample-data |
Load synthetic device data into the devcontainer |
Gemini-Only Skills
No Copilot equivalent yet:
| Gemini Skill |
Purpose |
initiative-start |
Research methodology and structured approach for new tasks |
Adding a New Skill
When adding a skill, create it in both directories to keep both AI systems current:
.gemini/skills/<name>/SKILL.md — auto-discovered by Gemini CLI via YAML frontmatter
.github/skills/<name>/SKILL.md — add an entry to the skills table in .github/copilot-instructions.md
Keep the body content identical between both files. Only the frontmatter name/description may differ slightly to match each system's discovery heuristics.
If the skill is high-value enough to also mirror to Claude Code, add .claude/skills/<name>/SKILL.md too, and add the group to GROUPS in scripts/check_skill_pairs.py so drift gets flagged. Claude Code has no activate_skill()/testFailure/runTests/report_progress equivalents - adapt any such tool references to plain Bash commands instead of copying them verbatim.
1---2name: skills-index3description: Index of all available skills across Gemini CLI (.gemini/skills/), GitHub Copilot (.github/skills/), and Claude Code (.claude/skills/). Load this to find the right skill for a task, or to locate the counterpart skill in another assistant's tree.4---56# Skills Index — Cross-Reference78Three AI assistants are configured for this project, each with their own skill directory:910- **Gemini CLI** → `.gemini/skills/`11- **GitHub Copilot** → `.github/skills/`12- **Claude Code** → `.claude/skills/` (mirrors most, not all, of the shared skills below — see the table's Claude Skill column for which)1314Skills with the same purpose exist in more than one, sometimes under different names and with different depth. This index maps them so you can find the richer version when needed. A CI check (`scripts/check_skill_pairs.py`, run as `check-skill-pairs` in `.github/workflows/code-checks.yml`) flags PRs that touch some but not all files in a mirrored group - non-blocking, since some divergence is intentional.1516---1718## Shared Skills (exist in more than one tree)1920| Topic | Gemini Skill | Copilot Skill | Claude Skill | Notes |21|-------|-------------|--------------|--------------|-------|22| Testing | `testing-workflow` | `testing-workflow` | `testing-workflow` | All three cover the full-suite-by-default rule, PYTHONPATH, auth/token retrieval, and the `sys.modules` stubbing pitfall |23| Settings & config | `settings` | `settings-management` | — | Gemini version is more comprehensive (22-point guide + PR checklist); Copilot version covers `ccd()` and `get_setting_value()` usage |24| MCP activation | `mcp-activation` | `mcp-activation` | — | Gemini version covers Gemini CLI session restart; Copilot version covers VS Code window reload |25| Project navigation | `project-navigation` | `project-navigation` | — | Copilot version has full path tables and env vars; Gemini version is a brief reference |26| Plugin dev | `plugin-development` | `plugin-run-development` | `plugin-development` | All three cover data contract, phases, formats, the `RUN_TIMEOUT` kill-timer gotcha (`timeoutMultiplier`/`per_item_timeout()`), and a pre-PR pointer to the Conventions Checklist in `docs/PLUGINS_DEV.md` |27| Plugin README docs | `plugin-readme` | `plugin-readme` | `plugin-readme` | All three cover README structure, the "don't re-document settings" rule, the `docs.netalertx.com` cross-linking convention, and common defects (template leftovers, copy-paste errors) found during a full-repo audit |28| Devcontainer | `devcontainer-management` | `devcontainer-services` + `devcontainer-setup` + `devcontainer-configs` | — | Gemini combines into one (uses `docker exec`); Copilot splits into 3 focused skills |29| PR review | `pr-analysis` | `pr-analysis` | `pr-analysis` | How to classify and respond to PR comments; pre-flight skill loading checklist |30| Logging | `logging-standards` | `logging-standards` | — | `mylog` levels, message format, what not to log |31| Scan pipeline internals | `scan-pipeline` | `scan-pipeline` | `scan-pipeline` | `process_scan()` call order and why it's load-bearing, `CurrentScan`/`Events`/`Sessions`/`DevicesView` relationships, how a session actually closes (no `close_session()` exists), and the `FIELD_SPECS` field-write authority mechanism. Complements `database-patterns` (Devices write-path/`*Source` attribution) rather than duplicating it. |32| Database patterns | `database-patterns` | `database-patterns` | `database-patterns` | Devices table write-path inventory, the `FIELD_SOURCE_MAP`/`*Source` attribution system in `server/db/authoritative_handler.py`, SQLite trigger vs. Python-hook tradeoffs, and event-sourced vs. snapshot audit logging. |33| PRD writing | `prd-writing` | `prd-writing` | `prd-writing` | Methodology for writing a design doc: challenge the idea, verify every claim against actual code, trace every downstream consumer of a new mechanism, evaluate performance impact against the real schema/indexes, record rejected alternatives and open-issue decisions explicitly, final-check pass before done. |34| UX/frontend design | `ux-design-patterns` | `ux-design-patterns` | `ux-design-patterns` | Don't invent new UX behavior/visual patterns unless a PRD calls for it - search `front/` for an existing pattern first and reuse it. Priority order for design tradeoffs when several options are reasonable: existing behavior > intuitiveness > information density > usability > utility > uniqueness > industry practices > generic UI. |35| Skill hygiene | `skill-hygiene` | `skill-hygiene` | `skill-hygiene` | Read before writing/editing any SKILL.md, or any research/audit doc in `.gemini/internal-docs/research/`. Two standing rules: state current behavior only (no "Correction:", no "as of <date>", no "caught in review" narration - that trail belongs in PRDs), and prefer plain, short wording. Includes the grep sweep to run before calling a doc clean. |3637---3839## Copilot-Only Skills4041No Gemini equivalent yet:4243| Copilot Skill | Purpose |44|--------------|---------|45| `api-development` | Creating REST API endpoints |46| `authentication` | API tokens and 401/403 debugging |47| `code-standards` | Coding conventions and style rules |48| `database-reset` | Wipe and regenerate the database and config |49| `docker-build` | Build Docker images for testing or production |50| `docker-prune` | Clean unused Docker resources (destructive — requires confirmation) |51| `sample-data` | Load synthetic device data into the devcontainer |5253---5455## Gemini-Only Skills5657No Copilot equivalent yet:5859| Gemini Skill | Purpose |60|-------------|---------|61| `initiative-start` | Research methodology and structured approach for new tasks |6263---6465## Adding a New Skill6667When adding a skill, create it in **both** directories to keep both AI systems current:6869- `.gemini/skills/<name>/SKILL.md` — auto-discovered by Gemini CLI via YAML frontmatter70- `.github/skills/<name>/SKILL.md` — add an entry to the skills table in `.github/copilot-instructions.md`7172Keep the body content identical between both files. Only the frontmatter `name`/`description` may differ slightly to match each system's discovery heuristics.7374If the skill is high-value enough to also mirror to Claude Code, add `.claude/skills/<name>/SKILL.md` too, and add the group to `GROUPS` in `scripts/check_skill_pairs.py` so drift gets flagged. Claude Code has no `activate_skill()`/`testFailure`/`runTests`/`report_progress` equivalents - adapt any such tool references to plain `Bash` commands instead of copying them verbatim.