Developer fix request
If a new rule reads the on-call engineer’s acknowledgement and your agent doesn’t send it, the Developer gets a fix request naming the field.
Telecom & IT Operations · TypeScript SDK
Your operations agent wants to restart a service at 2 a.m. The TypeScript SDK checks the change against your operations rules first, and a person can stop it from the portal while it runs.
The remediation simulator sends these. Most come from your incident tool and change calendar.
| Fact | What it holds |
|---|---|
service_tier | core_routing, billing_platform, customer_portal, or internal_tooling. |
proposed_action | restart_service, rollback_config, failover_region, or scale_out. |
blast_radius_customers | Customers the change could affect. |
incident_severity | sev1, sev2, or sev3. |
change_freeze_active | True during a change freeze. |
approval_ticket_linked | True when an approved change ticket is attached. |
execution_window | business_hours or maintenance_window. |
The callback receives a signal and throwIfStopped. Call it between steps so a stop from the portal takes effect before the next one starts.
TypeScript · @veriproof/sdk-core
import { Veriproof } from '@veriproof/sdk-core';
const veriproof = Veriproof.fromEnv();
const result = await veriproof.govern(
'remediation.execute',
change,
async ({ input, invocationId, signal, throwIfStopped }) => {
for (const step of runbook.steps(input)) {
throwIfStopped();
await step.run({ idempotencyKey: invocationId, signal });
}
return runbook.summary(input);
},
{
facts: {
service_tier: change.serviceTier,
proposed_action: change.action,
blast_radius_customers: change.affectedCustomers,
incident_severity: incident.severity,
change_freeze_active: calendar.freezeActive(),
approval_ticket_linked: Boolean(change.ticketId),
execution_window: calendar.windowFor(new Date()),
},
},
);
if (result.status === 'cancelled_by_directive') {
await incidents.note(change.id, 'Stopped from the portal');
}When a stop arrives mid-change, the status is cancelled_by_directive and execution says whether steps may already have run, so you know what to roll back.
Why TypeScript here: Plenty of incident automation and chat-ops tooling runs on Node.js, and the SDK passes an abort signal straight into your runbook steps.
A stop can arrive after the first step has run. Because the callback checks throwIfStopped() between steps, the rest never start, and the result tells you what may already have changed.
Run any of these in the remediation simulator. Run remediation simulator
| Result | When | What your code sees | Who picks it up |
|---|---|---|---|
| Allowed | A scale-out inside the maintenance window. | The runbook runs. The record keeps the change facts and the rule that allowed it. | The Business Owner sees how much the agent resolves on its own. Auditors read the record inside an engagement. |
| Sent to a person | A billing rollback during business hours that affects 8,500 customers. | The change waits for a manager to decide. | The operations manager with that authority, in the VeriProof Inbox, by email, or in Slack or Microsoft Teams, with reminders and escalation. |
| Stopped | A SEV-1 restart during a change freeze with no approval ticket linked. | The status is blocked and no runbook step runs. | The Governance Engineer sees the freeze rule that stopped it. |
Developer fix request
If a new rule reads the on-call engineer’s acknowledgement and your agent doesn’t send it, the Developer gets a fix request naming the field.
Changing the rule
Loosening the freeze for SEV-1 incidents is a rule change. Run it in Shadow against real incidents first. For the production agent, an administrator or compliance officer approves it, not the engineer who wrote it.
For your business owner
The telecom page explains what the agent can take on and how its decisions are defended.
Read the telecom business caseDocs
Install @veriproof/sdk-core, configure the key, and look up industry values for Telecom & IT Operations.
Run the SEV-1 restart in the remediation simulator and see the change stop before anything restarts.