Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DECIDEONCE_CONFIGYesPath to the decideonce.toml configuration file.
DECIDEONCE_PROJECTNoProject name used to select the SQLite store under <data_dir>/<project>/decide.db.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
do_analyzeA

Find decision points in a workflow. Input: {workflow: {kind, text|path}, [traces: {path}], [candidates]}. First call returns rubric + candidate_schema + hints; with candidates, returns score and verdict per candidate.

do_registerC

Create or update a decision point (§1.1 fields at top level: point_id*, workflow*, question*, kind, options*, context_fields*, required_fields, rules, irreversible, data_class, target_error). Returns the stored point + a call snippet to paste into the skill. With type: workflow, registers a workflow record (downgrade_requires, check, run_model, cheap_model).

do_decideB

Ask for a decision. Input: {point_id*, context*, [teacher_cost]}. Returns {decision_id, mode, choice, allowed_options, probabilities, confidence, threshold, instruction}. mode teacher: decide yourself, then do_record. mode auto/rule: use choice.

do_recordB

Record the teacher's choice. Input: {decision_id*, choice*, [teacher_cost]}. choice must be in allowed_options.

do_outcomeC

Attach the real outcome. Input: {decision_id*, [ok], [correct_choice], [note]}. Either ok or correct_choice may be given. With plan_id + ok, records a user check result for a plan.

do_trainA

Train the decision model for a point. Input: {point_id*, [dry_run], [confirm], [training_free_confirmed], [force]}. Local path: trains the JEV probe, returns metrics + model card. Tiered path with a trainer: dry_run shows the estimate and joining points; confirm launches the job (smoke first, then the paid-gated full job); repeat calls poll status.

do_promoteB

Move a point: {point_id*, phase* (collect|shadow|serve|paused), [confirm]}. shadow needs a trained probe (local_legacy) or the hosted key + a budget + remote_ok (tiered, no training); serve needs all §6.4 checks plus confirm:true (ask the user first). With plan_phase, moves plan phases (§15.6); with workflow + downgrade, enables downgrade after a passed trial (§15.8).

do_reportC

Per-point metrics. Input: {[point_id], [format json|md]}. Agreement, coverage, auto share, audits, savings, drift, promotion blockers. With workflow, the one-turn workflow report (§15.8).

do_exportA

Export labelled rows as JSONL. Input: {point_id*, path*, [confirm]}. Private points need confirm:true.

do_extractB

Extract decision labels from a one-turn transcript (two calls). Call 1: {transcript|path|transcript_id, [contributor_off_confirmed], [extractor_local]} or {transcript_id, pass: 2} for the audit pass; returns transcript_id + extraction_id + points + record_schema. Call 2: {extraction_id*, extractor*, records*, [new_points]}; returns accepted + rejected (one code per check) + jev_disagreements.

do_plan_runB

Plan one-turn work. Input: {workflow*, input*, context*, [context_source], [run_model], [cheap_model], [trial], [pilot_force], [pilot_mode], [task_ref]}. Returns the recommendation (inject/downgrade/none) + prompt_addendum or would_have.

do_plan_resultB

Record a planned run's result. Input: {plan_id*, [transcript], [final_output], [cost], [conflict], [trial_id], [pair_id], [arm]}. Runs the workflow check when deterministic.

do_autopilot_statusB

Autopilot state (read-only). Returns the approved and current [autopilot] hashes, the eligible points, and per point its status (on|off|blocked(reason)) and the gate it waits for.

dm_analyzeB

Find decision points in a workflow. Input: {workflow: {kind, text|path}, [traces: {path}], [candidates]}. First call returns rubric + candidate_schema + hints; with candidates, returns score and verdict per candidate.

dm_registerC

Create or update a decision point (§1.1 fields at top level: point_id*, workflow*, question*, kind, options*, context_fields*, required_fields, rules, irreversible, data_class, target_error). Returns the stored point + a call snippet to paste into the skill. With type: workflow, registers a workflow record (downgrade_requires, check, run_model, cheap_model).

