plugins/laravel-forge-hermit/skills/forge-failed-deploys/SKILL.md
Interval scheduled check — scans the Forge estate for sites whose latest deployment is in a failure state. Runs daily via the scheduled-checks routine; findings are routed through the proposal pipeline as Evidence Source: scheduled-check/forge-failed-deploys.
npx skillsauth add gtapps/claude-code-hermit forge-failed-deploysInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Scheduled-check 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.
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.
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.
Output the findings block. Always output to stdout, regardless of outcome. reflect --scheduled-checks 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.
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.
reflect --scheduled-checks./laravel-forge-hermit:hatch step 7 via a scheduled_checks config entry (interval_days: 1). The core daily scheduled-checks routine fires reflect --scheduled-checks, which picks it up once 1+ day has elapsed since last_run.[reliability] proposals via the normal pipeline.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.tools
Composes and delivers the daily fitness brief — a forward-looking morning read (readiness + today's plan) or a backward-looking evening read (today's training, or an earned-rest note, + tomorrow's setup) — in the operator's configured voice. Invoke with /claude-code-fitness-hermit:fitness-brief --morning|--evening|--slot <name>. Becomes the plugin's two daily beats — the morning Strava connectivity check and the evening activity sync, RPE binding, and Run deep-dive.
development
Renew the hermit's long-lived Claude login token over the channel, before it expires. Relays a one-time sign-in link to the operator, takes the code back, installs the new token, and restarts. Activates on messages like 'relogin', 'renew my login', 'reauth', 'the login is expiring', or when doctor's credential-expiry check flags setup-token.
development
Synthesizes the past 7 days of archived briefs into a weekly digest — top stories, emerging vs faded themes, category activity, and per-source performance built from archive frontmatter. Delivers to the operator's configured channel and archives a weekly note. Designed as a weekly routine. Invoke with /feed-hermit:weekly-digest.
development
Manage developing story arcs tracked across briefs — add, resolve, and list active arcs in compiled/story-arcs-*.md. Arc Watch keywords drive the feed-brief arc-tagging enrichment. Invoke with /feed-hermit:story-arcs add|resolve|list.