AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified Apache-2.0 Self-run

Decision Handler

skill-knoxops-open-devops-skills-decision-handler · by KnoxOps

>-

No reviews yet
0 installs
17 views
0.0% view→install

Install

$ agentstack add skill-knoxops-open-devops-skills-decision-handler

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-knoxops-open-devops-skills-decision-handler)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Decision Handler? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Input Parameters

| Name | Type | Required | Description | |------|------|----------|-------------| | rundir | string | Yes | Workspace root directory for file passing between agents | | taskid | string | Yes | Task ID for progress tracking | | sshkeypath | string | No | SSH key path for cloud provider access |

Execution Flow

Task Context

Before starting execution, initialize task_context.json:

{
  "task_id": "",
  "current_step": 0,
  "current_step_id": null,
  "status": "running",
  "steps": {
    "load_and_merge": "pending",
    "generate_decision_report": "pending",
    "write_phase5_decision": "pending",
    "execute_decisions": "pending",
    "deliver_final_report": "pending"
  },
  "updated_at": ""
}

Update this file after each step completes. On error, set step status to "failed" and overall status to "failed".

Step 1: loadandmerge

Type: agent Description: Load all Phase 2 outputs and merge into a unified per-resource view. Sorted by cost descending for prioritization.

Input Files

  • analysis/deep_scan_{resource_id}.json
  • observe/observation_{resource_id}.json
  • observe/observation_batch_summary.json

Execution

Launch an independent agent with the following prompt file:

Dispatch instruction:

Load and merge all Phase 2 outputs into a single unified view.

Inputs to read

  1. Deep scan profiles - glob {run_dir}/analysis/deep_scan_*.json

Each file contains detailed technical profile for one candidate resource:

  • resourceid, resourcetype, entitytype, cloudprovider
  • spec (CPU/memory/disk), actual_utilization
  • runningprocesses, openports, installed_packages
  • ownerdetail, teamlead_id
  • businesscontext (application, system, scheduledtasks)
  • cost (monthly, yearly - either from cloud billing or estimated)
  • tags, environment
  1. Observation reports - glob {run_dir}/observe/observation_*.json

Each file contains isolation observation results:

  • resource_id
  • isolationmethod, isolationstart/end dates
  • observation_result: passed / failed / uncertain
  • alertcount, complaintcount
  • anomalyevents (if any), rollbacktriggered
  • observationperioddays
  1. Observation batch summary - {run_dir}/observe/observation_batch_summary.json

High-level summary of all observations (results histogram, rollback count).

Merge logic

For each unique resource_id found across deep scan files:

  • If both deep_scan + observation exist: merge full profile
  • If only deepscan exists (observation not yet done): mark observationresult = "pending"
  • If only observation exists (deep scan missing): include with available data, mark spec = "incomplete"

Recommendation logic

For each resource, generate an AI recommendation:

  • DELETE: observation_result = "passed" (no alerts, no complaints, no rollback)
  • KEEP: observation_result = "failed" OR resource has active business use
  • EXTENDOBSERVATION: observationresult = "uncertain" (some alerts but inconclusive)

This is a preliminary recommendation - the human makes the final call.

Sort resources by cost.monthly descending (most expensive first).

Self-validation

Before writing the output, verify:

  • total_candidates matches resources array length
  • All resources have required fields: resourceid, resourcetype, cloudprovider, cost, observation, recommendation, recommendationreason
  • totalmonthlycost equals sum of all resources monthly cost
  • observationsummary counts equal totalcandidates
  • Resources sorted by cost.monthly descending

If any validation fails, fix the issue and re-validate.

Agent workflow:

  1. Read input data from:
  • Schema: schemas/deep-scan.schema.json
  • Schema: schemas/observation-input.schema.json
  • Schema: schemas/observation-batch-summary-input.schema.json
  1. Execute the agent with the prompt
  1. Write results to:
  • File: decision/merged_view.json

Output

  • Schema: schemas/merged-view.schema.json
  • File: decision/merged_view.json

Progress Tracking

After completing this step, update task_context.json:

  • Set current_step_id to "load_and_merge"
  • Set steps.load_and_merge to "completed"

Step 2: generatedecisionreport

Type: agent Description: Present merged findings to the user and collect per-resource decisions. Use the Write tool to produce a Markdown report in the chat.

