forge-failed-deploys

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

A scheduled Laravel Forge check that scans sites and reports when their latest deployment failed, failed during building, or was cancelled. Laravel Forge manages servers and deployments for web applications.

In plain words
What is it for?
Use it for daily deployment-failure monitoring across a Forge organisation and for identifying affected sites and commits.
Why use it?
It removes the need to manually inspect every site for recent deployment failures and provides failure details when available.

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 laravel-forge-hermit plugin — 5 skills shipped together

Good fit Use it for daily deployment-failure monitoring across a Forge organisation and for identifying affected sites and commits.

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/claude-code-hermit
Claude Code
/plugin install laravel-forge-hermit

Made for: Claude Code.

Or install laravel-forge-hermit, 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/claude-code-hermit/forge-failed-deploys/github.svg)](https://agentmods.dev/skills/gtapps/claude-code-hermit/forge-failed-deploys)
Your own site
<a href="https://agentmods.dev/skills/gtapps/claude-code-hermit/forge-failed-deploys"><img src="https://agentmods.dev/badge/skills/gtapps/claude-code-hermit/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/claude-code-hermit/forge-failed-deploys"><img src="https://agentmods.dev/badge/skills/gtapps/claude-code-hermit/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 735 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.00735
Opus 5.5 $0.00021 $0.00294
Sonnet 5.5 $0.00011 $0.00147
Haiku 4.5 $0.00005 $0.00073

Measured 1mo ago against content hash dea905a24b12, 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 1mo 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/laravel-forge-hermit/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 laravel-forge-hermit: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 laravel-forge-hermit:forge-failed-deploys to classify and route. Routine execution owns scheduling state.
  • Registered by /laravel-forge-hermit: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 .claude-code-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. 1mo ago Changed · -3 tokens per session dea905a24b12
  2. 1mo ago First seen · 53 lines · 56 tokens per session scan A bf08c1593172

Subscribe to this mod's changes

forge-failed-deploys is a skill published in the GitHub repository gtapps/claude-code-hermit (82 stars, last pushed 3d ago), licensed MIT. It adds 53 tokens to every session and 735 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-09-03.

Related

Other skills, from other repositories

ci-routing

The canonical route-on-verdict protocol for a red CI diagnosis — fixable/flake/infra/needs-debug handling, the single-render rule, and the fix-then-re-watch loop.

HigorAlves/orc · 40 tokens

diagnose-deployment

Surfaces PAC CLI upload errors and Dataverse async operation errors, pattern-matches against a known failure catalog, and optionally auto-fixes identified issues. Use when asked to: "diagnose deployment", "debug deployment", "deployment failed", "show deployment errors", "fix deployment issues", "show upload logs"…

microsoft/power-platform-skills · 82 tokens

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

relay-pipeline

Build a full CI/CD pipeline from scratch. Use when asked to "set up CI/CD", "create pipeline", or "automate deploys".

tonone-ai/tonone · 34 tokens

vigil-instrument

Instrument a service with OpenTelemetry — RED metrics, structured logs, distributed tracing, and health checks. Outputs actual code and config, not a plan. Use when asked to "add monitoring", "instrument this", "add logging", "set up tracing", or "observability".

tonone-ai/tonone · 61 tokens

touch-audit

Mobile audit — app size, startup time, crash reporting, store compliance, accessibility, offline behavior. Use when asked for "mobile review", "app store readiness", "mobile performance", or "crash analysis".

tonone-ai/tonone · 47 tokens