Skip to content

Show all ten Mechs using canonical fleet membership - #71

Merged
realmarcin merged 1 commit into
mainfrom
fix/fleet-membership-source
Sep 12, 2026
Merged

realmarcin merged 1 commit into
mainfrom
fix/fleet-membership-source

Conversation

@realmarcin

@realmarcin realmarcin commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

The public X-Mech page still marked NaturalProductMech outside the fleet and omitted TaxonMech after both had joined the canonical manifest. The page now shows all ten members, their declared capabilities and published browse links.

Membership badges, counts, graph membership and capability rows derive from a committed CLAW snapshot with a source link. Generation rejects missing cards/nodes, inconsistent census data and malformed provenance. A new PR/push/daily workflow checks generated output and semantic drift against CLAW main. The existing September vocabulary census remains explicitly limited to its nine measured corpora; TaxonMech is not assigned invented zero counts.

Validation:

  • All 11 regression tests, canonical snapshot comparison and generated-output checks passed in CI on this PR revision.
  • Independent adversarial review reproduced three validation gaps and verified their fixes.
  • Actual generated JavaScript passed a retained runtime smoke test: ten nodes, nine heatmap rows, both affected membership details and browse links.
  • Chrome preview with the site's styles rendered ten nodes/cards/capability rows, nine measured heatmap rows and working membership interactions and vocabulary filtering, with no JavaScript exceptions. All graph labels remained within the SVG viewBox at desktop and mobile sizes. The preview used a data URL because local HTTP navigation stalled in this environment.

Closes #69
Closes #70
Closes #67

Copilot AI lite review requested due to automatic review settings September 12, 2026 06:25

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@realmarcin
realmarcin merged commit b498e1d into main Sep 12, 2026
1 check passed
@realmarcin
realmarcin deleted the fix/fleet-membership-source branch September 12, 2026 06:28
@realmarcin

Copy link
Copy Markdown
Contributor Author

Published and verified at https://culturebotai.github.io/mechs/ after Pages deployment 34678179194.

The live page returns 200 and contains ten cards and ten capability rows. NaturalProductMech and TaxonMech both display “in fleet manifest” and their published browse links. The stale nonmember and one-revision-behind claims are absent. The embedded manifest and inline JavaScript exactly match the reviewed generated source; the home page also lists ten Mechs.

PR and main-branch CI passed. Independent Chrome review confirmed ten graph nodes, nine measured heatmap rows, working membership details/filtering and unclipped graph labels at desktop and mobile sizes. Issues #67, #69 and #70 are closed. The completed task branch has been deleted locally and remotely.

realmarcin added a commit that referenced this pull request Sep 16, 2026
…e heatmap up

Rebuilt onto main after #71 and #72 landed, which replaced the assembler with
a manifest-driven one, added a test suite and a CI check, and took the fleet to
ten members. Two pieces of the original branch were superseded and are dropped:
main already derives the graph's accessible title from the fleet count, and
already gives NaturalProductMech its Browse button.

A fifth stat tile carries merged pull requests summed across the ten Mech
repositories, and every card gains a line of small print under its headline
number with that Mech's reviewed records and merged PRs.

Whether a Mech tracks review is read from its LinkML schema, not from the
values its records happen to carry. Seven declare a status slot whose enum
permits REVIEWED, so a zero there is a real zero. MediaIngredientMech and
CultureMech have a mapping_status, but its enum runs UNMAPPED to AMBIGUOUS and
never reaches REVIEWED, so it grades mapping rather than review; CommunityMech
has no such slot. Those three print only their PR count, because "nobody has
reviewed one" and "this Mech does not track review" are different claims.

mech_stats.py takes fleet membership from the manifest snapshot, the same
source assemble_page.py validates the cards against, so a Mech admitted to the
fleet cannot end up with a card and no stat line. roots.ORDER is a narrower
thing, the members the vocabulary scans have measured, and stays at nine.
TaxonMech's record glob lives in mech_stats.py until the census reaches it.
assemble() now refuses to build if the stats miss a member, and two tests cover
that and the untracked-review case.

The Shared vocabulary heatmap moves above the graph, from the template into the
fragment, since the graph is what it explains. Its heading is raw HTML carrying
the id kramdown would have generated, because markdown is not processed inside
the fragment.

Graph nodes are lit as spheres: one highlight gradient and one limb gradient,
both in objectBoundingBox units so a single pair serves all ten, neither
carrying a hue, both multiplying over whichever Mech colour is underneath. The
weighting is a theme token because it has to change -- light-theme Mech colours
are far darker, carrying their contrast against white, and a limb tuned for the
dark theme turned them to mud. The overlays take no pointer events, so hovering
still hits the node. The hub keeps its flat fill and reads as the centre.

The stat strip steps 5 to 3 to 2 columns on explicit breakpoints; auto-fit
picks four between roughly 700px and 1010px and strands the fifth tile alone.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BXHrBTSU8fU4Zg7HfaMKs9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants