Skip to main content
Glama

caddis — a Claude Code harness

License: MIT

caddis is a Claude Code harness — a plugin (plus a shared pool of skills, subagents, slash-commands, and hooks) that makes a single Claude Code session dramatically more capable and much harder to derail. It's agent-agnostic: the same pool is exported to other AI CLIs (Codex, Antigravity, Copilot), and CLAUDE.mdAGENTS.md are mirrors so every agent reads the same conventions.

Before you start

You need

Why

Claude Code, installed and signed in

caddis is a plugin for it

Python 3.11+ on PATH

the hooks and the cross-review tool are Python

Git

several commands read repository state

(optional) an API key for DeepSeek or GLM

only for cross-vendor review and the OSS lanes

Honest about the platform: caddis is developed and used daily on Windows with PowerShell. The hooks are pure Python and cross-platform, and the skills, commands and agents are plain markdown that work anywhere — but some launchers ship as both .ps1 and .sh, the deployment skill is Windows-specific, and the publishing machinery (sync.ps1) is PowerShell-only. Nothing here is hostile to macOS or Linux; it is simply less travelled, so expect rough edges and please report them.

Related MCP server: Shared Workspace MCP

Your first five minutes

claude plugin marketplace add saajunaid/caddis-plugin
claude plugin install caddis@caddis

Then, in a Claude Code session, confirm it actually loaded:

/caddis:version

If that prints a version, you are installed. From there, the shortest path to seeing what caddis is for:

Try this

What it does

/caddis:feature-plan add CSV export

writes a phased, TDD-structured plan to .caddis/plans/ — the durable spine the rest of the harness reads

/caddis:implement <plan>

executes that plan phase by phase, committing each, and stops only at a real boundary

/caddis:cross-review

has a different vendor's model review your diff, because a same-vendor reviewer shares your blind spots

/caddis:handoff

writes the resume doc, so the next session starts with zero re-discovery

Everything else is optional. If you only ever use feature-planimplementcross-review, you have most of the value.

This repository is the published marketplace mirror: it hosts the caddis and caddis-extras Claude Code plugins, the portable per-harness bundles under bundles/, and the shared pool. It is generated and pushed by the caddis authoring repo's exporter — issues are welcome here, but code changes land upstream and are synced in.


Install (Claude Code)

# 1. Register this repo as a plugin marketplace (once)
claude plugin marketplace add saajunaid/caddis-plugin

# 2. Install the core plugin (always-on, lean context)
claude plugin install caddis@caddis

# 3. (optional) Add the long-tail skill library — cloud/data/media/etc. Disabled by default,
#    so it costs zero always-on context until you enable it.
claude plugin install caddis-extras@caddis

Then, in any repo:

/caddis:setup-project-ai     # deploy the harness into the project

A normal working loop looks like:

/feature-plan      # (or /prd first) → writes .caddis/plans/<slug>.md, the durable spine
/implement         # executes the plan phase-by-phase, TDD, commit per phase
/ship              # express lane: commit → push → CI (hotfixes); feature work: /ship-pr then /ship-merge
/handoff           # ALWAYS end a session with this — writes the resume doc

The one habit that matters most: end every session with /handoff. It writes .caddis/relay.md, which is re-injected automatically at the next session start — you resume with zero re-discovery instead of a cold, forgetful session.

See USERGUIDE.md for the full command/skill/hook reference and the mental models.


What you get

  • Slash-commands/feature-plan, /prd, /implement, /tdd, /ship · /ship-pr · /ship-merge, /handoff, /kb, /digress · /resume, /cross-review, /usage-review, /mermaid-db · /excalidraw-db, /setup-project-ai, /migrate-dir.

  • Subagents — lean, own-context helpers: anchor (evidence-first verification), code-reviewer, preflight (plan-vs-codebase validation), tester, debug, codebase-audit, security-analyst, data-engineer, sql-expert, knowledge-transfer.

  • A four-layer memory model — session relay (relay.md), automatic Dream Memory (memory.jsonl), a per-repo knowledge base (.caddis/kb/ + DOC-MAP.md), and cross-repo memory.

  • Hooks & safety — a PreToolUse guard for secret/destructive writes, auto-lint on edit, and the SessionStart/Stop hooks behind relay + memory.

  • Tiered skills — the core dev set ships in caddis; the long tail (cloud, data, media, productivity) lives in caddis-extras, off by default.


Installing outside Claude Code (Codex, Antigravity, …)

The knowledge layer (skills + AGENTS.md conventions) works in any harness. Per-harness bundles are published under bundles/ and installed with caddis-init:

# from a checkout of this repo (the installer ships in plugin/scripts/)
python plugin/scripts/claudster_init.py --target codex        --dest /path/to/project
python plugin/scripts/claudster_init.py --target antigravity  --dest /path/to/project

Safe by design: a sha256 manifest tracks what the installer wrote; re-runs update only unmodified files, and anything you edited locally is reported as a conflict, never overwritten.


Repo layout

Path

What it is

.claude-plugin/marketplace.json

The marketplace manifest (caddis + caddis-extras)

plugin/

The core caddis Claude Code plugin (agents, commands, hooks, core skills)

plugin-extras/

The caddis-extras skill library (disabled by default)

bundles/

Portable per-harness exports (codex, antigravity) for caddis-init

.github/

The shared pool: skills, agents, prompts, instructions, tools

sync.ps1, export_runtime_resources.py, validate_pool.py

The build/sync machinery


A note on names

caddis was previously published as claudster (and, before that, this repo hosted the junai Copilot pipeline — see the pre-1.2 entries in CHANGELOG.md). Repos set up under the old name have a .claudster/ artifact dir; everything reads both .caddis/ and .claudster/ and writes where the repo already lives, so nothing breaks. Run /caddis:migrate-dir when you want a repo converted. The ~/.claudster/ user scope (keys, install records) is permanent.


License

MIT. The published plugin bundles (caddis / caddis-extras) carry the same license in their manifests.

Available Tools

11 tools
get_pipeline_statusB

Return current pipeline status and best-effort next transition summary.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It mentions 'best-effort' but does not explain what that implies, nor does it state whether the tool is read-only, requires special permissions, or has any side effects. The lack of detail on safety or impact is a significant gap.

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, well-structured sentence that immediately conveys the tool's purpose. It is concise but could be slightly more descriptive without losing efficiency.

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?

Given the presence of an output schema, the description need not enumerate return fields, but it should still clarify the scope of 'status' and 'next transition summary.' The description is minimally adequate but leaves ambiguity about what information is actually returned.

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 has zero parameters, and the schema covers 100% of (nonexistent) parameters. The description adds context about the output (status and next transition summary), which is sufficient. Baseline 4 is appropriate.

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 clearly states it returns current pipeline status and a best-effort next transition summary. It uses a specific verb and resource, but does not explicitly differentiate from sibling tools like notify_orchestrator or pipeline_reset, which are more action-oriented.

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?

No guidance is provided on when to use this tool versus its siblings, such as pipeline_init or set_pipeline_mode. There is no mention of prerequisites, typical workflow order, or situations where this tool is inappropriate.

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

notify_orchestratorC

Record stage completion and ask pipeline-runner for deterministic next transition.

ParametersJSON Schema
NameRequiredDescriptionDefault
artefact_pathNo
result_statusYes
result_payloadNo
stage_completedYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It mentions 'deterministic next transition' but lacks details on side effects, idempotency, auth needs, or effects of multiple calls.

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 that efficiently conveys the core action. However, it could include more detail without sacrificing conciseness.

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

Completeness1/5

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

Given the complexity (4 parameters, no annotations, output schema not described), the description is severely incomplete. It omits parameter meanings, return behavior, and usage context, making it insufficient for correct invocation.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description adds no meaning to parameters. It does not explain artefact_path, result_status, result_payload, or stage_completed, leaving the agent without necessary context.

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

Purpose5/5

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

The description clearly states the tool's purpose: recording stage completion and asking for the next transition. It uses specific verbs and resources, distinguishing it from siblings like get_pipeline_status or satisfy_gate.

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?

No guidance on when to use this tool versus alternatives. The implication is after stage completion, but no exclusions or comparisons with siblings like satisfy_gate or skip_stage.

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

pipeline_initA

Initialise a new pipeline state file from the template.

Requires confirm=True to proceed — this prevents accidental invocation mid-run. Use when starting a brand-new feature or hotfix pipeline.

If a pipeline-state.json already exists, it will be overwritten.

_bypass_active_check is an internal flag used by pipeline_reset to skip the active-pipeline guard. Do not set this from user-facing calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNofeature
confirmNo
featureYes
projectYes
_bypass_active_checkNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Discloses key behaviors: requires confirm=True, overwrites existing file, internal flag _bypass_active_check. No annotations provided, so description carries full burden and does well.

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?

Concise, with first sentence stating purpose followed by bullet-like points. No wasted words, easy to scan.

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?

