Spine: an architecture control loop for GigaCode and Claude Code
spine-bank
The arch-be binary with an MCP server, hooks and 79 skills checks agent code against architecture rules and does not let the evidence be faked
- 2 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- arch-be connect edits .claude/settings.json and installs hooks that block agent actions when the gate fails
- The binary is downloaded from a GitHub release and runs on the developer machine, so its integrity must be checked against SHA256SUMS
Install
- Works in
- Services
Manual install
curl -L -o arch-be https://github.com/romannekrasovaillm/spine-bank/releases/latest/download/arch-be-core-linux-x86_64 && chmod +x arch-be && mv arch-be ~/.local/bin/On macOS arm64 the file is arch-be-core-macos-arm64 and on Windows arch-be-core-windows-x86_64.exe; integrity is checked against SHA256SUMS from the release.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- arch-be connect edits .claude/settings.json and installs hooks that block agent actions when the gate fails
- The binary is downloaded from a GitHub release and runs on the developer machine, so its integrity must be checked against SHA256SUMS
This is third-party code. Review the repository files before installing.
What it does
Spine attaches to a coding agent (Claude Code, Qwen Code, GigaCode) as the spine MCP server with 45 read-only tools, a set of hooks and 79 skills, 12 of them spine-* playbooks. The main core edition runs without its own language model: the agent thinks and the verdict is the exit code of arch-be gate. The arch-be arch-diff --base main command shows in one screen what a PR changed in the architecture: new links, external systems, contracts and touched invariants, each with file and line and no LLM. arch-be connect writes the hooks into .claude/settings.json. GigaCode has its own guide, docs/GIGACODE.md, and the sources hold the src/llm/gigachat.rs adapter.
Who it is for. Team leads and architects whose teams write code with GigaCode or Claude Code and want agent decisions checked by deterministic rules.
Good fit when
- A reviewer wants to know what this PR changed in the architecture, with file and line
- A GigaCode agent edits code and a gate has to reject violations of the CONSTRAINTS.yaml rules
- The agent must not weaken rules just to go green: rule tampering is caught by the gate
- You want lessons from past failures to reach the agent context at session start
Not a fit when
- A regular linter is enough: Spine pays off where there is a system model and architecture rules
- You want a tool that ships its own language model: the core edition has none
- You cannot put a prebuilt binary from a GitHub release into the developer environment
Example request
Show the architecture diff of my branch against main and run arch-be gate on the projectLimitations
The core edition ships without its own language model, while the GigaChat adapter sits in the sources at src/llm/gigachat.rs and belongs to other editions. According to the author, the GigaCode connection was verified on qwen-code 0.0.5 and 0.24.0, and the GigaCode CLI inherits its settings from it. The binary installs from a GitHub release for Linux, macOS and Windows, and the sources are Rust. A verdict of INCOMPLETE signals an incomplete check and must not be read as green. There is one author, two stars and the documentation is mostly in Russian.
How to disable. Delete the arch-be binary from ~/.local/bin, remove the hooks block and the spine MCP server from .claude/settings.json (or the GigaCode settings) and the .arch-handoff directory in the project.
FAQ
Does it need its own language model?
Not in the core edition: your agent makes the decisions and Spine checks them with rules and returns an exit code.
Which agents are supported?
The README says six harnesses were verified; Claude Code, Qwen Code and GigaCode are named, and GigaCode has its own guide.
What does arch-diff give without setup?
A one-screen view of what a PR changed in the architecture, with file and line per fact; the model is optional and the graph is built from build manifests.
How do I verify the downloaded binary?
Compare SHA256SUMS from the same release: sha256sum --check SHA256SUMS on Linux or shasum -a 256 --check SHA256SUMS on macOS.
Can the agent approve a decision itself?
No: signing a binding and accepting rubrics stay with a person, and attempts to weaken rules are flagged by the gate as rule_weakened or self_approved.
Discussion
No questions or reviews yet.
Related
All GigaChat toolsGigaCode Bridge MCP
Gigacode-bridge-mcp
MCP server that delegates isolated code edits to GigaCode CLI in temporary Git worktrees and returns a patch for independent review
GigaCode project flows with hooks, gates and OpenSpec
gigacodeAgents
A monorepo of flows for the GigaCode CLI: development with stages and hard gates, a work progress observer and reverse analysis of code into a spec
The agent writes code, people decide, and gates are held by hooks in Claude Code, Codex, Cursor, OpenCode, Qwen Code and GigaCode
A Python package gives the GigaCode agent Jupyter cells through ACP: browser sign-in, session resume, permission prompts and task cancellation
A single Node.js file turns the installed GigaCode CLI into a local OpenAI server with streaming and a shared dialogue history
MCP server for the GigaChat API
GigaChat API
A small Python MCP server for Sber's GigaChat API: authorizes with a Basic key and calls the models directly from an agent, tested on OpenCode under Windows
README in short
The README explains why the loop exists (checking agent code and blocking forged evidence), eight reasons, the flow from agent through hooks to the gate, the delivery editions, step 0 with the binary download and step 1 with an architecture diff in five minutes.