Commit Graph
242 Commits
Author SHA1 Message Date
mathiasandClaude Sonnet 4.6 4bf5edb78e fix(exec): use --output-format json to get structured output from claude
--json-schema combined with --output-format text produces empty stdout.
The structured result is in the "structured_output" field of the json
envelope. Updated executor to unwrap the envelope.

Also removes --bare flag which disables OAuth keychain reads, causing
silent auth failure when ANTHROPIC_API_KEY is not set.

Adds goreman Procfile + stdio bridge (cmd/bridge) for Claude Code MCP
integration. Task start/stop replaced with goreman + port-kill.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-18 06:04:10 +02:00
mathias 98acf1c14e feat: add task start/stop for tmux-managed hyperguild session 2026-04-17 21:38:26 +02:00
mathias 9741d8ba28 Merge branch 'feat/hyperguild-phase1' 2026-04-17 21:23:37 +02:00
mathias bf67299a48 chore: ignore .superpowers/ brainstorm sessions 2026-04-17 21:23:37 +02:00
mathiasandClaude Sonnet 4.6 24d9216474 fix(ingestion): preserve type and domain metadata as frontmatter in written notes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 21:22:14 +02:00
mathiasandClaude Sonnet 4.6 344def20bb test: phase 1 integration smoke test passing
All 8 MCP tools verified (tdd_red, tdd_green, tdd_refactor, brain_query,
brain_write, tier, session_log, retrospective). Ingestion write/query,
brain_query, tier, and session_log all return correct responses end-to-end.
Brain note written during smoke test committed to raw/ and wiki/concepts/.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 21:18:08 +02:00
mathias d084af1af0 chore: add ingestion server tasks and update MCP registration 2026-04-17 20:54:40 +02:00
mathiasandClaude Sonnet 4.6 e98bb2ba65 feat: wire brain, org, sessionlog, retrospective skills into supervisor
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 20:52:16 +02:00
mathias 23dd355b8a feat: add protocols.md, retrospective discipline, and brain directory structure 2026-04-17 20:49:56 +02:00
mathiasandClaude Sonnet 4.6 3dfc064353 fix: extend valid phases and return empty slice for missing session
Add "retrospective" to validPhases so non-TDD skills pass Validate().
Return []Entry{} instead of nil in session.Read when no file exists,
so JSON serialisation produces [] rather than null.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 20:48:32 +02:00
mathiasandClaude Sonnet 4.6 13ee0d7114 feat: add retrospective MCP tool
Adds internal/skills/retrospective/ — an MCP skill that reads a session
log and dispatches a worker subprocess (via ExecutorFn) to identify
learnings and write them to the brain. Follows the same executor pattern
as the TDD skill.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 20:45:22 +02:00
mathiasandClaude Sonnet 4.6 a2889645fc fix: add Message field to session.Entry and check marshal error
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 20:43:01 +02:00
mathiasandClaude Sonnet 4.6 9cfce8f700 feat: add tier and session_log MCP tools
Adds two new MCP skill packages:
- internal/skills/org: exposes the tier tool, calling an injected TierFn
  for testability; returns current operating tier as structured JSON