Covers behavioral aspects, usage context, and internal flag. Output schema exists for return values. Missing parameter explanations slightly reduce completeness.

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%, requiring description to explain parameters. Only confirm and _bypass_active_check are explained; type, feature, project are not described despite being unclear.

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

Purpose5/5

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

Description clearly states 'Initialise a new pipeline state file from the template', a specific verb+resource. It distinguishes from siblings like pipeline_reset by noting it's for starting a brand-new pipeline.

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

Usage Guidelines4/5

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

Explicitly states when to use ('starting a brand-new feature or hotfix pipeline') and warns about accidental invocation. Does not explicitly list when not to use, but context is clear.

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

pipeline_resetA

Reset the current pipeline state and start a new pipeline run.

Identical to pipeline_init but semantically signals resetting an existing pipeline rather than creating a fresh one. Requires confirm=True. Use when a pipeline has closed and the user wants to start the next feature, or when explicitly restarting a failed/stale pipeline.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNofeature
confirmNo
featureYes
projectYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 discloses that it resets state, requires confirm=True, and is identical to pipeline_init in behavior. However, it does not detail what gets destroyed (e.g., logs, intermediate data) or authorization prerequisites.

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?

Four sentences covering purpose, distinction from init, and usage scenarios. No fluff, but the third sentence could be merged with the second for tighter structure.

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?

Given the tool's complexity (4 params, 2 required) and lack of annotation coverage, the description is adequate for the core purpose but falls short on parameter details. The output schema (not shown) may compensate, but description alone is incomplete.

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

Parameters1/5

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

Schema description coverage is 0%, and the description only mentions confirm=True requirement. It does not explain the meaning or purpose of project, feature, or type parameters beyond what the schema provides.

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

Purpose5/5

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

Clearly states verb (reset) and resource (pipeline state), and explicitly distinguishes it from the sibling tool pipeline_init by noting it is semantically different.

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

Usage Guidelines4/5

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

Provides clear scenarios for use (next feature after close, restarting failed/stale pipeline) and notes the requirement of confirm=True, but does not explicitly list when not to use or compare to other siblings beyond pipeline_init.

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

replay_stageA

Reset a single stage to not_started for re-execution without clearing the pipeline.

Only available in supervised mode — too risky for autopilot/assisted. Cannot replay a stage if a downstream stage has already completed (must replay the chain from that point).

Preserves _notes for continuity. Increments the stage's retry_count. Writes a record to _notes._replay_log[].

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonYesWhy the replay is needed.
stage_nameYesThe stage to replay (e.g. 'implement', 'tester').

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

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

No annotations provided, so description fully discloses side effects: preserves _notes, increments retry_count, writes to _notes._replay_log[], and the downstream constraint.

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?

Four sentences, front-loaded with the main action, then constraints, then effects. Every sentence adds value with no redundancy.

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

Completeness5/5

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

For a tool with 2 required parameters and an output schema, the description covers purpose, usage, constraints, and side effects completely.

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 coverage is 100% and schema descriptions already explain both parameters. The description adds little beyond the schema, only providing a slight example for stage_name and noting reason is logged.

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

Purpose5/5

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

The description clearly states the tool resets a single stage to not_started for re-execution without clearing the pipeline, distinguishing it from siblings like skip_stage and pipeline_reset.

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

Usage Guidelines5/5

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

Explicitly states it is only available in supervised mode and cannot be used if a downstream stage has completed, providing clear when-to-use and 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.

run_commandA

Execute a shell command in the workspace root and return stdout, stderr, exit code.

Use this for running tests (pytest, playwright), linters (black, ruff), formatters, build steps, or any other shell command the pipeline needs to execute hands-free. Intended for use by pipeline agents, not general chat.

Windows note: Do NOT use pytest-xdist parallel flags (-n auto, -n N) in commands passed to this tool. Worker subprocesses inherit stdout/stderr pipe handles and can prevent the tool from returning if a worker exits abnormally. Use plain pytest tests/ -q instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesShell command to run (e.g. ".venv/Scripts/pytest tests/ -q"). Executed in the workspace root directory with shell=True.
timeoutNoSeconds before the process is killed. Default 60s. Maximum 600s. Increase for slow test suites or Playwright runs, but prefer splitting large suites into smaller targeted runs.
max_output_charsNoTruncate combined output to this many characters to avoid flooding the context window. Default 20000.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden. It discloses that the tool returns stdout, stderr, and exit code, mentions output truncation via max_output_chars, timeout behavior, and a Windows-specific pitfall (pytest-xdist causing hangs). This provides adequate transparency for a command execution tool.

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?

The description is compact: a one-sentence purpose, a bullet-like usage list, and a short Windows note. It is front-loaded with the key action and output, with no extraneous text. Every sentence serves a purpose.

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

Completeness5/5

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

Given the tool's complexity (3 parameters, output schema exists), the description covers use cases, limitations (timeout, truncation), and a platform-specific warning. It is complete enough for an agent to understand invocation and potential issues.

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?

Schema coverage is 100%, so the baseline is 3. The description adds value by noting the Windows avoidance of pytest-xdist flags, which enriches the semantics of the 'command' parameter. The schema descriptions are detailed, and the tool description reinforces proper usage without redundancy.

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

Purpose5/5

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

The description explicitly states 'Execute a shell command in the workspace root and return stdout, stderr, exit code.' It uses a specific verb ('execute') and resource ('shell command'), clearly distinguishing it from sibling tools like get_pipeline_status and notify_orchestrator by stating its intended use for pipeline agents running tests, linters, etc.

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

Usage Guidelines4/5

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

The description provides clear guidance on when to use the tool: 'running tests, linters, formatters, build steps' and explicitly states it is 'not for general chat.' It includes a critical Windows note about avoiding pytest-xdist flags, which helps prevent failures. However, it does not explicitly contrast with alternatives among siblings.

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

satisfy_gateC

Set a supervision gate to satisfied (true).

