Transform fragmented work records into structured daily/weekly/monthly reports with AI-powered analysis and quantification.
---
name: work-journal
display_name: AI Work Journal
description: Transform fragmented work records into structured daily/weekly/monthly reports with AI-powered analysis and quantification.
author: harry
version: 1.0.0
license: MIT
type: skill
tags:
- work-report
- daily-report
- productivity
- documentation
model: deepseek
created_at: 2026-06-14
---
# AI Work Journal (work-journal)
Turn scattered work notes into polished, quantified reports. The skill follows a **"fragments → insights → reports"** pipeline: parse raw text, classify work types, quantify achievements, and render into beautiful Markdown reports.
## Quick Start
```bash
clawhub run work-journal --entries "Fixed 3 payment bugs, attended 2 meetings, wrote API docs"
```
This produces a formatted daily report with quantified results, tomorrow's plan, and auto-saves to `~/.openclaw/data/work-journal/`.
## Features
| Feature | Description |
|---------|------------|
| **Multi-mode Input** | Free text, keyword lists, interactive Q&A, date range queries |
| **Smart Classification** | Auto-detect work type: dev/meeting/docs/design/ops/management/learning |
| **Quantification Engine** | Transform fuzzy descriptions into measurable outcomes |
| **6 Templates** | Daily Brief, Daily Full, Weekly, Monthly, OKR Report, Team Summary |
| **AI Polish** | Professional language refinement with raw vs polished comparison |
| **Local History** | Auto-save to Markdown files, searchable by date/project/tag |
| **Trend Analysis** | Week-over-week workload comparison |
## Input Format
```json
{
"entries": [
{
"content": "Fixed payment module pagination bug in the morning...",
"timestamp": "2026-06-14T09:30:00+08:00",
"category": "开发",
"project": "Payment Module",
"tags": ["bug-fix", "backend"]
}
],
"options": {
"template": "daily_brief",
"output_format": "markdown",
"language": "zh-CN",
"polish_level": "professional",
"quantify": true,
"include_tomorrow_plan": true,
"recipient_context": "self"
}
}
```
## Sample Prompts
### Prompt 1: Quick Daily Report
```bash
clawhub run work-journal --entries "Morning: fixed payment module pagination query bug. Noon: had requirements review meeting with PM. Afternoon: wrote API docs"
```
**Expected output**: Formatted daily report with:
- 📌 Summary: 3 items completed
- 🔧 Dev: Fixed payment pagination bug (query performance from 3s to 200ms)
- 💬 Meeting: Requirements review, 3 feature priorities confirmed
- 📝 Docs: API docs covering 12 interfaces (~2000 words)
- 📅 Tomorrow Plan: [pending]
### Prompt 2: Weekly Report Generation
```bash
clawhub run work-journal --template weekly --date-range 2026-06-08..2026-06-14
```
**Expected output**: Auto-reads all daily records for the week, produces:
- Weekly overview (tasks completed, time distribution)
- Per-project achievement summary
- Key metrics and milestones
- Next week plan and risk alerts
### Prompt 3: Interactive Daily Journal
```bash
clawhub run work-journal --interactive
```
**Expected output**: Starts guided Q&A mode asking "What dev tasks?", "Any meetings?", "Blockers?", "Tomorrow's plan?" → Full daily report
### Prompt 4: Team Summary
```bash
clawhub run work-journal --template team --entries @team-entries.json
```
**Expected output**: Team-level summary with overall output, member contributions, collaboration highlights, blockers
## First-Success Path
**Goal**: First valuable report within 30 seconds.
```
Step 1: clawhub install work-journal
Step 2: clawhub run work-journal --entries "Fixed 3 bugs, attended 2 meetings"
Step 3: Internal pipeline:
a. parser.py tokenizes and extracts activities
b. classifier.py identifies "bug fix" → dev, "meeting" → meeting
c. quantifier.py quantifies: "3 bugs" → "Fixed 3 production defects"
d. daily-brief template selected
e. formatter.py renders to Markdown
f. storage.py saves to local directory
Step 4: User sees formatted report displayed and saved
Step 5: Value achieved: structured report from 10 chars of input
```
**Key Metrics**: Input→output < 3s, minimum 10 chars, success rate > 95%.
## Architecture
```
work-journal/
├── SKILL.md
├── scripts/
│ ├── parser.py # Input parsing & intent recognition
│ ├── classifier.py # Work type classifier
│ ├── quantifier.py # Achievement quantification engine
│ ├── templates/ # Report templates (Markdown)
│ │ ├── daily_brief.md
│ │ ├── daily_full.md
│ │ ├── weekly.md
│ │ ├── monthly.md
│ │ ├── okr.md
│ │ └── team.md
│ ├── formatter.py # Output formatting
│ ├── storage.py # Local storage & retrieval
│ └── llm.py # LLM call wrapper with fallback
└── references/
└── examples.json # Sample input/output
```
## Error Handling
| Code | Scenario | Action |
|------|----------|--------|
| E001 | Empty input | Show guidance + examples |
| E002 | Invalid template | List available templates |
| E003 | Bad date format | Show correct format |
| E004 | LLM timeout | Fall back to simple template |
| E005 | LLM format error | Retry once, then return raw text |
| E006 | File write failure | Output to stdout + error |
| E007 | History read failure | Skip history, generate from input |
| E008 | Unparsable content | Skip bad chars, mark warning |
## Security
- **Input sanitization**: Scans for passwords/tokens/API keys → warns but doesn't filter
- **Local storage only**: Data stored at `~/.openclaw/data/work-journal/`, zero network upload
- **LLM privacy**: Sends only work content and template options, no metadata
- **Permission isolation**: Reads/writes only own data directory
don't have the plugin yet? install it then click "run inline in claude" again.