Skip to content

Commit 74ec9eb

Browse files
author
Claude-InfoTech
committed
docs: formalize implementation proposal workflow
1 parent 8fe8fef commit 74ec9eb

1 file changed

Lines changed: 124 additions & 178 deletions

File tree

docs/content/open-source/contributing.md

Lines changed: 124 additions & 178 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ What to read or do next
173173

174174
### Epic Issues + Child Issues + Feature Branches Strategy
175175

176-
For complex, multi-week development tasks, InfoTech.io follows an industry-standard workflow that ensures traceability, systematic progress tracking, and manageable development cycles.
176+
For complex, multi-week development tasks, InfoTech.io follows an industry-standard workflow that ensures traceability, systematic progress tracking, and manageable development cycles. This process mandates the creation of detailed, version-controlled implementation plans before coding begins.
177177

178178
#### When to Use This Workflow
179179
- **Large Features**: Development tasks requiring 4+ days of work
@@ -185,223 +185,169 @@ For complex, multi-week development tasks, InfoTech.io follows an industry-stand
185185
#### Workflow Structure
186186

187187
##### 1. Epic Issue Creation
188-
Create a comprehensive Epic Issue in the primary repository that serves as the central coordination point:
188+
Create a comprehensive Epic Issue in the primary repository that serves as the central coordination point. Use the standard "Epic Issue Template" for this.
189189

