mirror of
https://github.com/LLVMParty/llvm-nanobind
synced 2026-06-21 13:43:38 +00:00
Development Documentation Methodology
This directory contains structured documentation for larger, multi-phase development tasks. The methodology enables tracking progress across multiple agent sessions and provides context for continuing work.
Structure
Each major task gets its own subdirectory with standardized files:
devdocs/
├── README.md # This file - methodology overview
├── <task-name>/
│ ├── plan.md # Detailed implementation plan
│ └── progress.md # Progress tracking and milestones
└── <another-task>/
├── plan.md
└── progress.md
Workflow
1. Research/Planning Phase
Before implementation begins:
- Create task subdirectory (e.g.,
devdocs/llvm-c-test/) - Create
plan.mdwith:- Overview and goals
- Phased implementation approach
- Required APIs/bindings/features per phase
- Testing strategy
- Estimated effort per phase
- Create
progress.mdwith:- Quick summary section
- Status overview table
- Checkbox lists for each phase
- Empty "Completed Milestones" section
2. Implementation Phase
During each development session:
- Read progress.md to understand current state
- Work on the current phase using the plan as a guide
- Update progress.md incrementally as tasks complete
3. End of Phase Update
At the end of each development phase, update both files:
plan.md updates:
- Mark completed phases with ✅
- Update statistics table with actual counts
- Add any learnings or changes to future phases
progress.md updates:
- Update quick summary with current phase status
- Update status overview table
- Mark completed items with [x]
- Add detailed milestone entry under "Completed Milestones" with:
- Date of completion
- Commands/features implemented
- Key bindings/APIs added
- Technical highlights and challenges
- Test results
Example: llvm-c-test
The llvm-c-test/ subdirectory demonstrates this methodology for porting the LLVM C test suite to Python:
plan.md Structure
# llvm-c-test Python Port Plan
## Overview
- Goal, motivation, scope
## CLI Design
- Command interface specification
## Architecture
- Directory structure
- Command to module mapping
## Phase 1: Foundation
- Commands to implement
- Required bindings (with tables)
## Phase 2: Metadata & Attributes
...
## Testing Strategy
- Golden-master testing approach
- Lit integration
## Summary Statistics
| Phase | Commands | Bindings | Status |
|-------|----------|----------|--------|
| Phase 1 | 8 | 30 | ✅ Complete |
...
progress.md Structure
# llvm-c-test Python Port Progress
**Last Updated:** December 17, 2025 (Phase 4 Complete)
## Quick Summary
✅ **Phase 1 Complete** - Description
✅ **Phase 2 Complete** - Description
⏳ **Phase 3** - In Progress
**Progress:** 21/22 commands (95%)
## Status Overview
| Phase | Commands | Bindings | Status |
...
## Phase 1: Foundation (8/8 commands) ✅
- [x] `--targets-list`
- [x] `--calc`
...
## Completed Milestones
### Phase 4: Platform-Specific - December 17, 2025 ✅
Successfully implemented...
**Commands Implemented:**
- ✅ `--disassemble`
...
**Key Bindings Added:**
- Disassembler (6 bindings): ...
...
**Technical Highlights:**
- Challenge faced and solution
...
Benefits
- Context Preservation: New agent sessions can quickly understand project state
- Progress Visibility: Clear tracking of what's done vs. remaining
- Technical Documentation: Captures implementation decisions and lessons learned
- Incremental Updates: Small updates each phase prevent documentation debt
- Scope Management: Phases can be adjusted based on learnings
Best Practices
- Update at phase boundaries: Don't wait until the end - update after each phase
- Be specific in milestones: Include actual counts, dates, and technical details
- Document blockers: Note any issues that required changes to the plan
- Keep plan.md stable: Major structure shouldn't change; update status markers
- Keep progress.md detailed: This is the living record of what was accomplished
Agent Instructions
When continuing work on a task documented here:
- Read
plan.mdto understand the overall approach - Read
progress.mdto find the current phase and remaining work - Work on incomplete items in the current phase
- Update
progress.mdas you complete items - At phase completion, add a detailed milestone entry
- Update
plan.mdstatistics and status markers