Skip to content

Refactor/rename legacy hotspot#11

Merged
lex0c merged 3 commits intomainfrom
refactor/rename-legacy-hotspot
Apr 21, 2026
Merged

Refactor/rename legacy hotspot#11
lex0c merged 3 commits intomainfrom
refactor/rename-legacy-hotspot

Conversation

@lex0c
Copy link
Copy Markdown
Owner

@lex0c lex0c commented Apr 21, 2026

No description provided.

lex0c and others added 2 commits April 21, 2026 13:15
The old name carried "deprecated/broken" connotations and clashed
with "hotspot" (which implies active), when the classification
actually describes a silo whose activity is cooling. The new name
names it as what it is: a silo (concentrated ownership, old) that
is fading (declining trend). Chip color moves from alarm red
(#cf222e) to rust (#9a3412) — same hierarchy above amber silo,
minus the "critical failure" tone — and the 🔴 emoji is dropped
so color carries the weight.

Breaking: JSON/CSV Label values change from "legacy-hotspot" to
"fading-silo", CSS class .chip-legacy-hotspot becomes
.chip-fading-silo, and jq queries in README examples are
updated. --fail-on-churn-risk still evaluates risk_score, not the
label, so CI gates keep working. Glossary and table-row blurbs
that called this "deprecated code" are rewritten to match the new
framing.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
LoadMultiJSONL prepends <slug>: to every file path so repos with
colliding basenames don't merge at the file level. The dev-profile
Scope (and the Herfindahl specialization derived from it) operated
on those prefixed paths directly, so a dev working on cmd/ across
three repos showed up as repoA:cmd, repoB:cmd, repoC:cmd — three
separate buckets that each ate a top-5 slot and together pushed
Specialization toward "broad generalist" when the person was
actually a cmd specialist. The HTML scope bar also rendered the
slug:dir labels, which don't fit the flex slots once the prefix
stacks up.

Strip the prefix (reusing stripRepoPrefix from suspect.go) before
bucketing so Scope answers "where does this dev work" at the
area-of-code level, not area-×-repo. The per-repo split already
exists in the Per-Repository Breakdown section that multi-repo
profile reports render below Scope, so no information is lost —
Scope becomes the aggregate view, Breakdown the per-repo view.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@lex0c
Copy link
Copy Markdown
Owner Author

lex0c commented Apr 21, 2026

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 47a33a5e6e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread internal/stats/stats.go Outdated
stripRepoPrefix drops everything before the first ":" when the
preceding segment has no slash — a conservative rule for the
multi-repo case where paths like `kubernetes:pkg/api/types.go` are
known to start with the LoadMultiJSONL prefix. In a single-repo
dataset, however, a legitimate top-level directory containing a
colon (for example `ops:core/main.go`) hits the same rule and
collapses to `core/main.go`, silently moving files between buckets
and skewing Specialization.

Gate the strip on `len(ds.commitsByRepo) > 1`: multi-repo loads
always produce at least two entries (one per input JSONL), so the
check reliably distinguishes the two modes. Single-repo datasets
now pass paths through unchanged. Pinned by
TestDevProfilesScopePreservesColonDirsInSingleRepo; the existing
multi-repo test updates its fixture to populate commitsByRepo so
it still exercises the strip path.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@lex0c
Copy link
Copy Markdown
Owner Author

lex0c commented Apr 21, 2026

@codex review

@chatgpt-codex-connector
Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Nice work!

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@lex0c lex0c merged commit 6885767 into main Apr 21, 2026
4 checks passed
@lex0c lex0c deleted the refactor/rename-legacy-hotspot branch April 21, 2026 16:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant