Templates
Agreement Template
Template for documenting technical standards and conventions teams agree to follow
Use this template for documenting technical standards and conventions teams agree to follow.
When to Use
Create an agreement when teams need to agree on:
- Code style rules (ESLint, Prettier configs)
- Linter levels (PHPStan level 8)
- Testing requirements
- Code review standards
Template
---
title: Agreement Name
description: Brief description of the agreement
---
# Agreement: [Topic]
## Context
Why this agreement exists and what problem it solves.
## Scope
What this agreement covers:
- **Applies to**: Languages, projects, or teams
- **Effective Date**: When this agreement takes effect
- **Review Date**: When this should be reviewed
## Standards
### [Standard Category 1]
**Decision**: What we agreed on
**Rationale**: Why we made this choice
**Implementation**:
\`\`\`language
// Code example or configuration
\`\`\`
**Enforcement**: How this is checked (linter rules, CI checks, code review)
### [Standard Category 2]
[Continue pattern...]
## Exceptions
When it's acceptable to deviate from these standards:
- **Exception Case 1**: Circumstances and approval process
- **Exception Case 2**: Circumstances and approval process
## Validation
How compliance with this agreement is verified:
- Automated checks
- Code review checklist
- Testing requirements
## References
- Related agreements
- Tool documentation
- External resources
## Change Log
- **YYYY-MM-DD**: Initial version
- **YYYY-MM-DD**: Updated [section] based on [reason]Best Practices
- Be specific: Provide concrete examples and code samples
- Language-specific: Create separate agreements for each language
- Common agreements: Use
common/folder for universal standards - Enforcement: Define how standards are checked and enforced
- Living document: Review and update regularly
- Link to ADRs: Reference architectural decisions that led to standards
- Code examples: Show correct and incorrect examples
- Tooling: Include linter configs, IDE settings when relevant
File Location
Language-Specific
Place in: content/{project}/docs/agreements/{lang}/
Examples:
content/my-project/docs/agreements/php/coding-standards.mdxcontent/my-project/docs/agreements/typescript/eslint-rules.mdx
Common (All Languages)
Place in: content/{project}/docs/agreements/common/
Examples:
content/my-project/docs/agreements/common/git-commit-messages.mdxcontent/my-project/docs/agreements/common/code-review-checklist.mdx