forge-failed-deploys

forge-failed-deploys is a skill for Claude Code from gtapps/hermitd. It costs 53 tokens per session (738 once invoked), scanned A, original, MIT.

A scheduled check for Laravel Forge sites whose latest deployment has failed, failed to build, or been cancelled. It scans the organisation's sites and reports the affected deployments.

In plain words
What is it for?
Use it for a daily read-only scan of Forge deployments and to identify failed sites, deployment details, or cases where details could not be retrieved.
Why use it?
It finds deployment failures across the site list without requiring someone to inspect each site manually.

Skill for Claude Code

Written for Claude Code: ${CLAUDE_PLUGIN_ROOT} variable.

Runs only inside its plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else. Install the plugin, not this.

Part of the hermitd-laravel-forge plugin — 5 skills shipped together

Good fit Use it for a daily read-only scan of Forge deployments and to identify failed sites, deployment details, or cases where details could not be retrieved.

Compare 6 skills from other repositories ↓
Install

Getting it into your agent

This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.

Claude Code
/plugin marketplace add gtapps/hermitd
Claude Code
/plugin install hermitd-laravel-forge

Made for: Claude Code.

Or install hermitd-laravel-forge, the plugin that ships this one along with the rest of its 5 skills.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for forge-failed-deploys

README.md
[![agentmods](https://agentmods.dev/badge/skills/gtapps/hermitd/forge-failed-deploys/github.svg)](https://agentmods.dev/skills/gtapps/hermitd/forge-failed-deploys)
Your own site
<a href="https://agentmods.dev/skills/gtapps/hermitd/forge-failed-deploys"><img src="https://agentmods.dev/badge/skills/gtapps/hermitd/forge-failed-deploys/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for forge-failed-deploys

Your own site · 80×15
<a href="https://agentmods.dev/skills/gtapps/hermitd/forge-failed-deploys"><img src="https://agentmods.dev/badge/skills/gtapps/hermitd/forge-failed-deploys.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 53 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 738 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00053 $0.00738
Opus 5.5 $0.00021 $0.00295
Sonnet 5.5 $0.00011 $0.00148
Haiku 4.5 $0.00005 $0.00074

Measured 12d ago against content hash c2693a17719c, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

forge-failed-deploys scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

Origin

Copies of this mod

1 near-identical copy found in the catalogue:

plugins/hermitd-laravel-forge/skills/forge-failed-deploys/SKILL.md · 53 lines

How it starts

The opening of the file, as written. The whole thing — 53 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Forge Failed Deploys

Routine skill: scans the org-wide site list and flags any sites whose latest deployment status is failed, failed-build, or cancelled.

Contract: idempotent, read-only, no self-scheduling, short-running. Returns findings or silence — never creates proposals itself.


Steps

  1. Run the estate scan.

    php ${CLAUDE_PLUGIN_ROOT}/php/forge.php failed-deploys --json
    

    This pages through the org-wide site list via organizationSites()->lazy() and fetches the deployment_status field on each site. For sites in a failure state it fetches the latest deployments() detail. Rate limiting (429) is handled internally with conservative pacing.

  2. Parse the JSON output. Each entry has: site_id, site_name, server_id, status, optionally deploy_id, deploy_status, commit. An entry whose detail fetch was rate-limited instead carries an error key (and no deploy_id/commit) — treat those as "failure, detail unavailable" and omit the commit line. Never assume all keys are present.

  3. Output the findings block. Always output to stdout, regardless of outcome. reflect --check-id forge-failed-deploys --check hermitd-laravel-forge:forge-failed-deploys classifies the result.

    Failures found:

    forge-failed-deploys findings — <YYYY-MM-DD>
    Failed deployments: <N>
    - [deploy-failure] <site_name> (server: <server_id>): status <status><commit line if available>
    

    One bullet per failed site.

    No failures:

    forge-failed-deploys findings — <YYYY-MM-DD>
    No actionable findings.
    
  4. Do not fetch deployment logs. This scan surfaces sites with failures; the forge-logs or forge-deploy skills handle remediation. Fetching logs per failure during the scan would hit rate limits on large estates.


Notes

  • This skill writes no artifact. Findings are returned for reflect --check-id forge-failed-deploys --check hermitd-laravel-forge:forge-failed-deploys to classify and route. Routine execution owns scheduling state.
  • Registered by /hermitd-laravel-forge:hatch as the forge-failed-deploys routine. Its schedule lives in config.routines.
  • No channel notifications — this is analysis-only. Findings surface as [reliability] proposals via the normal pipeline.
  • scope: if organizationSites() does not carry deployment_status in your Forge plan/API version, the scan will report zero findings (not an error). Scope to watched_sites in .hermit/config.json if org-wide scan is unavailable.
  • Rate limit: Forge allows ~60 req/min. The scan paces conservatively; if a 429 is returned mid-scan it waits 30 seconds and the scan exits with an error — the check will retry on the next scheduled run.

Read the full file on GitHub · 53 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 12d ago First seen · 53 lines · 53 tokens per session scan A c2693a17719c

Subscribe to this mod's changes

forge-failed-deploys is a skill published in the GitHub repository gtapps/hermitd (79 stars, last pushed yesterday), licensed MIT. It adds 53 tokens to every session and 738 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-02.

Related

Other skills, from other repositories

relay-deploy

Set up a complete deployment configuration — Dockerfile, deployment manifest, environment config, and rollback procedure. Use when asked about "deployment setup", "how do I deploy this", "deployment strategy", or "rollback plan".

tonone-ai/tonone · 48 tokens

forge-cost

Audit cloud infrastructure costs and produce a concrete optimization plan with specific changes and estimated savings. Use when asked to "how much is this costing", "reduce cloud spend", "cost optimization", "are we overpaying", "cloud bill", or "budget for this infra".

tonone-ai/tonone · 58 tokens

forge-infra

Build production-grade infrastructure as code for a service or project. Use when asked to "set up infra", "provision infrastructure", "create cloud resources", "IaC for this project", "terraform for this", or "deploy this service".

tonone-ai/tonone · 53 tokens

forge-recon

Infrastructure reconnaissance — inventory all cloud resources, map connections, flag risks. Use when asked to "inventory our infra", "what infrastructure do we have", "map our cloud resources", "infra discovery", or "what's running in our cloud".

tonone-ai/tonone · 53 tokens

flux-recon

Database reconnaissance — full inventory of schema, migrations, data volume, backups, connection pooling, and query patterns. Use when asked to "assess this database", "understand the schema", or "database health check".

tonone-ai/tonone · 48 tokens

forge-audit

Audit existing infrastructure for security issues, waste, and misconfigurations. Use when asked to "audit my infra", "check cloud setup", "infra review", "are we wasting money", "security check on infra", or "review my terraform".

tonone-ai/tonone · 54 tokens