Some checks failed
PR Checklist / pr-checklist (pull_request) Failing after 1m18s
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
162 lines
3.6 KiB
Markdown
162 lines
3.6 KiB
Markdown
# Wizard Environment Contract
|
|
|
|
> **Version:** 1.0.0
|
|
> **Owner:** Wizard Council (Bezalel Epic-004)
|
|
> **Last updated:** 2026-04-06
|
|
|
|
This document defines the minimum viable state every forge wizard must maintain.
|
|
A wizard that satisfies all requirements is considered **forge-ready**.
|
|
|
|
---
|
|
|
|
## 1. Python Runtime
|
|
|
|
| Requirement | Minimum | Notes |
|
|
|-------------|---------|-------|
|
|
| Python version | 3.11 | 3.12+ recommended |
|
|
| Virtual environment | Activated | `source venv/bin/activate` before running |
|
|
|
|
Run `python --version` to verify.
|
|
|
|
---
|
|
|
|
## 2. Core Package Dependencies
|
|
|
|
All packages in `requirements.txt` must be installed and importable.
|
|
Critical packages: `openai`, `pyyaml`, `rich`, `requests`, `pydantic`, `prompt_toolkit`.
|
|
|
|
**Verify:**
|
|
```bash
|
|
python wizard-bootstrap/wizard_bootstrap.py
|
|
```
|
|
|
|
---
|
|
|
|
## 3. LLM Provider Key
|
|
|
|
At least one LLM provider API key must be set in `~/.hermes/.env`:
|
|
|
|
| Variable | Provider |
|
|
|----------|----------|
|
|
| `OPENROUTER_API_KEY` | OpenRouter (200+ models) |
|
|
| `KIMI_API_KEY` | Kimi K2.5 coding |
|
|
| `OPENAI_API_KEY` | OpenAI |
|
|
| `GLM_API_KEY` | z.ai/GLM |
|
|
| `KIMI_API_KEY` | Moonshot/Kimi |
|
|
| `MINIMAX_API_KEY` | MiniMax |
|
|
|
|
---
|
|
|
|
## 4. Gitea Authentication
|
|
|
|
| Requirement | Details |
|
|
|-------------|---------|
|
|
| Variable | `GITEA_TOKEN` or `FORGE_TOKEN` |
|
|
| Scope | Must have repo read/write access |
|
|
| Forge URL | `https://forge.alexanderwhitestone.com` (or `FORGE_URL` env var) |
|
|
|
|
The wizard must be able to create and merge PRs on the forge.
|
|
|
|
---
|
|
|
|
## 5. Telegram Connectivity (Gateway Wizards)
|
|
|
|
Wizards that operate via the messaging gateway must also satisfy:
|
|
|
|
| Requirement | Details |
|
|
|-------------|---------|
|
|
| Variable | `TELEGRAM_BOT_TOKEN` |
|
|
| Home channel | `TELEGRAM_HOME_CHANNEL` |
|
|
| API reachability | `api.telegram.org` must be reachable |
|
|
|
|
CLI-only wizards may skip Telegram checks.
|
|
|
|
---
|
|
|
|
## 6. HERMES_HOME
|
|
|
|
| Requirement | Details |
|
|
|-------------|---------|
|
|
| Default | `~/.hermes` |
|
|
| Override | `HERMES_HOME` env var |
|
|
| Permissions | Owner-writable (700 recommended) |
|
|
|
|
The directory must exist and be writable before any hermes command runs.
|
|
|
|
---
|
|
|
|
## 7. Skill Dependencies (Per-Skill)
|
|
|
|
Each skill may declare binary and environment-variable dependencies in its
|
|
`SKILL.md` frontmatter:
|
|
|
|
```yaml
|
|
---
|
|
name: my-skill
|
|
dependencies:
|
|
binaries: [ffmpeg, imagemagick]
|
|
env_vars: [MY_API_KEY]
|
|
---
|
|
```
|
|
|
|
A wizard must satisfy all dependencies for any skill it intends to run.
|
|
|
|
**Check all skill deps:**
|
|
```bash
|
|
python wizard-bootstrap/dependency_checker.py
|
|
```
|
|
|
|
---
|
|
|
|
## 8. Enforcement
|
|
|
|
### New Wizard Onboarding
|
|
|
|
Run the bootstrap script before going online:
|
|
|
|
```bash
|
|
python wizard-bootstrap/wizard_bootstrap.py
|
|
```
|
|
|
|
Resolve all failures before beginning work.
|
|
|
|
### Ongoing Compliance
|
|
|
|
A monthly audit runs automatically (see `wizard-bootstrap/monthly_audit.py`).
|
|
The report is saved to `~/.hermes/wizard-council/audit-YYYY-MM.md` and posted
|
|
to the `wizard-council-automation` Telegram channel.
|
|
|
|
### Skill Drift
|
|
|
|
Run the skills audit to detect and fix drift:
|
|
|
|
```bash
|
|
python wizard-bootstrap/skills_audit.py # detect
|
|
python wizard-bootstrap/skills_audit.py --fix # sync
|
|
```
|
|
|
|
---
|
|
|
|
## 9. Contract Versioning
|
|
|
|
Changes to this contract require a PR reviewed by at least one wizard council
|
|
member. Bump the version number and update the date above with each change.
|
|
|
|
---
|
|
|
|
## Quick Reference
|
|
|
|
```bash
|
|
# Full environment validation
|
|
python wizard-bootstrap/wizard_bootstrap.py
|
|
|
|
# Skills drift check
|
|
python wizard-bootstrap/skills_audit.py
|
|
|
|
# Dependency check
|
|
python wizard-bootstrap/dependency_checker.py
|
|
|
|
# Full monthly audit (all three checks, saves report)
|
|
python wizard-bootstrap/monthly_audit.py
|
|
```
|