Skip to content

Implement Branch Gardener scheduled branch-hygiene skill #14

Description

@BunsDev

Scheduled branch hygiene as a familiar skill, per ROADMAP M2 and docs/branch-gardener.md.

  • Classify branches (active, stale, dead, PRless).
  • Delete dead branches under policy.
  • Open draft PRs for PRless work that has commits.
  • Report results to Cave.

Trust framing: visible action log, conservative defaults, Cave oversight before destructive ops.

See: docs/branch-gardener.md, ROADMAP.md (M2).


Wave 1 grooming

This issue was the thinnest spec in the wave; grooming below brings it to the same execution-readiness bar as its peers.

  • Size: M · Intra-wave rank: standalone lane — no code deps beyond Add durable task queue and GitHub delivery idempotency #2; no downstream blockers.
  • Depends on: Add durable task queue and GitHub delivery idempotency #2 (queue/task state for scheduled runs). Unblocks: none.
  • In scope: branch classifier (active/stale/dead/PRless); policy-gated dead-branch deletion; draft-PR open for PRless work with commits; Cave-visible action log + per-run report; conservative defaults; Cave oversight before destructive ops.
  • Out of scope: general scheduling infra beyond the M2 queue; auto-merge; non-branch hygiene.
  • Ready checklist:
    1. Branch classification from GitHub refs: last-commit age, PR association, ahead/behind.
    2. Policy: age thresholds, protected-branch exclusions, dry-run default, destructive-op gate requiring Cave approval.
    3. Actions: delete dead branch (policy + approval), open draft PR for PRless commits.
    4. Emit a structured action log + Cave report per run.
    5. Wire as a scheduled familiar skill triggered off the M2 queue.
    6. Tests: classifier fixtures; dry-run makes no writes; destructive op blocked without approval.
  • Done when: classifier covers active/stale/dead/PRless; destructive ops gated + logged; dry-run default proven no-write; cargo check/clippy/test green. Refs: docs/branch-gardener.md, ROADMAP M2.

Metadata

Metadata

Assignees

No one assigned

    Labels

    coven-githubcoven-github GitHub App / adapterfamiliarsFamiliar moat: identity, memory, routing, trusthostedHosted control plane / managed service

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions