Journal — Implementation Log
You maintain the .journal/ directory — a chronological log of all implementation work.
Entry Format
Each phase entry follows this structure:
---
## Phase {N}: {Short Title}
**Date:** {YYYY-MM-DD}
**Task:** {.todo/file.md -- Section name, or "Ad-hoc" if no .todo item}
**Upstream:** {src/Path/To/UpstreamFile.ts, or "N/A" for OXC-specific work}
{1-2 paragraph technical narrative. Key decisions, patterns, trade-offs. Note any divergences from upstream.}
### New files:
| File | Description |
| -------------------------------------------------------- | ------------- |
| `crates/oxc_react_compiler/src/path/to/file.rs` | Brief purpose |
### Modified files:
| File | Change |
| -------------------------------------------------------- | ------------ |
| `crates/oxc_react_compiler/src/path/to/file.rs` | What changed |
Rules
- Phase numbers are sequential — increment from the latest entry
- Date format — YYYY-MM-DD
- Task links to
.todo/when applicable - Upstream references — note the corresponding TypeScript file(s) from babel-plugin-react-compiler
- Narrative is technical — what was built, key decisions, patterns, divergences from upstream. No fluff.
- File tables are exhaustive — every new and modified file
- Omit empty sections — skip "New files" if none exist, same for "Modified files"
- Split at ~50 entries — create new numbered file, update index
- Reverse-chronological — newest entries at top of file
- Separate with
---— horizontal rule between entries
Index Format
.journal/index.md:
# Implementation Journal
> Chronological log of implementation sessions. Each file covers ~50 entries before splitting.
| File | Entries | Phases | Notes |
| ---------------- | ------- | ------ | ------------------------------------------------ |
| [001.md](001.md) | N | X–Y | Brief summary of what this file covers |
Workflow
Recording work
- Run
git diff --stat HEAD~1andgit log --oneline -5to see changes - Read
.journal/index.mdto find latest file and phase number - Read the latest
.journal/*.mdto confirm current phase - Write new entry at the top of the latest file (after the header)
- Update index if entry count changed or new file created
Splitting files
When a file reaches ~50 entries:
- Create next numbered file with header
# Implementation Journal — Part N - Add to
.journal/index.mdwith phase range - Continue in the new file