polymath-society 0.2.19 → 0.2.21

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.
Files changed (40) hide show
  1. package/dist/cli.js +24620 -22073
  2. package/dist/engine/chat-loops.js +8 -1
  3. package/dist/engine/exp-allfacets.js +8 -1
  4. package/dist/engine/exp-person.js +8 -1
  5. package/dist/engine/exp-pipeline.js +8 -1
  6. package/dist/engine/ingest-export.js +7 -6
  7. package/dist/engine/peak-demos.js +8 -1
  8. package/dist/engine/person-dimension-summary.js +8 -1
  9. package/dist/engine/person-facet-lines.js +8 -1
  10. package/dist/engine/person-headline.js +8 -1
  11. package/dist/engine/person-report.js +8 -1
  12. package/dist/engine/person-self-image.js +8 -1
  13. package/dist/engine/public-report.js +15 -7
  14. package/dist/engine/run-analysis.js +8 -1
  15. package/dist/engine/run-tagger.js +8 -1
  16. package/dist/index.js +19600 -17706
  17. package/dist/pipeline/FOCUS-EXAMPLES.md +127 -0
  18. package/dist/pipeline/FOCUS-RUBRIC.md +418 -0
  19. package/dist/pipeline/coding-agglomerate.js +947 -79
  20. package/dist/pipeline/coding-aggregate.js +443 -23
  21. package/dist/pipeline/coding-build.js +569 -97
  22. package/dist/pipeline/coding-coaching.js +651 -101
  23. package/dist/pipeline/coding-day-digest.js +417 -36
  24. package/dist/pipeline/coding-delegation.js +564 -68
  25. package/dist/pipeline/coding-expertise.js +477 -59
  26. package/dist/pipeline/coding-flow.js +424 -15
  27. package/dist/pipeline/coding-focus.js +507 -51
  28. package/dist/pipeline/coding-frontier-detail.js +465 -47
  29. package/dist/pipeline/coding-frontier.js +7 -6
  30. package/dist/pipeline/coding-gap-dist.js +424 -15
  31. package/dist/pipeline/coding-gap.js +679 -128
  32. package/dist/pipeline/coding-grade.js +469 -42
  33. package/dist/pipeline/coding-growth.js +17041 -0
  34. package/dist/pipeline/coding-nutshell.js +168 -151
  35. package/dist/pipeline/coding-projects.js +7 -6
  36. package/dist/pipeline/coding-walkthrough.js +461 -37
  37. package/dist/pipeline/coding-workbrief.js +16387 -0
  38. package/dist/web/app.js +2095 -1396
  39. package/dist/web/styles.css +1 -1
  40. package/package.json +1 -1
@@ -504,6 +504,13 @@ ${report}`);
504
504
  }
505
505
 
506
506
  // ../../lib/agents/shared/codexAdapter.ts
507
+ var CODEX_DEFAULT_MODEL = "gpt-5.5";
508
+ var CODEX_MINI_MODEL = "gpt-5.4-mini";
509
+ function mapCodexTier(model, env = process.env) {
510
+ if (model && !/^(claude|haiku|sonnet|opus)/i.test(model)) return model;
511
+ if (model && /^haiku/i.test(model)) return env.POLYMATH_CODEX_MODEL_MINI || CODEX_MINI_MODEL;
512
+ return env.POLYMATH_CODEX_MODEL || CODEX_DEFAULT_MODEL;
513
+ }
507
514
  function composePrompt(inv, roots) {
508
515
  return [
509
516
  inv.systemPrompt ? `<system>
@@ -544,7 +551,7 @@ var codexAdapter = {
544
551
  "read-only",
545
552
  "--json"
546
553
  ];
547
- if (inv.model && !/^claude/i.test(inv.model)) args.push("--model", inv.model);
554
+ args.push("--model", mapCodexTier(inv.model));
548
555
  args.push(composePrompt(inv, roots));
549
556
  const started = Date.now();
550
557
  const toolCalls = [];
