Skip to main content
Glama

Change the electrical project

edit_electrical
Destructive

Assign circuits, voltage, cable routes, and Wi-Fi settings to points in an electrical and telecom project, with each action as one undoable step.

Instructions

Change the electrical and telecom project (electrical reads it); each action is one undoable step. assign {ids, circuit, va?}, or circuits {"C1": [ids], …} for the whole division, writes circuits, power and volts (127|220; a 220 V outlet makes its circuit 220 V) on points; on automation points it takes standby_w, on a dimmer max_w, on a panel modules. voltage {volts?, short_ka?, earthing?}. cable {kind, pts} draws a run by hand (with ids or circuit instead of pts it is a route). route {kind, ids? | circuit?, via?: ceiling|floor|wall|tape, cat?, from?} lays the run as it is built, from the nearest panel along and inside the walls, replacing the earlier run of the circuit, and answers {via, suggested, length_m, by_premise_m, bends, materials: [[item, qty, unit]]}; without via it takes the cheapest premise that can be built. via=tape is surface flat wiring, power only (rules topic=electrical). wifi {ids, standard?, poe?, uplink?, bands?} writes those on access points.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
vaNoPower per point, VA, instead of the norm's default
catNoFor `route` of data: `cat5e`, `cat6` (default) or `cat6a`
idsNoPoint ids for `assign`
poeNoFor `wifi`: whether `ids` are fed by their data cable (`PoE`)
ptsNoFor `cable`: the run's points `[[x,y], …]`, cm
viaNoFor `route`: where the run passes, `ceiling` (slab, dropping in the walls), `floor` or `wall`. Omitted: the cheapest that can be built
bandNoFor `wifi`: the band the suggestion aims at, `2.4`, `5` (default) or `6`
fromNoFor `route`: the panel it starts from; default the nearest of its kind
kindNoFor `cable` and `route`: what the run carries
bandsNoFor `wifi`: the bands they radiate when fewer than their generation's, e.g. `2.4,5` for a dual-band Wi-Fi 7
max_wNoFor `assign` on a dimmer: the most lighting it takes, W
voltsNoSupply voltage, V; with `assign`, the points' own, 127 or 220
actionNo`assign` puts `ids` on `circuit` (empty takes them off), `va` sets their power; `voltage` is the supply, 127 or 220 V
uplinkNoFor `wifi`: the access points' wired uplink, Gbps (1, 2.5, 5, 10)
circuitNoCircuit name, e.g. `C3`
modulesNoFor `assign` on a distribution panel: the DIN modules it holds
circuitsNoFor `assign`: the whole division at once, `{"C1": [ids], "C2": [ids]}`, in one undoable step
earthingNoFor `voltage`: the earthing scheme, `TN-S`, `TN-C-S` or `TT`
short_kaNoFor `voltage`: the presumed short-circuit current at the delivery point, kA, as the utility informs it
standardNoFor `wifi`: the access points' standard, `wifi5`, `wifi6`, `wifi6e` or `wifi7`, written on `ids`
standby_wNoFor `assign` on automation points: standby consumption, W

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
vNo
okNo
idsNo
revNo
runNo
viaNo
goneNo
tapeNo
textNo
addedNo
bendsNo
changedNo
coverageNo
length_mNo
warningsNo
materialsNo
suggestedNo
propertiesNo
annotationsNo
by_premise_mNo
access_pointsNo
replaced_drawnNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed29 schema fields changedv3.0.0
    • changedInput schema / $defs / Point2 / description
      Previous value: -"[x, y] in centimeters; x grows right, y grows down"New value: +"[x, y] cm"
    • changedInput schema / properties / action / description
      Previous value: -"`assign`: put `ids` on `circuit` (empty takes them off), with `va` to set their power; `voltage`: the supply, 127 or 220 V; `cable`, `route` or `wifi`"New value: +"`assign` puts `ids` on `circuit` (empty takes them off), `va` sets their power; `voltage` is the supply, 127 or 220 V"
    • addedInput schema / properties / action / enum
      Added value: +[
      +  "assign",
      +  "voltage",
      +  "cable",
      +  "route",
      +  "wifi"
      +]
    • removedInput schema / properties / ids / default
      Removed value: -[]
    • changedInput schema / properties / kind / description
      Previous value: -"For `cable`: what the run carries, `power`, `data` or `tv`"New value: +"For `cable` and `route`: what the run carries"
    • addedInput schema / properties / kind / enum
      Added value: +[
      +  "power",
      +  "data",
      +  "tv"
      +]
    • removedInput schema / properties / pts / default
      Removed value: -[]
    • removedOutput schema / properties / access_points / description
      Removed value: -"action=wifi: [id, standard, bands, uplink]"
    • removedOutput schema / properties / added / description
      Removed value: -"Ids added, or their count"
    • removedOutput schema / properties / annotations / description
      Removed value: -"Annotation switches {from, to}"
    • removedOutput schema / properties / bends / description
      Removed value: -"Bends along the run"
    • removedOutput schema / properties / by_premise_m / description
      Removed value: -"Total metres by route: {ceiling, floor, wall}; a reason instead where one is impossible"
    • removedOutput schema / properties / changed / description
      Removed value: -"{id, from, to} per element changed; a count past 20"
    • removedOutput schema / properties / coverage / description
      Removed value: -"action=wifi: [room, band, median, worst, good, grade]"
    • removedOutput schema / properties / gone / description
      Removed value: -"Ids removed, or their count"
    • removedOutput schema / properties / ids / description
      Removed value: -"Ids created or touched"
    • removedOutput schema / properties / length_m / description
      Removed value: -"Metres: {horizontal, vertical, total}"
    • removedOutput schema / properties / materials / description
      Removed value: -"Bill of materials: [item, quantity, unit]"
    • removedOutput schema / properties / ok / description
      Removed value: -"Always true"
    • removedOutput schema / properties / properties / description
      Removed value: -"Project properties changed"
    • removedOutput schema / properties / replaced_drawn / description
      Removed value: -"Hand-drawn lines this run replaced"
    • removedOutput schema / properties / rev / description
      Removed value: -"Plan revision"
    • removedOutput schema / properties / run / description
      Removed value: -"The run: <system>:<circuit|all|ids>"
    • removedOutput schema / properties / suggested / description
      Removed value: -"Route: the one the rules suggest; action=wifi: where access points would go"
    • removedOutput schema / properties / tape / description
      Removed value: -"via=tape: the tape light system"
    • removedOutput schema / properties / text / description
      Removed value: -"The reply as written"
    • removedOutput schema / properties / v / description
      Removed value: -"Plan version written to, when there are several"
    • removedOutput schema / properties / via / description
      Removed value: -"Where it runs: ceiling, floor, wall (or tape)"
    • removedOutput schema / properties / warnings / description
      Removed value: -"Data points past 90 m"
  2. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false. The description adds real value beyond that: 'each action is one undoable step' (mitigating the destructive hint) and 'replacing the earlier run of the circuit' (spelling out what is destroyed). It also discloses the `route` return shape, which is unusual given destruction semantics.

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?

