# Chipoto69 Claude Skills Devlog Harvester

> DevLog Harvester

- Skill: `tomevault-io/chipoto69-claude-skills-devlog-harvester` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/chipoto69-claude-skills-devlog-harvester`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/chipoto69-claude-skills-devlog-harvester/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/chipoto69-claude-skills-devlog-harvester

---


# DevLog Harvester

Captures development session data through smart, non-intrusive triggers.

## Trigger Mechanisms

### 1. Git Commit Hook (Primary)
Every commit triggers a mini-harvest capturing:
- Files changed in commit
- Commit message (intent)
- Session context at commit time

### 2. Time-Based Rollups (3x Daily)
Scheduled at: 9:00, 14:00, 21:00
- Aggregates accumulated data
- Writes to Obsidian via knowledge-forge

### 3. Project Switch Detection
When changing project directories:
- Flush current project's accumulated data
- Initialize harvester for new project

### 4. Idle Flush (30 min)
After 30 minutes of no tool calls:
- Flush accumulated session data
- Prevents data loss

## Data Captured

### Per-Session Data
```yaml
session:
  project: ATLAS-main
  started: 2026-01-19T09:15:00
  ended: 2026-01-19T12:30:00
  duration_minutes: 195
  
files_touched:
  - path: src/api/client.py
    operations: [read, edit, read]
    lines_changed: +45/-12
    
  - path: tests/test_api.py
    operations: [create, edit]
    lines_changed: +120/-0

git_activity:
  commits: 3
  messages:
    - "feat(api): add chat endpoint"
    - "test: add API client tests"
    - "fix: handle timeout errors"
  total_insertions: 165
  total_deletions: 12

tools_used:
  Edit: 12
  Read: 45
  Bash: 23
  Grep: 8

errors_encountered:
  - type: "ImportError"
    file: "src/api/client.py"
    resolution: "Added missing httpx dependency"

decisions_made:
  - "Used httpx instead of requests for async support"
  - "Added retry logic with exponential backoff"
```

## Usage

### Manual Harvest
```bash
# Harvest current session
/harvest

# Harvest specific project
/harvest --project ATLAS-main

# Harvest and immediately write to Obsidian
/harvest --write
```

### Automatic (via hooks)
The harvester runs automatically when:
- You make a git commit
- You switch projects (cd to different repo)
- 3x daily at scheduled times
- After 30 minutes of inactivity

## Integration Points

### Input Sources
- Git history (`git log`, `git diff`)
- Session transcripts (`~/.claude/transcripts/`)
- Tool usage (from session context)
- AGI-memory recalls

### Output Destinations
- → `knowledge-forge` (for synthesis)
- → `obsidian-bridge` (for storage)
- → Local cache (`~/.cache/devlog/`)

## Data Flow

```
┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│   Triggers  │────▶│  Harvester  │────▶│    Cache    │
│  (various)  │     │   Engine    │     │  (staging)  │
└─────────────┘     └─────────────┘     └──────┬──────┘
                                               │
                         On rollup/flush       │
                                               ▼
                                        ┌─────────────┐
                                        │  knowledge  │
                                        │    forge    │
                                        └─────────────┘
```

## Configuration

Set in `~/.config/devlog/config.yaml`:
```yaml
harvester:
  # Rollup times (24h format)
  rollup_times: ["09:00", "14:00", "21:00"]
  
  # Idle threshold before flush (minutes)
  idle_threshold: 30
  
  # Cache directory
  cache_dir: ~/.cache/devlog
  
  # Projects to track (empty = all)
  tracked_projects: []
  
  # Projects to ignore
  ignored_projects:
    - node_modules
    - .git
```

## Files

- `scripts/harvest.py` - Main harvester engine
- `scripts/git-post-commit-hook.sh` - Git hook installer
- `scripts/scheduler.py` - Time-based trigger daemon

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/chipoto69) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-13 -->