Input Files

  • decision/merged_view.json (from Step loadandmerge, schema: schemas/merged-view.schema.json)

Execution

Launch an independent agent with the following prompt file:

Prompt file: $PLUGINS/ico/skills/decision-handler/prompts/generate-decision-report.agent.md Agent workflow:

  1. Read input data from:
  • Schema: schemas/merged-view.schema.json
  1. Execute the agent with the prompt
  1. Write results to:
  • File: decision/user_decisions.json

Output

  • Schema: schemas/user-decisions.schema.json
  • File: decision/user_decisions.json

Progress Tracking

After completing this step, update task_context.json:

  • Set current_step_id to "generate_decision_report"
  • Set steps.generate_decision_report to "completed"

Step 3: writephase5decision

Type: inline Description: Produce the handoff file that backup-creator and resource-cleaner read as their primary input.

Input Files

  • decision/merged_view.json (from Step loadandmerge, schema: schemas/merged-view.schema.json)
  • decision/user_decisions.json (from Step generatedecisionreport, schema: schemas/user-decisions.schema.json)

Execution

Follow these instructions:

Read {run_dir}/decision/merged_view.json and {run_dir}/decision/user_decisions.json.

Filter merged resources to only those with a user decision of "delete", then write the handoff file that downstream agents consume.

decisionid format: confirm-{YYYYMMDD}-{3-digit sequence} (e.g. confirm-20260609-001). Populate each resource entry from mergedview.json fields. resourcemetadata should include spec, actualutilization, ownerdetail, businesscontext, and tags from the merged view.

Self-validate before writing:

  • decision_id matches pattern confirm-YYYYMMDD-NNN
  • total_resources equals resources array length
  • All resources have required fields
  • resource_metadata is present and non-empty for each resource

Write the output to the specified output file.

Output

  • Schema: schemas/phase5-decision.schema.json
  • File: confirm/phase5_decision.json

Progress Tracking

After completing this step, update task_context.json:

  • Set current_step_id to "write_phase5_decision"
  • Set steps.write_phase5_decision to "completed"

Step 4: execute_decisions

Type: agent Description: Execute the user's decisions: dispatch backup+delete for confirmed resources, tag exempt resources, and notify for extended observation.

Input Files

  • decision/user_decisions.json (from Step generatedecisionreport, schema: schemas/user-decisions.schema.json)
  • confirm/phase5_decision.json (from Step writephase5decision, schema: schemas/phase5-decision.schema.json)

Execution

Launch an independent agent with the following prompt file:

Prompt file: $PLUGINS/ico/skills/decision-handler/prompts/execute-decisions.agent.md Agent workflow:

  1. Read input data from:
  • Schema: schemas/user-decisions.schema.json
  • Schema: schemas/phase5-decision.schema.json
  1. Execute the agent with the prompt
  1. Write results to:
  • File: decision/execution_results.json

Output

  • Schema: schemas/execution-results.schema.json
  • File: decision/execution_results.json

Progress Tracking

After completing this step, update task_context.json:

  • Set current_step_id to "execute_decisions"
  • Set steps.execute_decisions to "completed"

Step 5: deliverfinalreport

Type: agent Description: Generate and deliver the final cost optimization report as Markdown using the Write tool. Also write a machine-readable summary.

Input Files

  • decision/merged_view.json (from Step loadandmerge, schema: schemas/merged-view.schema.json)
  • decision/user_decisions.json (from Step generatedecisionreport, schema: schemas/user-decisions.schema.json)
  • decision/execution_results.json (from Step execute_decisions, schema: schemas/execution-results.schema.json)

Execution

Launch an independent agent with the following prompt file:

Prompt file: $PLUGINS/ico/skills/decision-handler/prompts/deliver-final-report.agent.md Agent workflow:

  1. Read input data from:
  • Schema: schemas/merged-view.schema.json
  • Schema: schemas/user-decisions.schema.json
  • Schema: schemas/execution-results.schema.json
  1. Execute the agent with the prompt
  1. Write results to:
  • File: decision/final_summary.json

Output

  • Schema: schemas/final-summary.schema.json
  • File: decision/final_summary.json

Progress Tracking

After completing this step, update task_context.json:

  • Set current_step_id to "deliver_final_report"
  • Set steps.deliver_final_report to "completed"

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.