mirror of
https://github.com/github/awesome-copilot.git
synced 2026-09-08 16:55:40 +00:00
* feat(skills): add test-gap-audit and docs-sync-audit Two repo-agnostic review skills that answer questions the existing testing and documentation skills do not. test-gap-audit asks which behaviour is not covered, rather than how to write a test in a given framework. Given no scope it audits the whole repository, inventories the testable surfaces, and reports which routes, services, jobs and contracts have no tests, too few assertions, or only indirect coverage. It bundles coverage_map.py, which detects the test framework and naming convention, then matches every source file to tests by name, by mirrored path, and by what the test files actually import, and ranks the unmatched by risk keyword and size. docs-sync-audit compares what the docs claim against what the code does. It bundles docs_drift.py, which checks documented npm scripts and make targets against the ones that exist, relative Markdown links against the filesystem, and environment variable names in both directions. It also reports a documented setting that is read only inside a module nothing imports, which is configuration that reads as working but cannot take effect. Both are read-only: they report and do not edit unless asked. Both emit the same contract, so a finding always carries a P0-P3 severity and a path:line you can open. Both scripts are Python standard library only, install nothing, and are accelerators rather than requirements, so each skill still works when the script cannot run. The existing testing and docs skills here are framework-specific, which is where most of the value is. These are the repo-agnostic complement: pytest-coverage raises coverage inside a pytest project, and this decides where coverage is missing across a repository regardless of language. * fix: satisfy codespell and regenerate all generated docs Two CI failures on the first push. codespell flagged `testng` and `shouldBe` in coverage_map.py. Both are legitimate identifiers rather than typos: TestNG is the Java test framework the script detects by name, and shouldBe is the Kotlin and Scala assertion method matched by its assertion-detection regex. Added both to ignore-words-list with a comment each, following the convention already used for the other entries. validate-readme failed because I had reverted docs/README.agents.md. `npm start` rewrites a Dynatrace MCP URL there from re-fetched external plugin data, which is unrelated to these skills, so I had excluded it to keep the diff scoped. That was wrong: the check regenerates every generated file and compares, so the commit has to carry whatever the build produces. Restored. --------- Co-authored-by: Aaron Powell <me@aaron-powell.com>
100 lines
4.7 KiB
Plaintext
100 lines
4.7 KiB
Plaintext
[codespell]
|
|
|
|
# Ignore intentional misspellings used as examples and technical terms
|
|
|
|
# numer - intentional example typo in add-educational-comments.prompt.md
|
|
|
|
# wit - proper technical term/name (sardonic wit, Gilfoyle character trait)
|
|
|
|
# aks - Azure Kubernetes Service (AKS) abbreviation
|
|
|
|
# edn - Extensible Data Notation (Clojure data format)
|
|
|
|
# ser - serialization abbreviation
|
|
|
|
# ois - ObjectInputStream abbreviation in Java
|
|
|
|
# gir - valid abbreviation/technical term
|
|
|
|
# rouge - Rouge is a syntax highlighter (not "rogue")
|
|
|
|
# categor - TypeScript template literal in website/src/scripts/pages/skills.ts:70 (categor${...length > 1 ? "ies" : "y"})
|
|
|
|
# aline - proper name (Aline Ávila, contributor)
|
|
|
|
# ative - part of "Declarative Agents" in TypeSpec M365 Copilot documentation (collections/typespec-m365-copilot.collection.md)
|
|
|
|
# dateA, dateB - variable names used in sorting comparison functions
|
|
|
|
# TE - HTTP transfer coding header
|
|
|
|
# alle - Finnish word meaning "under/below" (not "all" or "alley")
|
|
|
|
# vai - Finnish word meaning "or"
|
|
|
|
# FillIn - pdftk-server skill reference file available permission
|
|
|
|
# LOD - Level of Detail
|
|
|
|
# InOut - template property in skills/game-engine/assets/2d-platform-game.md
|
|
|
|
# pixelX - template variable in skill/game-engine/assets/simple-2d-engine.md
|
|
|
|
# aNULL - HTTPS configuration cipher string
|
|
|
|
# Wee, Sherif - proper name (Wee, Sherif, contributor names should not be flagged as typos)
|
|
|
|
# queston - intentional misspelling example in skills/arize-dataset/SKILL.md demonstrating typo detection in field names
|
|
|
|
# extenions - intentional misspelled key name used in plugin validators to detect invalid manifests
|
|
|
|
# nin - MongoDB $nin operator in security instructions NoSQL injection detection regex
|
|
|
|
# Vertexes - FreeCAD shape sub-elements used as property of obj.Shape
|
|
|
|
# FO - tasklist option /FO to format running task output
|
|
|
|
# CAF - Microsoft Cloud Adoption Framework acronym
|
|
|
|
# ans - bash and powershell variable short for answer
|
|
|
|
# GUD - "Guideline" identifier prefix in the create-implementation-plan skill spec (alongside REQ, SEC, CON, PAT, etc.)
|
|
|
|
# Vally/vally - Name of product
|
|
|
|
# checkin - config key in the daily-focus-board skill (window.__BOARD__.checkin, state.checkin, data-checkin attribute)
|
|
|
|
# ACI - Azure Container Instances abbreviation
|
|
|
|
# soruce - intentional misspelling for tests
|
|
|
|
# straightaway - valid adverb ("immediately") in mirrored copilot-workshops content
|
|
|
|
# crystalize - valid US spelling variant in mirrored copilot-workshops content
|
|
|
|
# INOUT - PostgreSQL stored procedure parameter mode (IN, OUT, INOUT) in migrating-oracle-to-postgres-data-access-code/SKILL.md
|
|
|
|
# implementors - path segment in the containers.dev specification URLs (https://containers.dev/implementors/spec/, /implementors/json_reference/, /implementors/features/) cited in devcontainers.instructions.md
|
|
|
|
# evaulated - verbatim inside a quotation from the Dev Container Features specification in devcontainers.instructions.md, which spells it that way
|
|
|
|
# testng/TestNG - the Java test framework, detected by name in skills/test-gap-audit/scripts/coverage_map.py
|
|
|
|
# shouldBe - Kotlin/Scala assertion method name matched by the assertion-detection regex in the same script
|
|
|
|
ignore-words-list = numer,wit,aks,edn,ser,ois,gir,rouge,categor,aline,ative,afterall,deques,dateA,dateB,TE,FillIn,alle,vai,LOD,InOut,INOUT,pixelX,aNULL,Wee,Sherif,queston,extenions,Vertexes,nin,FO,CAF,Parth,ans,gud,Vally,vally,checkin,ACI,soruce,straightaway,crystalize,implementors,evaulated,testng,shouldbe
|
|
|
|
# Skip certain files and directories
|
|
|
|
# *.tm7 - MTM DataContract exports; embedded base64 icon blobs trigger false positives
|
|
|
|
# website/src/content/docs/<locale> - localized Learning Hub content mirrored from
|
|
|
|
# upstream course repos. codespell only knows English, so Spanish, Japanese, Korean
|
|
|
|
# Portuguese, and Chinese prose produces false positives on ordinary foreign words
|
|
|
|
# These files are source-faithful mirrors and must not be edited to satisfy a spell checker
|
|
|
|
skip = .git,node_modules,package-lock.json,*.lock,website/build,website/.docusaurus,.all-contributorrc,./skills/geofeed-tuner/assets/*.json,./skills/geofeed-tuner/references/*.txt,./plugins/fastah-ip-geo-tools/skills/geofeed-tuner/assets/*.json,./plugins/fastah-ip-geo-tools/skills/geofeed-tuner/references/*.txt,./extensions/arcade-canvas/game/phaser.min.js,./extensions/pr-artifact-explorer/assets/asciinema-player.min.js,./extensions/pr-artifact-explorer/assets/asciinema-player-worker.min.js,./extensions/pr-artifact-explorer/assets/primer-*.css,./extensions/flight-map-canvas/game/vendor/three.min.js,*.tm7,./website/src/content/docs/es-es,./website/src/content/docs/ja-jp,./website/src/content/docs/ko-kr,./website/src/content/docs/pt-br,./website/src/content/docs/zh-cn
|