One string is quietly 18% down.
Solar faults don't announce themselves. A dirty row or a hot cell just makes less power, all day, until someone looks. The plant's meters notice first.
- Who asks
- The plant's monitoring system spots the drop. The owner's operations agent posts each task under a mandate, and the owner answers for every one.
- Who does it
- A drone looks. A cleaning robot cleans. A licensed technician replaces panels. Each one only when the step before calls for it.
- Evidence only
- The string inverters, with signed meter readings, and an irradiance sensor that says whether the sky was really clear.
- Evidence
- Thermal images and a flight log, the robot's run log, the technician's capture on site, and the meters.
- Who pays
- The owner, step by step: $60 for the drone, cleaning by the run, $280 for the technician plus the panel. Example figures.
- You get
- A string back to full output, and a proof that says so in kilowatts, not adjectives.
A photo shows a clean panel. The meter shows it's making power again.
A device asks, an agent decides, and a drone, a robot or a person does the work, each picked by what the step before it found. Every fix is checked the same way: by what the string produces once the sky is clear.
Helios Flats and string 14B are fictional. Prices are illustrative.
The finding picks the fix.
The drone doesn't fix anything. It finds out what's wrong, and that finding decides who goes next: a robot for dirt, a licensed technician for a hot spot or a cracked panel. Every branch ends at the same check.
In this example the finding was a hotspot, so § 04 and the receipt follow the technician's branch. The hero above follows the cleaning robot's.
From a dip on a chart to power back, in six steps.
Cheapest look first, then the fix the finding calls for. One workflow per string, from the first alarm to the last release.
- 01
Detect
String 14B runs 18% below its neighbours for more than two hours of measured clear sky. The watch order fires once, for this string.
- 02
Look
A drone flies a thermal pass over 14B. It doesn't fix anything. It comes back with a finding: soiling, a hotspot or a crack.
- 03
Branch
The finding picks the next task. Dirt goes to the cleaning robot. A hotspot or a crack goes to a licensed technician, with the panel as goods.
- 04
Fix
The robot runs the row. Or the technician locks out the string and swaps panel 14B-07.
- 05
Verify by output
Over the next two hours of clear sky, 14B must be back within 3% of its neighbours, on signed meter data.
- 06
Hold back
For a panel swap, 85% is paid on accept. The last 15% follows after seven days with no repeat.
Paid on kilowatts, not photos.
A clean-looking panel can still be broken. The string's own meters settle it: back within 3% of its neighbours, over two hours of measured clear sky, and still there a week later.
| Check | How | Evidence | By | Result |
|---|---|---|---|---|
| The right string | The drone's flight log covers 14B. The technician's GPS and the panel's QR code put them at 14B-07. | Telemetry + capture | Rule | Passed |
| What's wrong | The thermal image shows a hotspot on panel 14B-07, not dirt and not a shadow. | Drone capture | Model | Passed |
| Locked out first | Isolator open, lock on and 0 V measured before the panel came off. | Capture + attested device | Rule | Passed |
| Output back | String 14B at 97% or more of its neighbours (9,700 bps). | Attested device | Rule | Passed |
| The sky was clear | Irradiance steady above the threshold for the whole two-hour window. | Attested device | Rule | Passed |
| It held | No repeat deviation for seven days. This one releases the last 15%. | Attested device | Rule | Passed |
The model only reads the thermal image to pick the branch. It never decides whether the repair worked: the meters do, under a versioned policy.
§ 05 · Electrical safety
Live strings, licensed hands.
A string in sunlight is live. The drone and the robot never touch anything electrical. Panel swaps go only to a technician with a checked licence, and only after the string is locked out, tagged and measured dead, all of it recorded before the first bolt comes out.
- Drone
- Looks only. Certified pilot, airspace checked
- Robot
- Panel glass only. No electrical work
- Technician
- Licensed electrician, licence checked
- Live work
- Lock-out and tag-out recorded first
- Spend
- Up to $1,500 per fault without a person
- Panels
- Goods, billed apart from labour
Its hash goes into every proof from this site.
What needs care.
Measuring power is easy. Measuring it fairly, on the right day, around live equipment, takes a few rules.
Clouds aren't failures
A cloudy afternoon looks like a failed repair, and a sunny one can flatter a bad one. Clear sky is measured by an irradiance sensor, not assumed.
Live strings, licensed hands
A string in sunlight is live, isolator or not. Electrical work goes to licensed technicians only, after lock-out and tag-out, and never to the marketplace.
One string, one alarm
Output wobbles. The watch order fires only after two hours of clear-sky deviation, and only one workflow can be open per string at a time.
The panel is goods
Hardware is billed separately from labour, so a $280 repair and a $200 panel never blur in the proof. Warranty swaps are tracked the same way.
Drones fly by the rules
The pilot's certification is a checked capability, and airspace rules are checked before the flight. The drone looks. It never touches.
A different fault is a new task
If 14B drops again for another reason, that's a new workflow with its own finding, not a clawback from the technician who fixed the last one.
A receipt measured in kilowatts.
The owner gets a proof per fault: what the meters saw, what the drone found, who fixed it and what the string made afterwards. Rolled up, it's a quarter's worth of uptime a lender can check.
Dollars pay the technician, part now and part after the week holds. Nobody needs $PORT to post a repair or get paid for one.
- Task
- Replace panel 14B-07 · hotspot
- Requested by
- O&M agent, for the site owner
- Triggered by
- Plant monitoring · 14B −18%
- Performed by
- Human · licensed technician
- Evidence
- Signed meters, thermal, on-site capture
- Output
- 99.1% of peers · 2 h clear sky
- Policy
- solar-output-recovery v1.0
- Decision
- Accepted
- Paid
- $238 on accept · $42 after 7 days
STATUS: FINAL
The panel is goods, invoiced separately. The pay here is labour only.
For builders.
A WATCH standing order on the string, an escalation that branches on FINDING:SOILING or FINDING:HOTSPOT, and a MEASUREMENT condition on ATTESTED_DEVICE meter data, so the proof can reach the top assurance level.
PhysicalTaskSpec · panel swapTAP v0.3 draft · preview, subject to change
{
"schema": "teleport.tap.physical-task",
"version": "0.3.0-draft",
"title": "Replace hotspot panel 14B-07 and restore string output",
"category": "REPAIR",
"requester": {
"requesterType": "AI_AGENT",
"principal": { "principalType": "ORGANIZATION" },
"mandateId": "mdt_helios_om_v2"
},
"trigger": { "type": "TASK_OUTCOME", "sourceRef": "task_helios_14b_thermal_0412",
"finding": "HOTSPOT" },
"relations": {
"workflowId": "wf_helios_14b_20261101",
"followUpOf": "task_helios_14b_thermal_0412"
},
"fulfillment": {
"mode": "DIRECT",
"designatedPerformers": [{ "fleetId": "contractor_brightline_om", "actorType": "HUMAN" }]
},
"actorRequirement": {
"permittedActorTypes": ["HUMAN"],
"requiredCapabilities": [
{ "capability": "LICENSE.ELECTRICIAN", "attributes": { "verified": "ISSUER_VERIFIED" } }
]
},
"goods": [{ "sku": "panel:std_450w", "qty": 1, "billedSeparately": true }],
"completionConditions": [
{ "type": "STATE", "id": "locked_out", "subjectRef": "isolator:14B",
"property": "state", "expected": "LOCKED_OUT", "verificationMethod": "DETERMINISTIC" },
{ "type": "MEASUREMENT", "id": "output_back", "metric": "output_vs_peers", "unit": "bps",
"min": 9700, "window": { "durationMs": 7200000, "gate": "irradiance:clear_sky" },
"verificationMethod": "DETERMINISTIC", "minimumEvidenceOrigin": "ATTESTED_DEVICE" },
{ "type": "DURATION", "id": "no_repeat", "eventRef": "watch:helios:14B:deviation",
"minMs": 604800000, "verificationMethod": "DETERMINISTIC" }
],
"safety": { "policyId": "dc-live-work-loto-v1" },
"economics": {
"performerPayUsdCents": 28000,
"holdback": { "pct": 15, "releaseCondition": "no_repeat", "windowSeconds": 604800 },
"settlementAssets": ["FIAT"],
"requesterPayment": { "method": "MANDATE_BUDGET", "maxSpendUsdCents": 150000 }
},
"popw": { "required": true, "assurancePolicyId": "HIGH_ASSURANCE", "proofTiming": "WORKFLOW" }
}Proposed additions this use case surfaced
- Findings that branch
- An escalation that picks its next template from the finding: FINDING:SOILING to the robot, FINDING:HOTSPOT to a licensed technician, each with its own budget.
- Verification by output
- A MEASUREMENT against a peer group, gated by an environmental reading such as irradiance. No photo can stand in for it.
- Holdback on durability
- Most of the pay on accept, the rest when a no-repeat window holds. In the v0.3 draft; this case pairs it with findings.
- Goods kept apart
- Panels and parts as goods line items, so labour pay and hardware cost never mix in the proof or the receipt.
- Fault rollups
- A quarterly proof of every deviation and every verified fix, per string, for owners and the lenders behind them.
Example economics: drone $60, cleaning by the run, technician $280 with 15% held for seven days, the panel billed as goods. Developer docs
Solar owners and O&M providers
Is every string pulling its weight?
Tell us about your sites. We're working with design partners on fault-to-fix workflows that prove themselves.