Skip to content

[feature] Pests & weeds — reverts/force-pushes spawn aphids to clear #23

Closed

Description

@rwrife

Pitch

Backlog item #6. Introduce gentle negative signals: messy git behavior (reverts, force-pushes, unusually huge red-diff days) spawns visible "pests" (aphids/weeds) on the plant that you clear by returning to healthy commit cadence. Turns the plant into a fuller behavioral mirror without becoming a nag.

Why it fits

  • Extends internal/gitstat to surface a few extra signals (revert commits, force-push markers) from data git already exposes, then internal/plant maps them to a bounded pest count, and internal/render draws them. Clean separation, each layer testable.
  • Keeps the "life you're responsible for" nudge from PLAN.md §3 stronger than a flat chart.

Design notes / scope guard

  • Detect reverts via commit-message convention (^Revert ") and/or git log --grep. Force-push detection is best-effort from reflog if available; if unavailable, skip gracefully (no hard dependency).
  • Pests are cosmetic + moral, never destroy growth: they cap at a small number and clear after a healthy commit day. No stage/streak penalty in v1 (stay gentle, opt-in for anything harsher).
  • Do NOT read commit content/diffs for anything beyond a size heuristic (respect PLAN.md §9 "no reading commit content").

Acceptance criteria

  • gitstat.Activity gains a small, well-documented signal (e.g. Reverts int within window) parsed purely from git log output; covered by fixture tests.
  • internal/plant maps signals → a bounded Pests int (clamped), pure and unit-tested; never lowers Stage/Streak in v1.
  • internal/render draws pests as small ASCII glyphs (e.g. %) on/around the plant, degrading under --no-color.
  • Pests clear after a clean healthy commit (state transition tested).
  • --no-pests flag to disable entirely for people who don't want it.
  • README documents what spawns pests and how to clear them.
  • go build ./... and go test ./... pass.

Activity

  1. rwrife commented on Jul 14, 2026

    @rwrife
    OwnerAuthor

    Implemented in #26 — reverts now spawn bounded cosmetic pests (% glyphs) that clear on a clean commit, with a --no-pests opt-out. Never touches stage/streak/health.

  2. rwrife commented on Jul 15, 2026

    @rwrife
    OwnerAuthor

    Merged via #26 (squash). Reverts now spawn cosmetic aphids/weeds, capped at 3, cleared on a clean healthy commit; --no-pests opts out. Purely visual — never lowers stage/streak/health.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions