Repository navigation
chore(skills): add deps triage skill - #27
Conversation
Walks the open Dependabot queue: classifies each bump, gates on CI and on intentional pins, merges the safe ones and reports what needs a decision. Tailored to this repo's ecosystems, protection rules and merge behaviour.
Greptile SummaryThe PR adds a
Confidence Score: 4/5The PR should be corrected before merging because the new skill can authorize an unattended infrastructure update without an executed plan proving that it is a no-op. The documented workflow correctly emphasizes Terraform planning, but it exempts trivial patches and treats some non-empty plans as potentially safe, allowing real Stage changes despite the stated no-change requirement. Files Needing Attention: .claude/skills/deps/SKILL.md
|
| Filename | Overview |
|---|---|
| .claude/skills/deps/SKILL.md | Adds the dependency-triage workflow, but its trivial-patch exemption and acceptance of some non-empty plans undermine the required plan-clean merge gate. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Pull Dependabot queue] --> B[Classify version bump]
B --> C{Patch or minor?}
C -- No --> H[Hold for human decision]
C -- Yes --> D{CI green?}
D -- No --> H
D -- Yes --> E[Run Stage Terraform plan]
E --> F{Exactly No changes?}
F -- No or unavailable --> H
F -- Yes --> G[Enqueue merge]
G --> I[Wait for and inspect Stage apply]
I --> J{Apply successful?}
J -- No --> K[Stop and recommend revert]
J -- Yes --> L[Recreate remaining Dependabot PRs]
Reviews (1): Last reviewed commit: "chore(skills): add deps triage skill" | Re-trigger Greptile
| terraform plan | ||
| ``` | ||
|
|
||
| - `No changes.` → safe to merge. |
There was a problem hiding this comment.
Adds a
/depsskill that works through the open Dependabot queue. Companion to the same skill in the other repos, but the gating here is different in kind, not just in detail.Merging in this repo applies infrastructure. A merge to
mainrunsMain, and a successfulMaintriggersDeploy, whosestagejob runsterraform init→terraform plan -out=tfplan→terraform apply tfplan. TheStageenvironment has no protection rules, so that apply is unattended — a merged provider bump changes real infrastructure within minutes. (Liveis safe:live-planandliveonly run onworkflow_dispatchwithtarget: live.)So a green check is not sufficient evidence. CI runs
terraform init -backend=false,validateandtest; it never plans against real state. A provider bump that changes a default, deprecates an attribute, or alters how an existing resource is read passesvalidateand then shows up as a change — or a replacement — in the Stage apply.The skill therefore makes the plan the primary gate rather than CI: check out the PR,
terraform workspace select stage,terraform plan, and merge only onNo changes.Anymust be replaced/-/+stops the merge and gets reported with the resource addresses. If credentials for the S3 backend or the 1Password provider are unavailable, the PR is reported as unverified rather than merged on CI alone, and the report must say whether a plan actually ran.Other repo-specific notes it encodes:
versions.tfare floors (>= 1.60), so bumps normally touch only.terraform.lock.hcl. Aversions.tfchange is worth reading.6.45.0 to 6.58.0but the diff actually moves to6.59.0.bunnyway/bunnynetis on0.x, so chore(deps): bump bunnyway/bunnynet from 0.14.1 to 0.18.0 #25 (0.14.1 → 0.17.0) is a breaking-class jump on CDN and DNS resources despite looking like a minor..terraform.lock.hcl, so each merge conflicts the rest — merge one at a time, watch the Stage apply, then@dependabot recreatethe remainder.mainis protected by a ruleset (terraform_test+ merge queue); the classic protection API returns 404, which reads as "unprotected" if you do not know to check/rulesets.Docs only — no Terraform changes. 🤖