Skip to content

Adapt CultureMech's review-open-issues skill to this site - #103

Merged
realmarcin merged 1 commit into
mainfrom
feat/review-open-issues-skill
Sep 22, 2026
Merged

realmarcin merged 1 commit into
mainfrom
feat/review-open-issues-skill

Conversation

@realmarcin

Copy link
Copy Markdown
Contributor

Adds .claude/skills/review-open-issues/SKILL.md, adapted from the skill of the same name in CultureMech.

What transferred, and what didn't

The shape transferred: full-queue sweep rather than first-page sampling, a dependency graph before ranking, P0/P1/P2 with a separate readiness axis, evidence-over-vibes for every CLOSE, a read-only mutation boundary.

Almost none of the content did. CultureMech's version is built around its corpus — data layers, justfile gate baselines, SSSOM identity, ontology grounding. The defects here are a different kind: wrong claims on public pages, not wrong chemistry in a record. So:

  • the layer graph is the fleet pipeline (census → subsets → data → stats → assemble → Pages), with the hand-curated card layer alongside it, because a fault in one is invisible to the other;
  • the stop-the-line list is about published claims — a wrong number or licence on a page other work cites, a dead link, an enumeration short of the fleet, mechs.md hand-edited so the next assembly reverts it, a partial pipeline run;
  • the gate section names the three things CI actually runs, and says to mutation-test before crediting any of them.

Three things worth writing down

None is guessable from the code, and each has produced a wrong conclusion here.

The three numbers. A published-site total, a local-checkout count and a census count are different facts with different refresh rules, and they legitimately disagree. CultureMech publishes 6,286 merged canonical media and serves 15,878 normalized records from the same site. CommunityMech's hero counts kb/communities while the fleet glob also takes the four data/isolates records — verified in roots.py — so the two can never match. Most numeric issues in the queue are one mistaken for another.

A page can contradict its own data. ProteinTraitsMech ships 408,978 as static HTML and overwrites it at runtime from facets.json, which serves 429,291; a scraper and a visitor disagree. CultureMech's 10,657 tile matches no data layer at all. And several Mech roots are meta-refresh shells returning 200, so curl -L never reaches the real page.

A passing test may be unable to fail. Two guards in this repository passed against the very regression they named — one because setUp had already clobbered the file the assertion compared, one because its only real teeth were a timeout a small fixture never trips. The skill says to mutation-test before crediting a gate, and to do it with a fast fixture, which is what exposed both.

Measurement discipline

Kept only the traps that have actually fired here: rg skipping gitignored files when proving absence; --no-ignore not being a grep flag, so the && chain skips silently and reads as "no matches"; emoji heading ids needing the deployed HTML rather than local kramdown; generated mechs.md versus its sources; and argument evaluation order being load-bearing in prefix_census.main().

Also records that ../CLAUDE.md sits above the git root and is untracked, so it never reaches a clone and should not be cited as a shared contract.

Verification

Every path, CI step and figure cited was checked before committing:

  • all nine referenced paths exist; ../CLAUDE.md confirmed outside the repository
  • the three CI commands quoted match fleet-page.yml exactly
  • CommunityMech glob confirmed as kb/communities/*.yaml + data/isolates/*.yaml, with 4 isolate records
  • 6,286 canonical media confirmed on the live /mechs/ page
  • #-advanced-research-tools and #-developer-resources confirmed in the deployed HTML
  • frontmatter parses; 27 tests and assemble_page.py --check still pass

Docs-only: no runtime code touched.

🤖 Generated with Claude Code

CultureMech has a full-queue triage skill built around its corpus: data layers,
gate baselines in its justfile, SSSOM identity, ontology grounding. The shape
transfers; almost none of the content does, because the defects here are a
different kind. This site's bugs are wrong claims on public pages, not wrong
chemistry in a record.

So the layer graph is the fleet pipeline (census → subsets → data → stats →
assemble → Pages) with the hand-curated card layer alongside it, and the
stop-the-line list is about published claims: a wrong number or licence on a
page other work cites, a dead link, an enumeration short of the fleet, a
partial pipeline run that dates the page to one run over data from another.

Three things are worth writing down because they have each produced a wrong
conclusion here, and none is guessable from the code:

The three numbers. A published-site total, a local-checkout count and a census
count are different facts with different refresh rules, and they legitimately
disagree — CultureMech publishes 6,286 merged canonical media and serves 15,878
normalized records from the same site; CommunityMech's hero counts kb/communities
while the fleet glob also takes the four data/isolates records, so the two can
never match. Most numeric issues in the queue are one mistaken for another.

A page can contradict its own data. ProteinTraitsMech ships 408,978 as static
HTML and overwrites it at runtime from facets.json, which serves 429,291, so a
scraper and a visitor disagree. CultureMech's 10,657 tile matches no data layer
at all. Read what the page renders, and fetch the pages/ URL directly since
several Mech roots are meta-refresh shells that return 200.

A passing test may be unable to fail. Two guards here passed against the very
regression they named — one because setUp had already clobbered the file the
assertion compared, one because its only real teeth were a timeout that a small
fixture never trips. The skill says to mutation-test before crediting a gate,
and to do it with a fast fixture.

The measurement-discipline section keeps only the traps that have actually
fired here: rg skipping gitignored files when proving absence, --no-ignore not
being a grep flag so the && chain skips silently, emoji heading ids needing the
deployed HTML, generated mechs.md versus its sources, and argument evaluation
order being load-bearing in prefix_census.main().

Every path, CI step and figure cited was checked against the repository and the
live site before committing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@realmarcin
realmarcin merged commit d0a48f7 into main Sep 22, 2026
1 check passed
@realmarcin
realmarcin deleted the feat/review-open-issues-skill branch September 22, 2026 07:25
realmarcin added a commit that referenced this pull request Sep 22, 2026
Reviewed adversarially; findings filed as issues #112 (#103) and #119 (#105), neither blocking.
realmarcin added a commit that referenced this pull request Sep 22, 2026
Reviewed adversarially; findings filed as issues #112 (#103) and #119 (#105), neither blocking.
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