190-
```markdown
191-
# Epic Issue Template
190+
##### 2. Child Issues Creation
191+
Break down the epic into specific, actionable child issues. Each child issue should represent a logical, self-contained block of work. Use the "Child Issue Template".
192192

193-
## Epic: [DESCRIPTIVE_NAME] v[VERSION]
193+
##### 3. Implementation Proposal (Design Phase)
194+
This is a mandatory step before any code is written. The goal is to create a detailed, reviewable plan. All proposals are stored in the `docs/proposals` directory of the relevant repository.
194195

195-
### Overview
196-
**Problem Statement**: Clear description of what problem this epic solves
197-
**Strategic Value**: Why this work is important for the project
198-
**Success Criteria**: Measurable outcomes that define completion
199-
200-
### Technical Scope
201-
**Architecture Impact**: Components and systems affected
202-
**Breaking Changes**: Any backward compatibility concerns
203-
**Dependencies**: External or internal dependencies
204-
**Risk Assessment**: Potential challenges and mitigation strategies
205-
206-
### Implementation Strategy
207-
**Epic Branch**: `epic/[descriptive-name]-v[version]`
208-
**Estimated Timeline**: X weeks (with buffer)
209-
**Resource Requirements**: Team members, external dependencies
210-
**Quality Gates**: Testing, review, and validation requirements
211-
212-
### Child Issues Breakdown
213-
- [ ] #XXX: [Component 1]: Specific technical task
214-
- [ ] #XXX: [Component 2]: Specific technical task
215-
- [ ] #XXX: [Integration]: Integration and testing
216-
- [ ] #XXX: [Documentation]: Documentation updates
217-
- [ ] #XXX: [Deployment]: Production deployment
218-
219-
### Progress Tracking
220-
**Epic Progress**: 0/X child issues completed
221-
**Current Phase**: Planning | Development | Testing | Integration | Deployment
222-
**Blockers**: List any current blockers
223-
**Risks**: Track emerging risks during development
224-
225-
### Communication
226-
**Stand-up Schedule**: Daily/Weekly check-ins if needed
227-
**Review Gates**: Milestone review points
228-
**Stakeholders**: Who needs to be kept informed
196+
###### Directory Structure
197+
A dedicated directory must be created for each Epic or standalone Issue to house all related design documents.
198+
199+
**For an Epic Issue:**
200+
The structure is nested to reflect the parent-child relationship.
201+
202+
```
203+
docs/proposals/
204+
└── epic-[epic_number]-[epic-title-slug]/
205+
├── progress.md (Overall Epic visualization)
206+
├── child-[child_number]-[child-title-slug]/
207+
│ ├── design.md
208+
│ ├── progress.md
209+
│ ├── 001-step-one.md
210+
│ └── 002-step-two.md
211+
└── child-[another_child_number]-[another-title-slug]/
212+
└── ...
229213
```
230214

231-
##### 2. Child Issues Creation
232-
Break down the epic into specific, actionable child issues:
215+
**For a standalone Issue:**
216+
The structure is simpler.
217+
218+
```
219+
docs/proposals/
220+
└── [issue_number]-[issue-title-slug]/
221+
├── design.md
222+
├── progress.md
223+
├── 001-step-one.md
224+
└── 002-step-two.md
225+
```
226+
227+
###### Proposal Documents
228+
- **`design.md`**: The high-level implementation plan. This document outlines the major stages of work, corresponding to the future Pull Request's scope. It should contain:
229+
- A clear problem statement.
230+
- A description of the proposed technical solution.
231+
- A list of high-level implementation stages (e.g., "1. Refactor module X", "2. Implement feature Y", "3. Add test coverage").
232+
- Links to the detailed step files (`001-*.md`, etc.).
233+
234+
- **`00X-step-name.md`**: Detailed, step-by-step action plans. Each file corresponds to a high-level stage from `design.md`. It breaks the stage down into concrete actions, where each action ideally results in a single, atomic commit.
235+
- **After a step is completed, this file MUST be updated with a "Done" status and a direct link to the commit that implemented it.**
236+
237+
- **`progress.md`**: A visualization of the implementation progress using Mermaid.js. This file acts as a live dashboard for the Issue.
238+
- For Epics, it visualizes the status of its Child Issues.
239+
- For Child/standalone Issues, it visualizes the status of the implementation stages from `design.md`.
240+
- **This file MUST be updated as stages are completed.**
233241

242+
###### Example `progress.md` for a Child Issue:
234243
```markdown
235-
# Child Issue Template
236-
237-
## [Component]: [Specific Task]
238-
239-
**Parent Epic**: #[EPIC_NUMBER] - [Epic Name]
240-
**Type**: Bug Fix | Feature | Refactor | Documentation | Testing
241-
**Priority**: Critical | High | Medium | Low
242-
**Estimated Effort**: X hours/days
243-
244-
### Task Description
245-
**Objective**: What specifically needs to be accomplished
246-
**Acceptance Criteria**:
247-
- [ ] Criterion 1
248-
- [ ] Criterion 2
249-
- [ ] Testing requirements
250-
- [ ] Documentation requirements
251-
252-
### Technical Details
253-
**Files to Modify**: List specific files or modules
254-
**Dependencies**: Other child issues that must be completed first
255-
**Testing Strategy**: How this will be tested
256-
**Rollback Plan**: How to undo changes if needed
257-
258-
### Implementation Notes
259-
**Approach**: Technical approach or algorithm
260-
**Edge Cases**: Special cases to handle
261-
**Performance Considerations**: Impact on performance
262-
**Security Considerations**: Security implications
244+
# Progress: [Issue Title]
245+
246+
```mermaid
247+
graph TD
248+
subgraph "Implementation Plan"
249+
A[Stage 1: Scaffolding] --> B[Stage 2: Business Logic];
250+
B --> C[Stage 3: Integration];
251+
C --> D[Stage 4: Testing];
252+
D --> E[Stage 5: Documentation];
253+
end
254+
255+
style A fill:#9f9,stroke:#333,stroke-width:2px
256+
style B fill:#9f9,stroke:#333,stroke-width:2px
257+
style C fill:#f9f,stroke:#333,stroke-width:2px
258+
style D fill:#ff9,stroke:#333,stroke-width:2px
259+
style E fill:#ccc,stroke:#333,stroke-width:2px
260+
261+
click A "link-to-001.md" "Stage 1 Details"
262+
click B "link-to-002.md" "Stage 2 Details"
263263
```
264+
*This graph shows Stage 1 & 2 as completed, Stage 3 as in-progress, Stage 4 as planned, and Stage 5 as not started.*
265+
```
266+
267+
###### Design Review Process
268+
1. Before writing implementation code, the contributor creates the necessary proposal directory and files (`design.md`, `progress.md`, `00X-*.md`).
269+
2. A **Draft Pull Request** is opened. The only changes in this PR are the new files in `docs/proposals/`.
270+
3. The team reviews the **plan**, not the code. This is a critical quality gate to catch architectural issues early.
271+
4. Once the plan is approved, the Design PR is merged into the `epic/...` branch (or `main` for standalone issues).
264272

265-
##### 3. Epic Branch Strategy
273+
##### 4. Epic Branch Strategy
266274
Create a long-lived epic branch that serves as the integration point:
267275

268276
```bash
269277
# Epic branch creation and management
270278
git checkout main
271279
git pull origin main
272280
git checkout -b epic/build-system-v2.0
273-
274-
# Feature branches branch off from epic branch
275-
git checkout epic/build-system-v2.0
276-
git checkout -b feature/error-handling-system
277-
# Work on specific feature
278-
git commit -m "feat: implement comprehensive error handling"
279-
git push origin feature/error-handling-system
280-
281-
# Create PR: feature/error-handling-system → epic/build-system-v2.0
282-
# After review and merge, continue with next feature branch
283281
```
284282

285-
##### 4. Development and Integration Cycle
286-
Follow this systematic development pattern:
283+
##### 5. Development and Integration Cycle
284+
Follow this systematic development pattern for each child issue:
287285

288286
```bash
289287
# For each child issue:
290288

