Repository navigation
v4.7.0
The request read behind context --online can be answered by Claude as well as Jev, and both are graded on a new reads eval suite. The repository adds Claude Code project permission rules, a headless claude -p gate summary on pull requests, and a Claude Agent SDK example that uses solumbe as its guardrail. No command or field was removed. Without ANTHROPIC_API_KEY nothing changes: the read stays on Jev or offline, and the gate summary job skips.
Added
- Claude can answer the request read.
src/lib/claude-read.jsasks one strict tool, forced withtool_choice, whose input schema is the read:intentandcapabilityare enums over the same labels Jev answers, each with a stated confidence, andrelevancescores each candidate file. A reply that fails validation is sent back once as anis_errortool result. What survives is mapped into Jev's answer shape, sointerpretRead(itsObject.hasOwncheck, null on anything malformed,CHOICE_FLOORandDEMOTE_BELOW) judges both providers the same way.SOLUMBE_READ_PROVIDER(jevorclaude) picks the provider. Otherwise a TypeSafe key keeps Jev and an Anthropic key alone selects Claude. The model defaults toclaude-haiku-5-5and can be set withSOLUMBE_CLAUDE_READ_MODEL.solumbe eval --reads [--provider heuristic|jev|claude]grades a provider on the new 24-casereadssuite inevals/corpus.json, including question-shaped check X against Y requests. It calls a model, so it is a measurement and not part ofnpm run quality. Heuristic and Jev results are recorded in docs/17; the live Claude run is pending.
- A Claude Agent SDK example with solumbe as its guardrail, under
integrations/agent-sdk/and not in the npm package. The orchestrator plans withcontext_pack, routes each subagent withmodel_route, declares the scope withchange_impactbefore any edit, delegates to an implementer and a test writer, and gates withreview_gate: aFAILescalates to a person with the gate's reasons, and a withheld result does not block. Guardrails are per-role tools, acanUseToolcallback, aPreToolUsehook that denies push, merge, publish and out-of-scope writes,maxTurnsandmaxBudgetUsd. Its tests run a scriptedquery()against solumbe's real MCP server, with no network. - The committed
.claude/settings.jsongains project permission rules. It allows the repo's own commands (npm run *,node src/cli.js *,node --test *, read-only git) and the solumbe MCP tools, asks beforegit push,gh pr mergeandgit tag, and denies reading.env*,*.pemand*.keyand runningnpm publish. Personal settings and absolute paths stay in~/.claude. - A headless Claude Code gate summary on pull requests.
.github/workflows/claude-gate.ymlrunsclaude -pwith--output-format jsonand a--json-schema, held to the one commandnode src/cli.js gate, and posts its summary as a PR comment only afterscripts/claude-gate-summary.mjschecks it against the same gate run by the workflow. It skips cleanly without theANTHROPIC_API_KEYsecret (and so on forks) and is not a required check.