acc-adr-template
Generates Architecture Decision Records (ADR) for PHP projects. Creates structured decision documentation with context, decision, and consequences.
Best use case
acc-adr-template is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Generates Architecture Decision Records (ADR) for PHP projects. Creates structured decision documentation with context, decision, and consequences.
Teams using acc-adr-template should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/acc-adr-template/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How acc-adr-template Compares
| Feature / Agent | acc-adr-template | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Generates Architecture Decision Records (ADR) for PHP projects. Creates structured decision documentation with context, decision, and consequences.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# ADR Template Generator
Generate Architecture Decision Records following the standard format.
## ADR Format
```markdown
# ADR-{number}: {Title}
**Status:** {Proposed | Accepted | Deprecated | Superseded}
**Date:** {YYYY-MM-DD}
**Deciders:** {names or roles}
## Context
{What is the issue that we're seeing that motivates this decision?}
## Decision
{What is the change that we're proposing/doing?}
## Consequences
### Positive
{What becomes easier?}
### Negative
{What becomes harder?}
### Risks
{What could go wrong?}
## Alternatives Considered
{What other options were evaluated?}
## References
{Links to relevant resources}
```
## Section Guidelines
### Title
```markdown
# ADR-001: Use Domain-Driven Design Architecture
Format: "ADR-{NNN}: {Verb} {Noun/Concept}"
Good:
- Use Domain-Driven Design
- Implement CQRS Pattern
- Adopt PostgreSQL for Primary Storage
- Separate Read and Write Models
Bad:
- DDD (too short)
- Architecture Decision (too vague)
- We should use DDD (conversational)
```
### Status Values
```markdown
**Proposed** — Under discussion, not yet decided
**Accepted** — Decided and implemented
**Deprecated** — No longer recommended
**Superseded by ADR-XXX** — Replaced by newer decision
```
### Context Section
```markdown
## Context
Describe the situation that led to this decision:
- What problem are we solving?
- What forces are at play?
- What constraints exist?
- What is the current state?
Example:
---
The system has grown to 50+ controllers with business logic scattered
across controllers, services, and repositories. This leads to:
- Code duplication across features
- Difficulty testing business rules
- Unclear ownership of business logic
- Tight coupling to Symfony framework
We need a clear structure to organize business logic.
```
### Decision Section
```markdown
## Decision
State the decision clearly:
- Use active voice
- Be specific about what changes
- Include key implementation details
Example:
---
We will adopt Domain-Driven Design (DDD) with the following structure:
1. **Domain Layer** — Contains entities, value objects, domain events,
and repository interfaces. No framework dependencies.
2. **Application Layer** — Contains use cases that orchestrate domain
objects. Defines DTOs for input/output.
3. **Infrastructure Layer** — Implements repository interfaces,
integrates with database, cache, and external services.
4. **Presentation Layer** — Handles HTTP requests/responses using
ADR pattern (Action-Domain-Responder).
```
### Consequences Section
```markdown
## Consequences
### Positive
List benefits gained:
- Clearer separation of concerns
- Domain logic independent of framework
- Easier to test business rules
- Better code organization
### Negative
List drawbacks accepted:
- More files and directories
- Learning curve for team
- Initial refactoring effort
- More boilerplate code
### Risks
List potential issues:
- Team may over-engineer simple features
- Boundaries may be drawn incorrectly initially
- Refactoring existing code may introduce bugs
```
### Alternatives Section
```markdown
## Alternatives Considered
### Alternative 1: {Name}
**Description:** {What is it?}
**Pros:**
- {benefit 1}
- {benefit 2}
**Cons:**
- {drawback 1}
- {drawback 2}
**Why Rejected:** {reason}
### Alternative 2: {Name}
...
```
## Complete Example
```markdown
# ADR-003: Use PostgreSQL for Primary Database
**Status:** Accepted
**Date:** 2025-01-15
**Deciders:** Tech Lead, Backend Team
## Context
We need to select a primary database for the new order management system.
Requirements include:
- Support for complex queries on order data
- JSONB storage for flexible product attributes
- Strong ACID compliance for financial transactions
- Good performance at 10K orders/day scale
- Team familiarity and ecosystem support
Current tech stack uses MySQL 5.7 for legacy systems.
## Decision
We will use PostgreSQL 16 as the primary database for the following reasons:
1. **JSONB Support** — Native JSON storage with indexing for product
attributes that vary by category
2. **Advanced Types** — UUID, arrays, enums as native types reduce
application-level validation
3. **Better Query Optimizer** — Handles complex JOINs across order,
item, and inventory tables more efficiently
4. **Extensibility** — PostGIS for future location features,
full-text search without external service
Implementation notes:
- Use Doctrine ORM with PostgreSQL-specific types
- Enable UUID generation at database level
- Configure connection pooling with PgBouncer
## Consequences
### Positive
- Native JSONB eliminates need for EAV pattern
- Better query performance for complex reports
- Strong typing catches data issues early
- Modern features reduce application complexity
### Negative
- Team needs PostgreSQL training (2-3 days)
- Different SQL dialect from MySQL
- Hosting costs slightly higher
- No existing internal DBA expertise
### Risks
- Migration from MySQL may surface data issues
- Performance tuning requires new expertise
- Backup/recovery procedures need updating
## Alternatives Considered
### MySQL 8.0
**Description:** Upgrade existing MySQL infrastructure
**Pros:**
- Team familiarity
- Existing tooling and procedures
- Lower migration effort
**Cons:**
- JSON support less mature than PostgreSQL
- Missing advanced types
- Query optimizer less capable
**Why Rejected:** Long-term technical debt outweighs short-term convenience
### MongoDB
**Description:** Document database for flexibility
**Pros:**
- Schema flexibility
- Native JSON
- Horizontal scaling
**Cons:**
- No ACID for multi-document transactions
- Team has no experience
- Complex queries harder
**Why Rejected:** Financial data requires strong ACID guarantees
## References
- [PostgreSQL vs MySQL Comparison](https://example.com/comparison)
- [PostgreSQL 16 Release Notes](https://www.postgresql.org/docs/16/release-16.html)
- Internal RFC: Database Selection Criteria
```
## File Naming Convention
```
docs/adr/
├── 000-adr-template.md # Template file
├── 001-use-ddd.md # First decision
├── 002-implement-cqrs.md # Second decision
├── 003-use-postgresql.md # Third decision
└── README.md # Index of all ADRs
```
## ADR Index Template
```markdown
# Architecture Decision Records
## Active Decisions
| ADR | Date | Title | Status |
|-----|------|-------|--------|
| [001](001-use-ddd.md) | 2025-01-10 | Use Domain-Driven Design | Accepted |
| [002](002-implement-cqrs.md) | 2025-01-12 | Implement CQRS Pattern | Accepted |
| [003](003-use-postgresql.md) | 2025-01-15 | Use PostgreSQL | Accepted |
## Deprecated Decisions
| ADR | Date | Title | Superseded By |
|-----|------|-------|---------------|
| [000](000-monolith.md) | 2024-06-01 | Monolith Architecture | ADR-010 |
```
## Generation Instructions
When generating an ADR:
1. **Determine** next ADR number from existing files
2. **Clarify** the decision being made
3. **Document** context thoroughly
4. **State** decision clearly with specifics
5. **List** consequences (positive, negative, risks)
6. **Include** alternatives that were considered
7. **Add** references to relevant resources
8. **Update** ADR index fileRelated Skills
add-template
Add new UI style template to the ui-style-react project. This skill should be used when users want to add a new style template with HTML/CSS code, create a new preview page, or register a template in the system. Triggers include "add template", "create new style", "add new template", or when users provide HTML code for a new UI style.
add-skill-templates
Add new Agent Skill templates to the meta-agent-skills framework.
add-agent-templates
Add new Agent templates to the meta-agent-skills framework.
acc-troubleshooting-template
Generates troubleshooting guides and FAQ sections for PHP projects. Creates problem-solution documentation.
acc-readme-template
Generates README.md files for PHP projects. Creates structured documentation with badges, installation, usage, and examples.
acc-mermaid-template
Generates Mermaid diagrams for technical documentation. Provides templates for flowcharts, sequence diagrams, class diagrams, ER diagrams, and C4 models.
acc-getting-started-template
Generates Getting Started guides for PHP projects. Creates step-by-step tutorials for first-time users.
acc-code-examples-template
Generates code examples for PHP documentation. Creates minimal, copy-paste ready examples with expected output.
acc-changelog-template
Generates CHANGELOG.md files following Keep a Changelog format. Creates version history documentation.
acc-architecture-doc-template
Generates ARCHITECTURE.md files for PHP projects. Creates layer documentation, component descriptions, and architectural diagrams.
acc-api-doc-template
Generates API documentation for PHP projects. Creates endpoint documentation with parameters, responses, and examples.
template-skill
Replace with description of the skill and when Claude should use it.