TL;DR
When developing with AI tools like Claude Code, you lose work context. The Features tracking system documents every feature, saves 50x tokens with INDEX.md, and auto-generates blog drafts with the /blog command.
Tracking 29 features, 50x token savings, reduced blog writing barrier.
Background: Limitations of daily_work_summary
Initially, I only kept daily work logs in daily_work_summary/2025-10-15.md format.
# 2025-10-15
- Fixed login functionality
- Fixed search bug
- Started adding caching
Problems emerged days later:
- No Feature-Level Tracking
- “How did I fix that search bug?” → digging through multiple date files
- “Where are caching-related commits?” → searching entire Git log
-
Claude Conversation Thread Management Failed + Parallel Work Chaos
With Claude Code, you need to run multiple features in parallel for efficiency. Can’t just sit and wait for one task to finish.
But this means I end up stopping work on F001, F003, F006 simultaneously at quitting time, and trying to remember multiple contexts overloads even me, a human.
Every morning, I wasted 30 minutes just figuring out “where did I leave off?”
- AI Token Waste
- Explaining “what I did last week” → need to read 5 daily_log files
- 33 features → reading all 33 READMEs = 15,000 tokens consumed
→ Introduced Features system for feature-level tracking + token savings
Solution: Features System
Real-World Usage Flow
Scenario 1: When Pausing Work (Need to shut down computer)
(Working on F006 search feature...)
Me: /pause
AI: "Saved F006 progress"
→ Record current state in frontmatter
→ Update INDEX.md
(Computer shutdown, weekend passes...)
Scenario 2: When Resuming Work (Monday morning)
Friday quitting time, I was juggling F001, F003, F006 simultaneously.
Me: /resume
AI: "3 paused tasks:
- F001 User Auth (90%, only tests remaining)
- F003 Logging System (50%, configuring AOP)
- F006 Search Optimization (30%, designing index)"
→ 30 minutes of confusion → 0 seconds ✅
Scenario 3: When Completing Work
Me: /finish
AI: Automatically handles:
1. Update Features documentation (status: DONE)
2. Write work log
3. Git commit
4. "Is this worth blogging about?" assessment
Result: AI remembers and manages my work context.
Core Idea
“Every feature = One document”
features/
├── INDEX.md # Cache for quick lookup
├── F001-classroom-management/ # Feature folders
│ ├── README.md # Work tracking
│ ├── blog.md # Blog draft (optional)
│ └── images/ # Screenshots
│ ├── 01-before.png
│ └── 02-after.png
├── F002-controller-refactoring/
└── F029-logging-policy-aop/
1. State Management with Frontmatter
Why not use other approaches?
Many project management systems organize by status folders:
TODO/F001-user-auth.md
IN_PROGRESS/F001-user-auth.md
DONE/F001-user-auth.md
The problem: Moving files breaks Git history:
git log F001-user-auth.md→ “Huh? This file was just created?”- Git sees it as “file deletion + new file creation”
- GitHub blame doesn’t work properly
Solution: Keep files in place, change only metadata
---
id: F001
title: Classroom Management System
status: DONE # TODO → IN_PROGRESS → DONE
priority: HIGH
created: 2025-10-18 KST
completed: 2025-10-21 KST
elapsed_hours: 16
labels: [feature, backend, frontend]
---
# Classroom Management System
## ✅ Completed Tasks
- [x] Classroom CRUD API
- [x] Seat layout UI
- [x] Row/column width adjustment
## 🔗 Related Commits
- `8356a91` - feat: add classroom management feature
Benefits:
git log features/F001-classroom-management/README.mdtracks the entire process- GitHub blame works normally
- Only status changes, no file movement
2. Token Savings with INDEX.md
Reading 50 feature files wastes tens of thousands of tokens. Instead, read one summary.
---
last_updated: 2025-11-01 20:00 KST
auto_generated: true
---
## 📊 Summary
- **TODO**: 8
- **IN_PROGRESS**: 2
- **DONE**: 21
## 🚀 IN_PROGRESS
### [F006](F006-teacher-schedule-management/) Teacher Weekly Schedule
- **Started**: 2025-10-30 05:00 KST
- **Progress**: 30%
## 📋 TODO
### [F023](F023-current-user-annotation/) @CurrentUser Annotation
- **Estimated**: 2-3 hours
- **Topic**: Automate controller auth checks
Impact:
- Reading INDEX.md: ~300 tokens
- Reading all files: ~15,000 tokens
- 50x savings!
3. Automated Blog Drafting
Feature complete → /blog command → draft + image recommendations auto-generated.
features/F001-classroom-management/
├── README.md
└── blog.md # Auto-generated
blog.md example:
---
title: "Implementing Drag-and-Drop Seat Layout in React"
date: 2025-10-21
tags: [React, DnD, TypeScript]
draft: true
---
## Background
We needed a seat layout feature in the academy management system...
## Implementation
Used HTML5 Drag & Drop API directly instead of react-dnd...
+ Image recommendations:
### 📸 Recommended Screenshots
1. **Seat dragging screen**
- Filename: `01-drag-interaction.png`
- Content: Capture while dragging a seat
- How: Classroom management > Seat layout mode > Drag
📁 Save location: `features/F001-classroom-management/images/`
⚠️ **Important**: Capture now or you won't be able to later when UI changes!
→ Forces immediate capture after development
4. Full Automation with Slash Commands
/finish - 8-Step Automated Process
1. Check changes
2. Clean code (remove debug logs)
3. Update Features system ⭐
→ frontmatter status: DONE
→ completed: [current time]
→ Update INDEX.md
4. Write work log
5. Sync requirement.md
6. Git commit
7. Record commit hash in Features file ⭐
8. Final report
/blog - Blog Draft + Images
1. Analyze recent work
2. Judge blog-worthiness
3. User confirmation
4. Write blog draft
5. Recommend images/screenshots ⭐
6. Guide save location
/pause & /resume - Suspend/Resume Work
/pause
→ Save state of current IN_PROGRESS work
→ Update INDEX.md
(Next day)
/resume
→ Read only INDEX.md to check suspended work (save tokens)
→ When user selects, read that feature file
→ Resume with TodoWrite
Results
Quantitative Impact
- 29 features tracked (8 TODO, 2 IN_PROGRESS, 21 DONE)
- 50x token savings (thanks to INDEX.md cache)
- 4,469 lines organized (api/, refactoring/, analysis/, etc.)
- 7 TODOs auto-generated (CONTROLLER_IMPROVEMENTS.md → F023-F029)
Qualitative Impact
1. Context Preservation
Start new conversation:
"Continue F006 work"
AI reads INDEX.md → reads F006 file → immediately resumes
2. Perfect Git History Preservation
$ git log features/F001-classroom-management/README.md
→ All 12 commits over 3 days trackable
3. Lower Blog Writing Barrier
Before: "I'll write it later..." → Never writes
After: blog.md + image recommendations → Draft complete immediately
4. Industry Comparison
| Tool | Features | Features System |
|---|---|---|
| Claude Task Master | MCP-based, 36 tools | ✅ Simpler with Markdown |
| GitHub Issues | Project-level | ✅ Feature-level granularity |
| Notion | Manual management | ✅ AI automation |
| - | - | ✅ Blog integration (unique) |
| - | - | ✅ Image timing (innovative) |
Lessons Learned
1. “Conversation Context > Git Log”
Problem: When developing multiple features simultaneously
git log --since="1 hour ago"
→ F001, F002, F003, F032 commits mixed
→ AI asks "What were you working on?"
Solution: If in same conversation thread, AI already knows!
User: (Working on F032...)
User: /finish
AI:
1. Check conversation context: "Worked on F032 in this session" ✅
2. Immediately: "Should I complete F032?"
Information Priority:
- Features/README.md (highest) - Already structured context
- daily_work_summary (supplement) - Details, trial & error
- Git diff (code examples) - Actual changes
→ Git log used as fallback only in new threads!
2. “AI is a Teammate, Not a Tool”
Don’t just use AI as a coding assistant, design a workflow AI can follow.
❌ "AI, do this" (explain every time)
✅ "AI, start F023 work" (system auto-loads context)
3. “File Movement is Git’s Enemy”
Moving files todo/ → in-progress/ → done/ when changing state:
- Needs
git log --follow - Breaks GitHub blame
- Hard to track history
→ Solved with Frontmatter metadata!
4. “Tokens are Money”
Reading 50 files every time:
- Slow
- Expensive
- Context fills up
→ 50x savings with INDEX.md cache
5. “Screenshots are About Timing”
Capture immediately after development, not when writing blog.
→ Built image recommendations into /blog command
6. “Standardize Across All Projects”
Established Features system as required standard for all projects, not just CheckUS.
# C:/Users/YJL/.claude/CLAUDE.md (Global settings)
## 📋 Features Tracking System (Standard for All Projects)
### Core Principle
**Every task is tracked as a Feature.**
- ✅ New feature development → Feature
- ✅ Bug fix → Feature
- ✅ Refactoring → Feature
- ✅ Documentation → Feature
- ❌ "Work not tracked in Features" doesn't exist
Auto-setup prompt:
# When running /finish in a new project
AI:
1. Check for docs/features/ folder
2. If not found:
┌────────────────────────────────────────┐
│ ⚠️ No Features tracking system. │
│ │
│ Set it up now? │
│ │
│ Will create: │
│ - docs/features/INDEX.md │
│ - docs/features/F001-[current work]/ │
│ │
│ [Y/n] │
└────────────────────────────────────────┘
Considerations
1. INDEX.md is a “Cache”
- Individual files are source of truth
- INDEX.md can be regenerated if corrupted
- Auto-update is essential
2. Prevent Feature Bloat - Search Related Features
Problem: Creating new Feature for every small bug fix?
F032: Implement /blog command
F033: Fix /blog web search bug
F034: Fix /blog encoding error
F035: Improve /blog tone
→ Too many Features!
Solution: Auto-search related Features when running /finish
User: "Fixed /blog web search error. /finish"
AI:
1. Extract keywords from conversation context: "blog", "web search"
2. Search INDEX.md → Find F032
3. Offer user choice:
┌─────────────────────────────────────────┐
│ Looks related to F032. │
│ │
│ A) Continue F032 │
│ - status: DONE → IN_PROGRESS │
│ - Add "🐛 Additional Changes (2nd)" │
│ │
│ B) Create new Feature (F033) │
│ │
│ Choice: [A/B] │
└─────────────────────────────────────────┘
If A selected: Resume Feature
---
id: F032
status: IN_PROGRESS # DONE → IN_PROGRESS
resumed: 2025-10-31 12:00 KST
completed: 2025-10-31 10:30 KST # Keep first completion time
---
## 🐛 Additional Changes (2nd - 2025-10-31)
### Background
Found web search encoding bug while working on F032...
### Changes
- Specify UTF-8 encoding
- Improve search result parsing logic
### Related Commits
- `abc1234` - fix: web search encoding error
→ Related work consolidated in one place!
Conclusion
The Features tracking system:
- Context Preservation - AI doesn’t lose work context
- Token Savings - 50x efficiency with INDEX.md
- Blog Automation - Auto-generate draft + image recommendations
- Git History Preservation - State management with Frontmatter
- Global Standardization - Applied to all projects
Ultimately managed 29 features systematically and lowered blog writing barrier.
If you use AI coding tools, build a workflow AI can follow first.
Next in series: /blog Command - How I Reduced Blog Writing Time by 83%
Comments