polymath-society 0.2.5 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -134,9 +134,7 @@ var require_secure_json_parse = __commonJS({
134
134
  });
135
135
 
136
136
  // ../../scripts/coding-frontier-detail.mts
137
- import { promises as fs5 } from "fs";
138
- import os2 from "os";
139
- import path10 from "path";
137
+ import { promises as fs7 } from "fs";
140
138
 
141
139
  // ../../lib/agents/shared/agent.ts
142
140
  import { readFileSync } from "fs";
@@ -15608,6 +15606,10 @@ function invokeAgent(inv, opts = {}) {
15608
15606
  return withLimitRetry(once, { label });
15609
15607
  }
15610
15608
 
15609
+ // ../../lib/agents/coding/docsDir.ts
15610
+ import { promises as fs5 } from "fs";
15611
+ import path9 from "path";
15612
+
15611
15613
  // ../../lib/agents/coding/materialize.ts
15612
15614
  import { promises as fs4 } from "fs";
15613
15615
 
@@ -15751,13 +15753,100 @@ async function materializeSession(file2) {
15751
15753
  return { text: lines.join("\n"), humanTurns, humanChars };
15752
15754
  }
15753
15755
 
15756
+ // ../../lib/agents/coding/docsDir.ts
15757
+ async function writeScoreboard(codingDir, docs) {
15758
+ const gradesDir = path9.join(codingDir, "grades");
15759
+ let files = [];
15760
+ try {
15761
+ files = (await fs5.readdir(gradesDir)).filter((f) => f.endsWith(".json")).sort();
15762
+ } catch {
15763
+ return;
15764
+ }
15765
+ const byCriterion = /* @__PURE__ */ new Map();
15766
+ for (const f of files) {
15767
+ let g;
15768
+ try {
15769
+ g = JSON.parse(await fs5.readFile(path9.join(gradesDir, f), "utf8"));
15770
+ } catch {
15771
+ continue;
15772
+ }
15773
+ for (const c of g.criteria ?? []) {
15774
+ const s = c.score ?? c.bestEstimate;
15775
+ if (s == null) continue;
15776
+ const line = `L${s}${c.score == null ? "~" : ""} \xB7 ${(g.date ?? "").slice(0, 10)} \xB7 ${(g.title ?? g.sessionId ?? "").replace(/\n.*/s, "").slice(0, 60)} \xB7 ${g.sessionId} \u2014 ${(c.instance ?? "").slice(0, 110)}`;
15777
+ (byCriterion.get(c.key) ?? byCriterion.set(c.key, []).get(c.key)).push({ s, line });
15778
+ }
15779
+ }
15780
+ if (!byCriterion.size) return;
15781
+ const blocks = [...byCriterion.entries()].sort(([a], [b]) => a < b ? -1 : 1).map(
15782
+ ([key, rows]) => `## ${key}
15783
+ ${rows.sort((a, b) => b.s - a.s).map((r) => r.line).join("\n")}`
15784
+ );
15785
+ await fs5.writeFile(
15786
+ path9.join(docs, "_scoreboard.md"),
15787
+ `# Scoreboard \u2014 every graded session per criterion, best first.
15788
+ # Lx~ = estimate. Format: level \xB7 date \xB7 title \xB7 sessionId \u2014 graded instance.
15789
+
15790
+ ${blocks.join("\n\n")}
15791
+ `
15792
+ );
15793
+ }
15794
+ async function ensureCodingDocs(codingDir, sessions) {
15795
+ const docs = path9.join(codingDir, "docs");
15796
+ await fs5.mkdir(docs, { recursive: true });
15797
+ const user = sessions.filter((s) => s.sessionId && !s.duplicateOf && (!("klass" in s) || s.klass === "interactive"));
15798
+ let written = 0;
15799
+ for (const s of user) {
15800
+ const out = path9.join(docs, `${s.sessionId}.txt`);
15801
+ try {
15802
+ await fs5.access(out);
15803
+ continue;
15804
+ } catch {
15805
+ }
15806
+ const mat = await materializeSession(s.file).catch(() => null);
15807
+ if (!mat?.text) continue;
15808
+ await fs5.writeFile(out, mat.text);
15809
+ written++;
15810
+ }
15811
+ const rows = user.sort((a, b) => (a.start ?? "") < (b.start ?? "") ? -1 : 1).map((s) => `${(s.start ?? "").slice(0, 10)} \xB7 ${(s.title ?? "").replace(/\n.*/s, "").slice(0, 80)} \xB7 ${s.sessionId}`);
15812
+ await fs5.writeFile(path9.join(docs, "_map.md"), rows.join("\n") + "\n");
15813
+ await writeScoreboard(codingDir, docs);
15814
+ if (written) console.log(`[docs] materialized ${written} new transcript(s) \u2192 ${docs}`);
15815
+ return docs;
15816
+ }
15817
+ function sourceLookupNote() {
15818
+ return `
15819
+
15820
+ SOURCE LOOKUP \u2014 you have Read/Grep/Glob over the working directory, which holds EVERYTHING known about this person's coding work. MAPS FIRST, grep second (the engine rule): docs/_scoreboard.md ranks every graded session per criterion, best first \u2014 one glance shows where the spikes/flair are, so start there when hunting peaks or checking whether a high mark is consistent or a one-off; day-digest.json is the day-by-day story of what they did in order \u2014 read the relevant days to get the arc before searching; docs/_map.md lists every session (date \xB7 title \xB7 sessionId). Then drill down: walkthroughs/<sessionId>.json is that session's phase-by-phase account (cheap, already distilled), grades/<sessionId>.json its graded findings with quotes, and docs/<sessionId>.txt the FULL transcript (">> " = the person, "[AI]" = the model) \u2014 the ground truth, read it when the distilled layers can't settle it. Other artifacts (flow.json, delegation/, expertise/, aggregate.json) are there too if a claim depends on them. The digest you were given is the spine \u2014 use lookups when a CLAIM-MOVING question cannot be settled from it (a moment you are about to headline, a promotion/depth call, an ambiguous engagement, whether detail was vision or boilerplate). VERIFY every verbatim quote you cite by finding it in the transcript first; if you cannot find it, do not use it. Look up what changes the output \u2014 do not re-read the whole corpus.`;
15821
+ }
15822
+
15823
+ // ../../lib/agents/coding/promptCache.ts
15824
+ import { createHash } from "crypto";
15825
+ import { promises as fs6 } from "fs";
15826
+ function promptSha(parts) {
15827
+ const h = createHash("sha256");
15828
+ for (const p of parts) {
15829
+ h.update(p ?? "");
15830
+ h.update("\0");
15831
+ }
15832
+ return h.digest("hex").slice(0, 16);
15833
+ }
15834
+ async function reusableOutput(outPath, sha, valid, key = "promptSha") {
15835
+ try {
15836
+ const o = JSON.parse(await fs6.readFile(outPath, "utf8"));
15837
+ if (o[key] === sha && valid(o)) return o;
15838
+ } catch {
15839
+ }
15840
+ return null;
15841
+ }
15842
+
15754
15843
  // ../../lib/agents/coding/profile.ts