- internal/skills/sessionlog: exposes the session_log tool, appending
  structured JSONL entries to brain/sessions/{session_id}.jsonl; requires
  session_id, wraps internal/session.Append

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 20:40:50 +02:00
mathiasandClaude Sonnet 4.6 e610e253ef fix(brain): pass type and domain fields to ingestion write endpoint
The write handler was building a hand-rolled map that dropped the type
and domain fields from writeArgs. Pass the struct directly so all fields
reach the ingestion server. Strengthen the test to assert the request
body contains the type field.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 20:38:38 +02:00
mathiasandClaude Sonnet 4.6 275ba43df5 feat: add brain_query and brain_write MCP tools
Adds the brain skill that proxies HTTP calls to the ingestion server,
exposing brain_query (/query) and brain_write (/write) as MCP tools.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 20:36:39 +02:00
mathiasandClaude Sonnet 4.6 5722532f7d fix: session log error handling and scanner buffer size
- Replace deprecated os.IsNotExist with errors.Is(err, fs.ErrNotExist)
- Capture Close error in Append by calling it explicitly instead of defer
- Increase scanner buffer to 1 MB per line to handle large JSONL entries

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 20:34:36 +02:00
mathiasandClaude Sonnet 4.6 1b03532230 feat: add session log package (append/read JSONL)
Introduces internal/session with Entry and Attempt types, Append
(O_APPEND JSONL writer) and Read (line scanner, nil on missing file).
Raw material for retrospective and trainer workers.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 20:32:38 +02:00
mathias fa6c084cf0 fix: suppress errcheck on Body.Close in tier probe 2026-04-17 20:31:10 +02:00
mathiasandClaude Sonnet 4.6 d09f7fe7d8 feat: add tier detection package
Probes Anthropic and LiteLLM endpoints to detect the current operating
tier (Full / LANOnly / Airplane) so downstream code can gate model
selection and managed-agent availability without manual configuration.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 20:28:29 +02:00
mathiasandClaude Sonnet 4.6 d18fa0dd59 fix(ingestion): validate required query field in Query handler
Empty or whitespace-only queries would silently pass through to search,
returning meaningless results. Also removed the Domain field from
queryRequest — it was accepted but silently ignored since search.Query
has no domain parameter, which would confuse callers.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 20:27:02 +02:00
mathiasandClaude Sonnet 4.6 e20edd6ca9 feat(ingestion): add query and write HTTP handlers
Implements POST /query (BM25 search via internal/search) and POST /write
(raw file persistence to brain/raw/) as an api.Handler struct. Filename
is auto-generated when absent.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 20:24:51 +02:00
mathiasandClaude Sonnet 4.6 caf18c9acb fix(ingestion): consistent error handling in search walk
Both walk-level errors and ReadFile failures now use best-effort
semantics (warn via slog, continue) instead of mixed abort/silent-skip.
filepath.Rel error is now propagated from the callback instead of
discarded.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 20:23:03 +02:00
mathiasandClaude Sonnet 4.6 3c1f6edf3e feat(ingestion): add full-text wiki search package
Implements search.Query which walks brainDir/wiki/**/*.md, scores files
by term-frequency across query tokens, and returns results sorted by
score descending. Uses only stdlib — no external search deps.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 20:18:57 +02:00
mathias 6c485489bf chore: scaffold ingestion Go module 2026-04-17 20:16:59 +02:00
mathiasandClaude Sonnet 4.6 f76c150041 docs: add hyperguild architecture design spec
Full vision for the hyperguild SDO: monorepo structure, two-layer brain
(declarative wiki + parametric training data), operating tiers, MCP tool
surface, session log format, retrospective + trainer workers, and four
implementation phases.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 19:53:32 +02:00
mathiasandClaude Sonnet 4.6 48d2d7dd73 fix: remove committed binary and stop leaking API key in prompt
Remove cmd/supervisor/supervisor binary from git (was accidentally
committed) and add it to .gitignore. Move LITELLM_API_KEY from the
prompt string into the subprocess env, preventing it from appearing
in error log output when JSON parsing fails.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 08:49:44 +02:00
mathiasandClaude Sonnet 4.6 d60c11c260 feat: wire all components in main.go
Replaces the stub with the actual supervisor entrypoint: loads config,
reads supervisor CLAUDE.md and tdd.md, constructs the executor and TDD
skill, registers them, and starts the HTTP/MCP server.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 08:39:39 +02:00
mathias 2d40bee089 feat: register supervisor MCP server and add task targets 2026-04-17 08:34:13 +02:00
mathias d8d2009dfd feat: add supervisor CLAUDE.md, tdd skill prompt, and env example 2026-04-17 08:31:37 +02:00
mathias 1f79cb6cef feat: add TDD skill with red/green/refactor handlers 2026-04-17 07:44:04 +02:00
mathias 8b3fd1d28b fix: initialize tools slice to empty rather than nil in registry 2026-04-17 07:41:00 +02:00
mathias edf47af8cf feat: add MCP HTTP server with JSON-RPC 2.0 transport 2026-04-17 07:40:57 +02:00
mathias 4255514bab feat: add skill registry with tool routing 2026-04-17 07:40:20 +02:00
mathias 91b98aed34 feat: add executor that spawns claude and parses JSON result 2026-04-17 07:39:26 +02:00
mathias 4c00b55ca5 feat: add model routing table with three-layer priority 2026-04-17 07:37:43 +02:00
mathias 8b8ada2676 feat: add config package with env-var loading 2026-04-17 07:37:19 +02:00
mathias d3d81cab20 feat: add Result type with JSON schema and validation 2026-04-17 07:33:06 +02:00
mathias dc574eca1a chore: initialize go module and cmd skeleton 2026-04-17 07:04:08 +02:00
mathias 5e130e1965 chore: ignore .worktrees/ directory 2026-04-17 06:59:45 +02:00
mathiasandClaude Sonnet 4.6 7d108b2911 docs: add supervisor MCP server implementation plan
12 TDD tasks covering: Go module, Result type, Config, Models,
Executor (claude --print), Registry, MCP server, TDD skill,
main wiring, config files, Taskfile/MCP registration, smoke test.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-17 06:56:48 +02:00
mathiasandClaude Sonnet 4.6 848001f27f docs: add supervisor MCP server design spec
Captures the full architecture: Go MCP server on flamingo, Claude
supervisor+worker instance, LiteLLM/Ollama gradual delegation, TDD
as first skill, language-agnostic test runner detection, structured
JSON output contract, and three-layer model selection.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 22:57:10 +02:00
mathias 92c9c42e24 chore: scaffold supervisor from project template 2026-04-16 21:50:53 +02:00