@@ -15687,6 +15694,161 @@ function selfImageReference(si, opts = {}) {
15687
15694
  ${parts.join("\n\n")}`;
15688
15695
  }
15689
15696
 
15697
+ // ../../lib/calibration/index.ts
15698
+ var DEFAULT_CALIBRATION = {
15699
+ version: "2026-07-21.1",
15700
+ // = RUBRIC_FINGERPRINT of the shipped npm rubric (packages/coding-analyzer/
15701
+ // src/grade/criteria.ts). A unit test fails loud when the rubric changes
15702
+ // without this being updated (and re-pushed to the server).
15703
+ rubricVersion: "7983c01d53",
15704
+ // Canonical scale = the one the product owner set for the public report
15705
+ // (11=0.01% … 8=2%), extended downward from the old report ladder. The old
15706
+ // CodeAnalysisView / npm-viewer maps (7→10%/15%, 6→25%/30%) were drift, not
15707
+ // intent.
15708
+ scoreBands: [
15709
+ { score: 11, label: "Top 0.01%" },
15710
+ { score: 10, label: "Top 0.1%" },
15711
+ { score: 9, label: "Top 0.5%" },
15712
+ { score: 8, label: "Top 2%" },
15713
+ { score: 7, label: "Top 5%" },
15714
+ { score: 6, label: "Top 15%" },
15715
+ { score: 5, label: "Top 50%" },
15716
+ { score: 4, label: "Top 65%" },
15717
+ { score: 3, label: "Top 80%" },
15718
+ { score: 2, label: "Top 90%" },
15719
+ { score: 1, label: "Top 97%" }
15720
+ ],
15721
+ minRankedScore: 6,
15722
+ benchmarkBands: [
15723
+ {
15724
+ level: "11",
15725
+ name: "Superhuman",
15726
+ rank: "Top 0.01%",
15727
+ oneIn: "1 in 10,000+",
15728
+ meaning: "Beyond the normal human ceiling for the trait \u2014 the genuine power-law outlier. Almost no one earns this; when the evidence shows it, it is scored, not rounded down.",
15729
+ foundIn: [
15730
+ "Fields Medal and Nobel-track researchers",
15731
+ "Founders of generational companies",
15732
+ "The handful of people a frontier field is named after"
15733
+ ],
15734
+ maxTopPct: 0.01
15735
+ },
15736
+ {
15737
+ level: "10",
15738
+ name: "World-class",
15739
+ rank: "Top 0.1%",
15740
+ oneIn: "1 in 1,000",
15741
+ meaning: "Among the best alive at this trait \u2014 the level entire institutions are built to find.",
15742
+ foundIn: [
15743
+ "Researchers at frontier AI labs",
15744
+ "Faculty at top-5 research universities",
15745
+ "IMO / IOI medalists",
15746
+ "Founders backed by the top decile of venture firms"
15747
+ ],
15748
+ maxTopPct: 0.1
15749
+ },
15750
+ {
15751
+ level: "9",
15752
+ name: "Exceptional",
15753
+ rank: "Top 1%",
15754
+ oneIn: "1 in 100",
15755
+ meaning: "Clearly exceptional \u2014 the strongest person on most strong teams.",
15756
+ foundIn: [
15757
+ "PhD students at top programs",
15758
+ "Early engineers at breakout startups",
15759
+ "YC-class founders",
15760
+ "National olympiad finalists"
15761
+ ],
15762
+ maxTopPct: 1
15763
+ },
15764
+ {
15765
+ level: "8",
15766
+ name: "Strong",
15767
+ rank: "Top 10%",
15768
+ oneIn: "1 in 10",
15769
+ meaning: "Strong against the whole population \u2014 the best person in most rooms, not every room.",
15770
+ foundIn: [
15771
+ "Senior engineers at selective tech companies",
15772
+ "Graduates of demanding technical programs",
15773
+ "Operators who get promoted everywhere they go"
15774
+ ],
15775
+ maxTopPct: 10
15776
+ },
15777
+ {
15778
+ level: "5",
15779
+ name: "Median",
15780
+ rank: "50th percentile",
15781
+ oneIn: "1 in 2",
15782
+ meaning: 'The middle of the general population. The reference class is all ~8 billion humans \u2014 so even "strong" above already means top 10% of everyone.',
15783
+ foundIn: ["The general population \u2014 most people, most places"],
15784
+ maxTopPct: 100
15785
+ }
15786
+ ],
15787
+ codingTiers: {
15788
+ 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." },
15789
+ 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." },
15790
+ hours: { median: 3, sigma: 0.4, tag: "estimated \u2014 proxy-anchored", source: "median: RescueTime-measured ~2h48m of real productive time/day (same source as the flow benchmark) \u2248 3h of active building; shape: sustaining ~7.5h/day \u2248 top 1%, a ~12h/day average \u2248 1-in-3,000. AVERAGE work-day length, cumulative not spiky." },
15791
+ 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" }
15792
+ },
15793
+ codingBenchmarks: {
15794
+ flow: {
15795
+ // typical knowledge worker ≈ 35% of an 8h day focused; the ~4h/day
15796
+ // deep-work ceiling (Newport) sits nearer ~40% of a real (9-10h) top
15797
+ // performer's day — 50% overstated it (owner call 2026-07-21).
15798
+ typicalPctOfDay: 0.35,
15799
+ topPctOfDay: 0.4,
15800
+ tag: "measured",
15801
+ source: "RescueTime 2019 (~2h48m focused/day) \xB7 Cal Newport, Deep Work (~4h/day deep-work ceiling against a 9-10h day)",
15802
+ line: "the best spend ~40% of the workday in true deep flow; ~4h/day is the human ceiling"
15803
+ },
15804
+ longestRun: {
15805
+ typicalHours: 0.67,
15806
+ // ~40 min before the average worker is interrupted
15807
+ topHours: 4,
15808
+ tag: "measured",
15809
+ source: "RescueTime (avg max ~40 min focus before interruption) \xB7 deep-work single-block ceiling ~3\u20134h",
15810
+ line: "a top performer can hold a single ~3\u20134h uninterrupted block; the average worker breaks at ~40 min"
15811
+ },
15812
+ parallelism: {
15813
+ topMaxConcurrent: 12,
15814
+ // Boris Cherny ~10–15 interactive sessions
15815
+ topAvgConcurrent: 6,
15816
+ // time-weighted average while active (anecdotal, same source)
15817
+ worktreesTip: "3\u20135 git worktrees at once",
15818
+ tag: "anecdotal",
15819
+ source: "Boris Cherny (Claude Code lead, Anthropic): ~10\u201315 concurrent sessions, 'dozens of Claudes running at all times'; 3\u20135 worktrees = 'the single biggest productivity unlock'",
15820
+ line: "the Claude Code lead runs 10\u201315 sessions at once; his #1 tip is 3\u20135 git worktrees in parallel"
15821
+ },
15822
+ throughput: {
15823
+ // Two DIFFERENT kinds of line (2026-07-14.2): topAvg is a PERCENTILE
15824
+ // claim — what a 1-in-1,000 user AVERAGES over substantial days (5k/day:
15825
+ // near-daily heavy dictation; a measured top dictating power user
15826
+ // averages ~3.9k). topPeak is NOT a percentile — it is the CEILING
15827
+ // reference, the wildest single days on record (~10k: a 14-16h
15828
+ // launch-day marathon), rendered as "wildest single days", never
15829
+ // "top X% peak". An avg-percentile and a peak-percentile can't both be
15830
+ // shown at a same-ish value (avg≈peak reads broken — user call), and a
15831
+ // peak PERCENTILE line is unknowable anyway; the record framing is
15832
+ // honest and keeps the visual gap.
15833
+ topAvgWordsPerDay: 5e3,
15834
+ topPeakWordsPerDay: 1e4,
15835
+ benchLabel: "top 0.1%",
15836
+ // No published "words typed/day" for heavy users — the real story is OUTPUT.
15837
+ loopsHeadline: ">1,000,000 lines of Rust at 99.8% tests passing",
15838
+ loopsDetail: "the Bun runtime was ported Zig\u2192Rust largely autonomously \u2014 hundreds of parallel subagents, two AI reviewers per file",
15839
+ tag: "measured",
15840
+ source: "The Register, May 2026 (Bun Zig\u2192Rust rewrite)",
15841
+ line: "autonomous fleets ported >1M lines of Rust at 99.8% tests passing; a while-loop agent delivered a $50k contract for $297 of compute"
15842
+ }
15843
+ }
15844
+ };
15845
+ function bandLabel(score, doc = DEFAULT_CALIBRATION) {
15846
+ const s = Math.max(1, Math.min(11, Math.round(score)));
15847
+ let best = null;
15848
+ for (const b of doc.scoreBands) if (b.score <= s && (!best || b.score > best.score)) best = b;
15849
+ return (best ?? doc.scoreBands[0]).label;
15850
+ }
15851
+
15690
15852
  // ../../lib/agents/coding/profile.ts
15691
15853
  import path11 from "path";
15692
15854
 
@@ -15840,154 +16002,6 @@ var IDLE_CAP_MS = 12 * 6e4;
15840
16002
  var NOTE = "((ran|created|edited|read|wrote|searched) (a|an|\\d+) [a-z]+|updated todos)";
15841
16003
  var TRANSCRIPT_LINE_RE = new RegExp(`^\\s*(${NOTE})((,| and) ${NOTE})*\\s*$|^\\s*thought for .{1,30}$`, "im");
15842
16004
 
15843
- // ../../lib/calibration/index.ts
15844
- var DEFAULT_CALIBRATION = {
15845
- version: "2026-07-16.2",
15846
- // = RUBRIC_FINGERPRINT of the shipped npm rubric (packages/coding-analyzer/
15847
- // src/grade/criteria.ts). A unit test fails loud when the rubric changes
15848
- // without this being updated (and re-pushed to the server).
15849
- rubricVersion: "7983c01d53",
15850
- // Canonical scale = the one the product owner set for the public report
15851
- // (11=0.01% … 8=2%), extended downward from the old report ladder. The old
15852
- // CodeAnalysisView / npm-viewer maps (7→10%/15%, 6→25%/30%) were drift, not
15853
- // intent.
15854
- scoreBands: [
15855
- { score: 11, label: "Top 0.01%" },
15856
- { score: 10, label: "Top 0.1%" },
15857
- { score: 9, label: "Top 0.5%" },
15858
- { score: 8, label: "Top 2%" },
15859
- { score: 7, label: "Top 5%" },
15860
- { score: 6, label: "Top 15%" },
15861
- { score: 5, label: "Top 50%" },
15862
- { score: 4, label: "Top 65%" },
15863
- { score: 3, label: "Top 80%" },
15864
- { score: 2, label: "Top 90%" },
15865
- { score: 1, label: "Top 97%" }
15866
- ],
15867
- minRankedScore: 6,
15868
- benchmarkBands: [
15869
- {
15870
- level: "11",
15871
- name: "Superhuman",
15872
- rank: "Top 0.01%",
15873
- oneIn: "1 in 10,000+",
15874
- meaning: "Beyond the normal human ceiling for the trait \u2014 the genuine power-law outlier. Almost no one earns this; when the evidence shows it, it is scored, not rounded down.",
15875
- foundIn: [
15876
- "Fields Medal and Nobel-track researchers",
15877
- "Founders of generational companies",
15878
- "The handful of people a frontier field is named after"
15879
- ],
15880
- maxTopPct: 0.01
15881
- },
15882
- {
15883
- level: "10",
15884
- name: "World-class",
15885
- rank: "Top 0.1%",
15886
- oneIn: "1 in 1,000",
15887
- meaning: "Among the best alive at this trait \u2014 the level entire institutions are built to find.",
15888
- foundIn: [
15889
- "Researchers at frontier AI labs",
15890
- "Faculty at top-5 research universities",
15891
- "IMO / IOI medalists",
15892
- "Founders backed by the top decile of venture firms"
15893
- ],
15894
- maxTopPct: 0.1
15895
- },
15896
- {
15897
- level: "9",
15898
- name: "Exceptional",
15899
- rank: "Top 1%",
15900
- oneIn: "1 in 100",
15901
- meaning: "Clearly exceptional \u2014 the strongest person on most strong teams.",
15902
- foundIn: [
15903
- "PhD students at top programs",
15904
- "Early engineers at breakout startups",
15905
- "YC-class founders",
15906
- "National olympiad finalists"
15907
- ],
15908
- maxTopPct: 1
15909
- },
15910
- {
15911
- level: "8",
15912
- name: "Strong",
15913
- rank: "Top 10%",
15914
- oneIn: "1 in 10",
15915
- meaning: "Strong against the whole population \u2014 the best person in most rooms, not every room.",
15916
- foundIn: [
15917
- "Senior engineers at selective tech companies",
15918
- "Graduates of demanding technical programs",
15919
- "Operators who get promoted everywhere they go"
15920
- ],
15921
- maxTopPct: 10
15922
- },
15923
- {
15924
- level: "5",
15925
- name: "Median",
15926
- rank: "50th percentile",
15927
- oneIn: "1 in 2",
15928
- meaning: 'The middle of the general population. The reference class is all ~8 billion humans \u2014 so even "strong" above already means top 10% of everyone.',
15929
- foundIn: ["The general population \u2014 most people, most places"],
15930
- maxTopPct: 100
15931
- }
15932
- ],
15933
- codingTiers: {
15934
- 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." },
15935
- 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." },
15936
- hours: { median: 3, sigma: 0.4, tag: "estimated \u2014 proxy-anchored", source: "median: RescueTime-measured ~2h48m of real productive time/day (same source as the flow benchmark) \u2248 3h of active building; shape: sustaining ~7.5h/day \u2248 top 1%, a ~12h/day average \u2248 1-in-3,000. AVERAGE work-day length, cumulative not spiky." },
15937
- 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" }
15938
- },
15939
- codingBenchmarks: {
15940
- flow: {
15941
- // typical knowledge worker ≈ 35% of an 8h day focused; ~4h/day is the
15942
- // recognized deep-work ceiling (Newport) ≈ 50% — most sit far below it.
15943
- typicalPctOfDay: 0.35,
15944
- topPctOfDay: 0.5,
15945
- tag: "measured",
15946
- source: "RescueTime 2019 (~2h48m focused/day) \xB7 Cal Newport, Deep Work (~4h/day deep-work ceiling)",
15947
- line: "the best spend ~half the workday in true deep flow; ~4h/day is the human ceiling"
15948
- },
15949
- longestRun: {
15950
- typicalHours: 0.67,
15951
- // ~40 min before the average worker is interrupted
15952
- topHours: 4,
15953
- tag: "measured",
15954
- source: "RescueTime (avg max ~40 min focus before interruption) \xB7 deep-work single-block ceiling ~3\u20134h",
15955
- line: "a top performer can hold a single ~3\u20134h uninterrupted block; the average worker breaks at ~40 min"
15956
- },
15957
- parallelism: {
15958
- topMaxConcurrent: 12,
15959
- // Boris Cherny ~10–15 interactive sessions
15960
- topAvgConcurrent: 6,
15961
- // time-weighted average while active (anecdotal, same source)
15962
- worktreesTip: "3\u20135 git worktrees at once",
15963
- tag: "anecdotal",
15964
- source: "Boris Cherny (Claude Code lead, Anthropic): ~10\u201315 concurrent sessions, 'dozens of Claudes running at all times'; 3\u20135 worktrees = 'the single biggest productivity unlock'",
15965
- line: "the Claude Code lead runs 10\u201315 sessions at once; his #1 tip is 3\u20135 git worktrees in parallel"
15966
- },
15967
- throughput: {
15968
- // Two DIFFERENT kinds of line (2026-07-14.2): topAvg is a PERCENTILE
15969
- // claim — what a 1-in-1,000 user AVERAGES over substantial days (5k/day:
15970
- // near-daily heavy dictation; a measured top dictating power user
15971
- // averages ~3.9k). topPeak is NOT a percentile — it is the CEILING
15972
- // reference, the wildest single days on record (~10k: a 14-16h
15973
- // launch-day marathon), rendered as "wildest single days", never
15974
- // "top X% peak". An avg-percentile and a peak-percentile can't both be
15975
- // shown at a same-ish value (avg≈peak reads broken — user call), and a
15976
- // peak PERCENTILE line is unknowable anyway; the record framing is
15977
- // honest and keeps the visual gap.
15978
- topAvgWordsPerDay: 5e3,
15979
- topPeakWordsPerDay: 1e4,
15980
- benchLabel: "top 0.1%",
15981
- // No published "words typed/day" for heavy users — the real story is OUTPUT.
15982
- loopsHeadline: ">1,000,000 lines of Rust at 99.8% tests passing",
15983
- loopsDetail: "the Bun runtime was ported Zig\u2192Rust largely autonomously \u2014 hundreds of parallel subagents, two AI reviewers per file",
15984
- tag: "measured",
15985
- source: "The Register, May 2026 (Bun Zig\u2192Rust rewrite)",
15986
- line: "autonomous fleets ported >1M lines of Rust at 99.8% tests passing; a while-loop agent delivered a $50k contract for $297 of compute"
15987
- }
15988
- }
15989
- };
15990
-
15991
16005
  // ../../lib/agents/coding/benchmarks.ts
15992
16006
  var BEST = DEFAULT_CALIBRATION.codingBenchmarks;
15993
16007
 
@@ -16005,7 +16019,7 @@ var readJson = async (f, d) => {
16005
16019
  return d;
16006
16020
  }
16007
16021
  };
16008
- var SYS = "Write a SHORT, punchy 'In a nutshell' \u2014 TWO LINES, 2-3 sentences MAX, no more. Structure: (1) what they BUILT in plain terms and why it is genuinely RARE, with a CONCRETE percentile ('top X% of builders/people'); (2) the single clearest place to improve. BE GENEROUS AND EMPHATIC ABOUT REAL ACHIEVEMENT \u2014 do not undersell or hedge a top-tier result. When a score is genuinely top-tier (\u2248 top 2% or rarer), say so plainly and make them FEEL it: name that this is NOT ordinary, that very few people can do it, that it is exceptional. A top-2% abstraction ceiling, for instance, means they can hold an entire system in their head without a blueprint \u2014 that is rare; say it like it is rare. Earned praise should land HARD. Voice: confident, warm, human, like 'you built X end-to-end and barely needed help, which very few people can do', then 'the one place to level up: Y'. NO clinical hedging, NO run-on clauses, NO laundry lists of features. The praise must be EARNED and SPECIFIC, tied to the concrete thing they actually pulled off, never generic horoscope or empty flattery. STYLE (hard rules): NO EM DASHES (\u2014), they are the clearest AI-slop tell; use a period, comma, or colon instead (target zero). No jargon, no fluff. Never invent a feature, number, or outcome that isn't in the evidence. This is the FIRST thing they read; make them feel genuinely seen AND genuinely impressed in two clean lines.";
16022
+ var SYS = "Write a SHORT, punchy 'In a nutshell' \u2014 TWO LINES, 2-3 sentences MAX, no more. Structure: (1) what they BUILT in plain terms and why it is genuinely RARE, with a CONCRETE percentile ('top X% of builders/people') when the KEY READS provide one; (2) the single clearest place to improve. PLACEMENT LAW (hard rule): a percentile or 'top X%' placement may ONLY RESTATE a placement already present in the KEY READS input \u2014 never invent, estimate, or extrapolate one. If the input says 0 sessions have been graded, quality is UNMEASURED: make NO quality or placement claim at all (no 'top X%', no rarity claim about their skill), speak only to the measured activity (hours, output volume, cadence), and say plainly that the quality read fills in once grading has run. BE GENEROUS AND EMPHATIC ABOUT REAL ACHIEVEMENT \u2014 do not undersell or hedge a top-tier result. When a score is genuinely top-tier (\u2248 top 2% or rarer), say so plainly and make them FEEL it: name that this is NOT ordinary, that very few people can do it, that it is exceptional. A top-2% abstraction ceiling, for instance, means they can hold an entire system in their head without a blueprint \u2014 that is rare; say it like it is rare. Earned praise should land HARD. Voice: confident, warm, human, like 'you built X end-to-end and barely needed help, which very few people can do', then 'the one place to level up: Y'. NO clinical hedging, NO run-on clauses, NO laundry lists of features. The praise must be EARNED and SPECIFIC, tied to the concrete thing they actually pulled off, never generic horoscope or empty flattery. STYLE (hard rules): NO EM DASHES (\u2014), they are the clearest AI-slop tell; use a period, comma, or colon instead (target zero). No jargon, no fluff. Never invent a feature, number, or outcome that isn't in the evidence. This is the FIRST thing they read; make them feel genuinely seen AND genuinely impressed in two clean lines.";
16009
16023
  function prompt(days, metrics, siRef) {
16010
16024
  return `WHAT THEY DID, DAY BY DAY (newest first):
16011
16025
  ${days}
@@ -16027,8 +16041,11 @@ async function main() {
16027
16041
  const a = agg.ability, t = agg.throughput, f = agg.flow;
16028
16042
  const exp = await readJson("expertise.json", {});
16029
16043
  const del = await readJson("delegation-rollup.json", {});
16044
+ const gradedN = (await fs5.readdir(path12.join(CODING, "grades")).catch(() => [])).filter((f2) => f2.endsWith(".json")).length;
16045
+ const band = (sc) => typeof sc === "number" ? ` (~${bandLabel(sc, DEFAULT_CALIBRATION)})` : "";
16030
16046
  const metrics = [
16031
- `Abstraction ceiling ${a?.abstraction?.score}/11 (~Top 2%), Taste ${a?.taste?.score}/11`,
16047
+ `Graded sessions: ${gradedN}${gradedN === 0 ? " \u2014 ZERO sessions have been graded; every quality score is absent and quality is UNMEASURED" : ""}`,
16048
+ `Abstraction ceiling ${a?.abstraction?.score != null ? `${a.abstraction.score}/11${band(a.abstraction.score)}` : "not graded"}, Taste ${a?.taste?.score != null ? `${a.taste.score}/11${band(a.taste.score)}` : "not graded"}`,
16032
16049
  `Throughput avg ${t?.score}/11 (~${t?.avgWordsPerDay} words/day on real coding days), peak ${t?.ceiling}`,
16033
16050
  `Flow ${f?.flow?.pctOfWorkDay != null ? Math.round(f.flow.pctOfWorkDay * 100) + "% of the work day" : "?"}, deepest solo`,
16034
16051
  `Genuine domain expertise (deep): ${(exp.domains || []).filter((d) => d.depth === "deep").map((d) => d.domain).join(", ") || "\u2014"}`,
@@ -205,7 +205,7 @@ var TRANSCRIPT_LINE_RE = new RegExp(`^\\s*(${NOTE})((,| and) ${NOTE})*\\s*$|^\\s
205
205
 
206
206
  // ../../lib/calibration/index.ts
207
207
  var DEFAULT_CALIBRATION = {
208
- version: "2026-07-16.2",
208
+ version: "2026-07-21.1",
209
209
  // = RUBRIC_FINGERPRINT of the shipped npm rubric (packages/coding-analyzer/
210
210
  // src/grade/criteria.ts). A unit test fails loud when the rubric changes
211
211
  // without this being updated (and re-pushed to the server).
@@ -301,13 +301,14 @@ var DEFAULT_CALIBRATION = {
301
301
  },
302
302
  codingBenchmarks: {
303
303
  flow: {
304
- // typical knowledge worker ≈ 35% of an 8h day focused; ~4h/day is the
305
- // recognized deep-work ceiling (Newport) 50% most sit far below it.
304
+ // typical knowledge worker ≈ 35% of an 8h day focused; the ~4h/day
305
+ // deep-work ceiling (Newport) sits nearer ~40% of a real (9-10h) top
306
+ // performer's day — 50% overstated it (owner call 2026-07-21).
306
307
  typicalPctOfDay: 0.35,
307
- topPctOfDay: 0.5,
308
+ topPctOfDay: 0.4,
308
309
  tag: "measured",
309
- source: "RescueTime 2019 (~2h48m focused/day) \xB7 Cal Newport, Deep Work (~4h/day deep-work ceiling)",
310
- line: "the best spend ~half the workday in true deep flow; ~4h/day is the human ceiling"
310
+ source: "RescueTime 2019 (~2h48m focused/day) \xB7 Cal Newport, Deep Work (~4h/day deep-work ceiling against a 9-10h day)",
311
+ line: "the best spend ~40% of the workday in true deep flow; ~4h/day is the human ceiling"
311
312
  },
312
313
  longestRun: {
313
314
  typicalHours: 0.67,