Skip to content

Standardize .claude/commands to the canonical lab dev-command set #223

@eberrigan

Description

@eberrigan

Standardize .claude/commands to the canonical lab dev-command set

Two .claude/commands lineages have diverged across lab repos:

  • descriptive (sleap-roots-analyze): pre-merge-check, update-changelog, prepare-release, cleanup-merged
  • short (sleap-roots, this repo / salk-bloom / bloom-desktop): pre-merge, changelog, release, cleanup-branch

Decision: standardize on descriptive (verb-first) names with best-of content (adopt the richer command body where the lineages differ). Several of this repo's commands (fix-formatting, validate-env, new-feature, copilot-review, and the 8-phase pre-merge) are the canonical source bodies — they're richer than analyze's and should be promoted (under descriptive names).

Canonical set (repo-agnostic)

Group Commands
Core loop tdd · lint · fix-formatting · coverage · run-ci-locally · validate-env
Feature/PR new-feature · review-pr · copilot-review · pr-description · review-openspec · pre-merge-check
Release / housekeeping update-changelog · prepare-release · cleanup-merged
OpenSpec proposal · apply · archive

Drop: bare black; generate-pr-review.
Keep per-repo: domain commands (benchmark-pr, new-pipeline, debug-test, test, docs-update, investigate) stay — repo-specific, not part of the canonical generic set.
Source of truth for new repos: the scaffolding-lab-python-repo skill.

Deltas for this repo (sleap-roots)

Already aligned/canonical-source: fix-formatting, validate-env, new-feature, copilot-review, cleanup-merged, lint, coverage, run-ci-locally, review-pr, pr-description.

  • Rename pre-mergepre-merge-check (keep its richer 8-phase body — this is the canonical content).
  • Rename changelogupdate-changelog.
  • Add prepare-release — source: sleap-roots-analyze.
  • Add review-openspec — source: sleap-roots-analyze.
  • Add tdd (the red→green→refactor workflow) — source: sleap-roots-analyze. (test / debug-test are complementary run/debug commands; keep them as repo-specific.)
  • Leave a thin alias or note for the renamed commands if muscle memory matters.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions