documentation-criteria
Documentation creation criteria including PRD, ADR, Design Doc, and Work Plan requirements with templates. Use when creating or reviewing technical documents, or determining which documents are required.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install shinpr-claude-code-workflows-documentation-criteria
Repository
Skill path: skills/documentation-criteria
Documentation creation criteria including PRD, ADR, Design Doc, and Work Plan requirements with templates. Use when creating or reviewing technical documents, or determining which documents are required.
Open repositoryBest for
Primary workflow: Research & Ops.
Technical facets: Full Stack, Tech Writer, Designer.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: shinpr.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install documentation-criteria into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/shinpr/claude-code-workflows before adding documentation-criteria to shared team environments
- Use documentation-criteria for development workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
name: documentation-criteria
description: Documentation creation criteria including PRD, ADR, Design Doc, and Work Plan requirements with templates. Use when creating or reviewing technical documents, or determining which documents are required.
---
# Documentation Creation Criteria
## Templates
- **[prd-template.md](references/prd-template.md)** - Product Requirements Document template
- **[adr-template.md](references/adr-template.md)** - Architecture Decision Record template
- **[design-template.md](references/design-template.md)** - Technical Design Document template
- **[plan-template.md](references/plan-template.md)** - Work Plan template
- **[task-template.md](references/task-template.md)** - Task file template for implementation tasks
## Creation Decision Matrix
| Condition | Required Documents | Creation Order |
|-----------|-------------------|----------------|
| New Feature Addition | PRD → [ADR] → Design Doc → Work Plan | After PRD approval |
| ADR Conditions Met (see below) | ADR → Design Doc → Work Plan | Start immediately |
| 6+ Files | ADR → Design Doc → Work Plan (Required) | Start immediately |
| 3-5 Files | Design Doc → Work Plan (Recommended) | Start immediately |
| 1-2 Files | None | Direct implementation |
## ADR Creation Conditions (Required if Any Apply)
### 1. Contract System Changes
- **Adding nested contracts with 3+ levels**: `Contract A { Contract B { Contract C { field: T } } }`
- Rationale: Deep nesting has high complexity and wide impact scope
- **Changing/deleting contracts used in 3+ locations**
- Rationale: Multiple location impacts require careful consideration
- **Contract responsibility changes** (e.g., DTO→Entity, Request→Domain)
- Rationale: Conceptual model changes affect design philosophy
### 2. Data Flow Changes
- **Storage location changes** (DB→File, Memory→Cache)
- **Processing order changes with 3+ steps**
- Example: "Input→Validation→Save" to "Input→Save→Async Validation"
- **Data passing method changes** (parameter passing→shared state, direct reference→event-based communication)
### 3. Architecture Changes
- Layer addition, responsibility changes, component relocation
### 4. External Dependency Changes
- Library/framework/external API introduction or replacement
### 5. Complex Implementation Logic (Regardless of Scale)
- Managing 3+ states
- Coordinating 5+ asynchronous processes
## Detailed Document Definitions
### PRD (Product Requirements Document)
**Purpose**: Define business requirements and user value
**Includes**:
- Business requirements and user value
- Success metrics and KPIs (measurable format)
- User stories and use cases
- MoSCoW prioritization (Must/Should/Could/Won't)
- MVP and Future phase separation
- User journey diagram (required)
- Scope boundary diagram (required)
**Excludes**:
- Technical implementation details (→Design Doc)
- Technical selection rationale (→ADR)
- **Implementation phases** (→Work Plan)
- **Task breakdown** (→Work Plan)
### ADR (Architecture Decision Record)
**Purpose**: Record technical decision rationale and background
**Includes**:
- Decision (what was selected)
- Rationale (why that selection was made)
- Option comparison (minimum 3 options) and trade-offs
- Architecture impact
- Principled implementation guidelines (e.g., "Use dependency injection")
**Excludes**:
- Implementation schedule, duration (→Work Plan)
- Detailed implementation procedures (→Design Doc)
- Specific code examples (→Design Doc)
- Resource assignments (→Work Plan)
### Design Document
**Purpose**: Define technical implementation methods in detail
**Includes**:
- **Existing codebase analysis** (required)
- Implementation path mapping (both existing and new)
- Integration point clarification (connection points with existing code even for new implementations)
- Technical implementation approach (vertical/horizontal/hybrid)
- **Technical dependencies and implementation constraints** (required implementation order)
- Interface and contract definitions
- Data flow and component design
- **E2E verification procedures at integration points**
- **Acceptance criteria (measurable format)**
- Change impact map (clearly specify direct impact/indirect impact/no ripple effect)
- Complete enumeration of integration points
- Data contract clarification
- **Agreement checklist** (agreements with stakeholders)
- **Prerequisite ADRs** (including common ADRs)
**Required Structural Elements**:
```yaml
Change Impact Map:
Change Target: [Component/Feature]
Direct Impact: [Files/Functions]
Indirect Impact: [Data format/Processing time]
No Ripple Effect: [Unaffected features]
Interface Change Matrix:
Existing: [Function/method/operation name]
New: [Function/method/operation name]
Conversion Required: [Yes/No]
Compatibility Method: [Approach]
```
**Excludes**:
- Why that technology was chosen (→Reference ADR)
- When to implement, duration (→Work Plan)
- Who will implement (→Work Plan)
### Work Plan
**Purpose**: Implementation task management and progress tracking
**Includes**:
- Task breakdown and dependencies (maximum 2 levels)
- Schedule and duration estimates
- **Copy E2E verification procedures from Design Doc** (cannot delete, can add)
- **Phase 4 Quality Assurance Phase (required)**
- Progress records (checkbox format)
**Excludes**:
- Technical rationale (→ADR)
- Design details (→Design Doc)
**Phase Division Criteria**:
1. **Phase 1: Foundation Implementation** - Contract definitions, interfaces/signatures, test preparation
2. **Phase 2: Core Feature Implementation** - Business logic, unit tests
3. **Phase 3: Integration Implementation** - External connections, presentation layer
4. **Phase 4: Quality Assurance (Required)** - Acceptance criteria achievement, all tests passing, quality checks
**Three Elements of Task Completion Definition**:
1. **Implementation Complete**: Code is functional
2. **Quality Complete**: Tests, static checks, linting pass
3. **Integration Complete**: Verified connection with other components
## Creation Process
1. **Problem Analysis**: Change scale assessment, ADR condition check
2. **ADR Option Consideration** (ADR only): Compare 3+ options, specify trade-offs
3. **Creation**: Use templates, include measurable conditions
4. **Approval**: "Accepted" after review enables implementation
## Storage Locations
| Document | Path | Naming Convention | Template |
|----------|------|------------------|----------|
| PRD | `docs/prd/` | `[feature-name]-prd.md` | [prd-template.md](references/prd-template.md) |
| ADR | `docs/adr/` | `ADR-[4-digits]-[title].md` | [adr-template.md](references/adr-template.md) |
| Design Doc | `docs/design/` | `[feature-name]-design.md` | [design-template.md](references/design-template.md) |
| Work Plan | `docs/plans/` | `YYYYMMDD-{type}-{description}.md` | [plan-template.md](references/plan-template.md) |
| Task File | `docs/plans/tasks/` | `{plan-name}-task-{number}.md` | [task-template.md](references/task-template.md) |
*Note: Work plans are excluded by `.gitignore`
## ADR Status
`Proposed` → `Accepted` → `Deprecated`/`Superseded`/`Rejected`
## AI Automation Rules
- 5+ files: Suggest ADR creation
- Contract/data flow change detected: ADR mandatory
- Check existing ADRs before implementation
## Diagram Requirements
Required diagrams for each document (using mermaid notation):
| Document | Required Diagrams | Purpose |
|----------|------------------|---------|
| PRD | User journey diagram, Scope boundary diagram | Clarify user experience and scope |
| ADR | Option comparison diagram (when needed) | Visualize trade-offs |
| Design Doc | Architecture diagram, Data flow diagram | Understand technical structure |
| Work Plan | Phase structure diagram, Task dependency diagram | Clarify implementation order |
## Common ADR Relationships
1. **At creation**: Identify common technical areas (logging, error handling, async processing, etc.), reference existing common ADRs
2. **When missing**: Consider creating necessary common ADRs
3. **Design Doc**: Specify common ADRs in "Prerequisite ADRs" section
4. **Compliance check**: Verify design aligns with common ADR decisions
---
## Referenced Files
> The following files are referenced in this skill and included for context.
### references/prd-template.md
```markdown
# PRD: [Feature Name]
## Overview
### One-line Summary
[Describe this feature in one line]
### Background
[Why is this feature needed? What problem does it solve?]
## User Stories
### Primary Users
[Define the main target users]
### User Stories
```
As a [user type]
I want to [goal/desire]
So that [expected value/benefit]
```
### Use Cases
1. [Specific usage scenario 1]
2. [Specific usage scenario 2]
3. [Specific usage scenario 3]
## Functional Requirements
### Must Have (MVP)
- [ ] Requirement 1: [Detailed description]
- AC: [Acceptance criteria - Given/When/Then format or measurable standard]
- [ ] Requirement 2: [Detailed description]
- AC: [Acceptance criteria]
- [ ] Requirement 3: [Detailed description]
- AC: [Acceptance criteria]
### Nice to Have
- [ ] Requirement 1: [Detailed description]
- [ ] Requirement 2: [Detailed description]
### Out of Scope
- Item 1: [Description and reason]
- Item 2: [Description and reason]
## Non-Functional Requirements
### Performance
- Response Time: [Target value]
- Throughput: [Target value]
- Concurrency: [Target value]
### Reliability
- Availability: [Target value]
- Error Rate: [Target value]
### Security
- [Security requirements details]
### Scalability
- [Considerations for future scaling]
## Success Criteria
### Quantitative Metrics
1. [Measurable success metric 1]
2. [Measurable success metric 2]
3. [Measurable success metric 3]
### Qualitative Metrics
1. [User experience metric 1]
2. [User experience metric 2]
## Technical Considerations
### Dependencies
- [Dependencies on existing systems]
- [Dependencies on external services]
### Constraints
- [Technical constraints]
- [Resource constraints]
### Assumptions
- [Prerequisite requiring validation 1]
- [Prerequisite requiring validation 2]
### Risks and Mitigation
| Risk | Impact | Probability | Mitigation |
|------|--------|-------------|------------|
| [Risk 1] | High/Medium/Low | High/Medium/Low | [Countermeasure] |
| [Risk 2] | High/Medium/Low | High/Medium/Low | [Countermeasure] |
## Undetermined Items
- [ ] [Question 1]: [Description of options or impacts]
- [ ] [Question 2]: [Description of options or impacts]
*Discuss with user until this section is empty, then delete after confirmation*
## Appendix
### References
- [Related document 1]
- [Related document 2]
### Glossary
- **Term 1**: [Definition]
- **Term 2**: [Definition]
```
### references/adr-template.md
```markdown
# [ADR Number] [Title]
## Status
[Proposed | Accepted | Deprecated | Superseded]
## Context
[Describe the background and reasons why this decision is needed. Include the essence of the problem, current challenges, and constraints]
## Decision
[Describe the actual decision made. Aim for specific and clear descriptions]
### Decision Details
| Item | Content |
|------|---------|
| **Decision** | [The decision in one sentence] |
| **Why now** | [Why this needs to happen now (timing rationale)] |
| **Why this** | [Why this option over alternatives (1-3 lines)] |
| **Known unknowns** | [At least one uncertainty at this point] |
| **Kill criteria** | [One signal that should trigger reversal of this decision] |
## Rationale
[Explain why this decision was made and why it is the best option compared to alternatives]
### Options Considered
1. **Option 1**: [Description]
- Pros: [List advantages]
- Cons: [List disadvantages]
2. **Option 2**: [Description]
- Pros: [List advantages]
- Cons: [List disadvantages]
3. **Option 3 (Selected)**: [Description]
- Pros: [List advantages]
- Cons: [List disadvantages]
## Consequences
### Positive Consequences
- [List positive impacts on the project or system]
### Negative Consequences
- [List negative impacts or trade-offs that need to be accepted]
### Neutral Consequences
- [List changes that are neither good nor bad]
## Implementation Guidance
[Principled direction only. Implementation procedures go to Design Doc]
Example: "Use dependency injection" ✓, "Implement in Phase 1" ✗
## Related Information
- [Links to related ADRs, documents, issues, PRs, etc.]
```
### references/design-template.md
```markdown
# [Feature Name] Design Document
## Overview
[Explain the purpose and overview of this feature in 2-3 sentences]
## Design Summary (Meta)
```yaml
design_type: "new_feature|extension|refactoring"
risk_level: "low|medium|high"
complexity_level: "low|medium|high"
complexity_rationale: "[Required if medium/high: (1) which requirements/ACs necessitate this complexity, (2) which constraints/risks it addresses]"
main_constraints:
- "[constraint 1]"
- "[constraint 2]"
biggest_risks:
- "[risk 1]"
- "[risk 2]"
unknowns:
- "[uncertainty 1]"
- "[uncertainty 2]"
```
## Background and Context
### Prerequisite ADRs
- [ADR File Name]: [Related decision items]
- Reference common technical ADRs when applicable
### Agreement Checklist
#### Scope
- [ ] [Features/components to change]
- [ ] [Features to add]
#### Non-Scope (Explicitly not changing)
- [ ] [Features/components not to change]
- [ ] [Existing logic to preserve]
#### Constraints
- [ ] Parallel operation: [Yes/No]
- [ ] Backward compatibility: [Required/Not required]
- [ ] Performance measurement: [Required/Not required]
### Problem to Solve
[Specific problems or challenges this feature aims to address]
### Current Challenges
[Current system issues or limitations]
### Requirements
#### Functional Requirements
- [List mandatory functional requirements]
#### Non-Functional Requirements
- **Performance**: [Response time, throughput requirements]
- **Scalability**: [Requirements for handling increased load]
- **Reliability**: [Error rate, availability requirements]
- **Maintainability**: [Code readability and changeability]
## Acceptance Criteria (AC) - EARS Format
Each AC is written in EARS (Easy Approach to Requirements Syntax) format.
Keywords determine test type and reduce ambiguity.
**EARS Keywords**:
| Keyword | Usage | Test Type |
|---------|-------|-----------|
| **When** | Event-triggered behavior | Event-driven test |
| **While** | State-dependent behavior | State condition test |
| **If-then** | Conditional behavior | Branch coverage test |
| (none) | Ubiquitous behavior | Basic functionality test |
**Format**: `[Keyword] <trigger/condition>, the system shall <expected behavior>`
### [Functional Requirement 1]
- [ ] **When** user clicks login button with valid credentials, the system shall authenticate and redirect to dashboard
- [ ] **If** credentials are invalid, **then** the system shall display error message "Invalid credentials"
- [ ] **While** user is logged in, the system shall maintain the session for configured timeout period
### [Functional Requirement 2]
- [ ] The system shall display data list with pagination of 10 items per page
- [ ] **When** input is entered in search field, the system shall apply real-time filtering
## Existing Codebase Analysis
### Implementation Path Mapping
| Type | Path | Description |
|------|------|-------------|
| Existing | src/[actual-path] | [Current implementation] |
| New | src/[planned-path] | [Planned new creation] |
### Integration Points (Include even for new implementations)
- **Integration Target**: [What to connect with]
- **Invocation Method**: [How it will be invoked]
## Design
### Change Impact Map
```yaml
Change Target: [Component/feature to change]
Direct Impact:
- [Files/functions requiring direct changes]
- [Interface change points]
Indirect Impact:
- [Data format changes]
- [Processing time changes]
No Ripple Effect:
- [Explicitly specify unaffected features]
```
### Architecture Overview
[How this feature is positioned within the overall system]
### Data Flow
```
[Express data flow using diagrams or pseudo-code]
```
### Integration Points List
| Integration Point | Location | Old Implementation | New Implementation | Switching Method |
|-------------------|----------|-------------------|-------------------|------------------|
| Integration Point 1 | [Class/Function] | [Existing Process] | [New Process] | [DI/Factory etc.] |
| Integration Point 2 | [Another Location] | [Existing] | [New] | [Method] |
### Main Components
#### Component 1
- **Responsibility**: [Scope of responsibility for this component]
- **Interface**: [APIs and contract definitions provided]
- **Dependencies**: [Relationships with other components]
#### Component 2
- **Responsibility**: [Scope of responsibility for this component]
- **Interface**: [APIs and contract definitions provided]
- **Dependencies**: [Relationships with other components]
### Contract Definitions
```
// Record major contract/interface definitions here
```
### Data Contract
#### Component 1
```yaml
Input:
Type: [Type/interface definition]
Preconditions: [Required items, format constraints]
Validation: [Validation method]
Output:
Type: [Type/interface definition]
Guarantees: [Conditions that must always be met]
On Error: [Exception/null/default value]
Invariants:
- [Conditions that remain unchanged before and after processing]
```
### State Transitions and Invariants (When Applicable)
```yaml
State Definition:
- Initial State: [Initial values and conditions]
- Possible States: [List of states]
State Transitions:
Current State → Event → Next State
System Invariants:
- [Conditions that hold in any state]
```
### Error Handling
[Types of errors and how to handle them]
### Logging and Monitoring
[What to record in logs and how to monitor]
## Implementation Plan
### Implementation Approach
**Selected Approach**: [Approach name or combination]
**Selection Reason**: [Reason considering project constraints and technical dependencies]
### Technical Dependencies and Implementation Order
#### Required Implementation Order
1. **[Component/Feature A]**
- Technical Reason: [Why this needs to be implemented first]
- Dependent Elements: [Other components that depend on this]
2. **[Component/Feature B]**
- Technical Reason: [Technical necessity to implement after A]
- Prerequisites: [Required pre-implementations]
### Integration Points
Each integration point requires E2E verification:
**Integration Point 1: [Name]**
- Components: [Component A] → [Component B]
- Verification: [How to verify integration works]
**Integration Point 2: [Name]**
- Components: [Component B] → [Component C]
- Verification: [How to verify integration works]
### Migration Strategy
[Technical migration approach, ensuring backward compatibility]
## Test Strategy
### Basic Test Design Policy
Automatically derive test cases from acceptance criteria:
- Create at least one test case for each acceptance criterion
- Implement measurable standards from acceptance criteria as assertions
### Unit Tests
[Unit testing policy and coverage goals]
- Verify individual elements of functional acceptance criteria
### Integration Tests
[Integration testing policy and important test cases]
- Verify combined operations of functional acceptance criteria
### E2E Tests
[E2E testing policy]
- Verify entire scenarios of acceptance criteria
- Confirm functional operation from user perspective
### Performance Tests
[Performance testing methods and standards]
- Verify performance standards of non-functional acceptance criteria
## Security Considerations
[Security concerns and countermeasures]
## Future Extensibility
[Considerations for future feature additions or changes]
## Alternative Solutions
### Alternative 1
- **Overview**: [Description of alternative solution]
- **Advantages**: [Advantages]
- **Disadvantages**: [Disadvantages]
- **Reason for Rejection**: [Why it wasn't adopted]
## Risks and Mitigation
| Risk | Impact | Probability | Mitigation |
|------|--------|-------------|------------|
| [Risk 1] | High/Medium/Low | High/Medium/Low | [Countermeasure] |
## References
- [Related documentation and links]
## Update History
| Date | Version | Changes | Author |
|------|---------|---------|--------|
| YYYY-MM-DD | 1.0 | Initial version | [Name] |
```
### references/plan-template.md
```markdown
# Work Plan: [Feature Name] Implementation
Created Date: YYYY-MM-DD
Type: feature|fix|refactor
Estimated Duration: X days
Estimated Impact: X files
Related Issue/PR: #XXX (if any)
## Related Documents
- Design Doc: [docs/design/XXX.md]
- ADR: [docs/adr/ADR-XXXX.md] (if any)
- PRD: [docs/prd/XXX.md] (if any)
## Objective
[Why this change is necessary, what problem it solves]
## Background
[Current state and why changes are needed]
## Risks and Countermeasures
### Technical Risks
- **Risk**: [Risk description]
- **Impact**: [Impact assessment]
- **Countermeasure**: [How to address it]
### Schedule Risks
- **Risk**: [Risk description]
- **Impact**: [Impact assessment]
- **Countermeasure**: [How to address it]
## Implementation Phases
(Note: Phase structure is determined based on Design Doc technical dependencies and implementation approach)
### Phase 1: [Phase Name] (Estimated commits: X)
**Purpose**: [What this phase aims to achieve]
#### Tasks
- [ ] Task 1: Specific work content
- [ ] Task 2: Specific work content
- [ ] Quality check: Implement staged quality checks (refer to ai-development-guide skill)
- [ ] Unit tests: All related tests pass
#### Phase Completion Criteria
- [ ] [Functional completion criteria]
- [ ] [Quality completion criteria]
#### Operational Verification Procedures
1. [Operation verification steps]
2. [Expected result verification]
3. [Performance verification (when applicable)]
### Phase 2: [Phase Name] (Estimated commits: X)
**Purpose**: [What this phase aims to achieve]
#### Tasks
- [ ] Task 1: Specific work content
- [ ] Task 2: Specific work content
- [ ] Quality check: Implement staged quality checks (refer to ai-development-guide skill)
- [ ] Integration tests: Verify overall feature functionality
#### Phase Completion Criteria
- [ ] [Functional completion criteria]
- [ ] [Quality completion criteria]
#### Operational Verification Procedures
1. [Operation verification steps]
2. [Expected result verification]
3. [Performance verification (when applicable)]
### Phase 3: [Phase Name] (Estimated commits: X)
**Purpose**: [What this phase aims to achieve]
#### Tasks
- [ ] Task 1: Specific work content
- [ ] Task 2: Specific work content
- [ ] Quality check: Implement staged quality checks (refer to ai-development-guide skill)
- [ ] Integration tests: Verify component coordination
#### Phase Completion Criteria
- [ ] [Functional completion criteria]
- [ ] [Quality completion criteria]
#### Operational Verification Procedures
[Copy relevant integration point operational verification from Design Doc]
### Final Phase: Quality Assurance (Required) (Estimated commits: 1)
**Purpose**: Overall quality assurance and Design Doc consistency verification
#### Tasks
- [ ] Verify all Design Doc acceptance criteria achieved
- [ ] Quality checks (types, lint, format)
- [ ] Execute all tests
- [ ] Coverage 70%+
- [ ] Document updates
#### Operational Verification Procedures
[Copy operational verification procedures from Design Doc]
### Quality Assurance
- [ ] Implement staged quality checks (details: refer to ai-development-guide skill)
- [ ] All tests pass
- [ ] Static check pass
- [ ] Lint check pass
- [ ] Build success
## Completion Criteria
- [ ] All phases completed
- [ ] Each phase's operational verification procedures executed
- [ ] Design Doc acceptance criteria satisfied
- [ ] Staged quality checks completed (zero errors)
- [ ] All tests pass
- [ ] Necessary documentation updated
- [ ] User review approval obtained
## Progress Tracking
### Phase 1
- Start: YYYY-MM-DD HH:MM
- Complete: YYYY-MM-DD HH:MM
- Notes: [Any special remarks]
### Phase 2
- Start: YYYY-MM-DD HH:MM
- Complete: YYYY-MM-DD HH:MM
- Notes: [Any special remarks]
## Notes
[Special notes, reference information, important points, etc.]
```
### references/task-template.md
```markdown
# Task: [Task Name]
Metadata:
- Dependencies: task-01 → Deliverable: docs/plans/analysis/research-results.md
- Provides: docs/plans/analysis/api-spec.md (for research/design tasks)
- Size: Small (1-2 files)
## Implementation Content
[What this task will achieve]
*Reference dependency deliverables if applicable
## Target Files
- [ ] [Implementation file path]
- [ ] [Test file path]
## Implementation Steps (TDD: Red-Green-Refactor)
### 1. Red Phase
- [ ] Review dependency deliverables (if any)
- [ ] Verify/create contract definitions
- [ ] Write failing tests
- [ ] Run tests and confirm failure
### 2. Green Phase
- [ ] Add minimal implementation to pass tests
- [ ] Run only added tests and confirm they pass
### 3. Refactor Phase
- [ ] Improve code (maintain passing tests)
- [ ] Confirm added tests still pass
## Completion Criteria
- [ ] All added tests pass
- [ ] Operation verified (select L1/L2/L3, per implementation-approach skill)
- [ ] Deliverables created (for research/design tasks)
## Notes
- Impact scope: [Areas where changes may propagate]
- Constraints: [Areas not to be modified]
```