- Split CODING_GUIDELINES.md into 19 indexed standards files under .claude/standards/ - 9 from CODING_GUIDELINES (conventions, powershell, security, api, git, gururmm) - 10 from session log tribal knowledge (syncro, ssh, gitea, python, client, gururmm) - Add .claude/standards/index.yml for cheap relevance-based lookup - Add /inject-standards command: load targeted standards per task instead of full guidelines - Add /shape-spec command: pre-implementation spec for GuruRMM features (plan.md, shape.md, references.md, standards.md) with mandatory out-of-scope gate - Add docs/tech-stack.md and docs/mission.md for ClaudeTools API - Add projects/msp-tools/guru-rmm/docs/tech-stack.md and mission.md for GuruRMM - Update CLAUDE.md commands table with /inject-standards and /shape-spec Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
39 lines
1.3 KiB
Markdown
39 lines
1.3 KiB
Markdown
---
|
|
name: naming
|
|
description: Naming conventions for Python, PowerShell, Bash, database tables and columns
|
|
applies-to: all
|
|
---
|
|
|
|
# Naming Conventions
|
|
|
|
## Python
|
|
|
|
- Functions: `snake_case`
|
|
- Classes: `PascalCase`
|
|
- Constants: `UPPER_SNAKE_CASE`
|
|
- Follow PEP 8 for everything else
|
|
|
|
## PowerShell
|
|
|
|
- Variables: `$PascalCase` — e.g., `$TaskName`, `$ServiceStatus`
|
|
- Functions/cmdlets: use approved verbs — `Get-`, `Set-`, `New-`, `Remove-`, `Invoke-`
|
|
- Do not invent new verb forms; stick to the PowerShell approved verb list
|
|
|
|
## Bash
|
|
|
|
- Functions: `lowercase_underscore` — e.g., `get_token`, `check_status`
|
|
- All variables: quote them — `"$var"`, not `$var`
|
|
- Script names: `lowercase-with-hyphens.sh`
|
|
|
|
## Database
|
|
|
|
**Tables:**
|
|
- Lowercase plural nouns: `users`, `user_sessions`, `agent_updates`
|
|
- Junction/relation tables: `{table_a}_{table_b}` — e.g., `policy_assignments`
|
|
- Foreign keys: `{referenced_table_singular}_id` — e.g., `agent_id`, `client_id`, `site_id`
|
|
|
|
**Columns:**
|
|
- Timestamps: `created_at`, `updated_at` (not `created`, `modified`, `timestamp`)
|
|
- Booleans: `is_` prefix for state — `is_active`, `is_hidden`; `has_` prefix for possession — `has_alert`
|
|
- Status enums: use a `TEXT` column with a CHECK constraint listing valid values, not an integer code
|