ParametersJSON Schema
NameRequiredDescriptionDefault
gate_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It only states the action (set to satisfied) but omits side effects (e.g., idempotency, required state of the gate, failure conditions, or whether it's destructive). This is insufficient for safe agent invocation.

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 sentence with no redundancy. It efficiently conveys the core purpose. However, it sacrifices needed detail for brevity, but the dimension focuses on conciseness relative to content, which is well-structured.

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 mutation tool with no annotations and a single parameter, the description should cover basic usage context (e.g., what a gate is, what satisfied means, preconditions). It does not, leaving the agent underinformed despite the output schema existing.

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

Parameters1/5

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

The parameter 'gate_name' has no description in the schema (0% coverage). The tool description does not add any explanation of what 'gate_name' refers to, valid values, or constraints. This forces the agent to guess or rely on external knowledge.

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 'Set a supervision gate to satisfied (true)' clearly states the verb ('Set') and the resource ('supervision gate'). It implies a specific action that distinguishes it from siblings like 'get_pipeline_status' or 'skip_stage', but does not explicitly differentiate.

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?

No guidance on when to use this tool versus alternatives (e.g., when a gate should be satisfied, prerequisites, or when not to use it). The description is too minimal to provide usage context.

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

set_pipeline_modeB

Set the pipeline mode to supervised, assisted, or autopilot.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It only states the action without describing side effects, state requirements, or potential destructiveness. This is insufficient for an agent to understand implications.

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?

The description is a single sentence with no unnecessary words. It is front-loaded with the action and immediately lists the options, making it highly efficient.

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?

Given the tool's simplicity (one parameter) and the presence of an output schema, the description provides minimal but adequate context. However, it lacks explanation of the pipeline mode concept or when setting it is appropriate, which would be helpful for an agent navigating sibling tools.

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 input schema has 0% coverage (no descriptions or enums for the 'mode' parameter). The description explicitly lists the three acceptable values ('supervised, assisted, or autopilot'), compensating for the schema gap and adding meaning.

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 clearly states the action (set) and the resource (pipeline mode), and lists the three acceptable values (supervised, assisted, autopilot). It distinguishes from sibling tools like get_pipeline_status (read) or pipeline_init (initialization).

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?

No guidance is provided on when to use this tool versus alternatives, such as other pipeline control tools. There is no mention of prerequisites, context, or exclusion criteria.

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

skip_stageA

Skip the current pipeline stage and advance to the next one.

Use when a stage is not needed for this task (e.g. skipping security review for a docs-only change, or skipping prd for a small bug fix). Only the current stage can be skipped. Gates that the skipped stage would have satisfied are auto-approved.

Returns the result including new current_stage and progress_line.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonYes
stage_to_skipYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that gates are auto-approved for skipped stages and describes the return result including current_stage and progress_line, but lacks details on side effects.

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?

The description is very concise (5 sentences), front-loaded with the main action, and uses clear examples without unnecessary fluff.

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?

Given the presence of an output schema, the description adequately covers the tool's effect and return value, but could mention irreversibility or constraints like 'must be current stage' (already implied).

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 has 0% description coverage, and the description adds some context (e.g., reason for skipping) but does not explicitly define expected values for stage_to_skip or fully describe the reason parameter.

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

Purpose5/5

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

The description clearly states the action ('Skip the current pipeline stage and advance to the next one') and the resource, distinguishing it from siblings like replay_stage or satisfy_gate.

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

Usage Guidelines4/5

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

Provides explicit when-to-use examples (e.g., skipping security review for docs-only change) and notes that only the current stage can be skipped, but does not explicitly list when not to use it.

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

update_notesA

Merge key-value pairs into _notes in pipeline-state.json.

This is the ONLY correct way to write _notes.* fields. Do not use editFiles for _notes — all pipeline-state writes must go through MCP tools to maintain a single authoritative writer and prevent concurrent-write conflicts.

Performs a shallow merge at the top level of _notes: each key in updates replaces the corresponding key in _notes (or creates it if absent). Keys not present in updates are left unchanged.

ParametersJSON Schema
NameRequiredDescriptionDefault
updatesYesDictionary of key-value pairs to merge into _notes. Example: {"handoff_payload": {"required_skills": ["pega-read"], "upstream_artefact": ".github/plans/feature.md"}}

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description fully explains behavior: a shallow merge at the top level, key replacement or creation, and leaving other keys unchanged. This provides complete transparency for a write operation.

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?

Four sentences, each purposeful: first states action, second-third give usage guidance, fourth explains behavior. No wasted words; front-loaded with the main purpose.

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

Completeness5/5

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

For a simple tool with one parameter, the description covers purpose, usage, merge behavior, and why to use it over alternatives. Output schema exists, so return value explanation is not needed. Contextual completeness is excellent.

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?

Schema coverage is 100% and already documents the 'updates' parameter well. The description adds value by providing an explicit example and clarifying the shallow merge semantics, justifying a score above baseline 3.

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

Purpose5/5

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

The description clearly states the tool merges key-value pairs into _notes in pipeline-state.json, with a specific verb and resource. It distinguishes itself from sibling tool editFiles by asserting it is the ONLY correct way to write _notes fields.

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

Usage Guidelines5/5

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

Explicitly tells when to use (for writing _notes fields) and when not to (do not use editFiles for _notes). Explains the rationale: maintaining a single authoritative writer and preventing concurrent-write conflicts.

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

validate_deferred_pathsC

Validate deferred item file paths and attempt path correction where possible.

ParametersJSON Schema
NameRequiredDescriptionDefault
deferred_itemsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

Without annotations, the description must fully disclose behavior. It mentions validation and path correction but omits side effects (e.g., whether corrections modify data), failure modes, and outcomes, leaving significant ambiguity.

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 single sentence is concise and front-loaded with the action, but it is too brief to provide structured detail. No wasted words, but lacks substance.

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?

Given the tool's potential complexity (validation and correction of file paths), the description is incomplete. It does not explain what validation entails, correction conditions, or return value, even though an output schema exists.

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%, so the description should explain parameter semantics. It references 'deferred item file paths' but the parameter is an array of generic objects, and the description does not specify expected properties or structure, adding minimal value.

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+resource: 'validate deferred item file paths' and 'attempt path correction'. It clearly distinguishes from sibling tools like get_pipeline_status or pipeline_init, which serve different purposes.

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?

No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or context for invocation. The description lacks usage recommendations.

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. Dates show when Glama detected each change.

  1. 11 tool updatesv0.2.18
    • First observedget_pipeline_status
    • First observednotify_orchestrator
    • First observedpipeline_init
    • First observedpipeline_reset
    • First observedreplay_stage
    • First observedrun_command
    • First observedsatisfy_gate
    • First observedset_pipeline_mode
    • First observedskip_stage
    • First observedupdate_notes
    • First observedvalidate_deferred_paths

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct pipeline function (init, reset, status, orchestration, stage manipulation, command execution, notes, path validation). No two tools overlap in purpose.

Naming Consistency5/5

All tools use consistent snake_case verb_noun pattern (e.g., get_pipeline_status, notify_orchestrator, replay_stage). No mixing of conventions.

Tool Count5/5

11 tools is well-scoped for a pipeline management server, covering all core operations without being excessive or sparse.

Completeness4/5

Tools cover the full pipeline lifecycle and key operations. Minor gap: no tool for listing pipeline stages or history, but the set is largely complete.

Maintenance

ActivityActive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/saajunaid/caddis-plugin'

If you have feedback or need assistance with the MCP directory API, please join our Discord server