Skip to content

Autonomous loop branch names should be meaningful instead of hash-only slugs #74

Description

@caoergou

Problem

When owloop run / owloop go creates a worktree branch, the branch name is a long hash slug like:

owloop/20260707-operation-record-service-bd9d6cf1

While the timestamp and a truncated spec title are included, the trailing hash makes the branch hard to read and impossible to identify at a glance when multiple runs target the same spec or goal.

Impact

  • Branch lists become noisy and hard to scan.
  • It is difficult to tell which branch corresponds to which high-level task without checking the report or git log.
  • When multiple users or runs create branches for the same spec, the hashes differ but the human-readable prefix is the same, increasing collision/confusion risk.

Suggested fixes

  1. Include a short goal-derived slug. Derive a concise, URL-safe identifier from the user's goal or the spec title, e.g.:
    • owloop/20260707-refactor-api-services-bd9d6cf1
    • or owloop/refactor-api-services-20260707-bd9d6cf1
  2. Keep the hash short or make it optional. The full 8-char hash is only needed to guarantee uniqueness; consider truncating to 4-6 chars when no collision exists.
  3. Expose branch naming template in config. Allow users to customize via .owloop/config or CLI flag, e.g.:
    branch_template = "owloop/{date}-{goal_slug}-{short_hash}"
    
  4. Write the branch purpose into the branch description or first commit message so it is discoverable via git branch -v.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions