Skip to content

Re-run the over-build learning loop when organic fire data accumulates #124

Description

@aaronsb

Recurring ritual from ADR-135 (the over-build self-extending pattern corpus). Companion to #123.

What this is

The over-build gate (hooks/ways/softwaredev/code/overbuild/) is a small, prunable set of high-precision detectors with a 0-false-positive hard constraint. ADR-135 §3 makes it a learning corpus: periodically read the encounter telemetry, comprehend the genuinely ambiguous cases, and record / exempt / prune — usually nothing. The loop is bidirectional by design; append-only growth would reconstitute the "ponytail" dogma the ADR exists to avoid.

Last run — 2026-06-12

Outcome: no corpus change (the correct anti-dogmatic result).

  • Telemetry: 5 fires, all non-organic (feature e2e tests + the dev session).
  • ways tune-precision --way overbuild: no over-firing flag.
  • Detector validation: 5/5 (2 true-positives fire; 3 near-misses — legit OrderedDict reordering, an _instance field, a markdown example — correctly stay silent).
  • No organic encounters to learn from yet; adding speculative detectors would be the accretion anti-pattern.

Re-run trigger

When organic (non-test) over-build fires have accumulated:

# fires, excluding the pony-* / dev self-test sessions
grep '"way":"softwaredev/code/overbuild"' ~/.claude/stats/events.jsonl \
  | grep -v 'pony-' | wc -l
ways tune-precision --way overbuild        # is it over-firing into irrelevant sessions?

The loop

  1. Read encounter telemetry (over-build way_fired events) + recent PR-review / usage-report signals.
  2. Comprehend the genuinely ambiguous cases (cost paid here, off the hot path).
  3. Decide: record a new detector (a real, generalizable reinvention), exempt (a legit/novel shape that must never fire), or — usually — nothing.
  4. Prune any detector the precision audit shows over-firing.
  5. Re-validate 0-FP before/after (true-positives fire, near-misses stay silent).

Known scope limit (not a defect)

Seed detectors are Python-only (OrderedDict+popitem(last=False, __new__+_instance is None). Broaden only on cross-language encounter evidence, never speculatively.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:waysWays CLI, matching, steering layereffort:smallOne sitting

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions