Skip to main content
Glama
io.github.koten-ai/zeus-dev-helper

io.github.koten-ai/zeus-dev-helper

Official
by koten-ai

inject_business_rules

Idempotent

Writes named business rules into a Zeus app's config.json; supports removing or replacing existing rules.

Instructions

Write named business rules into the current Zeus app.

Omit app_dir and sample to use the current directory when it is a Zeus app, otherwise the checklist sample (the beer app just created). ask_user means ask and wait, then call again. An explicit path that is not a Zeus app returns not_a_zeus_app and does not write. wire_required means the app builds ClientSettings itself. Pass settings.rules into that constructor. This tool writes config.json only.

Input Schema

NameRequiredDescriptionDefault
rulesNo
removeNo
sampleNo
app_dirNo
replaceNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.7.11

TDQS

B3/5.0
Behavior3/5

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

Good added context beyond annotations: write scope is bounded ('writes config.json only'), the not_a_zeus_app refusal is described as writing nothing, and the wire_required follow-up tells the agent to pass settings.rules into a constructor. However, the annotations declare destructiveHint=false while the tool exposes 'remove' and 'replace' semantics that the description never discloses, which is a real transparency gap for a mutating tool.

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

Conciseness3/5

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

The purpose is front-loaded and there is no filler, but the text is dense with unexplained control-flow tokens ('ask_user', 'wire_required', 'not_a_zeus_app') that read like internal protocol labels. Several sentences parse as fragments, making it slower to act on than its length suggests.

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?

An output schema exists so return values need not be explained, but for a five-parameter mutation tool with zero schema descriptions the omission of rules/remove/replace semantics is a substantive hole. An agent can trigger the default path but cannot confidently perform a targeted rule write or removal.

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

Parameters2/5

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

Schema description coverage is 0% across five parameters, so the description must carry that load and does not. It touches only app_dir and sample (default-resolution behavior) and says nothing about the central 'rules' object, 'remove' list, or 'replace' flag, leaving the agent to guess the write-vs-merge semantics.

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 opening sentence gives a specific verb and resource ('Write named business rules') and a clear target ('the current Zeus app'), which is distinctive from siblings like scaffold_app or bind_contract. It does not explicitly name an alternative tool, so it falls just short of full disambiguation.

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. The description explains default resolution (omit app_dir and sample) and how to react to 'ask_user' and 'wire_required' statuses, but it never states when an agent should choose this tool over siblings such as next_step or use_sample, nor when not to call it.

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