15755
- import path9 from "path";
15844
+ import path10 from "path";
15756
15845
 
15757
15846
  // ../../lib/calibration/fingerprint.ts
15758
- import { createHash } from "node:crypto";
15847
+ import { createHash as createHash2 } from "node:crypto";
15759
15848
  function rubricFingerprint(criteria) {
15760
- return createHash("sha256").update(JSON.stringify(criteria)).digest("hex").slice(0, 10);
15849
+ return createHash2("sha256").update(JSON.stringify(criteria)).digest("hex").slice(0, 10);
15761
15850
  }
15762
15851
 
15763
15852
  // ../../lib/agents/coding/criteria.ts
@@ -15906,7 +15995,7 @@ var TRANSCRIPT_LINE_RE = new RegExp(`^\\s*(${NOTE})((,| and) ${NOTE})*\\s*$|^\\s
15906
15995
 
15907
15996
  // ../../lib/calibration/index.ts
15908
15997
  var DEFAULT_CALIBRATION = {
15909
- version: "2026-07-12.2",
15998
+ version: "2026-07-14.2",
15910
15999
  // = RUBRIC_FINGERPRINT of the shipped npm rubric (packages/coding-analyzer/
15911
16000
  // src/grade/criteria.ts). A unit test fails loud when the rubric changes
15912
16001
  // without this being updated (and re-pushed to the server).
@@ -15995,7 +16084,7 @@ var DEFAULT_CALIBRATION = {
15995
16084
  }
15996
16085
  ],
15997
16086
  codingTiers: {
15998
- push: { median: 300, sigma: 1.121, tag: "estimated \u2014 log-normal fit", source: "Anthropic 2026 Claude Code study (400k sessions): median engaged user ~8 prompts/day at ~35 words \u2014 ~300 directed words/day; tail shape from its actions-per-prompt distribution. AVERAGE over substantial days, cumulative not spiky." },
16087
+ push: { median: 300, sigma: 0.91, tag: "estimated \u2014 log-normal fit", source: "Anthropic 2026 Claude Code study (400k sessions): median engaged user ~8 prompts/day at ~35 words \u2014 ~300 directed words/day; tail: a 1-in-1,000 user AVERAGES ~5k directed words/day (near-daily heavy dictation, clearly below the ~10k single-day record). AVERAGE over substantial days, cumulative not spiky." },
15999
16088
  focus: { median: 0.08, sigma: 0.559, tag: "estimated \u2014 proxy-anchored", source: "median: Anthropic 20h/week engaged-user figure implies ~1h/day of true rapid exchange against an 8h working day; ceiling anchored to the ~4h/day deep-work limit (45% share = 1-in-1,000). AVERAGE share, cumulative not spiky." },
16000
16089
  orchestration: { tag: "estimated \u2014 behavior bands", source: "no published concurrency distribution exists; ceiling anchored to the Claude Code lead's documented 10-15 parallel sessions" }
16001
16090
  },
@@ -16028,12 +16117,18 @@ var DEFAULT_CALIBRATION = {
16028
16117
  line: "the Claude Code lead runs 10\u201315 sessions at once; his #1 tip is 3\u20135 git worktrees in parallel"
16029
16118
  },
16030
16119
  throughput: {
16031
- // Top-0.1% words/day reference lines, anchored to the throughput ladder
16032
- // (THROUGHPUT_LADDER in throughput.ts): score 10 "world-class sustained" =
16033
- // 9k/day, score 11 "superhuman ceiling" = 12k/day. Calibrated to the person's
16034
- // own anchors, not a wild guess but still a target, not a measured population.
16035
- topAvgWordsPerDay: 9e3,
16036
- topPeakWordsPerDay: 12e3,
16120
+ // Two DIFFERENT kinds of line (2026-07-14.2): topAvg is a PERCENTILE
16121
+ // claim — what a 1-in-1,000 user AVERAGES over substantial days (5k/day:
16122
+ // near-daily heavy dictation; a measured top dictating power user
16123
+ // averages ~3.9k). topPeak is NOT a percentileit is the CEILING
16124
+ // reference, the wildest single days on record (~10k: a 14-16h
16125
+ // launch-day marathon), rendered as "wildest single days", never
16126
+ // "top X% peak". An avg-percentile and a peak-percentile can't both be
16127
+ // shown at a same-ish value (avg≈peak reads broken — user call), and a
16128
+ // peak PERCENTILE line is unknowable anyway; the record framing is
16129
+ // honest and keeps the visual gap.
16130
+ topAvgWordsPerDay: 5e3,
16131
+ topPeakWordsPerDay: 1e4,
16037
16132
  benchLabel: "top 0.1%",
16038
16133
  // No published "words typed/day" for heavy users — the real story is OUTPUT.
16039
16134
  loopsHeadline: ">1,000,000 lines of Rust at 99.8% tests passing",
@@ -16050,8 +16145,8 @@ var BEST = DEFAULT_CALIBRATION.codingBenchmarks;
16050
16145
 
16051
16146
  // ../../lib/agents/coding/profile.ts
16052
16147
  var ROOT = process.cwd();
16053
- var CODING_DIR = process.env.POLYMATH_DATA_DIR ? path9.join(process.env.POLYMATH_DATA_DIR, "coding") : path9.join(ROOT, ".data", "coding");
16054
- var GRADES = path9.join(CODING_DIR, "grades");
16148
+ var CODING_DIR = process.env.POLYMATH_DATA_DIR ? path10.join(process.env.POLYMATH_DATA_DIR, "coding") : path10.join(ROOT, ".data", "coding");
16149
+ var GRADES = path10.join(CODING_DIR, "grades");
16055
16150
 
16056
16151
  // ../../scripts/coding-frontier-detail.mts
16057
16152
  var CODING = CODING_DIR;
@@ -16068,7 +16163,7 @@ var isUuid = (s) => /^[0-9a-f]{8}-?[0-9a-f]/.test(s);
16068
16163
  async function parseSkillCalls(file2) {
16069
16164
  let raw;
16070
16165
  try {
16071
- raw = await fs5.readFile(file2, "utf8");
16166
+ raw = await fs7.readFile(file2, "utf8");
16072
16167
  } catch {
16073
16168
  return [];
16074
16169
  }
@@ -16091,7 +16186,7 @@ async function parseSkillCalls(file2) {
16091
16186
  return out;
16092
16187
  }
16093
16188
  async function main() {
16094
- const all = JSON.parse(await fs5.readFile(`${CODING}/sessions.json`, "utf8"));
16189
+ const all = JSON.parse(await fs7.readFile(`${CODING}/sessions.json`, "utf8"));
16095
16190
  const sessions = all.filter((s) => s.klass === "interactive");
16096
16191
  const dateOf = (s) => (s.start || "").slice(0, 10);
16097
16192
  const byActive = (a, b) => (b.activeMin ?? 0) - (a.activeMin ?? 0);
@@ -16156,20 +16251,41 @@ Assess each. Output a SINGLE fenced json block (every string a complete punctuat
16156
16251
  }
16157
16252
  \`\`\`
16158
16253
  Put anything with verdict "tried-failed" into BOTH its list (with the verdict) AND triedButFailed. Use only the exact skill/capability names given.`;
16159
- console.log(`frontier-detail \u2014 ${skillsUsed.length} skills, ${CAP_TARGETS.length} capability candidates, ${mcpServers.length} MCP \u2192 1 Sonnet call`);
16160
- const sandbox = await fs5.mkdtemp(path10.join(os2.tmpdir(), "frontdet-"));
16254
+ const SYSX = SYS + sourceLookupNote();
16255
+ const sha = promptSha([SYSX, prompt, "sonnet"]);
16256
+ if (!process.argv.includes("--refresh")) {
16257
+ const prev = await reusableOutput(`${CODING}/frontier-detail.json`, sha, (o) => Array.isArray(o.skills));
16258
+ if (prev) {
16259
+ console.log(`[frontier-detail] inputs unchanged \u2014 reusing output from ${prev.generatedAt} (--refresh to regenerate)`);
16260
+ return;
16261
+ }
16262
+ }
16263
+ await ensureCodingDocs(CODING, sessions);
16264
+ console.log(`frontier-detail \u2014 ${skillsUsed.length} skills, ${CAP_TARGETS.length} capability candidates, ${mcpServers.length} MCP \u2192 1 Sonnet call (+source lookups)`);
16161
16265
  let detail = { skills: [], capabilities: [], triedButFailed: [] };
16266
+ let ok = false;
16162
16267
  try {
16163
- const run2 = await invokeAgent({ prompt, systemPrompt: SYS, addDir: sandbox, allowedTools: ["Read"], maxTurns: 4, timeoutMs: 6e5, model: "sonnet" });
16164
- detail = run2.json || detail;
16268
+ const run2 = await invokeAgent({ prompt, systemPrompt: SYSX, addDir: CODING, allowedTools: ["Read", "Grep", "Glob"], maxTurns: 10, timeoutMs: 6e5, model: "sonnet" });
16269
+ if (run2.json) {
16270
+ detail = run2.json;
16271
+ ok = true;
16272
+ }
16165
16273
  } catch (e) {
16166
16274
  console.log("ERR", e.message.slice(0, 160));
16167
- } finally {
16168
- await fs5.rm(sandbox, { recursive: true, force: true }).catch(() => {
16169
- });
16170
16275
  }
16171
- const out = { generatedAt: (/* @__PURE__ */ new Date()).toISOString(), skillsUsed, mcpServers, ...detail };
16172
- await fs5.writeFile(`${CODING}/frontier-detail.json`, JSON.stringify(out, null, 2));
16276
+ if (!ok) {
16277
+ const existing = await fs7.readFile(`${CODING}/frontier-detail.json`, "utf8").then(JSON.parse).catch(() => null);
16278
+ if (existing && (existing.skills || []).length) {
16279
+ console.error(`REFUSING to write ${CODING}/frontier-detail.json \u2014 the LLM pass failed and the existing file has ${existing.skills.length} assessed skill(s)`);
16280
+ process.exit(1);
16281
+ }
16282
+ }
16283
+ const out = { generatedAt: (/* @__PURE__ */ new Date()).toISOString(), ...ok ? { promptSha: sha } : {}, skillsUsed, mcpServers, ...detail };
16284
+ await fs7.writeFile(`${CODING}/frontier-detail.json`, JSON.stringify(out, null, 2));
16285
+ if (!ok) {
16286
+ console.error(`frontier-detail LLM pass failed \u2014 wrote deterministic portion only (skillsUsed/mcpServers), exiting non-zero`);
16287
+ process.exit(1);
16288
+ }
16173
16289
  const sk = detail.skills || [];
16174
16290
  const surf = sk.filter((x) => x.verdict === "core" || x.verdict === "occasional").length;
16175
16291
  console.log(`WROTE ${CODING}/frontier-detail.json \u2014 skills assessed:${sk.length} (surfaced:${surf}) \xB7 caps:${(detail.capabilities || []).length} \xB7 triedFailed:${(detail.triedButFailed || []).length}`);
@@ -203,7 +203,7 @@ var TRANSCRIPT_LINE_RE = new RegExp(`^\\s*(${NOTE})((,| and) ${NOTE})*\\s*$|^\\s
203
203
 
204
204
  // ../../lib/calibration/index.ts
205
205
  var DEFAULT_CALIBRATION = {
206
- version: "2026-07-12.2",
206
+ version: "2026-07-14.2",
207
207
  // = RUBRIC_FINGERPRINT of the shipped npm rubric (packages/coding-analyzer/
208
208
  // src/grade/criteria.ts). A unit test fails loud when the rubric changes
209
209
  // without this being updated (and re-pushed to the server).
@@ -292,7 +292,7 @@ var DEFAULT_CALIBRATION = {
292
292
  }
293
293
  ],
294
294
  codingTiers: {
295
- push: { median: 300, sigma: 1.121, tag: "estimated \u2014 log-normal fit", source: "Anthropic 2026 Claude Code study (400k sessions): median engaged user ~8 prompts/day at ~35 words \u2014 ~300 directed words/day; tail shape from its actions-per-prompt distribution. AVERAGE over substantial days, cumulative not spiky." },
295
+ push: { median: 300, sigma: 0.91, tag: "estimated \u2014 log-normal fit", source: "Anthropic 2026 Claude Code study (400k sessions): median engaged user ~8 prompts/day at ~35 words \u2014 ~300 directed words/day; tail: a 1-in-1,000 user AVERAGES ~5k directed words/day (near-daily heavy dictation, clearly below the ~10k single-day record). AVERAGE over substantial days, cumulative not spiky." },
296
296
  focus: { median: 0.08, sigma: 0.559, tag: "estimated \u2014 proxy-anchored", source: "median: Anthropic 20h/week engaged-user figure implies ~1h/day of true rapid exchange against an 8h working day; ceiling anchored to the ~4h/day deep-work limit (45% share = 1-in-1,000). AVERAGE share, cumulative not spiky." },
297
297
  orchestration: { tag: "estimated \u2014 behavior bands", source: "no published concurrency distribution exists; ceiling anchored to the Claude Code lead's documented 10-15 parallel sessions" }
298
298
  },
@@ -325,12 +325,18 @@ var DEFAULT_CALIBRATION = {
325
325
  line: "the Claude Code lead runs 10\u201315 sessions at once; his #1 tip is 3\u20135 git worktrees in parallel"
326
326
  },
327
327
  throughput: {
328
- // Top-0.1% words/day reference lines, anchored to the throughput ladder
329
- // (THROUGHPUT_LADDER in throughput.ts): score 10 "world-class sustained" =
330
- // 9k/day, score 11 "superhuman ceiling" = 12k/day. Calibrated to the person's
331
- // own anchors, not a wild guess but still a target, not a measured population.
332
- topAvgWordsPerDay: 9e3,
333
- topPeakWordsPerDay: 12e3,
328
+ // Two DIFFERENT kinds of line (2026-07-14.2): topAvg is a PERCENTILE
329
+ // claim — what a 1-in-1,000 user AVERAGES over substantial days (5k/day:
330
+ // near-daily heavy dictation; a measured top dictating power user
331
+ // averages ~3.9k). topPeak is NOT a percentileit is the CEILING
332
+ // reference, the wildest single days on record (~10k: a 14-16h
333
+ // launch-day marathon), rendered as "wildest single days", never
334
+ // "top X% peak". An avg-percentile and a peak-percentile can't both be
335
+ // shown at a same-ish value (avg≈peak reads broken — user call), and a
336
+ // peak PERCENTILE line is unknowable anyway; the record framing is
337
+ // honest and keeps the visual gap.
338
+ topAvgWordsPerDay: 5e3,
339
+ topPeakWordsPerDay: 1e4,
334
340
  benchLabel: "top 0.1%",
335
341
  // No published "words typed/day" for heavy users — the real story is OUTPUT.
336
342
  loopsHeadline: ">1,000,000 lines of Rust at 99.8% tests passing",
@@ -394,7 +394,7 @@ var IDLE_CAP_MS = 12 * 6e4;
394
394
 
395
395
  // ../../lib/calibration/index.ts
396
396
  var DEFAULT_CALIBRATION = {
397
- version: "2026-07-12.2",
397
+ version: "2026-07-14.2",
398
398
  // = RUBRIC_FINGERPRINT of the shipped npm rubric (packages/coding-analyzer/
399
399
  // src/grade/criteria.ts). A unit test fails loud when the rubric changes
400
400
  // without this being updated (and re-pushed to the server).
@@ -483,7 +483,7 @@ var DEFAULT_CALIBRATION = {
483
483
  }
484
484
  ],
485
485
  codingTiers: {
486
- push: { median: 300, sigma: 1.121, tag: "estimated \u2014 log-normal fit", source: "Anthropic 2026 Claude Code study (400k sessions): median engaged user ~8 prompts/day at ~35 words \u2014 ~300 directed words/day; tail shape from its actions-per-prompt distribution. AVERAGE over substantial days, cumulative not spiky." },
486
+ push: { median: 300, sigma: 0.91, tag: "estimated \u2014 log-normal fit", source: "Anthropic 2026 Claude Code study (400k sessions): median engaged user ~8 prompts/day at ~35 words \u2014 ~300 directed words/day; tail: a 1-in-1,000 user AVERAGES ~5k directed words/day (near-daily heavy dictation, clearly below the ~10k single-day record). AVERAGE over substantial days, cumulative not spiky." },
487
487
  focus: { median: 0.08, sigma: 0.559, tag: "estimated \u2014 proxy-anchored", source: "median: Anthropic 20h/week engaged-user figure implies ~1h/day of true rapid exchange against an 8h working day; ceiling anchored to the ~4h/day deep-work limit (45% share = 1-in-1,000). AVERAGE share, cumulative not spiky." },
488
488
  orchestration: { tag: "estimated \u2014 behavior bands", source: "no published concurrency distribution exists; ceiling anchored to the Claude Code lead's documented 10-15 parallel sessions" }
489
489
  },
@@ -516,12 +516,18 @@ var DEFAULT_CALIBRATION = {
516
516
  line: "the Claude Code lead runs 10\u201315 sessions at once; his #1 tip is 3\u20135 git worktrees in parallel"
517
517
  },
518
518
  throughput: {
519
- // Top-0.1% words/day reference lines, anchored to the throughput ladder
520
- // (THROUGHPUT_LADDER in throughput.ts): score 10 "world-class sustained" =
521
- // 9k/day, score 11 "superhuman ceiling" = 12k/day. Calibrated to the person's
522
- // own anchors, not a wild guess but still a target, not a measured population.
523
- topAvgWordsPerDay: 9e3,
524
- topPeakWordsPerDay: 12e3,
519
+ // Two DIFFERENT kinds of line (2026-07-14.2): topAvg is a PERCENTILE
520
+ // claim — what a 1-in-1,000 user AVERAGES over substantial days (5k/day:
521
+ // near-daily heavy dictation; a measured top dictating power user
522
+ // averages ~3.9k). topPeak is NOT a percentileit is the CEILING
523
+ // reference, the wildest single days on record (~10k: a 14-16h
524
+ // launch-day marathon), rendered as "wildest single days", never
525
+ // "top X% peak". An avg-percentile and a peak-percentile can't both be
526
+ // shown at a same-ish value (avg≈peak reads broken — user call), and a
527
+ // peak PERCENTILE line is unknowable anyway; the record framing is
528
+ // honest and keeps the visual gap.
529
+ topAvgWordsPerDay: 5e3,
530
+ topPeakWordsPerDay: 1e4,
525
531
  benchLabel: "top 0.1%",
526
532
  // No published "words typed/day" for heavy users — the real story is OUTPUT.
527
533
  loopsHeadline: ">1,000,000 lines of Rust at 99.8% tests passing",