create-claude-context 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +146 -0
- package/bin/create-claude-context.js +61 -0
- package/lib/detector.js +373 -0
- package/lib/index.js +170 -0
- package/lib/installer.js +362 -0
- package/lib/placeholder.js +208 -0
- package/lib/prompts.js +287 -0
- package/lib/spinner.js +60 -0
- package/lib/validate.js +147 -0
- package/package.json +59 -0
- package/templates/CLAUDE.md.template +235 -0
- package/templates/base/README.md +257 -0
- package/templates/base/RPI_WORKFLOW_PLAN.md +320 -0
- package/templates/base/agents/api-developer.md +76 -0
- package/templates/base/agents/context-engineer.md +525 -0
- package/templates/base/agents/core-architect.md +76 -0
- package/templates/base/agents/database-ops.md +76 -0
- package/templates/base/agents/deployment-ops.md +76 -0
- package/templates/base/agents/integration-hub.md +76 -0
- package/templates/base/analytics/README.md +114 -0
- package/templates/base/ci-templates/README.md +108 -0
- package/templates/base/ci-templates/github-actions/context-check.yml +144 -0
- package/templates/base/ci-templates/github-actions/validate-docs.yml +105 -0
- package/templates/base/commands/analytics.md +238 -0
- package/templates/base/commands/collab.md +194 -0
- package/templates/base/commands/help.md +450 -0
- package/templates/base/commands/rpi-implement.md +115 -0
- package/templates/base/commands/rpi-plan.md +93 -0
- package/templates/base/commands/rpi-research.md +88 -0
- package/templates/base/commands/validate-all.md +77 -0
- package/templates/base/commands/verify-docs-current.md +86 -0
- package/templates/base/config/base.json +57 -0
- package/templates/base/config/environments/development.json +13 -0
- package/templates/base/config/environments/production.json +17 -0
- package/templates/base/config/environments/staging.json +13 -0
- package/templates/base/config/local.json.example +21 -0
- package/templates/base/context/ARCHITECTURE_SNAPSHOT.md +156 -0
- package/templates/base/context/CODE_TO_WORKFLOW_MAP.md +94 -0
- package/templates/base/context/KNOWN_GOTCHAS.md +195 -0
- package/templates/base/context/WORKFLOW_INDEX.md +129 -0
- package/templates/base/context/workflows/WORKFLOW_TEMPLATE.md +294 -0
- package/templates/base/indexes/agents/CAPABILITY_MATRIX.md +255 -0
- package/templates/base/indexes/agents/CATEGORY_INDEX.md +44 -0
- package/templates/base/indexes/code/CATEGORY_INDEX.md +38 -0
- package/templates/base/indexes/routing/CATEGORY_INDEX.md +39 -0
- package/templates/base/indexes/search/CATEGORY_INDEX.md +39 -0
- package/templates/base/indexes/workflows/CATEGORY_INDEX.md +38 -0
- package/templates/base/knowledge/README.md +98 -0
- package/templates/base/knowledge/sessions/README.md +88 -0
- package/templates/base/knowledge/sessions/TEMPLATE.md +150 -0
- package/templates/base/knowledge/shared/decisions/0001-adopt-context-engineering.md +144 -0
- package/templates/base/knowledge/shared/decisions/README.md +49 -0
- package/templates/base/knowledge/shared/decisions/TEMPLATE.md +123 -0
- package/templates/base/knowledge/shared/patterns/README.md +62 -0
- package/templates/base/knowledge/shared/patterns/TEMPLATE.md +120 -0
- package/templates/base/plans/PLAN_TEMPLATE.md +250 -0
- package/templates/base/plans/active/.gitkeep +0 -0
- package/templates/base/plans/completed/.gitkeep +0 -0
- package/templates/base/research/RESEARCH_TEMPLATE.md +153 -0
- package/templates/base/research/active/.gitkeep +0 -0
- package/templates/base/research/completed/.gitkeep +0 -0
- package/templates/base/schemas/agent.schema.json +141 -0
- package/templates/base/schemas/command.schema.json +134 -0
- package/templates/base/schemas/manifest.schema.json +117 -0
- package/templates/base/schemas/plan.schema.json +136 -0
- package/templates/base/schemas/research.schema.json +115 -0
- package/templates/base/schemas/settings.schema.json +244 -0
- package/templates/base/schemas/workflow.schema.json +126 -0
- package/templates/base/settings.json +57 -0
- package/templates/base/standards/COMPATIBILITY.md +219 -0
- package/templates/base/standards/EXTENSION_GUIDELINES.md +280 -0
- package/templates/base/standards/QUALITY_CHECKLIST.md +211 -0
- package/templates/base/standards/README.md +66 -0
- package/templates/base/team/README.md +168 -0
- package/templates/base/team/config.json +79 -0
- package/templates/base/team/roles.json +145 -0
- package/templates/base/tools/bin/claude-context.js +151 -0
- package/templates/base/tools/lib/config-loader.js +363 -0
- package/templates/base/tools/lib/detector.js +350 -0
- package/templates/base/tools/lib/diagnose.js +206 -0
- package/templates/base/tools/lib/errors.js +199 -0
- package/templates/base/tools/lib/index.js +24 -0
- package/templates/base/tools/lib/init.js +192 -0
- package/templates/base/tools/lib/logger.js +230 -0
- package/templates/base/tools/lib/placeholder.js +201 -0
- package/templates/base/tools/lib/validate.js +521 -0
- package/templates/base/tools/package.json +49 -0
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# Session Handoff: {{DATE}} {{TIME}}
|
|
2
|
+
|
|
3
|
+
## Metadata
|
|
4
|
+
|
|
5
|
+
| Field | Value |
|
|
6
|
+
|-------|-------|
|
|
7
|
+
| **Session ID** | {{SESSION_ID}} |
|
|
8
|
+
| **Date** | {{DATE}} |
|
|
9
|
+
| **Duration** | {{DURATION}} |
|
|
10
|
+
| **Member** | {{MEMBER_NAME}} |
|
|
11
|
+
| **Next Owner** | {{NEXT_OWNER}} (or "Any") |
|
|
12
|
+
|
|
13
|
+
## Session Summary
|
|
14
|
+
|
|
15
|
+
Brief overview of what was accomplished in this session.
|
|
16
|
+
|
|
17
|
+
## Work Completed
|
|
18
|
+
|
|
19
|
+
### Tasks Finished
|
|
20
|
+
|
|
21
|
+
- [ ] Task 1 - Brief description
|
|
22
|
+
- Files modified: `path/to/file.ext`
|
|
23
|
+
- Commit: `abc1234`
|
|
24
|
+
|
|
25
|
+
- [ ] Task 2 - Brief description
|
|
26
|
+
- Files modified: `path/to/file.ext`
|
|
27
|
+
- Commit: `def5678`
|
|
28
|
+
|
|
29
|
+
### Code Changes
|
|
30
|
+
|
|
31
|
+
| File | Change Type | Description |
|
|
32
|
+
|------|-------------|-------------|
|
|
33
|
+
| `path/to/file.ext` | Modified | What changed |
|
|
34
|
+
| `path/to/new.ext` | Created | Why created |
|
|
35
|
+
| `path/to/old.ext` | Deleted | Why deleted |
|
|
36
|
+
|
|
37
|
+
### Tests
|
|
38
|
+
|
|
39
|
+
- Tests added: X
|
|
40
|
+
- Tests modified: X
|
|
41
|
+
- Test status: Passing / Failing (details if failing)
|
|
42
|
+
|
|
43
|
+
### Documentation Updated
|
|
44
|
+
|
|
45
|
+
- [ ] `path/to/doc.md` - What was updated
|
|
46
|
+
- [ ] Workflow files updated per CODE_TO_WORKFLOW_MAP.md
|
|
47
|
+
|
|
48
|
+
## Work In Progress
|
|
49
|
+
|
|
50
|
+
### Incomplete Tasks
|
|
51
|
+
|
|
52
|
+
1. **Task Name**
|
|
53
|
+
- Status: XX% complete
|
|
54
|
+
- Current state: Description
|
|
55
|
+
- Files being modified: `path/to/file.ext`
|
|
56
|
+
- Next steps: What needs to be done
|
|
57
|
+
|
|
58
|
+
2. **Task Name**
|
|
59
|
+
- Status: XX% complete
|
|
60
|
+
- Current state: Description
|
|
61
|
+
- Blockers: What's blocking progress
|
|
62
|
+
|
|
63
|
+
### Uncommitted Changes
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# Output of git status
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Temporary Files / Notes
|
|
70
|
+
|
|
71
|
+
- `.claude/temp/notes.md` - Working notes
|
|
72
|
+
- Local branch: `feature/xyz`
|
|
73
|
+
|
|
74
|
+
## Blockers and Issues
|
|
75
|
+
|
|
76
|
+
### Active Blockers
|
|
77
|
+
|
|
78
|
+
1. **Blocker Title**
|
|
79
|
+
- Description: What's blocking
|
|
80
|
+
- Impact: What can't proceed
|
|
81
|
+
- Needed: What would unblock
|
|
82
|
+
|
|
83
|
+
### Issues Encountered
|
|
84
|
+
|
|
85
|
+
1. **Issue Title**
|
|
86
|
+
- Description: What happened
|
|
87
|
+
- Attempted solutions: What was tried
|
|
88
|
+
- Current status: Resolved / Workaround / Open
|
|
89
|
+
|
|
90
|
+
### Open Questions
|
|
91
|
+
|
|
92
|
+
1. Question that needs team input?
|
|
93
|
+
2. Architectural decision needed?
|
|
94
|
+
|
|
95
|
+
## Context for Next Session
|
|
96
|
+
|
|
97
|
+
### Key Files to Review
|
|
98
|
+
|
|
99
|
+
- `path/to/important.ext` - Why it's important
|
|
100
|
+
- `path/to/related.ext` - How it relates
|
|
101
|
+
|
|
102
|
+
### Relevant Documentation
|
|
103
|
+
|
|
104
|
+
- [Workflow document](../../context/workflows/domain.md)
|
|
105
|
+
- [Architecture section](../../context/ARCHITECTURE_SNAPSHOT.md#section)
|
|
106
|
+
|
|
107
|
+
### Important Context
|
|
108
|
+
|
|
109
|
+
Information the next person needs to know that isn't in the files:
|
|
110
|
+
- Business context
|
|
111
|
+
- Stakeholder requirements
|
|
112
|
+
- Technical constraints discovered
|
|
113
|
+
|
|
114
|
+
## Recommended Next Steps
|
|
115
|
+
|
|
116
|
+
### Immediate (Next Session)
|
|
117
|
+
|
|
118
|
+
1. [ ] First priority task
|
|
119
|
+
2. [ ] Second priority task
|
|
120
|
+
3. [ ] Third priority task
|
|
121
|
+
|
|
122
|
+
### Short-term (This Week)
|
|
123
|
+
|
|
124
|
+
1. [ ] Task for this week
|
|
125
|
+
2. [ ] Another task
|
|
126
|
+
|
|
127
|
+
### Notes for Specific Scenarios
|
|
128
|
+
|
|
129
|
+
**If continuing the same work:**
|
|
130
|
+
- Start with X
|
|
131
|
+
- Be aware of Y
|
|
132
|
+
|
|
133
|
+
**If blocked by Z:**
|
|
134
|
+
- Alternative approach: Description
|
|
135
|
+
- Who to contact: Person/team
|
|
136
|
+
|
|
137
|
+
## Session Metrics
|
|
138
|
+
|
|
139
|
+
| Metric | Value |
|
|
140
|
+
|--------|-------|
|
|
141
|
+
| Files Modified | X |
|
|
142
|
+
| Lines Added | X |
|
|
143
|
+
| Lines Removed | X |
|
|
144
|
+
| Tests Added | X |
|
|
145
|
+
| Commits Made | X |
|
|
146
|
+
| Context Used | ~Xk tokens |
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
*Generated by /collab handoff on {{TIMESTAMP}}*
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# ADR-0001: Adopt Context Engineering Template
|
|
2
|
+
|
|
3
|
+
## Metadata
|
|
4
|
+
|
|
5
|
+
| Field | Value |
|
|
6
|
+
|-------|-------|
|
|
7
|
+
| **Status** | accepted |
|
|
8
|
+
| **Created** | {{DATE}} |
|
|
9
|
+
| **Updated** | {{DATE}} |
|
|
10
|
+
| **Author** | {{AUTHOR_NAME}} |
|
|
11
|
+
| **Reviewers** | Team |
|
|
12
|
+
| **Supersedes** | N/A |
|
|
13
|
+
| **Superseded by** | N/A |
|
|
14
|
+
|
|
15
|
+
## Context
|
|
16
|
+
|
|
17
|
+
When working with Claude Code on complex codebases, we face several challenges:
|
|
18
|
+
|
|
19
|
+
### Background
|
|
20
|
+
|
|
21
|
+
- Claude Code has a 200k token context window
|
|
22
|
+
- Loading entire codebases exceeds this limit
|
|
23
|
+
- Ad-hoc exploration wastes tokens and time
|
|
24
|
+
- Knowledge is lost between sessions
|
|
25
|
+
- Team members lack shared context
|
|
26
|
+
|
|
27
|
+
### Current State
|
|
28
|
+
|
|
29
|
+
Without structured context management:
|
|
30
|
+
- Each session starts from scratch
|
|
31
|
+
- Developers manually guide Claude to relevant code
|
|
32
|
+
- Documentation and code drift apart
|
|
33
|
+
- Tribal knowledge remains undocumented
|
|
34
|
+
|
|
35
|
+
## Decision
|
|
36
|
+
|
|
37
|
+
Adopt the Context Engineering Template for Claude Code, implementing:
|
|
38
|
+
|
|
39
|
+
1. **3-Level Chain-of-Index Architecture** - Progressive detail loading
|
|
40
|
+
2. **RPI Workflow** - Research-Plan-Implement methodology
|
|
41
|
+
3. **Self-Maintaining Documentation** - Code-to-workflow mapping
|
|
42
|
+
4. **Specialized Agents** - Domain-specific assistants
|
|
43
|
+
|
|
44
|
+
### Key Points
|
|
45
|
+
|
|
46
|
+
1. Keep context budget under 40% (80k tokens) for working room
|
|
47
|
+
2. Use indexes to navigate, not to hold all information
|
|
48
|
+
3. Update documentation when code changes
|
|
49
|
+
4. Use RPI workflow for all significant features
|
|
50
|
+
|
|
51
|
+
## Alternatives Considered
|
|
52
|
+
|
|
53
|
+
### Alternative 1: Flat Documentation
|
|
54
|
+
|
|
55
|
+
**Description:** Single large CLAUDE.md with all information
|
|
56
|
+
|
|
57
|
+
**Pros:**
|
|
58
|
+
- Simple to maintain
|
|
59
|
+
- Everything in one place
|
|
60
|
+
|
|
61
|
+
**Cons:**
|
|
62
|
+
- Quickly exceeds context budget
|
|
63
|
+
- No progressive loading
|
|
64
|
+
- Hard to navigate
|
|
65
|
+
|
|
66
|
+
**Why not chosen:** Doesn't scale with codebase size
|
|
67
|
+
|
|
68
|
+
### Alternative 2: No Documentation Structure
|
|
69
|
+
|
|
70
|
+
**Description:** Rely on Claude's code exploration
|
|
71
|
+
|
|
72
|
+
**Pros:**
|
|
73
|
+
- Zero maintenance overhead
|
|
74
|
+
- Always up-to-date with code
|
|
75
|
+
|
|
76
|
+
**Cons:**
|
|
77
|
+
- Wastes context on exploration
|
|
78
|
+
- No curated knowledge
|
|
79
|
+
- Inconsistent results
|
|
80
|
+
|
|
81
|
+
**Why not chosen:** Inefficient use of context window
|
|
82
|
+
|
|
83
|
+
## Consequences
|
|
84
|
+
|
|
85
|
+
### Positive
|
|
86
|
+
|
|
87
|
+
- Efficient context utilization
|
|
88
|
+
- Consistent navigation patterns
|
|
89
|
+
- Knowledge persists across sessions
|
|
90
|
+
- Team shares common understanding
|
|
91
|
+
|
|
92
|
+
### Negative
|
|
93
|
+
|
|
94
|
+
- Initial setup overhead
|
|
95
|
+
- Requires maintenance discipline
|
|
96
|
+
- Learning curve for team
|
|
97
|
+
|
|
98
|
+
### Risks
|
|
99
|
+
|
|
100
|
+
- Documentation drift if not maintained
|
|
101
|
+
- Mitigation: Use CODE_TO_WORKFLOW_MAP.md and /verify-docs-current
|
|
102
|
+
- Over-documentation consuming budget
|
|
103
|
+
- Mitigation: Regular audits, keep to 40% target
|
|
104
|
+
|
|
105
|
+
## Implementation
|
|
106
|
+
|
|
107
|
+
### Steps
|
|
108
|
+
|
|
109
|
+
1. Copy template to project root
|
|
110
|
+
2. Run initialization (`npx claude-context init`)
|
|
111
|
+
3. Customize placeholders for project
|
|
112
|
+
4. Train team on RPI workflow
|
|
113
|
+
5. Establish documentation update habits
|
|
114
|
+
|
|
115
|
+
### Affected Components
|
|
116
|
+
|
|
117
|
+
- Development workflow: Add documentation updates
|
|
118
|
+
- Code review: Include documentation check
|
|
119
|
+
- CI/CD: Add validation workflow
|
|
120
|
+
|
|
121
|
+
### Migration Plan
|
|
122
|
+
|
|
123
|
+
Gradual adoption - start with core workflows, expand as team learns.
|
|
124
|
+
|
|
125
|
+
## Verification
|
|
126
|
+
|
|
127
|
+
- [ ] Context budget stays under 40%
|
|
128
|
+
- [ ] Team can navigate without manual guidance
|
|
129
|
+
- [ ] Documentation accuracy above 80%
|
|
130
|
+
- [ ] Session handoffs are effective
|
|
131
|
+
|
|
132
|
+
## References
|
|
133
|
+
|
|
134
|
+
- [Context Engineering Template README](../../../README.md)
|
|
135
|
+
- [RPI Workflow Plan](../../../RPI_WORKFLOW_PLAN.md)
|
|
136
|
+
- [Chain-of-Index Architecture](../../../indexes/README.md)
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Revision History
|
|
141
|
+
|
|
142
|
+
| Date | Author | Changes |
|
|
143
|
+
|------|--------|---------|
|
|
144
|
+
| {{DATE}} | {{AUTHOR_NAME}} | Initial adoption decision |
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Architecture Decision Records (ADRs)
|
|
2
|
+
|
|
3
|
+
This directory contains Architecture Decision Records documenting significant technical decisions.
|
|
4
|
+
|
|
5
|
+
## Index
|
|
6
|
+
|
|
7
|
+
| ADR | Title | Status | Date |
|
|
8
|
+
|-----|-------|--------|------|
|
|
9
|
+
| [0001](0001-adopt-context-engineering.md) | Adopt Context Engineering Template | accepted | {{DATE}} |
|
|
10
|
+
|
|
11
|
+
## Creating a New ADR
|
|
12
|
+
|
|
13
|
+
1. Copy `TEMPLATE.md` to `NNNN-descriptive-title.md`
|
|
14
|
+
2. Use the next sequential number
|
|
15
|
+
3. Fill in all sections
|
|
16
|
+
4. Set status to `proposed`
|
|
17
|
+
5. Request review from team
|
|
18
|
+
6. Update status to `accepted` or `rejected` after review
|
|
19
|
+
|
|
20
|
+
## ADR Lifecycle
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
proposed → accepted → deprecated
|
|
24
|
+
↓
|
|
25
|
+
rejected
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Naming Convention
|
|
29
|
+
|
|
30
|
+
`NNNN-lowercase-hyphenated-title.md`
|
|
31
|
+
|
|
32
|
+
- NNNN: 4-digit sequential number
|
|
33
|
+
- Use lowercase letters
|
|
34
|
+
- Separate words with hyphens
|
|
35
|
+
- Keep title concise but descriptive
|
|
36
|
+
|
|
37
|
+
## When to Write an ADR
|
|
38
|
+
|
|
39
|
+
Write an ADR when:
|
|
40
|
+
- Choosing between significant alternatives
|
|
41
|
+
- Making irreversible or costly-to-reverse decisions
|
|
42
|
+
- Establishing patterns the team should follow
|
|
43
|
+
- Adopting new technologies or frameworks
|
|
44
|
+
- Changing architectural direction
|
|
45
|
+
|
|
46
|
+
Don't write an ADR for:
|
|
47
|
+
- Minor implementation details
|
|
48
|
+
- Obvious choices with no alternatives
|
|
49
|
+
- Temporary decisions
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# ADR-NNNN: Title
|
|
2
|
+
|
|
3
|
+
## Metadata
|
|
4
|
+
|
|
5
|
+
| Field | Value |
|
|
6
|
+
|-------|-------|
|
|
7
|
+
| **Status** | proposed / accepted / deprecated / rejected |
|
|
8
|
+
| **Created** | YYYY-MM-DD |
|
|
9
|
+
| **Updated** | YYYY-MM-DD |
|
|
10
|
+
| **Author** | {{AUTHOR_NAME}} |
|
|
11
|
+
| **Reviewers** | {{REVIEWER_NAMES}} |
|
|
12
|
+
| **Supersedes** | ADR-XXXX (if applicable) |
|
|
13
|
+
| **Superseded by** | ADR-XXXX (if applicable) |
|
|
14
|
+
|
|
15
|
+
## Context
|
|
16
|
+
|
|
17
|
+
Describe the context and problem statement. What is the issue that we're seeing that is motivating this decision or change?
|
|
18
|
+
|
|
19
|
+
### Background
|
|
20
|
+
|
|
21
|
+
- Relevant technical background
|
|
22
|
+
- Business requirements driving this decision
|
|
23
|
+
- Constraints we must work within
|
|
24
|
+
|
|
25
|
+
### Current State
|
|
26
|
+
|
|
27
|
+
Describe the current situation, if applicable.
|
|
28
|
+
|
|
29
|
+
## Decision
|
|
30
|
+
|
|
31
|
+
Describe the change that we're proposing or have made.
|
|
32
|
+
|
|
33
|
+
### Key Points
|
|
34
|
+
|
|
35
|
+
1. Point 1
|
|
36
|
+
2. Point 2
|
|
37
|
+
3. Point 3
|
|
38
|
+
|
|
39
|
+
## Alternatives Considered
|
|
40
|
+
|
|
41
|
+
### Alternative 1: [Name]
|
|
42
|
+
|
|
43
|
+
**Description:** Brief description
|
|
44
|
+
|
|
45
|
+
**Pros:**
|
|
46
|
+
- Pro 1
|
|
47
|
+
- Pro 2
|
|
48
|
+
|
|
49
|
+
**Cons:**
|
|
50
|
+
- Con 1
|
|
51
|
+
- Con 2
|
|
52
|
+
|
|
53
|
+
**Why not chosen:** Explanation
|
|
54
|
+
|
|
55
|
+
### Alternative 2: [Name]
|
|
56
|
+
|
|
57
|
+
**Description:** Brief description
|
|
58
|
+
|
|
59
|
+
**Pros:**
|
|
60
|
+
- Pro 1
|
|
61
|
+
- Pro 2
|
|
62
|
+
|
|
63
|
+
**Cons:**
|
|
64
|
+
- Con 1
|
|
65
|
+
- Con 2
|
|
66
|
+
|
|
67
|
+
**Why not chosen:** Explanation
|
|
68
|
+
|
|
69
|
+
## Consequences
|
|
70
|
+
|
|
71
|
+
### Positive
|
|
72
|
+
|
|
73
|
+
- Positive consequence 1
|
|
74
|
+
- Positive consequence 2
|
|
75
|
+
|
|
76
|
+
### Negative
|
|
77
|
+
|
|
78
|
+
- Negative consequence 1
|
|
79
|
+
- Negative consequence 2
|
|
80
|
+
|
|
81
|
+
### Risks
|
|
82
|
+
|
|
83
|
+
- Risk 1 and mitigation
|
|
84
|
+
- Risk 2 and mitigation
|
|
85
|
+
|
|
86
|
+
## Implementation
|
|
87
|
+
|
|
88
|
+
### Steps
|
|
89
|
+
|
|
90
|
+
1. Step 1
|
|
91
|
+
2. Step 2
|
|
92
|
+
3. Step 3
|
|
93
|
+
|
|
94
|
+
### Affected Components
|
|
95
|
+
|
|
96
|
+
- Component 1: How it's affected
|
|
97
|
+
- Component 2: How it's affected
|
|
98
|
+
|
|
99
|
+
### Migration Plan
|
|
100
|
+
|
|
101
|
+
Describe any migration required, if applicable.
|
|
102
|
+
|
|
103
|
+
## Verification
|
|
104
|
+
|
|
105
|
+
How will we verify this decision is successful?
|
|
106
|
+
|
|
107
|
+
- [ ] Verification criteria 1
|
|
108
|
+
- [ ] Verification criteria 2
|
|
109
|
+
- [ ] Verification criteria 3
|
|
110
|
+
|
|
111
|
+
## References
|
|
112
|
+
|
|
113
|
+
- [Link to relevant documentation]()
|
|
114
|
+
- [Link to related issue/PR]()
|
|
115
|
+
- [Link to external resources]()
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Revision History
|
|
120
|
+
|
|
121
|
+
| Date | Author | Changes |
|
|
122
|
+
|------|--------|---------|
|
|
123
|
+
| YYYY-MM-DD | Name | Initial draft |
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Reusable Patterns
|
|
2
|
+
|
|
3
|
+
This directory contains proven solutions to common problems encountered in the codebase.
|
|
4
|
+
|
|
5
|
+
## Categories
|
|
6
|
+
|
|
7
|
+
| Category | Description |
|
|
8
|
+
|----------|-------------|
|
|
9
|
+
| `api/` | API design and implementation patterns |
|
|
10
|
+
| `data/` | Data handling, validation, transformation |
|
|
11
|
+
| `ui/` | User interface components and interactions |
|
|
12
|
+
| `testing/` | Testing strategies and patterns |
|
|
13
|
+
| `security/` | Security implementation patterns |
|
|
14
|
+
| `performance/` | Performance optimization patterns |
|
|
15
|
+
|
|
16
|
+
## Pattern Template
|
|
17
|
+
|
|
18
|
+
Each pattern document should include:
|
|
19
|
+
|
|
20
|
+
```markdown
|
|
21
|
+
# Pattern Name
|
|
22
|
+
|
|
23
|
+
## Problem
|
|
24
|
+
What problem does this pattern solve?
|
|
25
|
+
|
|
26
|
+
## Context
|
|
27
|
+
When should this pattern be applied?
|
|
28
|
+
|
|
29
|
+
## Solution
|
|
30
|
+
How does the pattern work?
|
|
31
|
+
|
|
32
|
+
## Code Example
|
|
33
|
+
Concrete implementation example.
|
|
34
|
+
|
|
35
|
+
## Consequences
|
|
36
|
+
Trade-offs and considerations.
|
|
37
|
+
|
|
38
|
+
## Related Patterns
|
|
39
|
+
Links to related patterns.
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Adding a Pattern
|
|
43
|
+
|
|
44
|
+
1. Identify a recurring problem with a proven solution
|
|
45
|
+
2. Create document in appropriate category
|
|
46
|
+
3. Follow the template structure
|
|
47
|
+
4. Include working code examples
|
|
48
|
+
5. Reference actual codebase usage
|
|
49
|
+
|
|
50
|
+
## Using Patterns
|
|
51
|
+
|
|
52
|
+
1. Identify the problem you're solving
|
|
53
|
+
2. Check relevant category for existing patterns
|
|
54
|
+
3. Adapt the pattern to your specific context
|
|
55
|
+
4. Reference the pattern in your implementation
|
|
56
|
+
|
|
57
|
+
## Pattern Quality Criteria
|
|
58
|
+
|
|
59
|
+
- **Proven**: Used successfully in production
|
|
60
|
+
- **Documented**: Clear explanation and examples
|
|
61
|
+
- **Maintained**: Updated when implementation changes
|
|
62
|
+
- **Reviewed**: Approved by team lead or senior developer
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Pattern: [Pattern Name]
|
|
2
|
+
|
|
3
|
+
## Metadata
|
|
4
|
+
|
|
5
|
+
| Field | Value |
|
|
6
|
+
|-------|-------|
|
|
7
|
+
| **Category** | api / data / ui / testing / security / performance |
|
|
8
|
+
| **Created** | YYYY-MM-DD |
|
|
9
|
+
| **Updated** | YYYY-MM-DD |
|
|
10
|
+
| **Author** | {{AUTHOR_NAME}} |
|
|
11
|
+
| **Status** | draft / approved / deprecated |
|
|
12
|
+
|
|
13
|
+
## Problem
|
|
14
|
+
|
|
15
|
+
Describe the problem this pattern solves.
|
|
16
|
+
|
|
17
|
+
- What symptoms indicate this problem?
|
|
18
|
+
- What are the consequences of not addressing it?
|
|
19
|
+
|
|
20
|
+
## Context
|
|
21
|
+
|
|
22
|
+
When should this pattern be applied?
|
|
23
|
+
|
|
24
|
+
### Use When
|
|
25
|
+
|
|
26
|
+
- Condition 1
|
|
27
|
+
- Condition 2
|
|
28
|
+
- Condition 3
|
|
29
|
+
|
|
30
|
+
### Don't Use When
|
|
31
|
+
|
|
32
|
+
- Condition 1
|
|
33
|
+
- Condition 2
|
|
34
|
+
|
|
35
|
+
## Solution
|
|
36
|
+
|
|
37
|
+
### Overview
|
|
38
|
+
|
|
39
|
+
Brief description of how the pattern works.
|
|
40
|
+
|
|
41
|
+
### Structure
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
[Diagram or structure description]
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Implementation Steps
|
|
48
|
+
|
|
49
|
+
1. Step 1
|
|
50
|
+
2. Step 2
|
|
51
|
+
3. Step 3
|
|
52
|
+
|
|
53
|
+
## Code Example
|
|
54
|
+
|
|
55
|
+
### Basic Usage
|
|
56
|
+
|
|
57
|
+
```{{LANGUAGE}}
|
|
58
|
+
// Example code demonstrating the pattern
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Advanced Usage
|
|
62
|
+
|
|
63
|
+
```{{LANGUAGE}}
|
|
64
|
+
// More complex example with edge cases
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Anti-Pattern (What NOT to Do)
|
|
68
|
+
|
|
69
|
+
```{{LANGUAGE}}
|
|
70
|
+
// Example of incorrect implementation
|
|
71
|
+
// Explain why this is wrong
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Codebase References
|
|
75
|
+
|
|
76
|
+
Where this pattern is used in our codebase:
|
|
77
|
+
|
|
78
|
+
| Location | Description |
|
|
79
|
+
|----------|-------------|
|
|
80
|
+
| `path/to/file.ext:123` | Brief description |
|
|
81
|
+
| `path/to/other.ext:456` | Brief description |
|
|
82
|
+
|
|
83
|
+
## Consequences
|
|
84
|
+
|
|
85
|
+
### Benefits
|
|
86
|
+
|
|
87
|
+
- Benefit 1
|
|
88
|
+
- Benefit 2
|
|
89
|
+
- Benefit 3
|
|
90
|
+
|
|
91
|
+
### Trade-offs
|
|
92
|
+
|
|
93
|
+
- Trade-off 1
|
|
94
|
+
- Trade-off 2
|
|
95
|
+
|
|
96
|
+
### Risks
|
|
97
|
+
|
|
98
|
+
- Risk 1 and mitigation
|
|
99
|
+
- Risk 2 and mitigation
|
|
100
|
+
|
|
101
|
+
## Related Patterns
|
|
102
|
+
|
|
103
|
+
| Pattern | Relationship |
|
|
104
|
+
|---------|--------------|
|
|
105
|
+
| [Pattern Name](./path.md) | How they relate |
|
|
106
|
+
| [Pattern Name](./path.md) | How they relate |
|
|
107
|
+
|
|
108
|
+
## References
|
|
109
|
+
|
|
110
|
+
- [External resource]()
|
|
111
|
+
- [Documentation]()
|
|
112
|
+
- [Original source]()
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Revision History
|
|
117
|
+
|
|
118
|
+
| Date | Author | Changes |
|
|
119
|
+
|------|--------|---------|
|
|
120
|
+
| YYYY-MM-DD | Name | Initial version |
|