291-
# 1. Create feature branch from epic branch
289+
# 1. Ensure the Implementation Proposal is approved and merged.
290+
291+
# 2. Create feature branch from the epic branch
292292
git checkout epic/[epic-name]
293293
git pull origin epic/[epic-name]
294294
git checkout -b feature/[specific-task]
295295

296-
# 2. Implement the specific change
297-
# Focus only on this child issue's requirements
298-
# Include tests and documentation
296+
# 3. Implement a specific action from a detailed step file (e.g., 001-step-one.md)
297+
# Focus only on this action.
299298

300-
# 3. Create PR to epic branch
301-
# Title: "feat: [specific task] (#child-issue-number)"
302-
# Reference parent epic in description
299+
# 4. Commit your changes with a clear message referencing the issue.
300+
git commit -m "feat: implement error constants for #3"
301+
git push origin feature/[specific-task]
303302

304-
# 4. Code review and merge to epic branch
305-
# Update child issue as completed
306-
# Update epic issue progress
303+
# 5. (CRITICAL) Update the proposal documents
304+
# - Edit the corresponding step file (e.g., `001-step-one.md`) to mark the action as complete
305+
# and add a link to your commit hash.
306+
# - Edit `progress.md` to update the visualization.
307+
# - Commit these documentation changes.
308+
git add docs/proposals/
309+
git commit -m "docs: update progress for step 1.1 on #3"
310+
git push
307311

308-
# 5. Epic branch integration testing
309-
# Ensure all components work together
310-
# Run comprehensive test suite
312+
# 6. Repeat steps 3-5 until a full stage is complete.
311313

