cto/schema.sql
Svrnty 375417a29b feat(cto): initial scaffold v0.1.0
C-suite instance #3 — CTO profile distribution. Thin orchestrator over
sandcastle for code-modifying work across .NET / Dart / Go / Rust /
Python / Angular / Bash stacks.

v0.1 = scaffold only. Orchestrator skill is a stub; v1.0 wires
executable sandcastle.run() invocation.

Scaffold contents (12 files):
- AGENT.md, CONTRACT.md (T1, 12 sections), CLAUDE.md, README.md
- manifest.yaml (14 external_tool_deps across 9 stacks)
- distribution.yaml (Hermes native install contract)
- install.sh (idempotent, --dry-run support), credbridge.sh (gh CLI)
- schema.sql (work_queue + invocations + agent_runtime)
- skills/cto-agent/SKILL.md (stub w/ per-stack routing table)
- .gitignore, .env.example

External tool catalog covers:
- typescript: sandcastle (mattpocock, MIT, v0.5.11)
- dotnet: lib-dotnet-cqrs, tool-cqrs-plugin, pi-bte-plugin
- dart: lib-cqrs-datasource (gRPC client to .NET CQRS)
- go: lib-llm, core-credentials, core-memory, tool-qa
- rust: core-runtime (zeroclaw)
- bash: tool-bash-plugin
- multi: lib-quality-gates (48 gates), lib-skills-engineering (28 patterns)
- cortex-os: tool-cortex-plugin

DESIGN.md (Google Labs spec) compliance documented — CTO ensures UI
work conforms when Stitch / other DESIGN.md consumers are downstream.

Companion changes in workspace:
- hermes/CLAUDE.md workspace map + .gitignore
- sdo/org.yaml: ceo.delegates_to=[cmo, cto], cto agent block
- sot/06-REGISTRY/EXTERNAL-REFS/SANDCASTLE.md (T2, active)
- sot/06-REGISTRY/CORTEX-TOOLING.md (T2, active)
- sot/README.md links updated

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-24 11:35:57 -04:00

46 lines
2.3 KiB
SQL

-- ~/.hermes/profiles/cto-planb/schema.sql (Hermes-native install location)
-- cto-planb runtime state — work queue, sandcastle invocation log, agent runtime.
CREATE TABLE IF NOT EXISTS work_queue (
id TEXT PRIMARY KEY, -- uuid
title TEXT NOT NULL,
status TEXT NOT NULL DEFAULT 'queued', -- queued|sandboxing|reviewing|pr-open|blocked|done|killed
target_repo TEXT NOT NULL, -- relative path or URL
brief TEXT, -- JSON delegation brief from CEO/JP
prompt_file TEXT, -- path to sandcastle prompt
sandbox TEXT NOT NULL DEFAULT 'docker', -- docker|podman|vercel|noSandbox
branch TEXT, -- temp branch sandcastle creates
pr_url TEXT, -- github PR URL when opened
verdict TEXT, -- accept|re-sandcastle|escalate
iteration INTEGER NOT NULL DEFAULT 0, -- sandcastle re-run count
max_iterations INTEGER NOT NULL DEFAULT 3, -- escalate after this
notes TEXT, -- judgment notes
created_at TEXT NOT NULL DEFAULT (datetime('now')),
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
);
CREATE TABLE IF NOT EXISTS invocations (
id INTEGER PRIMARY KEY AUTOINCREMENT,
work_id TEXT NOT NULL, -- FK work_queue.id
iteration INTEGER NOT NULL,
sandbox TEXT NOT NULL, -- docker|podman|...
started_at TEXT NOT NULL DEFAULT (datetime('now')),
ended_at TEXT,
exit_code INTEGER,
commits TEXT, -- JSON array of {sha}
completion TEXT, -- matched completion signal if any
error TEXT,
FOREIGN KEY (work_id) REFERENCES work_queue(id)
);
CREATE TABLE IF NOT EXISTS agent_runtime (
key TEXT PRIMARY KEY,
value TEXT
);
-- Seed agent_runtime defaults
INSERT OR IGNORE INTO agent_runtime (key, value) VALUES
('status', 'sleeping'), -- sleeping|running|halted
('version', '0.1.0'),
('last_invocation_at', NULL);