8.6 KiB
| description |
|---|
| At the end of each session, we look back at everything that was said and done, and we write down a Development Journal Entry |
The Developer Journal is a great way to keep track of our progress and document the way we made design decisions and coding breakthroughs.
The task is to generate a new Developer Journal entry in the docs/devJournal folder, in markdown format, using the naming convention yyyymmdd-nn.md.
The content of the entry must narrate the session's story. To ensure the full context is captured, you will follow these steps in order:
1. Establish the 'Why' (The High-Level Context):
- First, determine the active feature branch by running
git branch --show-current. - Then, find and read the most recent previous journal entry to understand the starting point.
- Synthesise these with the beginning of our current conversation to state the session's primary goal or the feature being worked on.
2. Gather Evidence of 'The How' (The Journey):
This step is critical to avoid "tunnel vision". You must perform a deep analysis of the entire session using multiple evidence sources.
2.1. Multi-Source Evidence Gathering (MANDATORY - All sources must be reviewed):
- Conversation Chronology: Create a timeline of the entire session from start to finish. Note every major topic, tool usage, file interaction, and decision point.
- Git Commit Analysis: Run
git log --since="YYYY-MM-DD" --stat --onelineto get a comprehensive view of all commits since the last journal entry. Each commit represents a separate work stream that must be captured. - Staged Changes Analysis: Run
git diff --staged --name-statusto see what's currently staged for commit (if anything). - File System Impact: Run
git status --porcelainto see all modified, added, and untracked files. Group by functional area (API, UI, docs, tests, etc.). - Documentation Trail: Check for changes in:
CHANGELOG.md(often contains structured summaries of work)README.mdand other root-level documentationdocs/directory (API specs, ADRs, solution architecture)cline-docs/(memory bank files)- Any workflow executions mentioned in conversation
2.2. Evidence Cross-Reference (MANDATORY - Prevent tunnel vision):
- Workflow Execution Review: If any workflows were mentioned in the conversation (e.g.,
.clinerules/workflows/), review their outputs and ensure their objectives are captured. - API Development Pattern: If API work was done, check for:
- New/modified Groovy files in
src/groovy/umig/api/ - New/modified repository files in
src/groovy/umig/repository/ - Documentation updates in
docs/api/ - OpenAPI specification changes
- Postman collection regeneration
- New/modified Groovy files in
- UI Development Pattern: If UI work was done, check for:
- JavaScript file changes in
src/groovy/umig/web/js/ - CSS changes in
src/groovy/umig/web/css/ - Macro changes in
src/groovy/umig/macros/ - Mock/prototype updates in
mock/
- JavaScript file changes in
- Refactoring Pattern: If refactoring was done, check for:
- File moves, renames, or splits
- Architecture changes reflected in project structure
- New patterns or modules introduced
- Breaking changes or deprecations
2.3. Completeness Verification (MANDATORY - Final check):
- Three-Pass Review:
- First Pass: What was the initial request/problem?
- Second Pass: What were all the intermediate steps and discoveries?
- Third Pass: What was the final state and all deliverables?
- Breadth vs Depth Check: Ensure both technical depth (how things were implemented) and breadth (all areas touched) are captured.
- Hidden Work Detection: Look for "invisible" work like:
- Configuration changes
- Dependency updates
- Test file modifications
- Documentation synchronization
- Workflow or process improvements
3. Synthesise and Write the Narrative:
The goal is to write a detailed, insightful story, not a shallow summary. Prioritise depth and clarity over brevity.
3.1. Multi-Stream Integration (MANDATORY - Address tunnel vision):
- Identify All Work Streams: Based on evidence gathering, create a list of all distinct work streams (e.g., "API documentation", "Admin GUI refactoring", "Environment API implementation", "Schema consistency fixes").
- Parallel vs Sequential Work: Determine which work streams were parallel (done simultaneously) vs sequential (one led to another).
- Cross-Stream Dependencies: Note how different work streams influenced each other (e.g., API documentation revealed schema issues that required code changes).
- Scope Creep Documentation: If the session expanded beyond initial scope, document how and why this happened.
3.2. Narrative Structure (Enhanced):
- Copy and Fill the Template: For every new devJournal entry, always copy and fill in the persistent template at
docs/devJournal/devJournalEntryTemplate.md. This ensures consistency, quality, and traceability across all devJournal entries. - Multi-Problem Awareness: If multiple problems were addressed, structure the narrative to handle multiple concurrent themes rather than forcing a single linear story.
- Enhanced Story Arc: The "How" section should follow this comprehensive structure:
- The Initial Problem(s): Clearly describe all bugs, errors, or tasks at the start of the session. Note if scope expanded.
- The Investigation: Detail the debugging/analysis process for each work stream. What did we look at first? What were our initial hypotheses? What tools did we use?
- The Breakthrough(s): Describe key insights or discoveries for each work stream. Note cross-stream insights.
- Implementation and Refinements: Explain how solutions were implemented across all work streams. Detail code changes and architectural improvements.
- Validation and Documentation: Describe how we confirmed fixes worked and updated documentation across all areas.
- Technical Depth Requirements: For each work stream, ensure you capture:
- What changed (files, code, configuration)
- Why it changed (problem being solved, improvement being made)
- How it changed (technical approach, patterns used)
- Impact (what this enables, what problems it solves)
3.3. Quality Assurance (MANDATORY - Final verification):
- Evidence vs Narrative Cross-Check: Verify that every piece of evidence from step 2 has been addressed in the narrative.
- Completeness Audit: Check that the journal entry would allow someone to understand:
- The full scope of work accomplished
- The technical decisions made and why
- The current state of the project
- What should be done next
- Tone and Format: The tone should be in British English, and the format should be raw markdown.
- Final Review: Before presenting the journal entry, re-read it one last time to ensure it captures the full journey and avoids the "tunnel vision" of only looking at the final code or the most recent work.
4. Anti-Tunnel Vision Checklist (MANDATORY - Use before finalizing):
Before presenting the journal entry, verify you have addressed ALL of the following:
Content Coverage:
- All git commits since last journal entry are documented
- All workflow executions mentioned in conversation are captured
- All file modifications (API, UI, docs, tests, config) are explained
- All architectural or pattern changes are documented
- All bug fixes and their root causes are explained
- All new features and their implementation are detailed
Work Stream Integration:
- Multiple work streams are identified and explained
- Parallel vs sequential work is clearly distinguished
- Cross-dependencies between work streams are noted
- Scope expansions are documented with reasoning
Technical Depth:
- Code changes include the "what", "why", "how", and "impact"
- Database schema changes are documented
- API changes include request/response examples
- UI changes include user experience impact
- Documentation changes and their necessity are explained
Project Context:
- Current project state is accurately reflected
- Next steps and priorities are updated
- Key learnings and patterns are documented
- Project milestone significance is noted
Quality Verification:
- Evidence from step 2 matches narrative content
- No significant work is missing from the story
- Technical decisions are justified and explained
- Future developers could understand the session's impact
5. Await Confirmation:
- After presenting the generated journal entry, DO NOT proceed with any other actions, especially committing.
- Wait for explicit confirmation or further instructions from the user.