Skip to content

Skill defects: broken gh project item-list --query, /exit propagated into batch loops, worktree-removal contradiction, fix-e2e PR targets main #1819

Description

@steilerDev

Severity: High (first four) / Medium (rest) — found during a deep project review (2026-07-06) of all 10 .claude/skills/ definitions against CLAUDE.md, gh CLI behavior, and the actual repo. Verified-consistent (no action): board/project IDs match across skills; merge strategies consistent; CI polling correctly defers to CLAUDE.md's canonical pattern; all referenced files/wiki pages/npm scripts exist.

HIGH

  • Broken board-status command in 3 skills: develop (steps 5, 11), epic-start (step 3), release (step 7) all use gh project item-list 4 --owner steilerDev --format json --limit 1 --query "is:issue #<n>" --jq '.items[0].id'gh project item-list has no --query flag (verified against gh help: only --format/--jq/--limit/--owner/--template). The command fails with unknown flag; even without that, --limit 1 + .items[0].id grabs an arbitrary item. Every "move to In Progress/Done" step in the documented lifecycle is broken as written.
  • batch-develop (step 3b) and release (step 4e) re-run /develop steps 2–11 verbatim — including step 11's /exit, which terminates the session after the first item, abandoning the batch / the release approval loop. epic-run proves the exclusion is needed: its step 2.3–2.11 explicitly says "Skip the branch cleanup and /exit".
  • /develop step 11.5 and /release step 7.4 instruct "Exit the session and remove the worktree" — directly contradicting CLAUDE.md: "Do NOT remove worktrees. Deleting local worktrees breaks inside the sandbox."
  • fix-e2e step 4b creates its PR without --base beta — text says "targeting beta" but the gh pr create command has no --base, so it targets the repo default branch main. (develop step 7 and dependabot step 6d correctly pass --base beta.)

MEDIUM (checklist)

  • 5 of 10 skills (batch-develop, dependabot, fix-e2e, mini-epic, review-pr) are missing from CLAUDE.md's Orchestration Skills table, violating its own Cross-Team Convention — and documented skills depend on undocumented ones (epic-close/fix-e2e; mini-epic/batch-develop). Note: batch-develop is NOT redundant with /develop multi-item mode (single PR) — it gives each item its own branch/PR — but that distinction is documented nowhere outside the skill files.
  • epic-close line 8 claims "13 steps"; it defines 8.
  • release step 2b references "epic-close step 8 for format"; epic-close ends at step 7, whose format section points back to "release step 2b" — circular, with no body format defined anywhere.
  • epic-close step 2a polls gh run list --workflow=auto-fix.yml — that workflow no longer exists (.github/workflows/ has only ci.yml, enforce-promotion-source.yml, release.yml); the lint health check silently no-ops. epic-run Phase 3 inherits this.
  • epic-start step 5 says "proceed immediately to step 6" but step 6 begins "After user approval" — no step solicits approval.
  • fix-e2e step 4a renames the branch to fix/<issue-number>-e2e-fixes but the skill's input is a run URL/ID — no issue number ever exists; the naming convention is unsatisfiable as specified.
  • dependabot steps 5c–5d contradict each other on who pushes ("orchestrator pushes after committing" vs dev-team-lead [MODE: commit] "…and push"), and [MODE: commit] also creates a PR — wrong for an existing Dependabot PR.
  • release step 6 commits the checklist and bare-git pushes with no branch/PR — conflicts with "Never push directly to main or beta" (step 5 routes docs through a PR correctly).
  • review-pr steps 3–4 ask dev-team-lead [MODE: review] to post gh pr review with verdicts approve/request-changes/comment — outside that mode's defined interface (returns VERDICT: APPROVED|CHANGES_REQUIRED to the orchestrator; different vocabulary).
  • review-pr step 6 lists required checks as Quality Gates, Docker, Merge E2E Reports — CLAUDE.md's required gates are Quality Gates (+ E2E Gates on main only); Docker/Merge E2E Reports aren't required and E2E Gates is omitted.

LOW

  • Hardcoded stale orchestrator trailer Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> (no agent name, pinned model) in develop step 7 (×2) and release step 6.
  • /tmp/notes.md is overloaded: release feedback channel (release 4c–4e, per CLAUDE.md) vs batch-develop work queue (which also deletes lines from it) — two protocols, different semantics, one path.
  • Trailer rules (CLAUDE.md + develop 6h) have no rule for QA-authored co-located tests: a commit touching only server/src/foo.test.ts would require a backend-developer trailer for an agent that contributed nothing, and no qa-integration-tester trailer rule exists at all.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions