Files
msd-core/.claude/rules/style.md
Lex Christopherson a97c567b01 feat: add .claude/rules/ for auto-loaded contribution rules
Split GSD style guidance into:
- .claude/rules/style.md - global style rules (always loaded)
- .claude/rules/commands.md - path-scoped for commands/gsd/
- .claude/rules/workflows.md - path-scoped for workflows/
- .claude/rules/templates.md - path-scoped for templates/
- .claude/rules/references.md - path-scoped for references/
- GSD-STYLE.md - comprehensive reference for deep dives

Rules auto-load via Claude Code's .claude/rules/ feature (v2.0.64+).
Path-scoped rules only activate when editing matching files.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-13 15:23:21 -06:00

2.2 KiB

GSD Style Rules

These rules apply to ALL files in this repository.

Language & Tone

Imperative voice. "Execute tasks", "Create file" — not "Execution is performed"

No filler. Absent: "Let me", "Just", "Simply", "Basically", "I'd be happy to"

No sycophancy. Absent: "Great!", "Awesome!", "Excellent!", "I'd love to help"

Brevity with substance. Good: "JWT auth with refresh rotation using jose library" Bad: "Phase complete"

Temporal Language Ban

Never write: "We changed X to Y", "Previously", "No longer", "Instead of"

Always: Describe current state only.

Exception: CHANGELOG.md, git commits (their purpose IS tracking change)

Anti-Patterns

Enterprise Patterns (Banned)

  • Story points, sprint ceremonies, RACI matrices
  • Human dev time estimates (days/weeks)
  • Team coordination, knowledge transfer docs

Generic XML (Banned)

Don't use: <section>, <item>, <content>

Use semantic tags: <objective>, <verification>, <action>, <process>

Naming Conventions

Type Convention Example
Files kebab-case execute-phase.md
Commands gsd:kebab-case gsd:execute-phase
Step names snake_case name="load_project_state"
Bash variables CAPS_UNDERSCORES PHASE_ARG
Type attributes colon separator type="checkpoint:human-verify"

XML Conventions

XML tags are semantic containers. Use Markdown headers for hierarchy within.

<!-- DO -->
<objective>
## Primary Goal
Build authentication system

## Success Criteria
- Users can log in
</objective>

<!-- DON'T -->
<section name="objective">
  <subsection name="primary-goal">
    <content>Build authentication</content>
  </subsection>
</section>

@-References

@-references are lazy loading signals — instructions to read, not pre-loaded content.

@~/.claude/get-shit-done/workflows/execute-phase.md  # Static (always load)
@.planning/DISCOVERY.md (if exists)                   # Conditional

Commit Format

{type}({phase}-{plan}): {description}

Types: feat, fix, test, refactor, docs, chore

Rules:

  • One commit per task
  • Stage files individually (never git add .)
  • Include Co-Authored-By: Claude line