📘 Handbook Update Contract¶
This document defines how the Embedded Linux Learning Handbook should be updated after each learning session.
The goal is to keep the repository maintainable, topic-oriented, and scalable without requiring large-scale refactoring in the future.
🎯 Philosophy¶
The handbook follows several principles:
- Handbook-first organization
- Topic-oriented knowledge structure
- Minimal required updates
- Incremental growth
- Long-term maintainability
Learning history remains preserved through logs and labs, while reusable knowledge is extracted into topics and references.
🧩 Repository Architecture¶
learning-log/¶
Purpose:
Daily learning record.
Contents:
- Learning summary
- Daily achievements
- Reflections
- Future plans
Examples:
labs/¶
Purpose:
Hands-on implementation and experiments.
Contents:
- Code walkthrough
- Test steps
- Validation result
- Scripts
Examples:
notes/¶
Purpose:
Extract reusable concepts from labs.
Contents:
- Concept explanation
- Architecture discussion
- Design decisions
Notes should NOT duplicate lab content.
topics/¶
Purpose:
Long-term handbook knowledge.
Contents:
- Architecture overview
- Learning map
- Related labs
- Related notes
- Related APIs
Topics represent stable knowledge.
api-reference/¶
Purpose:
Quick Linux API lookup.
Contents:
- Prototype
- Parameters
- Return value
- Minimal example
- Pitfalls
- Related labs
Only create API reference if the API provides reusable value.
meta/¶
Purpose:
Repository maintenance.
Contents:
- Refactor history
- Deployment guide
- Troubleshooting
- Repository rules
🔄 Daily Update Workflow¶
After finishing each learning session:
Learn
↓
Create log
↓
Create lab
↓
Evaluate reusable knowledge
↓
Update handbook if necessary
↓
Build and deploy
✅ Required Updates¶
Always perform:
- Update learning-log
- Create or update lab
🔍 Optional Updates¶
Only update when necessary:
- Create or update notes
- Create or update topics
- Update API reference
- Update troubleshooting
- Update roadmap
- Update homepage
🧠 Decision Rules¶
New architecture appears¶
Examples:
- Event loop
- Driver model
- USB stack
Action:
New Linux API appears¶
Examples:
- io_uring
- mmap
- epoll
Action:
New debugging experience appears¶
Conditions:
- Debugging took significant effort
- Root cause is reusable
Action:
New learning direction appears¶
Examples:
- Begin USB
- Begin Yocto
- Begin tracing
Action:
Homepage changes only when:¶
- Major topic added
- Handbook structure changes
Otherwise:
📦 Expected Output¶
When requesting handbook updates, output should include:
Patch Summary¶
Brief explanation of changes.
Files Changed¶
Example:
Modified:
- learning-log/day59.md
- labs/day59-io-uring.md
Added:
- topics/io-uring.md
- api-reference/io-uring/
Commit Suggestion¶
Example:
Deployment Impact¶
State whether:
- rebuild required
- navigation changed
- Cloudflare deployment affected
🚀 Standard Workflow¶
Development:
Validation:
Commit:
Release:
📌 Daily Command¶
After learning finishes:
Update the handbook according to Handbook Update Contract.
This instruction means:
- generate log
- generate lab
- evaluate notes
- evaluate topics
- evaluate API references
- evaluate troubleshooting
- suggest commit
- suggest deployment impact
without requiring additional explanation.