glab-cli: quick reference misses two observed traps (api --field :param substitution; ci list -b misparse) #31
Labels
No labels
component:adapters
component:lifecycle
component:qa
component:setup
component:shared
component:worktrees
phase/accepted
phase/backlog
phase/deployed
phase/developing
phase/integrating
phase/planning
phase/qa
phase/requirements
phase/uat
priority:critical
priority:critical
priority:high
priority:high
priority:low
priority:low
priority:medium
priority:medium
type:bug
type:chore
type:docs
type:feature
type:infra
type:tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
jbr870/devwork-skills#31
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Observation
The glab-cli quick-reference exists to prevent flag mistakes, but two traps observed in real runs are missing from it:
glab api --fieldsubstitutes:parampath-variable syntax inside payload text, corrupting bodies that legitimately contain API route strings (verity-slot3-113-resume, 08:52:38: PREQ bodies with routes like/api/:idwere rewritten). The quick-ref should say when to use--raw-field/--inputinstead.glab ci list -b <branch>parses the value as a date, not a branch (verity-main-4c283a2c); the correct flag form is absent from the quick-ref tables.Recurrence
2 independent runs, one trap each; both are the exact class of mistake the quick-reference section declares it prevents.
Hypothesis
Add both rows to the quick-reference tables. Per the #17 precedent (@hapi/lab row), confirm each against a real glab first rather than trusting the run reports' recollection of the fix.
Suggested lane
meta-amend, gated on confirmation against a live glab.
Filed by /meta-retrospective 2026-08-13.
/meta-amend outcome — amended, closing
Finding verified at HEAD (
d976759+ the post-cutover commits). Both traps still held, and bothwere confirmed against a live
glabon the dev machine (1.110.0,1797d215) per the #17precedent rather than taken from the run reports' recollection:
glab api --helpdocuments, for--field: "Placeholder values:namespace,:repo, and:branchare populated with values from the repository of the current directory" — i.e. thesubstitution applies to values, not only to the endpoint. The quick reference presented
placeholders as an endpoint feature (
- Supports placeholders: :namespace, :repo, :branch),which is exactly the reading that let a PREQ body carrying route strings go through
--field.glab ci list --helpconfirms-bis--updated-before("Expected in ISO 8601 format"), andthe branch filter is
-r/--ref.One correction to the issue's wording: the observation cites a route like
/api/:id, butglab 1.110.0's documented field-value placeholder set is
:namespace,:repo,:branch—:idis an endpoint-only placeholder. The amendment therefore states the verified set and gives the
conservative rule (route any body containing a colon-prefixed segment through
--raw-field/--input),which covers the observed corruption either way.
Amendment —
plugin/skills/glab-cli/SKILL.md, commitee15687:--field/-Fsubstitutes those placeholders inside values, withthe
--raw-field/-for--inputescape.ci list -bis a date, not a branch — branch is--ref/-r, andci view/ci tracedo take--branch, which is where the reflex comes from.apisection: the placeholder line now says endpoint and--fieldvalues.No flag table changed: both tables already carried the correct rows (
--ref | -r,--updated-before | -b). The defect was the missing warning, so the minimal fix is a warning.Gate:
scripts/lint-conventions.shclean — 114 helper scripts, 689 shell-fence lines,199 files under
plugin/skills/.Desk-check (both originating scenarios): an orchestrator consulting the gotchas before composing
glab api ... --field description=<PREQ text with routes>now reads the substitution warning and itsescape, so verity-slot3-113-resume's corrupted body does not recur; one reaching for a branch filter
on
ci listis told-bis a date and pointed at-r, so verity-main-4c283a2c does not recur. Bothare clear yeses. Desk-check only — the real proof is the next glab-project dogfood run.
Context: ran as UAT Scenario 6 of #50 (one
/meta-amendcycle, AC-5c) — post-cutover, pluginform loaded, meta lane invoked by its bare name from the repo-local
.claude/skills/. The helperroot resolved from git as the lane requires.