Work Platform Firm Engagement Start a conversation
IVBIS / Platform / ArchTrace
ARCHTRACE

Claude proposes.
ArchTrace decides.

Deterministic architecture governance for codebases that ship with AI. Drop-in for Claude Code. SHACL/SPARQL-backed. SARIF output.

Format
Claude Code plugin · CLI · CI
Surface
SPARQL over seven named graphs
Output
SARIF for IDE-native UX
The case

PR review is the wrong gate.

Plainly By the time architecture drift shows up in a pull request, it has already been written, reasoned-about, and rationalized.

AI coding agents are fast enough now that pull-request review can't keep up. The reviewer is looking at code that was generated in seconds, justified in paragraphs, and shaped by intent the human didn't write. The architectural decision was made earlier — in the agent's prompt context — and PR review is too late to undo it cheaply.

The honest fix is not slower agents. It is a deterministic gate before the agent stops: a check, run on every session, that says this conforms to the architecture, or it doesn't, and here is the exact violation. Not a vibe. Not a probabilistic critique. A SHACL shape, a SPARQL surface, and a SARIF report the IDE already knows how to render.

ArchTrace is that gate. It runs before the stop hook fires. It speaks the architecture graph fluently because it owns it. And it produces evidence — not opinions — that a senior engineer or a compliance reviewer can sign.

Four facets

Deterministic. Graph-backed. Built for agents that ship code.

01 · GATE

Deterministic gate, not probabilistic critique.

Every AI session is checked against SHACL shapes before the stop hook fires. A violation is a violation — with a citation. There is no "the model seems unsure here." There is a rule, a graph, and a line of code.

SHACL shapes Stop hook Pre-commit
02 · GRAPHS

Seven named graphs. One SPARQL surface.

Architecture, modules, dependencies, contracts, ownership, security boundaries, deployment. Each lives as a named graph. Every shape and policy is a SPARQL query over those graphs — auditable, versionable, diffable.

RDF SPARQL 1.1 Named graphs
03 · OUTPUT

SARIF output for IDE-native UX.

Findings ship as SARIF 2.1.0. VS Code, JetBrains, GitHub annotations, and Azure DevOps render them without extra plumbing. Reviewers see the violation in the file, not in a PDF.

SARIF 2.1.0 VS Code GitHub annotations
04 · LOOP

In the AI loop, not after it.

Drop-in for Claude Code. The agent learns the architecture from the same surface that gates it — so the second draft has fewer violations than the first, and the architecture stops drifting on the way to production.

Claude Code CLI CI gate
How it works

Seven graphs. One query surface.

The architecture graph isn't a diagram. It's a queryable substrate. Every rule the AI is held to is a SPARQL query over the seven named graphs — written, reviewed, and versioned by engineers, not invented at runtime.

Architecture graph topology

arch.ttl · 7 named graphs · SPARQL 1.1
G:01
Architecture
layers · boundaries
G:02
Modules
packages · classes
G:03
Dependencies
imports · transitive
G:04
Contracts
API · schema · types
G:05
Ownership
CODEOWNERS · teams
G:06
Security
trust zones · PII
G:07
Deployment
runtime · env · network
SPARQL SURFACE
One query language. Every rule.

Architectural policies, layer constraints, and ownership invariants are queries over the same graphs the IDE indexes. A SHACL shape is a constraint; a SPARQL query is the proof.

# shape:NoUiToDbDirect — forbid UI → DB calls
ASK FROM <g:arch> FROM <g:deps> {
  ?call a :Invocation ;
        :fromLayer :UI ;
        :toLayer   :Persistence .
}
Named graph RDF predicate SPARQL keyword Comment
Integration

Where it runs. How it ships.

01 · CLAUDE CODE

In the agent loop

Registered as a stop-hook plugin. Every session is checked before the agent reports done. Findings are returned to the agent for repair, then re-checked.

~/.claude/plugins.tomlTOML
[[plugins]]
name    = "archtrace"
command = "archtrace gate --stop-hook"
stages  = ["pre-stop"]
on_violation = "return-to-agent"
02 · CLI

For engineers and pre-commit

Run locally, in pre-commit, or as a guardrail step. Returns SARIF, exits non-zero on violation, supports targeted re-runs by named graph.

shellSH
# gate the working tree against the architecture
$ archtrace gate \
    --graph arch,deps,contracts \
    --output sarif \
    > archtrace.sarif

# 3 findings  · 2 errors · 1 warning
03 · CI

As a required check

A single job in GitHub Actions, GitLab CI, or Azure Pipelines. Uploads SARIF for code-scanning UI. Blocks merge on errors; surfaces warnings as inline annotations.

.github/workflows/architecture.ymlYAML
name: Architecture
on: [pull_request]
jobs:
  gate:
    runs-on: ubuntu-latest
    steps:
      - uses: ivbis/archtrace@v1
        with:
          fail-on: error
          upload-sarif: true
Proof · interactive

Pick a rule. See the finding it produces.

Three real rules from a typical engagement, written in plain SHACL. Click one and watch the SARIF report on the right update to match — the same report your IDE renders inline. The format is open on both sides; no intermediate vendor lock.

Rules:
Active rule: NoUiToDbDirect · 1 finding · error SHACL → SPARQL → SARIF
shapes/no-ui-to-db.shacl.ttl SHACL · IN

        
archtrace.sarif SARIF · OUT

        
Platform context

ArchTrace sits at the back of the SDLC. PlanTrace sits at the front.

PLANTRACE

Every plan item traces back to the PRD section it came from.

Where ArchTrace governs the architecture an agent ships against, PlanTrace governs the plan an agent ships from. Same governance discipline, opposite end of the lifecycle. Together they bracket the AI loop.

Explore PlanTrace
ArchTrace

The agents go faster.
The architecture stops drifting.
Compliance stops being a meeting.

ArchTrace ships as a Claude Code plugin, a CLI, and a CI action.
Start with a sentence about the codebase you'd like to put it on. We reply within two business days.