Thanks for your interest in contributing. This document covers the development workflow and pre-commit checklist.
Before every commit, run through this list:
- Instructions are clear, unambiguous, and internally consistent
- New tools added to the frontmatter only if actually used in the instructions
- No hardcoded paths — use
**/*glob patterns for workspace searches -
CHANGELOG.mdupdated under[Unreleased] → Added / Changed / Fixed -
README.mdupdated if the change affects user-facing behaviour or the repo structure
- Both installers kept functionally equivalent where possible
-
install.shuses SHA-256 comparison (notdiff -q) - Any new
Invoke-RestMethodcalls include-TimeoutSec 30 - Tested with
-DryRun/--dry-runbefore testing a real install -
CHANGELOG.mdupdated
- All five dimensions populated (voice, reasoning style, reference frame, format preferences, behavioural tells)
- Guest files include
franchise,canonicalSource, andcontentNotefields - Real-person guests:
contentNoteexplicitly prohibits fabricating opinions or private facts - File placed in the correct subfolder (
archetypes/orguests/) -
README.mdpersona table updated if adding a new seed persona
-
accessibilityFocusframed positively — who finds it useful, not what is wrong with them - No deficit language, no gatekeeping by diagnosis — "anyone can use any profile"
-
communicationRulesare concrete and prescriptive — each rule describes a specific change -
neverDorules are absolute — they override persona voice and user instruction -
extendsfield set correctly if the profile builds on a base profile - Derived profiles include
_(Inherits all rules from \base`. The following are additions.)_` note -
README.mdprofiles table updated if adding a new profile
-
README.mdRepository Structure section reflects any new/removed files -
CHANGELOG.mdupdated -
TODO.mdupdated if a tracked item is completed or a new one is added
- Skill authored in the canonical
skills/directory — never in.github/skills/or.agents/skills/ -
SKILL.mdhas valid YAML frontmatter withnameanddescriptionfields - Instructions are engine-agnostic — no engine-specific tool references unless wrapped in conditional language
- Body is under 500 lines; longer content goes in a
references/subdirectory - Ran
.\project.ps1 -DryRun(orbash project.sh --dry-run) to verify projection -
CHANGELOG.mdupdated under[Unreleased] → Added / Changed / Fixed -
README.mdupdated if the change affects user-facing behaviour
- Create a new directory:
skills/<skill-name>/ - Create
SKILL.mdwith YAML frontmatter:--- name: <skill-name> description: > Clear, concise description of the skill. ---
- Write engine-agnostic instructions in the markdown body
- Optional: add
scripts/,references/, orexamples/subdirectories - Run
.\project.ps1to project to both Copilot and Gemini - Verify the skill appears in both
.github/skills/and.agents/skills/ - Update
README.mdandCHANGELOG.md
Each agent needs:
- A
.agent.mdfile under.github/agents/with YAML frontmatter (name,description,tools) and markdown instructions - An entry in
README.md - An entry in
CHANGELOG.md - An entry in
TODO.mdif it has a tracked roadmap