dotnet-cqrs/CLAUDE.md
Jean-Philippe Brule 697b36900b docs: standardize documentation structure
- CLAUDE.md: universal development guidelines
- README.md: project description (consistent template)
- CONTRIBUTING.md: contribution workflow
- CHANGELOG.md: version history

Co-Authored-By: Svrnty Inc. <eng@svrnty.com>
2026-03-05 05:53:27 -05:00

2.1 KiB

Development Guidelines

Universal development practices for all Svrnty/a-gent repositories.

Engineering Principles

KISS (Keep It Simple)

  • Prefer straightforward control flow over clever meta-programming
  • Keep error paths obvious and localized

YAGNI (You Aren't Gonna Need It)

  • Do not add features without concrete accepted use case
  • Do not introduce speculative abstractions

DRY + Rule of Three

  • Duplicate small logic when it preserves clarity
  • Extract shared utilities only after 3+ repeated patterns

SRP + ISP (Single Responsibility + Interface Segregation)

  • Keep each module focused on one concern
  • Avoid "god modules" mixing multiple responsibilities

Fail Fast + Explicit Errors

  • Prefer explicit errors for unsupported states
  • Document fallback behavior when intentional

Secure by Default

  • Deny-by-default for access boundaries
  • Never log secrets or sensitive payloads

Agent Workflow

  1. Read before write - Inspect existing code before editing
  2. Define scope - One concern per PR
  3. Implement minimal patch - Apply KISS/YAGNI explicitly
  4. Validate - Run lint, format, test before commit
  5. Document impact - Note behavior changes and risks

Branch Strategy

  • All repos use JP branch for active development
  • Always verify current branch before committing

Commit Rules

All AI-authored commits MUST use:

Co-Authored-By: Svrnty Inc. <eng@svrnty.com>

NEVER use third-party AI tool/company names in commits.

PR Discipline

  • Clear, scoped commit messages
  • Small PRs preferred
  • Never commit personal/sensitive data
  • Reference related repos for cross-repo changes

Validation

Run before every commit:

  • Format check (language-specific)
  • Lint check (language-specific)
  • Test suite

Anti-Patterns

  • Do NOT add heavy dependencies for minor convenience
  • Do NOT mix formatting-only with functional changes
  • Do NOT modify unrelated modules "while here"
  • Do NOT bypass failing checks without explanation

Cross-Repo Changes

When changes span multiple repos:

  1. Commit to each repo separately
  2. Reference related repo in commit message
  3. Run tests in each affected repo before commit