312-
# 6. Final PR: epic branch → main
313-
# After all child issues completed
314-
# Comprehensive review by maintainers
315-
# Full CI/CD validation before merge
316-
```
317-
318-
#### Example: Hugo Templates Build System v2.0
314+
# 7. Create a PR to the epic branch
315+
# Title: "feat: [specific task] (#child-issue-number)"
316+
# The PR should contain both implementation and documentation changes.
319317

320-
Here's how we apply this workflow to our current hugo-templates stability issue:
318+
# 8. Code review and merge to epic branch.
321319

322-
**Epic Issue**: `hugo-templates/#1 - Build System v2.0`
323-
- **Epic Branch**: `epic/build-system-v2.0`
324-
- **Child Issues**:
325-
- `#2`: Error handling system with comprehensive logging
326-
- `#3`: Test coverage framework for build scripts
327-
- `#4`: GitHub Actions optimization and debugging
328-
- `#5`: Documentation and troubleshooting guides
329-
- `#6`: Performance optimization and caching
320+
# 9. Once all child issues are complete, create the final PR: epic branch → main.
321+
# This PR will be a comprehensive summary of all work done.
322+
```
330323

331-
**Benefits of This Approach**:
332-
- **Traceability**: Complete history from problem to solution
333-
- **Manageable Scope**: Each child issue is 1-2 days of focused work
334-
- **Parallel Development**: Multiple developers can work on different child issues
335-
- **Quality Control**: Epic branch allows integration testing before main merge
336-
- **Progress Visibility**: Clear progress tracking for stakeholders
337-
- **Risk Mitigation**: Epic branch isolation prevents main branch instability
324+
#### Benefits of This Approach**:
325+
- **Full Traceability**: Complete, version-controlled history from problem to plan to code.
326+
- **Proactive Reviews**: Architectural decisions are reviewed before implementation, saving time.
327+
- **Living Documentation**: The `docs/proposals` directory becomes a self-updating knowledge base.
328+
- **Enhanced Visibility**: Mermaid diagrams provide an at-a-glance view of progress for all stakeholders.
329+
- **Clarity of Scope**: Developers work from a pre-approved, detailed plan, reducing ambiguity.
338330

339331
#### Quality Gates and Reviews
340332

341-
##### Epic Planning Review
342-
- [ ] Epic scope is well-defined and bounded
343-
- [ ] Child issues cover all necessary work
344-
- [ ] Dependencies are identified and planned
345-
- [ ] Timeline includes adequate buffer for testing
346-
- [ ] Risk assessment is comprehensive
333+
##### Design Proposal Review
334+
- [ ] Proposal directory structure is correct.
335+
- [ ] `design.md` clearly outlines the solution and high-level stages.
336+
- [ ] Detailed steps (`00X-*.md`) are logical and actionable.
337+
- [ ] `progress.md` visualization accurately reflects the plan.
347338

348-
##### Child Issue Reviews
349-
- [ ] Child issue has clear acceptance criteria
350-
- [ ] Technical approach is sound
351-
- [ ] Testing strategy is adequate
352-
- [ ] Documentation requirements are met
353-
- [ ] No regression risks identified
339+
##### Child Issue PR Reviews
340+
- [ ] Code changes align with the approved design documents.
341+
- [ ] All commits are linked back from the design documents.
342+
- [ ] The `progress.md` file has been correctly updated.
343+
- [ ] Standard code quality and testing requirements are met.
354344

355345
##### Epic Integration Review
356-
- [ ] All child issues are completed and tested
357-
- [ ] Epic branch has comprehensive integration tests
358-
- [ ] Performance impact is acceptable
359-
- [ ] Documentation is updated and accurate
360-
- [ ] Deployment plan is tested and validated
361-
362-
##### Pre-Merge Review
363-
- [ ] Full CI/CD pipeline passes
364-
- [ ] Code review by at least 2 maintainers
365-
- [ ] Manual testing of critical paths
366-
- [ ] Rollback plan is prepared and tested
367-
- [ ] Stakeholder sign-off obtained
368-
369-
#### Tools Integration
370-
371-
##### GitHub Integration
372-
```markdown
373-
# Epic Issue Linking
374-
Closes #child-issue-1
375-
Closes #child-issue-2
376-
Related to #upstream-dependency
377-
378-
# PR Templates for Epic Work
379-
**Epic**: #[epic-number] - [Epic Name]
380-
**Child Issue**: #[child-issue] - [Specific Task]
381-
**Type**: Feature | Bug Fix | Refactor | Documentation
382-
383-
## Epic Context
384-
Brief explanation of how this PR fits into the larger epic
385-
386-
## Changes Made
387-
- Specific change 1
388-
- Specific change 2
389-
390-
## Testing
391-
- [ ] Unit tests updated
392-
- [ ] Integration tests pass
393-
- [ ] Epic branch integration tested
394-
395-
## Epic Progress
396-
X of Y child issues completed after this merge
397-
```
398-
399-
##### Project Board Setup
400-
- **Epic Tracking Board**: High-level view of all active epics
401-
- **Sprint Board**: Current week's child issues across all epics
402-
- **Milestone Integration**: Epic completion tied to project milestones
346+
- [ ] All child issues are completed and tested.
347+
- [ ] All proposal documents are finalized.
348+
- [ ] Epic branch has comprehensive integration tests.
349+
- [ ] Final `progress.md` for the epic shows 100% completion.
403350

404-
This workflow ensures that large, complex development tasks are managed systematically while maintaining code quality, project stability, and team coordination. It's particularly valuable for infrastructure changes, major features, and critical bug fixes that affect multiple system components.
405351

406352
### 1. Planning Phase
407353

0 commit comments

Comments
 (0)