Front-loaded with purpose and every clause carries signal — no filler. However it is delivered as one dense semicolon-heavy paragraph covering five actions, which is harder to parse than the same content segmented by action; brevity is achieved at some cost to scannability.

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?

For a 21-parameter, five-action mutation tool with an output schema, the description covers every action, the conditional parameter mappings, and the destruction/undo model. Remaining gaps (permissions, failure modes, whether undo is guaranteed for every action) are minor against a rich schema and existing annotations.

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 description coverage is 100%, so the baseline would be 3, but the description adds cross-parameter logic the schema can't express: 'a 220 V outlet makes its circuit 220 V', 'on automation points it takes standby_w, on a dimmer max_w, on a panel modules', and the ids/circuit vs pts distinction. These conditional applicability rules are genuine added meaning.

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?

States a specific verb and resource ('Change the electrical and telecom project') and then enumerates the five concrete mutations (assign, voltage, cable, route, wifi). The resource is distinct from siblings like edit_lighting, edit_plumbing, edit_walls, so an agent can route here without opening a schema.

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?

Gives strong internal routing: 'assign {ids, circuit}' vs. 'circuits {...} for the whole division', and 'with ids or circuit instead of pts it is a route', plus the fallback 'without via it takes the cheapest premise'. It even points to the `rules` topic=electrical for surface wiring constraints. It stops short of explicit when-not-to-use or sibling alternatives, so it earns a 4 rather than 5.

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