community infra: issue forms, code of conduct, project setup - #3
Merged
Conversation
…, project setup guide
5 tasks
Flotapponnier
added a commit
that referenced
this pull request
May 22, 2026
…inality) (#84) GSC shows /benchmarks/l1-finality at 144 imp/wk and 0.69% CTR. The page already ranks (#3 on top query) but the SERP snippet doesn't convert and there's no on-page anchor for the family of 'X chain finality time' queries. Changes: Schema + type plumbing - New optional YAML field per_chain_explainer: array of {slug, h2, body} - Body strings go through the existing template resolver so {{p50:slug}} resolves to live Prom data - Plumbed through spec-schema.ts -> Benchmark type -> spec.ts loader -> bench-template.ts renderer Component update (ChainHeadingsSummary) - Headings upgraded from h3 to h2 (stronger SEO signal) - Each chain section gets id={slug} so URLs like /benchmarks/l1-finality#ethereum land at the exact section - When per_chain_explainer has an entry for the chain's slug, render its body as a second paragraph below the live p50 line - Backward-compatible: chains without an explainer keep the existing 1-line rendering YAML content (l1-finality.yml) - 12 per_chain_explainer blocks (ethereum, solana, stellar, hedera, sui, ton, bnb, avalanche, tron, cardano, litecoin, monero) at 70-90 words each - FAQ expanded from 6 to 12 entries (cap), adding 'What is blockchain finality?', 'Probabilistic vs deterministic finality?', and per-chain entries for SUI, TON, BNB, Cardano (previously missing) Targets these GSC query patterns: - ethereum l1 time to finality (10 imp/wk, position 3.2) - stellar finality time (7 imp/wk, position 6.57) - hedera consensus finality time (4 imp/wk, position 7) - ethereum l1 finality time epochs (1 imp/wk, position 3) - solana finality time (1 imp/wk, position 50) - hedera finality 3-5 seconds (1 imp/wk, position 12) - 8 untapped queries (sui/ton/bnb/avalanche/cardano/tron/litecoin/monero finality time) Estimated impact: 144 imp/wk -> 350-500, position ~5 -> ~3, CTR 0.69% -> 4-6%, clicks 1/wk -> 15-30/wk in 4 weeks. pnpm validate -> 18 specs valid. pnpm typecheck -> clean.
5 tasks
Flotapponnier
added a commit
that referenced
this pull request
Sep 8, 2026
…nominator (#2279) Two problems on /products/[slug], both visible on Serialized. rankPerChainForBench only holds one real per-chain fact: the leader, from bestPerChain. For every other provider it reused the unfiltered aggregate order shifted by one slot, so a chip reading "#3 on Solana" was the global rank with a chain label on it, repeated identically across every chain of the bench. That reads as a measurement and is not one. Non-leader chips are gone: a chip now means "leads this chain", and its absence means "does not lead", not "ranks lower". The chips also hid how many providers were measured on the chain. "#1 on Solana" was #1 of 2 on bench 008 while sitting next to "#3 of 8" for the aggregate. They now read "#1 of 4 on Ethereum", with the denominator taken from providersPerChain and omitted when that set is unknown rather than substituting the global count. Wins accounting is unchanged: it already counted rank === 1 entries only. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Flotapponnier
added a commit
that referenced
this pull request
Sep 8, 2026
…he mix (#2280) On a bench with chain dimensions the cross-chain aggregate is a mix, not a comparison. Ranking on it alone let a provider measured on one chain that nobody else reported finish above a provider that led several contested ones. Five live benches shipped that way: rpc-capabilities Binance 1st on 1 chain, PublicNode led 6 wallet-labels-coverage XRPScan 1st on 1 chain, Serialized led 4 token-quote-coverage Jupiter 1st on 1 chain, Mobula led 2 bridge-fee Squid Router 1st on 1 chain perp-liq-rate Lighter 1st on 1 chain rankedCandidates now sorts by contested-chain wins first and uses the aggregate value only to break ties. A chain counts only when at least two providers reported on it, so an uncontested chain awards nothing: you do not win a race you ran alone. Guarded by the per-chain stashes, which materialize/load.ts populates only on the unfiltered view. A chain-filtered variant has none, so ?chain=bnb keeps ranking by value as before. providers.ts reuses the same ordering. The two surfaces disagreeing is what put "#3 of 8" next to five chain-leadership chips on the same bench row. Known and accepted: a provider with one contested win now ranks above one with none and a higher aggregate figure (TonAPI over XRPScan on 008). That is what ranking on head-to-head record means; the win count is on the row. Rule documented in methodology, section II. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds the GitHub-side scaffolding so contributors and providers have proper channels for proposing benchmarks, flagging data, and submitting corrections.
What's new
Issue forms (YAML, structured)
new-benchmark.yml— propose a benchmark formally (metric, providers, methodology, hosting plan)data-quality.yml— report a number on the site that looks wrong/stale/brokenprovider-correction.yml— provider-submitted disagreement with a measurement (with reproducer)config.yml— disable blank issues, link to Discussions for free-form questionsCommunity files
CODE_OF_CONDUCT.md— short, technical-project-flavored rulesSECURITY.md— vulnerability disclosure via private advisoriesSUPPORT.md— triage matrix mapping intent → channelOperations
DISCUSSIONS_AND_PROJECT_SETUP.md— documents the manual UI setup (Discussions categories + roadmap project board + label list) so it can be re-created if wipedUpdated
CONTRIBUTING.md— links new templates and Discussions categoriesREADME.md— adds a Community section linking everythingManual follow-up (already done by the user)
DISCUSSIONS_AND_PROJECT_SETUP.md