dm_decideB

Ask for a decision. Input: {point_id*, context*, [teacher_cost]}. Returns {decision_id, mode, choice, allowed_options, probabilities, confidence, threshold, instruction}. mode teacher: decide yourself, then do_record. mode auto/rule: use choice.

dm_recordC

Record the teacher's choice. Input: {decision_id*, choice*, [teacher_cost]}. choice must be in allowed_options.

dm_outcomeC

Attach the real outcome. Input: {decision_id*, [ok], [correct_choice], [note]}. Either ok or correct_choice may be given. With plan_id + ok, records a user check result for a plan.

dm_trainA

Train the decision model for a point. Input: {point_id*, [dry_run], [confirm], [training_free_confirmed], [force]}. Local path: trains the JEV probe, returns metrics + model card. Tiered path with a trainer: dry_run shows the estimate and joining points; confirm launches the job (smoke first, then the paid-gated full job); repeat calls poll status.

dm_promoteB

Move a point: {point_id*, phase* (collect|shadow|serve|paused), [confirm]}. shadow needs a trained probe (local_legacy) or the hosted key + a budget + remote_ok (tiered, no training); serve needs all §6.4 checks plus confirm:true (ask the user first). With plan_phase, moves plan phases (§15.6); with workflow + downgrade, enables downgrade after a passed trial (§15.8).

dm_reportC

Per-point metrics. Input: {[point_id], [format json|md]}. Agreement, coverage, auto share, audits, savings, drift, promotion blockers. With workflow, the one-turn workflow report (§15.8).

dm_exportA

Export labelled rows as JSONL. Input: {point_id*, path*, [confirm]}. Private points need confirm:true.

dm_extractA

Extract decision labels from a one-turn transcript (two calls). Call 1: {transcript|path|transcript_id, [contributor_off_confirmed], [extractor_local]} or {transcript_id, pass: 2} for the audit pass; returns transcript_id + extraction_id + points + record_schema. Call 2: {extraction_id*, extractor*, records*, [new_points]}; returns accepted + rejected (one code per check) + jev_disagreements.

dm_plan_runB

Plan one-turn work. Input: {workflow*, input*, context*, [context_source], [run_model], [cheap_model], [trial], [pilot_force], [pilot_mode], [task_ref]}. Returns the recommendation (inject/downgrade/none) + prompt_addendum or would_have.

dm_plan_resultC

Record a planned run's result. Input: {plan_id*, [transcript], [final_output], [cost], [conflict], [trial_id], [pair_id], [arm]}. Runs the workflow check when deterministic.

dm_autopilot_statusB

Autopilot state (read-only). Returns the approved and current [autopilot] hashes, the eligible points, and per point its status (on|off|blocked(reason)) and the gate it waits for.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.7/5.0

Scored across 26 tools

Disambiguation1/5

Every tool exists twice under two different prefixes (dm_export/do_export, dm_decide/do_decide, etc.), and the paired descriptions are verbatim identical, so an agent has no basis for choosing one over the other. Thirteen indistinguishable duplicate pairs make misselection essentially guaranteed.

Naming Consistency2/5

Each individual name follows a readable verb_noun pattern, but the surface mixes two parallel prefix conventions (dm_ vs do_) for the exact same operations. The result is a duplicated, inconsistent namespace rather than one predictable scheme.

Tool Count2/5

There are 26 tools, but only 13 unique operations — half the surface is redundant duplication, pushing the count above the 25+ threshold. The underlying toolset (~13) would be reasonably scoped if the duplicates were removed.

Completeness4/5

The domain lifecycle is well covered: analyze, register, decide, record, outcome, train, promote, report, export, extract, plus plan_run/plan_result and autopilot status. Minor gaps exist (no delete/deregister point or unregister workflow operation), but core workflows have no dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues