v3.0 Vision — SDD-Native Agentic Platform¶
Статус: T3.2 Synthesis | Дата: 2026-08-08 | Автор: Planner База: аудит 843 строки × исследование 993 строки × конкурентная матрица × gap-matrix 67 находок Целевой baseline: v3.0.0 release (W1-W5)
1. Vision Statement¶
opencode_initializer v3.0 — SDD-native agentic platform: одна команда bash setup.sh разворачивает dev-машину + project harness с полным spec-driven циклом (constitution → specify → plan → tasks → implement → converge) для двух аудиторий: энтузиастов (instant productivity) и корпоративных пользователей (air-gapped, auditable, governed).
Specifications don't serve code — code serves specifications. Каждый change начинается со spec://, заканчивается archive. Без исключений.
Ключевые отличия v3.0 от v2.0.3: - v2.0.3: dev machine bootstrap + agent harness. v3.0: SDD-native platform с executable specifications - v2.0.3: 43 модуля, линейный source. v3.0: fault-tolerant core + governance layer - v2.0.3: empty SDD skill stubs. v3.0: полный spec→code→converge цикл в каждом новом проекте - v2.0.3: personal use. v3.0: personal + corporate (governed, air-gapped, auditable)
Паритет+превосходство над codex/claude-code/kimi: - SDD-цикл, которого нет у конкурентов (Claude Code: plan mode без traceability; Codex: нет SDD; Kimi: нет SDD) - Infrastructure as Code (PostgreSQL+Qdrant+Redis+Prometheus+Grafana) — ни у кого нет - 22 провайдера + isolated circuit — уникально - Lifecycle hooks + Agent SDK — догоняем Claude Code, опережаем Codex/Kimi
2. Стратегические принципы¶
Выведены из синтеза исследований (spec-kit, OpenSpec, Red Book, AI-Native Infra, Competitive Matrix).
| # | Принцип | Источник | Что означает в коде |
|---|---|---|---|
| 1 | Specification as executable artifact | spec-kit + Red Book §3 | Код генерируется из spec, spec — единственный источник истины. FR-###/SC-### трассируются до кода |
| 2 | Brownfield-first delta changes | OpenSpec core | Не требуем полного описания системы upfront. ADDED/MODIFIED/REMOVED дельты в changes/ → specs/ |
| 3 | Progressive rigor | OpenSpec pattern | Lite spec для небольших изменений (behaviour-first + сценарии). Full spec — для кросс-командных, security, migration |
| 4 | Explore-first | OpenSpec /opsx:explore | Перед написанием артефактов AI читает код и задаёт вопросы. Ноль предположений |
| 5 | Human-in-the-loop review gate | OpenSpec propose→review + Red Book §1 | Человек — владелец когерентности. Review перед implement — обязателен |
| 6 | Decisions, not facts | Red Book §3 | WAL хранит: что решили + почему + альтернативы + условие пересмотра. Факты — в коде |
| 7 | Файлы как IPC | Red Book §2 | spec:// URI + work-log + sync-issues — протокол взаимодействия человек↔AI, не документация |
| 8 | 4-level memory hierarchy | Red Book §3 | Голова (интуиция) → WAL (checkpoint, ≤1 стр.) → Specs (spec://, недели-месяцы) → Code (артефакт) |
| 9 | Governance loop | AI-Native Infra §2 | Quotas → budgets → metering → enforcement → feedback. Без governance cost "убегает" |
| 10 | Uncertainty-by-default | AI-Native Infra §1 | Агент стохастичен. WAL + audit trail + hooks — первая линия защиты от runaway behaviour |
3. Target Architecture v3.0¶
Слои (с маппингом на текущие модули)¶
┌──────────────────────────────────────────────────────────────────┐
│ L7: User Interface — Cockpit TUI (31-cockpit.sh) + Web GUI (:4200)│
├──────────────────────────────────────────────────────────────────┤
│ L6: Agent Harness — AGENTS.md, .opencode/skills/, WAL, commands │
│ (17-project.sh + 37-wal.sh — пересборка под SDD) │
├──────────────────────────────────────────────────────────────────┤
│ L5: SDD Layer ★NEW★ — constitution, specs/, changes/, templates │
│ skills: /specify, /plan, /tasks, /implement, /analyze, /converge│
│ (НОВЫЙ модуль: 41-sdd.sh) │
├──────────────────────────────────────────────────────────────────┤
│ L4: Hooks Layer ★NEW★ — lifecycle hooks (pre/post tool call) │
│ policy enforcement, PII filtering, audit logging │
│ (НОВЫЙ модуль: 42-hooks.sh) │
├──────────────────────────────────────────────────────────────────┤
│ L3: Provider & Model Layer — 22 providers + model router │
│ (26-providers.sh + 36-model-router.sh — SSOT fix + gateway) │
├──────────────────────────────────────────────────────────────────┤
│ L2: Infrastructure & Services — PG, Qdrant, Redis, Prom, Grafana │
│ (30-infra.sh + 33-services.sh + 34-observability.sh — secure) │
├──────────────────────────────────────────────────────────────────┤
│ L1: Core — error handling, WAL, progress, dry-run, helpers │
│ (00-core.sh + helpers.sh — per-step recovery, atomic ops) │
└──────────────────────────────────────────────────────────────────┘
3.1 Core Layer (W1 Foundations)¶
Что меняется: - Error handling (F1): _run_step оборачивает source "$module" в subshell — падение модуля не роняет весь setup.sh - Atomic WAL (F4): запись через временный файл + mv — защита от corruption при параллельной установке - Safe cleanups (F2.4): ~/.cache/opencode защищён от очистки — модули используют mktemp -d, cleanup чистит только свою временную директорию - Dry-run guards (F4.1): DRY_RUN=true → все деструктивные операции (rm, mv, sed -i, docker stop) блокируются или логируются - Thread-safe WAL (F2.3): flock на WAL-файл при параллельной установке — нет гонок - TOTAL_STEPS fix (F4.2): TOTAL_STEPS вычисляется динамически (подсчёт _run_step в setup.sh), а не hardcoded - setup.conf single-source (F8): один source "$SETUP_CONF" в начале, кеширование в ассоциативный массив - _sudo fix (F9): убран 2>/dev/null, stderr сохраняется для логирования - Progress rotation (F12): _reset_progress при --reinit, ротация при >1000 строк
3.2 Provider Layer (W1 Foundations)¶
Что меняется: - SSOT-реестр (C1): единый PROVIDER_REGISTRY в 26-providers.sh. 18-opencode-json.sh и AGENTS.md генерируются из него, а не дублируют - Minimax чистка (C2): удаление 2 из 3 копий minimax в реестре — оставить одну - Cost-table (C3): обновление из models.dev, добавить minimax, verifицировать все цены - Policy engine (H1): OPENCODE_ALLOWED_PROVIDERS, OPENCODE_ALLOWED_MODELS, OPENCODE_MAX_COST_PER_SESSION → policy.json → enforcement в hooks - Model-call audit (H4): каждый вызов LLM логируется: провайдер, модель, токены in/out, latency, cost → audit.jsonl - ai-router/model-router унификация (H2): один источник конфигурации маршрутизации, не два - Fallback валидация (H3): CI-тест: симулируем отказ провайдера → проверяем что fallback сработал за <500ms - embed-proxy multi-backend (H5): поддержка Ollama + vLLM + SGLang через EMBED_BACKEND env var
3.3 SDD Layer (W2 — ядро v3.0)¶
НОВЫЙ модуль 41-sdd.sh — генерирует SDD-инфраструктуру при setup.sh --new.
Структура проекта после v3.0:
my-project/
├── constitution.md ← декларация принципов (MUST/SHOULD)
├── specs/ ← истина: как система работает СЕЙЧАС
│ └── [capability]/
│ └── spec.md ← FR-### / SC-### / NFR / Given-When-Then
├── changes/ ← дельта-предложения: что меняется
│ └── [change-name]/
│ ├── proposal.md ← intent, scope, approach
│ ├── design.md ← технический подход
│ ├── tasks.md ← декомпозиция с [US], [P]-маркерами
│ └── specs/ ← дельта-спеки (ADDED/MODIFIED/REMOVED)
├── .opencode/
│ ├── commands/ ← slash-команды
│ │ ├── specify.md ← /specify — создать spec из NL-описания
│ │ ├── plan.md ← /plan — технический план из spec
│ │ ├── tasks.md ← /tasks — декомпозиция на фазы
│ │ ├── implement.md ← /implement — реализация по задачам
│ │ ├── analyze.md ← /analyze — coverage/consistency check
│ │ └── converge.md ← /converge — sync code↔spec
│ ├── templates/ ← шаблоны артефактов
│ │ ├── spec-template.md
│ │ ├── plan-template.md
│ │ ├── tasks-template.md
│ │ ├── proposal-template.md
│ │ └── design-template.md
│ ├── skills/ ← agent instructions (не пустые!)
│ │ ├── specify/SKILL.md
│ │ ├── plan/SKILL.md
│ │ ├── tasks/SKILL.md
│ │ ├── implement/SKILL.md
│ │ ├── analyze/SKILL.md
│ │ └── converge/SKILL.md
│ └── constitution.md → ../../constitution.md (symlink)
├── wal/
│ ├── state.yaml ← checkpoint (overwrite, ≤1 page)
│ └── audit.jsonl ← append-only audit trail
└── AGENTS.md ← system prompt (обновлён: SDD workflow)
Ключевые артефакты:
| Артефакт | Откуда взято | Формат |
|---|---|---|
| constitution.md | spec-kit gap#1 | MUST/SHOULD правила, governance, принципы проекта. Инжектится во все промпты |
| spec.md | spec-kit template + Red Book spec:// | FR-###, SC-###, NFR, Given/When/Then, edge cases, assumptions |
| proposal.md | OpenSpec | Intent, scope, approach — одно предложение на каждый раздел |
| design.md | OpenSpec | Технический подход, библиотеки, архитектурные решения |
| tasks.md | spec-kit template | Фазы: Setup → Foundational → User Stories → Polish. [US1], [P]-маркеры |
| spec:// URI | Red Book §2.1 | spec://auth/spec.md#FR-003 — стабильные адреса требований |
| changes/ + specs/ | OpenSpec model | Дельта-модель: changes/archive/ → specs/ при archive |
SDD workflow (6-командный цикл):
/specify ──→ /plan ──→ /tasks ──→ /implement ──→ /converge
│ │ │ │ │
│ /analyze (опционально, перед implement) │
│ │
└─ [human review gate] ────────────────────────────┘
3.4 Memory Layer (W2 SDD Core)¶
WAL v2 — checkpoint + audit trail:
wal/
├── state.yaml ← checkpoint (overwrite, Red Book §3)
│ ## Текущая фаза
│ ## Ограничения (НЕ ТРОГАТЬ без обсуждения)
│ ## Что сделано
│ ## Следующее действие
│ ## Известные проблемы
│ ## Решения: [{decision, rationale, alternatives, revisit_condition}]
│
└── audit.jsonl ← append-only audit trail
{"ts":"ISO","domain":"...","decision":"...","rationale":"...",
"impact":["file1"],"confidence":0.85,"spec_ref":"spec://auth#FR-003"}
Что меняется: - WAL checkpoint перезаписывается (≤1 страница) — не растёт бесконечно - Структурированные решения: rationale + alternatives + revisit-condition (RB3) - spec:// привязка: каждое решение ссылается на spec (RB6) - audit.jsonl для долгосрочного трейла — tamper-evident hash-chain опционально
3.5 Hooks Layer (W4 — НОВЫЙ)¶
НОВЫЙ модуль 42-hooks.sh — lifecycle hooks по модели Claude Code/Kimi.
# hook.sh — sourced перед/после каждого tool call
# pre_tool_call() → reject/resolve; post_tool_call() → log/modify
HOOKS_DIR="$HOME/.config/opencode/hooks"
# Типы хуков:
# - pre_bash: before any bash execution
# - pre_edit: before file modification
# - pre_read: before file read (PII/secret detection)
# - post_bash: after bash — audit log + output sanitization
# - post_edit: after edit — auto-format, lint
# - post_model: after LLM call — token+latency+cost tracking
Точки enforcement: - Audit (H4, A2, CP4): post_bash + post_model → audit.jsonl - PII (A4): pre_read → reject если файл содержит секреты - Policy (H1, A5): pre_model → reject если модель не в allowlist - Budget (AI5): post_model → если лимит превышен → degraded mode - Compliance (A1): ISOLATED_CIRCUIT=true → pre_bash reject внешних сетевых вызовов
3.6 Corporate Profile (W3)¶
DEPLOYMENT_PROFILE=airgapped vs standard — универсальный gate:
# _is_isolated() — единый gate для ВСЕХ внешних вызовов
_is_isolated() {
[ "${ISOLATED_CIRCUIT:-false}" = "true" ] || \
[ "${DEPLOYMENT_PROFILE:-standard}" = "airgapped" ]
}
# Применение:
_is_isolated && { warn "network blocked in isolated mode"; return 0; }
curl ...
Что закрывает: - Telemetry (A1): _is_isolated && export OLLAMA_NOPRUNE=true - Version checks (A1): _is_isolated && return 0 в version-check.sh - Autoupdate (A1): _is_isolated && systemctl disable --now opencode-autoupdate.timer - MCP фильтрация (A1): внешние MCP (websearch, GitHub) исключаются из opencode.json при изоляции - Offline installer (A6): pre-cached Docker images + npm/pip packages → tarball
Corporate governance:
| Механизм | Env var | Применение |
|---|---|---|
| Provider gate | OPENCODE_ALLOWED_PROVIDERS=deepseek,zai,ollama | pre_model hook → reject |
| Model gate | OPENCODE_ALLOWED_MODELS=deepseek-v4-pro,glm-4-flash | pre_model hook → reject |
| Cost limit | OPENCODE_MAX_COST_PER_SESSION=5.00 | post_model → track → enforce |
| Data residency | OPENCODE_DATA_REGIONS=eu,ru | pre_model → provider location check |
| PII sanitization | patterns: email, phone, card, SSN | pre_read + post_bash → filter |
| Audit retention | OPENCODE_AUDIT_RETENTION_DAYS=365 | audit.jsonl rotation |
| WAL permissions | OPENCODE_WAL_MODE=600 | chmod на WAL-файлы |
3.7 Сохраняем уникальное¶
| Фича v2.0.3 | Статус в v3.0 |
|---|---|
| Infrastructure as Code (PG+Qdrant+Redis+Prom+Grafana) | ✓ сохраняется, усиливается безопасностью (F3.1-F3.6) |
| 22 провайдера + isolated circuit | ✓ сохраняется, усиливается SSOT (C1) + policy engine (H1) |
| RAG (ETL + proxy + Qdrant + Gemma) | ✓ сохраняется, усиливается multi-backend embedding (H5) |
| Cockpit TUI 7-tab | ✓ сохраняется, добавляется observability 2.0 (AI3) |
| 8 языков одной командой | ✓ сохраняется без изменений |
4. Две аудитории¶
4.1 Enthusiast Journey (3 команды до ценности)¶
# 1. Dev machine
bash setup.sh
# 2. New project with SDD
bash setup.sh --new my-feature
cd my-feature
# 3. First spec-driven change
# (AI агент в проекте, AGENTS.md + skills загружены)
/specify "Add dark mode toggle" → specs/dark-mode/spec.md
/plan → plan.md + design.md
/tasks → tasks.md
/implement → код + тесты
/converge → sync + archive
4.2 Corporate Journey (regulated environment)¶
# 1. Air-gap deployment
export DEPLOYMENT_PROFILE=airgapped
export ISOLATED_CIRCUIT=true
export OPENCODE_ALLOWED_PROVIDERS=ollama
bash setup.sh --offline
# 2. Policy setup
cat > ~/.config/opencode/policy.json <<EOF
{
"allowed_providers": ["ollama"],
"allowed_models": ["qwen3:14b", "deepseek-r1:32b"],
"max_cost_per_session": 0,
"data_regions": ["local"],
"audit_retention_days": 365,
"pii_patterns": ["email", "phone", "card", "ssn"],
"wal_mode": "600"
}
EOF
# 3. Compliance check
dev doctor # validate policy + providers + isolation
dev audit # view audit trail
dev sbom # software bill of materials
Compliance matrix (target vs audit T1.5):
| Требование | v2.0.3 | v3.0 |
|---|---|---|
| Air-gap completeness | 2/5 | 4/5 (telemetry off, updates off, offline installer, MCP filtered) |
| PII protection | 3/5 | 4/5 (email/phone/card/SSN patterns, pre-read hooks) |
| Audit trail (SOC2) | 1/5 | 4/5 (structured audit.jsonl, hash-chain, retention, chmod 600) |
| Security scanning | 2/5 | 4/5 (Trivy in CI, Qodana scheduled, SBOM on demand) |
| Access control | 2/5 | 4/5 (provider gate, model gate, cost limit, data residency) |
5. Competitive Positioning¶
Матрица «мы после v3.0» vs codex/claude-code/kimi:
| Измерение | v3.0 | Codex CLI | Claude Code | Kimi Code |
|---|---|---|---|---|
| SDD-цикл (specify→plan→tasks→implement→converge) | ✅ | ❌ | 🔶 plan mode | ❌ |
| Spec:// URI (traceability) | ✅ | ❌ | ❌ | ❌ |
| Delta-changes (brownfield) | ✅ | ❌ | ❌ | ❌ |
| Lifecycle hooks | ✅ (W4) | ❌ | ✅ | ✅ |
| Agent SDK / sub-agents | ✅ (W4) | ❌ | ✅ | 🔶 |
| Infrastructure as Code | ✅ | ❌ | ❌ | ❌ |
| 22 providers | ✅ | 🔶 | 🔶 | 🔶 |
| Isolated Circuit | ✅ | ❌ | 🔶 | ❌ |
| RAG система | ✅ | ❌ | 🔶 | ❌ |
| Cockpit TUI | ✅ | 🔶 | 🔶 | ✅ |
| Corporate profile | ✅ (W3) | ❌ | ❌ | ❌ |
| Audit trail | ✅ (W3) | ❌ | 🔶 | ❌ |
| 8 языков one-command | ✅ | ❌ | ❌ | ❌ |
| Open source, self-hosted | ✅ | 🔶 | 🔶 | 🔶 |
Где паритет: hooks, sub-agents (догоняем в W4), multi-provider (уже есть) Где превосходство: SDD-цикл (уникально), infra-as-code (уникально), corporate profile (уникально), 22 providers + isolated circuit (уникально)
6. Wave Plan¶
W1: Foundations & Fixes (10-14 дней, 29 находок)¶
Цель: устранить CRITICAL/HIGH баги ядра, сделать платформу надёжной перед добавлением SDD.
| Finding | Действие | Effort |
|---|---|---|
| F1 | _run_step → subshell (source "$module") + set +e fallback | M |
| F2 | flock на WAL/PROGRESS, изолированные subshell для фоновых модулей | M |
| F3 | Удалить первый exec > >(tee ...) на строке 41 setup.sh | XS |
| F4 | Atomic WAL: write to .tmp, mv .tmp wal.md | S |
| F5 | declare -A MODULE_LOADED + проверка в _run_step | S |
| F6 | Префикс STEP: в progress-файле, точное совпадение | XS |
| F7 | Cache mirror results в /tmp/opencode-mirrors.cache на 1 час | S |
| F8 | Единый source "$SETUP_CONF" в начале, cache | XS |
| F9 | Убрать 2>/dev/null из _sudo, stderr → variable | XS |
| F10 | _progress убивает активный _spin_start перед записью | XS |
| F11 | mktemp -d /tmp/opencode-setup-XXXXX вместо хардкода | S |
| F12 | _reset_progress при --reinit, ротация при >1000 строк | XS |
| C1 | Единый PROVIDER_REGISTRY, генерация производных | M |
| C2 | Удалить 2 из 3 копий minimax | XS |
| C3 | Обновить cost-table из models.dev, добавить minimax | S |
| H2 | ORCHESTRATOR="$HOME/.config/opencode/orchestrator.json" | XS |
| H3 | CI-тест failover: mock-отказ провайдера → проверка fallback <500ms | M |
| H5 | EMBED_BACKEND env var → ollama/vllm/sglang выбор | S |
| M1 | provider-check.sh → _curl() с fallback на raw curl | XS |
| F3.1 | Убрать network_mode: host + user: root, bind к 127.0.0.1 | S |
| F3.2 | Gate node_exporter за [ "$DEPLOYMENT_PROFILE" != "airgapped" ] | S |
| F3.3 | openssl rand -hex 16 для PG/Neo4j/MinIO/Grafana → secrets.env | M |
| F3.5 | OS-detect: Linux=ip addr, Mac=host.docker.internal | S |
| F3.6 | Qdrant API key → docker-compose environment + curl header | S |
| F3.7 | pip stderr → /tmp/rag-pip-err.log, warn с путём к логу | XS |
| F3.9 | Source $SETUP_CONF перед циклом, кешировать | XS |
Результат W1: платформа надёжна, все CRITICAL закрыты, core готов к SDD-надстройке.
W2: SDD Core (14-21 день, 28 находок)¶
Цель: полный spec-driven цикл в каждом новом проекте.
| Finding | Действие | Effort |
|---|---|---|
| S1, SK3 | specs/ + changes/ структура в 17-project.sh scaffold | L |
| S2, SK9 | .opencode/skills/{specify,plan,tasks,implement,analyze,converge}/SKILL.md — заполнить, не пустые stubs | L |
| S6, OS7 | .opencode/commands/{specify,plan,tasks,implement,analyze,converge}.md | S |
| SK1 | constitution.md шаблон с MUST/SHOULD правилами | M |
| SK2, RB1 | FR-###/SC-### формат в spec-template.md, spec:// URI схема | M |
| S3, RB1 | spec:// URI генерация: 17-project.sh → AGENTS.md reference | M |
| S4, RB3 | WAL structured decision template: | S |
| RB2 | WAL checkpoint mode (overwrite, ≤1 page) в 37-wal.sh | S |
| RB4 | 4-level memory hierarchy в AGENTS.md: Head→WAL→Specs→Code | M |
| S5, RB5 | Sync-from-Code протокол: git diff HEAD → AI→spec update proposal | M |
| RB6 | IPC conflict markers: "DO NOT TOUCH" в WAL + sync-issues | M |
| SK4 | Checklist gates: implement блокируется если checklist FAIL | M |
| SK5 | /analyze skill: cross-artifact coverage, severity output | M |
| SK6, OS1 | /converge skill: code↔spec sync, delta-changes (ADDED/MODIFIED/REMOVED) | M |
| OS1 | Delta-changes модель: changes/ → specs/ при archive | L |
| OS2 | Fluid workflow: /opsx:update аналог — обновление артефактов mid-flow | M |
| OS3 | Progressive rigor: lite spec (behaviour+scenarios) vs full spec (FR+NFR+contracts) | S |
| OS4 | Explore-first в AGENTS.md: перед любым изменением — /explore | S |
| OS5 | Human-in-the-loop review: propose → human confirms → apply → verify → archive | M |
| OS6 | Config injection: context + rules → все промпты через setup.conf | S |
| OS8 | Parallel changes: несколько changes/ параллельно, независимо | M |
| SK6 | /converge append задач при brownfield sync | M |
| SK7 | [US1], [P] маркеры в tasks-template.md | S |
| SK8 | data-model.md + contracts/ шаблоны в .opencode/templates/ | M |
| RB8 | Lost-in-the-Middle spec placement: критическое в начало/конец | XS |
| F3.4 | yq-based YAML patch или полная регенерация infra.yml | M |
| F3.8 | SearXNG в docker compose (не docker run) | M |
| F3.10 | Docker health checks для всех 10 сервисов | M |
Результат W2: новый проект получает полный SDD-цикл, spec:// traceability, delta-changes для brownfield.
W3: Enterprise & Governance (10-14 дней, 14 находок)¶
Цель: corporate readiness — governance, аудит, air-gap seals.
| Finding | Действие | Effort |
|---|---|---|
| H1, A5 | Policy engine: OPENCODE_ALLOWED_PROVIDERS|MODELS|MAX_COST|DATA_REGIONS → hooks enforcement | M |
| A1 | _is_isolated() gate: telemetry + version checks + autoupdate + MCP filtering | L |
| A6 | Offline installer: pre-cached Docker images + npm/pip tarball | L |
| A2 | Structured audit.jsonl: tool calls + model calls + hash-chain опция | L |
| CP4 | post_bash + post_model hooks → audit trail | M |
| A3 | Trivy/Qodana в CI (.github/workflows/) + scheduled scan | M |
| A4 | PII patterns: email, phone, credit card, SSN/passport → sanitizer + pre_read hook | S |
| RB7 | Agent vs Chat WAL: императив (структурированный) vs чат (свободный текст) | S |
| F3.11 | Sanitizer log rotation (RotatingFileHandler) | XS |
| AI1 | Governance Plane: quotas + budgets + metering в policy.json | L |
| AI5 | Budget-triggered degradation: cost > limit → switch to budget model | M |
| H4 | Model-call audit: каждый вызов LLM → audit.jsonl (провайдер, модель, токены, latency, cost) | M |
Результат W3: corporate profile проходит матрицу T1.5 на "Есть", SOC2-ready audit trail.
W4: Hooks & Automation (7-10 дней, 5 находок)¶
Цель: lifecycle hooks + Agent SDK — паритет с Claude Code/OpenCode SST.
| Finding | Действие | Effort |
|---|---|---|
| CP1 | Lifecycle hooks: pre/post tool call (bash, edit, read, model) | L |
| CP2 | Agent SDK: рантайм-диспетчеризация сабагентов, @ mention в TUI | L |
| CP3 | Scheduled agent tasks: systemd timers для Routines-подобных задач | M |
| AI3 | Observability 2.0: behavior signals (tool call tracing) + cost signals → Grafana | M |
| AI4, AI6 | Context-as-Infrastructure + 8-layer stack groundwork | L |
Результат W4: платформа покрывает полный цикл от dev-машины до production-grade agentic infrastructure.
W5: Release v3.0.0 (5-7 дней)¶
- Документация: README, AGENTS.md обновление, migration guide v2→v3
- Тесты: расширение test suite до ≥200 assertions, coverage новых модулей (41-sdd, 42-hooks)
- Health-mode:
bash setup.sh --healthдля новых фич (SDD, hooks, policy) - Changelog: v3.0.0 release notes
- ShellCheck sweep: все новые модули на
-S error - git tag v3.0.0, push to github + gitverse
7. Success Criteria v3.0¶
| Критерий | Измерение | Цель |
|---|---|---|
| Новый проект = полный SDD-цикл | bash setup.sh --new → /specify → /implement → /converge за одну сессию | Да |
| Corporate profile — матрица T1.5 | Все 5 измерений на "Есть" (air-gap, PII, audit, scanning, access) | Да |
| 0 CRITICAL находок | Re-audit после W1-W4 | 0 🔴 |
| Test suite | assertions (базово 480 → целевые 600+) | ≥600 |
| spec-kit gap matrix | gaps 1-8 закрыты (constitution, FR/SC, specs/, checklist, analyze, converge, US/P-markers, data-model) | Да |
| Per-step error recovery | Падение модуля не роняет весь setup.sh | Да |
| SSOT provider registry | 26-providers.sh — единственный источник | Да |
8. Non-Goals v3.0 (явно)¶
| Не делаем | Почему | Когда |
|---|---|---|
| taskstoissues (GitHub Issues sync) | Не core для SDD, тянет GitHub API зависимость | v4.0 |
| TDD enforcement (тесты до кода) | Требует переработки implement skill, зрелости экосистемы | v4.0 |
| Extension/Preset plugin-система шаблонов | Архитектурно сложно, требует стабильного core | v3.2+ |
| Cross-repo planning stores (OpenSpec stores) | Бета-функция OpenSpec, API нестабилен | v4.0 / never |
| Team collaboration / session sharing | Пулл-реквесты + git — достаточно для v3.0 | v4.0 |
| Remote/mobile доступ (Claude Code teleport) | Не входит в миссию dev machine bootstrap | Возможно never |
| GPU sharing/orchestration (MIG/MPS/HAMi) | Требует физического GPU-кластера, не для dev-машины | Возможно never |
Источники¶
- Аудит:
.opencode/audit/2026-08-08/01-05-*.md(843 строки, 47 находок) - Исследования:
.opencode/research/2026-08-08/(5 дайджестов, 993 строки) - Gap-матрица:
.opencode/synthesis/2026-08-08/gap-matrix.md(67 находок) - Competitive matrix:
.opencode/research/2026-08-08/competitive.md - Red Book: https://oleg.guru/redbook/ru/ (Олег Чир, 2026)
- spec-kit: https://github.com/github/spec-kit
- OpenSpec: https://github.com/Fission-AI/OpenSpec
- AI-Native Infra: https://jimmysong.io/book/ai-native-infra/ (Jimmy Song, Jan 2026)