Files
awesome-copilot/.codespellrc
T
Komal Vardhan Lolugu df58232729 create-implementation-plan: require unique identifiers (#1989) (#2142)
* create-implementation-plan: require unique identifiers (#1989)

The skill template tells the agent to use REQ-, TASK-, GOAL-, and
similar prefixed identifiers, but never says they have to be unique
or how to check. @basilevs reported plans coming back with duplicate
TASK IDs and proposed three POSIX one-liners that catch the two real
collision modes (table rows and bullet declarations) plus a broad
diagnostic scan.

Document the uniqueness rule under the existing Template Validation
Rules, then add a new "Identifier Uniqueness Check" section with all
three bash commands and instructions on which must come back empty
before the plan is finalized.

DEP-* references intentionally allowed in multiple sections per the
reporter's note.

Closes #1989.

* codespell: ignore GUD identifier prefix (#1989)

Upstream skills/create-implementation-plan/SKILL.md already uses
GUD-001 in the template body. Codespell currently slips past it on
word-boundary, but the regex alternation (GUD|RISK|...) added in the
previous commit on this branch makes codespell flag it as a misspelling
of GOOD.

GUD is the documented "Guideline" identifier prefix alongside REQ,
SEC, CON, PAT, etc. Add it to the ignore-words-list, matching the
pattern every other technical-token exemption in .codespellrc uses.

* create-implementation-plan: clarify declaration vs reference (#1989 review)

basilevs flagged that calling out DEP-* specifically was misleading,
because any identifier can appear as a reference. A TASK body can
cite a REQ, one TASK can cite another, and so on. The original
phrasing made it sound like DEP-* was the only prefix allowed to
recur.

Rewrite the rule to lead with "uniquely declared":
- Define declaration as the leading bullet/cell ID (e.g., the table
  row in Implementation Phase N, or '- **REQ-001**:').
- Say explicitly that references elsewhere in the plan are expected
  and not collisions, with concrete examples (TASK citing REQ,
  TASK citing TASK, Dependencies pointing at a DEP declared upstream).
- Tighten the check intro to call (1) and (2) declaration-targeted
  gates and (3) a broad informational scan that will see references.

Bash checks unchanged; they already encode the declaration-vs-reference
distinction via the table-cell and bullet-prefix anchors.
2026-06-30 10:36:03 +10:00

66 lines
2.5 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
# 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.)
ignore-words-list = numer,wit,aks,edn,ser,ois,gir,rouge,categor,aline,ative,afterall,deques,dateA,dateB,TE,FillIn,alle,vai,LOD,InOut,pixelX,aNULL,Wee,Sherif,queston,Vertexes,nin,FO,CAF,Parth,ans,gud
# Skip certain files and directories
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