Skip to main content
Glama

๐ŸŒ OMNISTATE

Universal State Governance, Transaction Guardrails & Anti-Bypass Framework for AI Agents, MCP & CLI
Zero Context Loss โ€ข Scope Enclosure โ€ข Anti-Laziness Diff Defense โ€ข Git Pre-commit Warden

License: MIT Python: 3.8+ Model Context Protocol Zero External Dependencies


๐ŸŽฏ The Problem

When Large Language Models (LLMs) and autonomous AI coding agents (Claude, Cursor, Copilot, ChatGPT, Cline, Antigravity) develop software, they inevitably run into four critical failure modes:

  1. Context Loss & Amnesia Across Sessions: When a chat restarts or compacts, the AI forgets what was changed, what decisions were made, or what step it was on.

  2. Scope Creep & Accidental Regression: The AI modifies files far outside its intended scope, breaking unrelated features or deleting essential comments and functions.

  3. Lazy AI Placeholders: The AI generates truncated code snippets such as // ... rest of implementation unchanged, # TODO: implement this, or silently deletes production logic.

  4. Unverified Commits: The AI hallucinates that "all tests pass" and commits directly to git without empirical proof or verified evidence.

OMNISTATE solves this by bringing deterministic ACID transaction semantics, multi-gate automated auditing, and a tamper-proof Git Warden to any software project.


Related MCP server: Harness Engineering MCP

๐Ÿ—๏ธ Architecture & Transaction Lifecycle

flowchart TD
    subgraph Human_or_AI ["AI Agent or Developer"]
        Init["omnistate init<br>(Mounts pre-commit hook)"] --> Begin
        Begin["omnistate begin<br>(Declare Intent & Scope)"]
        Begin --> Step["omnistate step<br>(Record Milestones)"]
        Step --> CodeEdit["Perform Code Edits"]
        CodeEdit --> Audit["omnistate audit<br>(Deterministic Gates)"]
    end

    subgraph Gates ["Quality & Security Gates"]
        Audit --> G1["Gate 1: Scope Enclosure Check"]
        Audit --> G2["Gate 2: Anti-Laziness Critic (Diff Scan)"]
        Audit --> G3["Gate 3: Anti-Bloat Ratio Check"]
        Audit --> G4["Gate 4: Automated Test Runner"]
        Audit --> G5["Gate 5: Empirical Evidence Verification"]
    end

    subgraph State_Engine ["OMNISTATE Engine"]
        G1 & G2 & G3 & G4 & G5 -->|All Passed| AuditPassed["Status: AUDITED<br>(Freezes SHA-256 Fingerprints)"]
        AuditPassed --> Finish["omnistate finish"]
        Finish --> TamperCheck{"Anti-Tamper Check:<br>Files changed since audit?"}
        TamperCheck -->|No| Clearance["Issue Commit Clearance Token<br>OMNI_CLEAR_XXXXXXXX<br>Archive rev_XXXX.json"]
        TamperCheck -->|Yes| TamperFail["๐Ÿšจ Tamper Violation<br>Require Re-Audit"]
    end

    subgraph Git_Warden ["Git Pre-Commit Warden Hook"]
        Clearance --> GitCommit["git commit -m '...'"]
        GitCommit --> PreCommitHook[".git/hooks/pre-commit"]
        PreCommitHook --> WardenScan{"Warden Verification:<br>1. Active session completed?<br>2. Valid clearance token?<br>3. Staged hashes == Audited hashes?"}
        WardenScan -->|Yes| CommitAllowed["โœ… Commit Permitted"]
        WardenScan -->|No| CommitBlocked["โŒ COMMIT BLOCKED"]
    end

โœจ Key Features

  • ๐Ÿ›ก๏ธ ACID Transactions for AI Edits: begin $\rightarrow$ step $\rightarrow$ audit $\rightarrow$ finish $\rightarrow$ commit.

  • ๐Ÿ”Œ Dual-Mode Adapters:

    • CLI Mode: Full-featured terminal interface with rich dashboards.

    • MCP Server Mode (Model Context Protocol): Exposes state tools directly to Claude Desktop, Cursor, Antigravity, OpenCode, Windsurf, and any MCP client over stdio.

  • ๐Ÿ”’ Anti-Tamper & Anti-Laziness Guardrail:

    • Scans unified diffs for lazy ellipsis comments (// ..., # TODO: implement).

    • Cryptographically locks audited files via SHA-256. Any modification made after audit invalidates the clearance token.

  • ๐Ÿ‘ฎ Git Warden Pre-Commit Hook:

    • Blocks any git commit or git push if code was not properly audited and cleared by OMNISTATE.

  • ๐Ÿ“ฆ Zero External Dependencies:

    • Pure Python standard library (compatible with Python 3.8+). No heavy dependencies, no version conflicts.

  • ๐Ÿ“œ Immutable History Snapshots:

    • Automatically records full state history in .omnistate/snapshots/rev_0001.json with revision deltas.


๐Ÿš€ Quick Start

1. Installation

git clone https://github.com/cwen0224/omnistate.git
cd omnistate
pip install -e .

Or install directly via pip (once published):

pip install omnistate

2. Initialize in Your Project

In any git repository:

cd /path/to/your/project
omnistate init

This will:

  1. Create the .omnistate/ directory with omnistate.json configuration.

  2. Install the automated pre-commit hook in .git/hooks/pre-commit.


๐Ÿค– Using with AI via MCP (Model Context Protocol)

OMNISTATE includes a built-in, zero-dependency MCP server that enables AI models to govern their own changes safely.

Claude Desktop Configuration

Add the following to your claude_desktop_config.json:

{
  "mcpServers": {
    "omnistate": {
      "command": "omnistate-mcp",
      "args": ["--workspace", "/path/to/your/project"]
    }
  }
}

Cursor / Windsurf / Antigravity / OpenCode Configuration

Add to your project's MCP settings:

{
  "name": "omnistate",
  "command": "python",
  "args": ["-m", "omnistate.mcp", "--workspace", "."]
}

Tools Exposed to the AI

MCP Tool Name

Description

omnistate_init

Initialize state governance and pre-commit hook in workspace

omnistate_begin

Start a transactional state change with declared intent and scope boundaries

omnistate_step

Record an incremental milestone or progress step

omnistate_audit

Deterministically verify modified code against scope, anti-laziness, and test gates

omnistate_finish

Verify anti-tamper fingerprints, archive immutable snapshot, and issue commit clearance

omnistate_abort

Abort active transaction and optionally roll back uncommitted changes

omnistate_status

Return active transaction status, git state, and clearance token

omnistate_inspect_diff

Scan working tree diff for anti-laziness violations

omnistate_explain_rules

Return state governance and guardrail rules for the AI context


๐Ÿ’ป CLI Usage Guide

1. Begin a Task

omnistate begin --intent "Implement OAuth login" --scope "auth/,tests/" --risk standard

2. Record Progress

omnistate step --action "Implemented JWT token parser" --details "Added unit test in test_auth.py"

3. Check Governance Dashboard

omnistate status

Output:

==================================================================
  ๐ŸŒ OMNISTATE STATE GOVERNANCE DASHBOARD (v1.0.0)
==================================================================
  Project Root     : /home/dev/my-project
  State Directory  : /home/dev/my-project/.omnistate
  Current Revision : #0012
  Git HEAD Commit  : a4b91ef201
------------------------------------------------------------------
  Transaction ID   : sess_3f1a92b810de
  Transaction State: ๐ŸŸก [ IN_PROGRESS ]
  Intent Summary   : Implement OAuth login
  Scope Boundary   : ['auth/', 'tests/']
  Risk Tier        : STANDARD
  Steps Recorded   : 3
  Audit Status     : โณ PENDING (Run 'omnistate audit' when edits complete)
------------------------------------------------------------------
  Working Tree Mod : 2 files modified
    โ€ข auth/oauth.py
    โ€ข tests/test_oauth.py
==================================================================

4. Audit Modifications

omnistate audit

Output:

================ OMNISTATE AUDIT RESULTS ================
  โœ… PASS | ScopeEnclosureGate
  โœ… PASS | AntiLazinessCritic
  โœ… PASS | AntiBloatCritic
  โœ… PASS | TestRunnerGate
=========================================================
๐ŸŽ‰ All quality gates PASSED! Ready to execute 'omnistate finish'.

5. Finalize & Unlock Git Commit

omnistate finish --evidence "tests/report.txt" --note "All tests green"

Output:

๐ŸŽ‰ [OMNISTATE] Transaction COMPLETED: sess_3f1a92b810de
๐Ÿ›ก๏ธ  Commit Clearance Token: OMNI_CLEAR_8A90F1BC24D7A19E
๐Ÿ“ฆ Archived Revision     : #0013
๐Ÿš€ You are now cleared to commit your changes with git!

6. Commit to Git

git commit -m "feat(auth): implement OAuth login"
# Output:
# ๐Ÿ›ก๏ธ  [OMNISTATE WARDEN PASSED] Clearance Token verified: OMNI_CLEAR_8A90F1BC24D7A19E

โš™๏ธ Configuration (omnistate.json)

Created automatically inside .omnistate/omnistate.json:

{
  "state_dir": ".omnistate",
  "ignored_paths": [
    ".git",
    ".venv",
    "node_modules",
    "__pycache__",
    "dist",
    "build"
  ],
  "gates": {
    "scope_enforcement": true,
    "anti_laziness": true,
    "anti_bloat": true,
    "max_file_growth_ratio": 2.0,
    "max_line_growth": 600,
    "test_command": "pytest -q",
    "evidence_required": false
  },
  "warden": {
    "enforce_pre_commit": true,
    "block_unclear_commits": true
  }
}

๐Ÿ Python SDK API

You can also embed OMNISTATE directly into your Python scripts or custom agent loops:

from pathlib import Path
from omnistate import OmniStateCoordinator

coord = OmniStateCoordinator(Path("."))

# 1. Begin
session = coord.begin(
    intent_summary="Refactor database models",
    scope_paths=["models/", "migrations/"],
    risk_tier="standard"
)

# 2. Record step
coord.record_step("Generated Alembic migration")

# 3. Audit
passed, gate_results = coord.audit(run_tests=True)
if passed:
    # 4. Finish
    finished_session = coord.finish(note="Migrations verified")
    print("Clearance Token:", finished_session.commit_clearance)
else:
    print("Audit failed! Gate errors:", [g.errors for g in gate_results if not g.passed])

๐Ÿงช Running Tests

python -m unittest discover -s tests

๐Ÿ“„ License

MIT License. Copyright (c) 2026 cwen0224.

Available Tools

9 tools
omnistate_abortB

Abort active transaction and optionally roll back uncommitted changes in scope.

NameRequiredDescriptionDefault
noteNoReason for cancellation.
rollbackNoWhether to revert uncommitted changes in scope via git.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, yet it only hints that this is a mutating lifecycle operation. It does not say whether aborting discards work, whether the abort is reversible, what the resulting status is, or how errors are reported if nothing is active. The one behavioral detail it gives (git rollback of uncommitted changes) largely restates the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, leading with the verb and the target resource. It is efficient, though its brevity contributes to the gaps scored elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is low complexity (2 optional params, no output schema), so a short description is defensible, but with zero annotations the agent still lacks lifecycle context: resulting state after abort, effect on session, and behavior when no transaction is active.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters ('note' as cancellation reason, 'rollback' as git revert toggle with a false default) are fully documented there. The description adds no syntax, format, or interaction detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('abort') against a specific resource ('active transaction') plus the optional rollback side effect. It is clearly distinct from omnistate_begin/step, but the boundary with the sibling omnistate_finish (abort vs. successful completion) is never made explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'active transaction' implies a usage precondition, but the description never says when to abort instead of calling omnistate_finish, nor whether it is safe/no-op when no transaction is open. Usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

omnistate_auditB

Audit current modifications against scope boundaries, anti-laziness gates, and test suites.

NameRequiredDescriptionDefault
filesNoOptional list of files to audit. If omitted, automatically checks git status.
run_testsNoWhether to run the configured test command.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden. It discloses that test suites may run (a side effect) and that anti-laziness gates are checked, but says nothing about what happens on failure, whether the audit blocks progress or mutates state, or what the result looks like.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; each clause carries meaning. It is dense but slightly under-explained for a tool that can execute tests, though not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description should explain failure semantics and result shape. It does not, leaving an agent unsure how to interpret a failed audit or whether it gates the workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already documented in the schema (files with git-status fallback, run_tests default true). The description adds no semantics beyond that, which is acceptable but not additive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Audit') and resource ('current modifications') and enumerates three check categories (scope boundaries, anti-laziness gates, test suites). It is distinguishable from siblings like omnistate_inspect_diff and omnistate_status, though it never names an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this validates changes somewhere in the omnistate workflow. The description never states when to call it versus omnistate_status, omnistate_inspect_diff, or omnistate_finish, and gives no prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

omnistate_beginB

Begin a safe, transactional state change. Declares intent, scope boundaries, and risk tier.

NameRequiredDescriptionDefault
scopeNoList of directories or files allowed to be modified (e.g. ['src/', 'tests/']).
intentYesClear, concise summary of what this code change will achieve.
promptNoOriginal raw user prompt.
non_goalsNoStrict boundaries or things that must NOT be touched or altered.
risk_tierNoRisk tier of the task.standard

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses that the operation is 'safe' and 'transactional' and introduces a risk tier, which is useful context, but it omits what 'transactional' means operationally โ€” whether state is locked, whether finish/abort is required, what happens on failure, and what side effects occur.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and followed by what the call declares. There is no filler and every sentence adds a distinct piece of information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a transaction-starting tool with five parameters and no output schema or annotations, the description is too thin. It does not explain the lifecycle relationship to 'omnistate_finish'/'omnistate_abort', the difference from 'omnistate_init', or what an agent should expect after calling begin.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents each parameter. The description restates 'intent, scope boundaries, and risk tier' without adding format, constraints, or examples beyond the schema, which is the baseline 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Begin') and an abstract resource ('transactional state change'), plus what it declares (intent, scope, risk tier). However, it does not distinguish this from the sibling 'omnistate_init', leaving ambiguity about which tool actually starts a new state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives. With siblings like 'omnistate_init' and 'omnistate_step', the description should say whether this begins a transaction after init, replaces init, or is the correct first call in a workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

omnistate_explain_rulesA

Explain the OMNISTATE transaction lifecycle rules and guardrails for AI coding assistants.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations at all, the description must carry the behavioral burden; 'Explain' implies a non-mutating informational call, but this is inference rather than stated. It does not say whether the output is static documentation or state-dependent, and there is no output schema to fall back on.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the verb and subject arrive immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-param, no-annotation, no-output-schema tool, the description covers the topic but not the return shape or invocation context. One clause on what the explanation covers (e.g., states, transitions, guardrail violations) would close the gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so the baseline of 4 applies; the description correctly implies no inputs are needed and nothing contradicts that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Explain') and resource ('OMNISTATE transaction lifecycle rules and guardrails'), which clearly distinguishes it from the operational siblings (begin/step/finish) that actually act on transactions. It is clear what the tool returns conceptually, though the phrase 'for AI coding assistants' is audience framing rather than scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is the reference lookup to consult for the lifecycle rules, presumably before or alongside using omnistate_begin/step/finish. It never says when to call it versus just proceeding, nor whether it must be called before starting a transaction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

omnistate_finishA

Finalize transaction, verify anti-tamper fingerprints, archive immutable snapshot, and issue commit clearance.

NameRequiredDescriptionDefault
noteNoCompletion note.
evidenceNoList of evidence artifact file paths proving task completion.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does add real behavioral detail: anti-tamper fingerprint verification, immutable archival, and commit clearance are meaningful side effects. However, it does not state that finalization is irreversible, what happens if fingerprint verification fails, or what permissions/state are required, which are critical for a committing mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with four comma-separated clauses, each carrying new information about the finalization sequence. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-required-parameter, no-output-schema commit tool with no annotations, the description covers what happens but omits irreversibility, failure behavior when fingerprints don't match, and what the caller receives back. Adequate but leaves important gaps for a terminal mutation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the two optional parameters (note, evidence) are already documented in the schema; the baseline is 3. The description adds nothing about how evidence is used in fingerprint verification or what a completion note affects.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb+resource ('Finalize transaction') and enumerates the resulting actions (fingerprint verification, immutable snapshot, commit clearance), which clearly positions it as the terminal step in the omnistate lifecycle. It is distinguishable from omnistate_abort/omnistate_step by implication, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Finalize' and 'issue commit clearance' imply this is the closing step, but there is no explicit statement of prerequisites (e.g., must follow omnistate_begin/step), no guidance on when to prefer omnistate_abort instead, and no failure-path guidance. Usage is inferable only from the word choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

omnistate_initC

Initialize OMNISTATE state governance and pre-commit guardrail in the current workspace.

NameRequiredDescriptionDefault
overwriteNoWhether to overwrite existing config if present.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It says the tool initializes governance and a pre-commit guardrail, but does not describe what files or configuration are created, whether the operation is idempotent, what side effects occur, or what happens when configuration already exists beyond the overwrite parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It is appropriately short, though its brevity contributes to the missing behavioral and usage details assessed elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an initialization tool with no annotations and no output schema, the description should explain more about what the tool sets up, prerequisites, and side effects. It gives the high-level purpose but leaves meaningful operational context unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single optional parameter 'overwrite' is fully documented in the schema. The description adds no parameter-specific meaning, so the baseline of 3 applies when the schema already does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Initialize') and resources ('OMNISTATE state governance and pre-commit guardrail') in the current workspace. It is clear what the tool does, though it does not explicitly contrast itself with siblings like omnistate_begin or omnistate_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a setup use case but gives no explicit guidance on when to use this tool versus lifecycle siblings (begin, status, audit, etc.). It also does not mention prerequisites, whether initialization should run before omnistate_begin, or when overwrite should be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

omnistate_inspect_diffB

Run anti-laziness and scope inspection on the working tree diff without altering state.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full disclosure burden, and it does state the key safety property: 'without altering state,' making it effectively read-only. It says nothing about failure modes, whether the check can block later steps, or what the result contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the state-safety qualifier is attached immediately to the action. 'Anti-laziness' is the only word that does not clearly earn its place without a definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description must explain what the inspection reports and how a failure should be interpreted, but it stops at the action. An agent can invoke it, but cannot predict or act on the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes no parameters, so there is no argument semantics for the description to compensate for. Baseline of 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource: run an inspection over the working tree diff. The name and description agree, so an agent knows this is a read-side check rather than a state transition. What 'anti-laziness' actually verifies is unexplained jargon, and nothing tells it apart from the sibling omnistate_audit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus omnistate_audit, omnistate_status, or omnistate_begin/omnistate_finish. No prerequisites are given, such as whether a diff must already exist or whether omnistate_begin has to run first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

omnistate_statusA

Get current OMNISTATE status, active transaction details, git head, and commit clearance state.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears the full disclosure burden. 'Get' implies a read with no side effects, but the description never explicitly confirms read-only behavior, permissions, or whether calling it mutates transaction state; the list of returned fields is helpful but is return-value content, not behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the verb and resource first, followed by an enumerated list of return fields. No filler, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the enumeration of expected fields (transaction details, git head, clearance state) is doing real work. Terms like 'commit clearance state' and 'OMNISTATE' remain undefined, which leaves a little ambiguity, but for a no-arg status probe this is close to sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so the baseline of 4 applies; there is nothing to document and the description does not invent or misdescribe inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get') and resource ('OMNISTATE status') and enumerates the concrete data returned (active transaction details, git head, commit clearance state). This clearly reads as the read-only counterpart to the mutation-oriented siblings (begin, step, finish, abort), though it never names a sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to call this versus omnistate_audit, omnistate_step, or omnistate_inspect_diff, nor any prerequisite such as needing an active transaction. The agent must infer that this is a polling/inspection tool from the verb alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

omnistate_stepA

Record an intermediate progress milestone or action within the active transaction.

NameRequiredDescriptionDefault
actionYesBrief description of the action taken.
detailsNoAdditional details or outcome notes.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It does disclose the key precondition that a transaction must be active, but it does not state whether calling this mutates state, whether milestones are persisted or returned, what happens if no transaction is active, or whether repeated calls are allowed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler. Every word contributes to stating the action, the scope, and the transaction precondition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter recording tool with no output schema, the description covers the core purpose and precondition. It is minimally adequate but leaves key behavioral questions (persistence, error behavior, relationship to auditing) unanswered, which matters given the absence of annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters ('action' and 'details') are already documented in the schema. The description adds no meaning beyond what the schema provides, which meets the baseline expectation when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (record) and resource (intermediate progress milestone/action) scoped to the active transaction, which distinguishes it from omnistate_init, omnistate_begin, and omnistate_finish. It does not explicitly contrast with omnistate_audit or omnistate_status, so sibling differentiation is incomplete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'within the active transaction' implies the precondition for use and suggests this is a mid-transaction step rather than a terminal one. However, it gives no explicit when-to-use guidance versus omnistate_audit, omnistate_status, or omnistate_inspect_diff, and no when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv1.0.0
    • First observedomnistate_abort
    • First observedomnistate_audit
    • First observedomnistate_begin
    • First observedomnistate_explain_rules
    • First observedomnistate_finish
    • First observedomnistate_init
    • First observedomnistate_inspect_diff
    • First observedomnistate_status
    • First observedomnistate_step

TDQS

A3.5/5.0

Scored across 9 tools

Disambiguation4/5

Tools map cleanly to a transaction lifecycle (init, begin, step, audit, finish, abort) with status and inspect_diff as read-only helpers. The main possible confusion is audit vs inspect_diff, both involving scope/anti-laziness checks, and init vs begin, but descriptions distinguish state-changing versus read-only and setup versus transaction start.

Naming Consistency4/5

All tools share the omnistate_ prefix and snake_case formatting, making the set highly predictable. Minor deviations exist: status is a noun while most names are verbs, init is abbreviated, and step is less action-specific, but the convention remains readable.

Tool Count5/5

Nine tools fit comfortably within the ideal 3-15 range for a transaction-governance server. Each tool corresponds to a distinct lifecycle stage or helper, with no obvious filler.

Completeness4/5

The surface covers setup, transaction start, progress recording, auditing, commit clearance, abort/rollback, status, diff inspection, and rule explanation. A minor gap is that archived immutable snapshots are created but no tool lists or retrieves transaction history or past snapshots.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI coding agents and hosts to enforce deterministic repository boundaries via MCP, providing structured reads, supervised edits, snapshots, audits, and recovery with machine-readable evidence.
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Commit-time audit engine for AI coding agents. Scans git diffs with 24 audit rules, writes HMAC-signed tamper-evident audit history, and ships MCP tools for governance aggregation.
    104
    54
    MIT