development-skills
CLAUDE.md4 starsChanged 10 months agoMITView on GitHub
IF A SKILL APPLIES TO YOUR TASK, YOU DO NOT HAVE A CHOICE. YOU MUST USE IT. This is not negotiable. This is not optional. You cannot rationalize your way out of this. </EXTREMELY-IMPORTANT> Execute these steps at the START of EVERY session, including continuations: Read and acknowledge the repository guidelines: You MUST state this acknowledgement before ANY other action. This skill enforces: Before any work that will result in commits or PRs, verify persona is configured. See CLAUDE.local.md for…
- Commits and pushes
In this repository67 other files it gives its agents.
- AGENTS.mdAGENTS.md
- agents-onboardingSkill
- agent-workitem-automationSkill
- architecture-testingSkill
- aspire-integration-testingSkill
- automated-standards-enforcementSkill
- best-practice-introductionSkill
- branching-strategy-and-conventionsSkill
- broken-windowSkill
- change-risk-rollbackSkill
- ci-cd-conformanceSkill
- component-boundary-ownershipSkill
- contract-consistency-validationSkill
- csharp-best-practicesSkill
- deployment-provenanceSkill
- documentation-as-codeSkill
- documentation-scaffoldSkill
- dotnet-bespoke-code-minimisationSkill
- dotnet-best-practicesSkill
- dotnet-domain-primitivesSkill
- dotnet-efcore-practicesSkill
- dotnet-healthchecksSkill
- dotnet-logging-serilogSkill
- dotnet-mapping-standardSkill
- dotnet-open-source-first-governanceSkill
- dotnet-source-generation-firstSkill
- dotnet-specification-patternSkill
- dotnet-testing-assertionsSkill
- environment-traceabilitySkill
- finishing-a-development-branch-iddSkill
- greenfield-baselineSkill
- impacted-scope-enforcementSkill
- incremental-change-impactSkill
- incremental-deploymentSkill
- innersource-governance-bootstrapSkill
- issue-driven-deliverySkill
- library-extraction-stabilisationSkill
- local-dev-experienceSkill
- markdown-authorSkill
- modern-csharp-coding-standardsSkill
- monorepo-orchestration-setupSkill
- observability-logging-baselineSkill
- pair-programmingSkill
- persona-switchingSkill
- process-skill-routerSkill
- quality-gate-enforcementSkill
- release-tagging-planSkill
- repo-best-practices-bootstrapSkill
- repository-foundation-bootstrapSkill
- requirements-gatheringSkill
- runtime-tooling-validationSkill
- safe-brownfield-refactorSkill
- scoped-colocationSkill
- security-processesSkill
- selective-build-testSkill
- semantic-version-impactSkill
- session-awareSkill
- skills-first-workflowSkill
- static-analysis-securitySkill
- structured-review-workflowSkill
- The first 60 shown.
The file
Show its rules and text
We split this CLAUDE.md into the rules it gives an agent
31 rules. About 0 are common, 23 are distinctive, and 8 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈23
Distinctive · estimate
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 4
If you think there is even a 1% chance a skill might apply to what you are doing, you ABSOLUTELY MUST invoke the skill.
- Distinctive: line 5
MUST invoke the skill.
- Distinctive: line 7
IF A SKILL APPLIES TO YOUR TASK, YOU DO NOT HAVE A CHOICE.
- Distinctive: line 18
Read and acknowledge the repository guidelines:
- Very specific: line 41
Before any work that will result in commits or PRs, verify persona is configured.
- Distinctive: line 57
RED Phase: Write failing test/checklist BEFORE any implementation
- Distinctive: line 61
Evidence: Commit with SHA references
- Distinctive: line 83
Create or reference issue BEFORE starting work
- Distinctive: line 84
All work must be done on a feature branch (leverage git worktrees)
- Distinctive: line 91
Never commit directly to main - use feature branches
- Very specific: line 93
Use .worktrees/ as the preferred worktree directory
- Distinctive: line 98
Check for applicable skills BEFORE implementation
- Distinctive: line 104
All linting must pass before committing
- Very specific: line 105
Run: npm run lint to verify
- Distinctive: line 124
When skills conflict, higher priority wins:
- Distinctive: line 137
Never claim "complete" without running verification commands first
- Very specific: line 150
Use human-readable terminology in /docs, not skill names
- Very specific: line 151
Check docs/exclusions.md before suggesting patterns
- Distinctive: line 152
Use ADRs for major architectural decisions
- Distinctive: line 207
When multiple skills could apply, use this order:
- Distinctive: line 318
After PR passes all checks and has required approvals:
- Distinctive: line 327
All required status checks pass
- Very specific: line 348
Use canonical names from docs/roles/README.md when referencing personas.
- Distinctive: line 358
Codex available locally: - If installed, use for parallel tasks or local execution
- Very specific: line 359
Load the persona: - Read the relevant docs/roles/<persona>.md before executing
- Distinctive: line 363
After EVERY persona-delegated task completes:
- Very specific: line 375
Write retrospective to docs/retrospectives/YYYY-MM-DD-<topic>.md
- Distinctive: line 376
Create GitHub issues for corrective actions
- Distinctive: line 416
DO read relevant issues before implementing
- Distinctive: line 417
DO verify acceptance criteria from issues
- Distinctive: line 424
If you find yourself thinking:
≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
CLAUDE.md - Agent Onboarding
<EXTREMELY-IMPORTANT>
If you think there is even a 1% chance a skill might apply to what you are doing, you ABSOLUTELY
MUST invoke the skill.IF A SKILL APPLIES TO YOUR TASK, YOU DO NOT HAVE A CHOICE. YOU MUST USE IT.
This is not negotiable. This is not optional. You cannot rationalize your way out of this.
</EXTREMELY-IMPORTANT>
Session Initialization (MANDATORY)
Execute these steps at the START of EVERY session, including continuations:
Step 1: Acknowledge Onboarding
Read and acknowledge the repository guidelines:
I have read and understood README.md and AGENTS.md for development-skills.You MUST state this acknowledgement before ANY other action.
Step 2: Load Skills-First Workflow
Loading development-skills:skills-first-workflowThis skill enforces:
- Superpowers installed and bootstrapped
superpowers:using-superpowersloaded- AGENTS.md verified
- Process skills loaded before implementation
Step 3: Verify Persona Configuration
Before any work that will result in commits or PRs, verify persona is configured.
See CLAUDE.local.md for machine-specific persona commands.
Loading Order: This file (CLAUDE.md) → Read docs → State acknowledgement → Load skills-first-workflow → Verify persona → Begin work
Critical Standards (Non-Negotiable)
Full details in AGENTS.md.
TDD/BDD is Mandatory
For ALL changes (code, config, documentation):
- RED Phase: Write failing test/checklist BEFORE any implementation
- Verify RED: Confirm the test/checklist fails
- GREEN Phase: Implement minimum to pass
- Verify GREEN: Confirm passing
- Evidence: Commit with SHA references
Documentation changes use BDD checklists as tests:
## BDD Checklist: [Feature/Change Name]
### Acceptance Criteria
- [ ] Criterion 1 - [specific, verifiable outcome]
- [ ] Criterion 2 - [specific, verifiable outcome]
### Verification Status
- RED Phase: Checklist created, all items unchecked
- GREEN Phase: All items checked with evidenceIssue-Driven Workflow
No changes without a GitHub issue:
- Create or reference issue BEFORE starting work
- All work must be done on a feature branch (leverage git worktrees)
- Reference issue in all commits (
Refs: #123) - Post evidence to issue comments
- Close issue only after ALL scope delivered
Additional rules:
- Never commit directly to
main- use feature branches - Baseline failure blocks work: create blocking issue and pause until baseline passes
- Use
.worktrees/as the preferred worktree directory
Skills-First Execution
- Load
development-skills:skills-first-workflowbefore any task - Check for applicable skills BEFORE implementation
- Process skills (TDD, debugging) take priority over implementation skills
Clean Build Principle
- Zero tolerance for warnings or errors
- All linting must pass before committing
- Run:
npm run lintto verify
Verification Before Completion
NEVER claim completion without running verification:
BEFORE claiming any status:
1. IDENTIFY: What command proves this claim?
2. RUN: Execute the command (fresh, complete)
3. READ: Full output, check exit code
4. VERIFY: Does output confirm the claim?
5. ONLY THEN: Make the claim with evidenceSkill Priority Model
When skills conflict, higher priority wins:
| Priority | Category | Examples |
| P0 | Safety & Integrity | Security, traceability, issue-driven |
| P1 | Quality & Correctness | Clean builds, test validity |
| P2 | Consistency & Governance | Conventions, versioning |
| P3 | Delivery & Flow | Incremental execution, DX |
Verification Requirements
- Concrete changes (code/config): Provide applied evidence (commit SHAs, file links)
- Process-only changes: Provide analytical evidence (issue comment links)
- Never claim "complete" without running verification commands first
Evidence Requirements Summary
| Change Type | Evidence Required |
| Code changes | Failing test commit SHA → Passing test commit SHA |
| Documentation | BDD checklist (RED) → BDD checklist (GREEN) with links |
| Configuration | Before/after verification commands with output |
| Process-only | Issue comment links, decision records |
Documentation Standards
- Use human-readable terminology in
/docs, not skill names - Check
docs/exclusions.mdbefore suggesting patterns - Use ADRs for major architectural decisions
Using Skills
The Rule
Invoke relevant or requested skills BEFORE any response or action. Even a 1% chance a skill might apply means you should invoke the skill to check. If an invoked skill turns out to be wrong for the situation, you don't need to use it.
digraph skill_flow {
"User message received" [shape=doublecircle];
"Might any skill apply?" [shape=diamond];
"Invoke Skill tool" [shape=box];
"Announce: 'Using [skill] to [purpose]'" [shape=box];
"Has checklist?" [shape=diamond];
"Create TodoWrite todo per item" [shape=box];
"Follow skill exactly" [shape=box];
"Respond (including clarifications)" [shape=doublecircle];
"User message received" -> "Might any skill apply?";
"Might any skill apply?" -> "Invoke Skill tool" [label="yes, even 1%"];
"Might any skill apply?" -> "Respond (including clarifications)" [label="definitely not"];
"Invoke Skill tool" -> "Announce: 'Using [skill] to [purpose]'";
"Announce: 'Using [skill] to [purpose]'" -> "Has checklist?";
"Has checklist?" -> "Create TodoWrite todo per item" [label="yes"];
"Has checklist?" -> "Follow skill exactly" [label="no"];
"Create TodoWrite todo per item" -> "Follow skill exactly";
}Skill Rationalizations (Red Flags)
These thoughts mean STOP—you're rationalizing:
| Thought | Reality |
| "This is just a simple question" | Questions are tasks. Check for skills. |
| "I need more context first" | Skill check comes BEFORE clarifying questions. |
| "Let me explore the codebase first" | Skills tell you HOW to explore. Check first. |
| "I can check git/files quickly" | Files lack conversation context. Check for skills. |
| "Let me gather information first" | Skills tell you HOW to gather information. |
| "This doesn't need a formal skill" | If a skill exists, use it. |
| "I remember this skill" | Skills evolve. Read current version. |
| "This doesn't count as a task" | Action = task. Check for skills. |
| "The skill is overkill" | Simple things become complex. Use it. |
| "I'll just do this one thing first" | Check BEFORE doing anything. |
| "This feels productive" | Undisciplined action wastes time. Skills prevent this. |
| "I know what that means" | Knowing the concept ≠ using the skill. Invoke it. |
Skill Priority
When multiple skills could apply, use this order:
- Process skills first (brainstorming, debugging) - these determine HOW to approach the task
- Implementation skills second (frontend-design, mcp-builder) - these guide execution
"Let's build X" → brainstorming first, then implementation skills. "Fix this bug" → debugging first, then domain-specific skills.
Skill Types
Rigid (TDD, debugging): Follow exactly. Don't adapt away discipline.
Flexible (patterns): Adapt principles to context.
The skill itself tells you which.
User Instructions
Instructions say WHAT, not HOW. "Add X" or "Fix Y" doesn't mean skip workflows.
Persona-Switching for PR Workflow
Two-Account Review Pattern
This repo requires different accounts for PR creation and approval:
| Phase | Persona | Profile | Operations |
| Implementation | backend-engineer | contributor | Create branches, push, open PR |
| Review/Merge | tech-lead | maintainer | Review, approve, merge |
This two-account workflow ensures:
- Contributors cannot approve their own PRs
- Review accountability is maintained
- Auto-merge works correctly after approval
Anti-pattern: Reviewing as the same account that created the PR will fail with "Cannot approve your own pull request".
PR Creation Workflow
# 1. Switch to contributor persona for implementation
use_persona backend-engineer
gh auth status # Verify: contributor account
# 2. Implement changes (following TDD)
# ... make changes ...
# 3. Commit with issue reference
git add -A && git commit -m "feat: description
Refs: #123"
# 4. Push and create PR
git push -u origin feature/branch-name
gh pr create --title "feat: description" --body "$(cat <<'EOF'
## Summary
- [What changed and why]
## Issues
- Refs: #123
- Closes #123
## Test Plan
- [ ] `npm run lint` - All checks pass
- [ ] BDD checklist verified
## Verification
- [Link to evidence]
## Auto-merge
- [ ] Enable auto-merge after required approvals and checks pass
EOF
)"PR Review and Merge Workflow
# 5. Switch to maintainer persona for review
use_persona tech-lead
gh auth status # Verify: maintainer account
# 6. Review the PR
gh pr view <number>
gh pr diff <number>
# 7. If changes needed, switch back to contributor
use_persona backend-engineer
# ... make changes, push ...
use_persona tech-lead
# 8. Approve and merge
gh pr review <number> --approve --body "LGTM - [brief justification]"
gh pr merge <number> --squash --delete-branch --auto
# 9. Switch back to contributor for next work
use_persona backend-engineerAuto-Merge Configuration
After PR passes all checks and has required approvals:
# Enable auto-merge (squash strategy)
gh pr merge <number> --squash --delete-branch --autoThe --auto flag enables auto-merge when:
- All required status checks pass
- Required number of approvals received
- No merge conflicts
Persona-Based Task Delegation
Available Personas
Specialized expert personas are defined in docs/roles/*.md:
| Category | Personas |
| Development | Tech Lead, Senior Developer, QA Engineer |
| Security | Security Reviewer, Security Architect |
| Performance | Performance Engineer |
| Infrastructure | DevOps Engineer, Cloud Architect |
| Product & Design | Product Owner, UX Expert, Accessibility Expert |
| Documentation | Documentation Specialist, Technical Architect, Agent Skill Engineer |
Use canonical names from docs/roles/README.md when referencing personas.
Delegation Rules
- Use subagents for specialized tasks - Delegate to the most appropriate persona to reduce context pollution in the main conversation
- Select the right model for the task (Claude model tiers):
opus- Complex architectural decisions, security reviews, nuanced analysissonnet- General development, code review, implementationhaiku- Quick lookups, simple validations, formatting tasks
- Codex available locally - If installed, use for parallel tasks or local execution
- Load the persona - Read the relevant
docs/roles/<persona>.mdbefore executing
Mandatory Retrospective
After EVERY persona-delegated task completes:
- Conduct retrospective review covering:
- Process compliance (Did the persona follow TDD, issue-driven workflow, skills-first?)
- Quality of result (Does output meet the persona's standards?)
- Identified issues or improvements
- Present summary to user:
- Task completed and outcome
- Retrospective findings (compliance, quality, issues)
- If meaningful issues found (any Critical, 2+ Important, or patterns worth capturing):
- Write retrospective to
docs/retrospectives/YYYY-MM-DD-<topic>.md - Create GitHub issues for corrective actions
- Reference retrospective in issue description
- Write retrospective to
Retrospective Template
# Retrospective: [Task Description]
**Date**: YYYY-MM-DD
**Persona**: [Role name]
**Task**: [Brief description]
## Process Compliance
- [ ] TDD followed
- [ ] Issue referenced
- [ ] Skills-first observed
- [ ] Clean build maintained
## Quality Assessment
[Assessment of output quality against persona standards]
## Issues Identified
[List any problems, with severity]
## Corrective Actions
- [ ] Issue #XX: [Description]Session Continuation Protocol
When continuing from a previous session:
- DO NOT rely solely on the session summary
- DO execute full Session Initialization steps above
- DO read relevant issues before implementing
- DO verify acceptance criteria from issues
- DO apply TDD/BDD before any file changes
Red Flags - STOP Immediately
If you find yourself thinking:
- "I'll just continue from the summary" → STOP, do full initialization
- "This is simple, skip TDD" → STOP, TDD applies to ALL changes
- "I'll verify after" → STOP, verification is BEFORE
- "No issue needed for this" → STOP, create issue first
- "I remember the requirements" → STOP, read the actual issue
- "Skip persona switch, it's quick" → STOP, always use correct persona
Compliance Checklists
Before ANY Implementation Work
- Session initialization completed (acknowledgement stated)
- skills-first-workflow loaded
- Persona verified (correct account for task type)
- Issue exists and is referenced
- TDD/BDD approach planned (test/checklist first)
Before ANY PR
- All commits reference issue
- Tests/checklists pass
npm run lintpasses- Contributor persona used for PR creation
- PR body follows template
Before ANY Merge
- Switched to maintainer persona
- PR reviewed and approved
- Auto-merge enabled with squash strategy
- Switched back to contributor after merge
Bootstrap Requirements
See AGENTS.md "Bootstrap (First-Time Setup)" for detailed instructions on installing Superpowers and configuring this skill library.
Quick Reference
| Resource | Purpose |
README.md | Repository standards, skill list, format spec |
AGENTS.md | Complete agent execution rules |
CONTRIBUTING.md | Contribution process |
CLAUDE.local.md | Machine-specific persona configuration |
docs/roles/*.md | Expert persona definitions |
docs/architecture-overview.md | Architectural patterns |
docs/coding-standards.md | Code and doc standards |
docs/testing-strategy.md | BDD/TDD methodology |
docs/exclusions.md | Patterns explicitly declined |
docs/retrospectives/ | Task retrospective records |
Quality Commands
npm run lint # Run all linting
npm run lint:fix # Auto-fix issuesThis file ensures agents are properly onboarded. For complete rules, always refer to AGENTS.md. For machine-specific configuration (persona paths, accounts), see CLAUDE.local.md.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

