Golden state: Kimi K2.5 primary → Gemini via OpenRouter → local Ollama.
Anthropic is gone from every active config, fallback chain, and loop script.
Wizard configs (3):
- allegro, bezalel, ezra: removed anthropic from fallback_providers,
replaced with gemini + ollama. Removed anthropic provider section.
Playbooks (7):
- All playbooks now use kimi-k2.5 as preferred, google/gemini-2.5-pro
as fallback. No claude model references remain.
Fleet scripts (8):
- claude-loop.sh: deprecated (exit 0, original preserved as reference)
- claudemax-watchdog.sh: deprecated (exit 0)
- agent-loop.sh: removed claude dispatch case
- start-loops.sh: removed claude-locks, claude-loop from proc list
- timmy-orchestrator.sh: removed claude worker monitoring
- fleet-status.sh: zeroed claude loop counter
- model-health-check.sh: replaced check_anthropic_model with check_kimi_model
- ops-gitea.sh, ops-helpers.sh, ops-panel.sh: removed claude from agent lists
Infrastructure (5):
- wizard_bootstrap.py: removed anthropic pip package and API key checks
- WIZARD_ENVIRONMENT_CONTRACT.md: replaced ANTHROPIC keys with KIMI
- DEPLOY.md: replaced ANTHROPIC_API_KEY with KIMI_API_KEY
- fallback-portfolios.yaml: replaced anthropic provider with kimi-coding
- fleet-vocabulary.md: updated Ezra and Claude entries to Kimi K2.5
Docs (2):
- sonnet-workforce.md: deprecated with notice
- GoldenRockachopa-checkin.md: updated model references
Preserved (not touched):
- training/ data (changing would corrupt training set)
- evaluations/ (historical benchmarks)
- RELEASE_*.md (changelogs)
- metrics_helpers.py (historical cost calculation)
- hermes-sovereign/githooks/pre-commit.py (secret detection - still useful)
- security/secret-scan.yml (key detection - still useful)
- architecture_linter.py (warns about anthropic usage - desired behavior)
- test_sovereignty_enforcement.py (tests anthropic is blocked - correct)
- son-of-timmy.md philosophical references (Claude as one of many backends)
Refs: Sovereignty directive, zero-cloud vision
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
- 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
Changes:
1. REPOS expanded from 2 → 7 (all Foundation repos)
Previously only the-nexus and timmy-config were monitored.
timmy-home (37 open issues), the-door, turboquant, hermes-agent,
and .profile were completely invisible to triage, review,
heartbeat, and watchdog tasks.
2. Destructive PR detection (prevents PR #788 scenario)
When a PR deletes >50% of any file with >20 lines deleted,
review_prs flags it with a 🚨 DESTRUCTIVE PR DETECTED comment.
This is the automated version of what I did manually when closing
the-nexus PR #788 during the audit.
3. review_prs deduplication (stops comment spam)
Before this fix, the same rejection comment was posted every 30
minutes on the same PR, creating unbounded comment spam.
Now checks list_comments first and skips already-reviewed PRs.
4. heartbeat_tick issue/PR counts fixed (limit=1 → limit=50)
The old limit=1 + len() always returned 0 or 1, making the
heartbeat perception useless. Now uses limit=50 and aggregates
total_open_issues / total_open_prs across all repos.
5. Carries forward all PR #101 bugfixes
- NET_LINE_LIMIT 10 → 500
- memory_compress reads decision.get('actions')
- good_morning_report reads yesterday's ticks
Tests: 11 new tests in tests/test_orchestration_hardening.py.
Full suite: 23/23 pass.
Signed-off-by: gemini <gemini@hermes.local>
Gathers overnight heartbeat data, model health, DPO pipeline status,
Gitea pulse, smoke test results. Includes a personal note and one wish.
Filed as a Gitea issue assigned to Rockachopa.
The hermes-agent tools/__init__.py pulls in firecrawl which isn't installed.
Direct import from sovereign-orchestration's zero-dependency client works.
TODO: gitea_client should be pip-installable or vendored, not a cross-repo path reach.