Implement 現地現物 (Genchi Genbutsu) post-completion verification:
- Add bin/genchi-genbutsu.sh performing 5 world-state checks:
1. Branch exists on remote
2. PR exists
3. PR has real file changes (> 0)
4. PR is mergeable
5. Issue has a completion comment from the agent
- Wire verification into all agent loops:
- bin/claude-loop.sh: call genchi-genbutsu before merge/close
- bin/gemini-loop.sh: delegate existing inline checks to genchi-genbutsu
- bin/agent-loop.sh: resurrect generic agent loop with genchi-genbutsu wired in
- Update metrics JSONL to include 'verified' field for all loops
- Update burn monitor (tasks.py velocity_tracking):
- Report verified_completion count alongside raw completions
- Dashboard shows verified trend history
- Update morning report (tasks.py good_morning_report):
- Count only verified completions from the last 24h
- Surface verification failures in the report body
Fixes#348
Refs #345
Daemon that monitors key services and restarts them automatically:
- Local: hermes-gateway, ollama, codeclaw-heartbeat
- Ezra: gitea, nginx, hermes-agent
- Allegro hermes-agent
- Bezalel: hermes-agent, evennia
- Max 3 restart attempts per service per cycle (prevents loops)
- 1-hour cooldown after max retries with Telegram escalation
- Restart log at ~/.local/timmy/fleet-health/restarts.log
- Modes: check now (--status for history, --daemon for continuous)
Fixes timmy-home#560
- Add Kaizen Retro to cron/jobs.json with explicit local model/provider
- Add Telegram message chunking for reports approaching the 4096-char limit
- Fix classify_issue_type false positives on short substrings (ci in cleanup)
- Add 28 unit tests covering classification, max-attempts detection,
suggestion generation, report formatting, and Telegram chunking
- Add bin/kaizen-retro.sh entry point and scripts/kaizen_retro.py
- Analyze closed issues, merged PRs, and stale/max-attempts issues
- Report success rates by agent, repo, and issue type
- Generate one concrete improvement suggestion per cycle
- Post retro to Telegram and comment on the latest morning report issue
- Wire into Huey as kaizen_retro() task at 07:15 daily
- Extend gitea_client.py with since param for list_issues and
created_at/updated_at fields on PullRequest
Implements muda-audit.sh to measure the 7 wastes across the fleet:
1. Overproduction — agent issues created vs closed
2. Waiting — rate-limited API attempts from loop logs
3. Transport — issues closed-and-redirected
4. Overprocessing — PR diff size outliers (>500 lines for non-epics)
5. Inventory — issues open >30 days with no activity
6. Motion — git clone/rebase operations per issue from logs
7. Defects — PRs closed without merge vs merged
- fleet/muda_audit.py: core audit logic using gitea_client.py
- fleet/muda-audit.sh: thin bash wrapper
- cron/jobs.json: add Hermes cron job for weekly Sunday 21:00 runs
- cron/muda-audit.crontab: raw crontab snippet for host-level scheduling
Posts waste report to Telegram with week-over-week trends and top 3
elimination suggestions.
Part of Epic: #345Closes: #350
Implements muda-audit.sh measuring all 7 wastes across the fleet:
- Overproduction: issues created vs closed ratio
- Waiting: rate-limit hits from agent logs
- Transport: issues closed-and-redirected
- Overprocessing: PR diff size outliers >500 lines
- Inventory: stale issues open >30 days
- Motion: git clone/rebase churn from logs
- Defects: PRs closed without merge vs merged
Features:
- Persists week-over-week metrics to ~/.local/timmy/muda-audit/metrics.json
- Posts trended waste report to Telegram with top 3 eliminations
- Scheduled weekly (Sunday 21:00 UTC) via Gitea Actions
- Adds created_at/closed_at to PullRequest dataclass and page param to list_org_repos
Closes#350
5-minute health monitoring for all 4 machines + Gitea:
- SSH connectivity check (socket-based, instant)
- Service check via SSH (nginx, gitea, hermes-agent, evennia)
- Disk usage check on all machines
- Local process check (hermes, ollama, openclaw, evennia)
- Telegram alert with 1-hour cooldown per alert
- Running uptime stats saved to ~/.local/timmy/fleet-health/uptime.json
- Per-day log files
Fixes timmy-home#555, FLEET-006
Complete inventory of all 4 machines, processes, services, credentials,
cron jobs, launchd services, and resource baselines.
Maps: Ezra (Forge), Allegro, Bezalel, Mac Local (hub).
Identifies unknowns and dependencies.
Generated from direct machine inspection.
Fixes timmy-home#554
- Attempts health check and host-level restart via Docker nsenter
- Triggered manually or on push to this workflow file
- Part of all-hands effort to restore Ezra (#lazzyPit)
- Establishes Ezra's config in timmy-config
- Fixes kimi-for-coding 403 issue by switching to kimi-k2.5
- Adds full fallback chain: kimi -> anthropic -> openrouter
- Part of #lazzyPit automated resurrection epic
- Adds fallback_providers with kimi-coding:kimi-k2.5 as fallback1
- Followed by anthropic and openrouter fallbacks
- Aligns with #lazzyPit epic for automated resilience