Skip to content

Review: rebuild Y Combinator mirror from PR #31 - #117

Merged
Raibows merged 14 commits into
aiming-lab:mainfrom
jackjin1997:review/pr-31-y-combinator
Sep 19, 2026
Merged

Raibows merged 14 commits into
aiming-lab:mainfrom
jackjin1997:review/pr-31-y-combinator

Conversation

@jackjin1997

@jackjin1997 jackjin1997 commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

PR #31 supplied the initial Y Combinator contribution, but its asset pull request is empty, its remote media links have expired, and its branch now conflicts with current main. This reviewer-owned candidate preserves the contributor's commit and rebuilds the mirror into a reproducible 29th site on port 40028.

The resulting mirror uses tracked, upstream-sourced data for 1,179 companies, 2,282 founders, 106 staff profiles, 279 library items, 200 launches, 60 blog posts, 47 FAQs, 11 documents, and eight static pages. It serves all runtime media locally, restores the homepage's scroll/timed/hover motion with reduced-motion and no-JavaScript fallbacks, and provides 18 accepted tasks with snapshot-bound deterministic verifiers. Search ordering now has stable slug tie-breakers, including duplicate-name/title regressions.

Original contribution: #31 by @myberry2026
Candidate head: 386b467bf0f9a13065200589c93d3741f287a228 on jackjin1997:review/pr-31-y-combinator
Asset candidate: HF dataset PR #83, immutable commit 4a9b9dd20cc3704e069bbd297d2b7522c3d14b38
y_combinator.tar.gz: 121,085,653 bytes, SHA-256 43c666bda84680f327ce64720b2baa2f9e427acb751fe81900967f267e9176f4

Validation at the exact candidate head and asset commit:

  • 22/22 focused regression, grading-boundary, and snapshot-contract tests pass.
  • The final verifier matrix accepts 18/18 unchanged positive runs and rejects 126/126 isolated negatives covering wrong answers, wrong-task replay, failed actions, empty answers, missing after snapshots, missing screenshots, and unrelated database writes; all 144 cases return structured results.
  • 3,971 inventoried assets pass exact path/hash/decode validation.
  • 18/18 guided Playwright task runs pass their deterministic verifiers; 160 actions succeeded, 178 step screenshots were frozen, stateful tasks 8/9/10 produced only their intended database changes, and every post-run reset returned to seed SHA-256 149bb93c3fec656d761ab90b4cc259544e2d86b8896fda69183496c1b168dd9b.
  • 31 representative routes, seven negative paths, desktop navigation, and mobile navigation pass without unexpected browser/runtime errors.
  • 84 full-page captures across 1440/768/390/320px have HTTP 200, zero broken images, and no horizontal overflow. The Owner accepted the repaired homepage motion in the review conversation; 67/67 automated motion, reduced-motion, keyboard, touch, and offline-media checks pass.
  • Clean 29-site GitHub Actions smoke passes: full Docker build, 29/29 healthy and HTTP 200 before/after, byte-identical target reset, 29/29 reset-all in five seconds, and a 4,852,535,309-byte image.

The 18 runs are explicitly guided diagnostics: the operator had already read implementation and verifier facts. They establish reproducible UI/verifier compatibility but are not an independent blind judgment.

Review status:

  • Reviewer implementation and current-main rebase
  • Reviewer-owned immutable HF asset candidate
  • Task/rubric/verifier audit and adversarial regressions
  • Canonical guided runs, visual QA, and clean full-environment smoke
  • Independent blind review of the frozen, verifier-free packet: Claude Opus 5 (claude-opus-5) verified all 234 allowlisted files and judged 18/18 tasks PASS (public verdict, verdict SHA-256 cc06c24b139caa105de8b2ae94f924a3a7bba070a026a2b60319d7ed40d7452e)
  • Reviewer reconciliation: blind and deterministic results agree on all 18 tasks; zero disagreements and no candidate revision required
  • Owner authorized conversion from Draft to Ready for maintainer review on 2026-09-14
  • After HF fix(phys_org): address review findings for #74 #83 merges: update .assets-revision to the resulting dataset-main commit and recheck asset reachability before merging this PR

Known non-blocking presentation issue: Jessica Livingston's People bio renders the literal Markdown link syntax around “Founders at Work”; all Task 13 facts remain visible and both blind and deterministic grading pass. The blind review did not evaluate autonomous-agent success, and this PR makes no such claim.

This PR is Ready for maintainer review. It may be reviewed while HF #83 is open, but it must not merge until the HF asset is merged, .assets-revision points to the resulting immutable dataset-main commit, and the archive hash/reachability check passes.

realberry and others added 12 commits September 14, 2026 01:08
Y Combinator mirror (startup directory, founders, people, blog, library,
launches, SAFE documents and static sections) contributed by @myberry2026
in aiming-lab#31.

Carried onto current main as site 25 / port 40024 by the reviewer. The
original submission targeted the 15-site tree and claimed port 40015,
which current main assigns to merriam_webster. Registry, port exposure
and the site count in websyn_start.sh follow main's current form.

Excluded from the original branch: the personal absolute-path fallback in
site_runner.py, gitignored scraped_data/ and screenshots/ payloads, and
unrelated top-level files (scratch/, venv_seed/, agent_demo/ data dumps,
REQUEST.md, RESPONSE.md, PROGRESS.md, CHANGELOG.md, SKILL.md,
extra_launches.json, .agents/skills copies, AGENTS.md additions).
…am capture

The submitted mirror hot-linked every image, shipped fabricated section
content, and reproduced about half of the landing page. This replaces the
data and presentation layer with upstream-sourced material, keeping the
site, routes and benchmark purpose contributed in aiming-lab#31.

Data
- source_data.json is the tracked input: 1,183 companies (batch, industry,
  stage, status, team size, location, group partner, news), 2,293 founders
  with their upstream bios, 106 staff across 14 teams, 279 library articles,
  200 launches with dates and vote counts, 60 blog posts, 47 FAQ entries and
  the real SAFE document set. Every field is extracted from a captured
  ycombinator.com response; absent upstream values are omitted, not invented.
- seed_data.py rebuilds instance_seed/y_combinator.db from it at image build
  time (Dockerfile step + .build-generated-seed), so the data is reviewable in
  the diff instead of shipping as an opaque blob.
- Replaces content that was generated rather than sourced: the FAQ read
  "We invest 00,000"; blog titles carried their own body text; library,
  RFS, investors and people copy was written for the mirror; company
  websites held a founder's Twitter profile.

Assets
- 3,962 inventoried files (112 MB) under static/images and
  static/external_cache, each with its sha256 and source URL in
  asset_inventory.json and verified at build time by check_asset_inventory.py.
  Previously 0 of 999 companies had a local logo and every founder avatar was
  an expired S3 pre-signed URL, so /founders rendered 84 broken images.
- Outfit and Source Serif 4 are self-hosted; the page no longer calls
  fonts.googleapis.com. The 0-byte yc-logo.png is replaced by the real mark.

Presentation
- Landing page carries all nine upstream sections in order, with type and
  spacing set from computed styles measured on ycombinator.com at 1440px:
  84px italic serif hero, 48px italic section headings, 510px reading column,
  muted #8a8575 band, 12px media radius, 60px italic CTA, black footer.
- Nav matches upstream: 64px bar, centred brand mark, About/Companies/
  Resources menus, Apply action.
- Directory and founder listings paginate, so /companies and /founders no
  longer render 999 and 1,079 rows in a single 1.2 MB response.
- /founders/<slug> redirects to the founder's company profile and /documents
  to /safe, as upstream does; the invented Hacker News page is gone and
  unknown paths return 404 instead of silently redirecting to the homepage.
- Library bookmarks, launch upvotes and newsletter sign-up are real
  persisted actions for the benchmark accounts.

Reset stays byte-identical across boot, write, reset and restart.
…ifiers

Replaces the 50 submitted rows. Those pointed at the wrong port, used bare
integer ids, sent 26 of 50 upstream_url values back at the mirror, and several
depended on content that was generated rather than sourced: launch
descriptions and dates that did not exist, W24 and S23 batches absent from the
data, a "Startup School" library entry with no such row, and a hand-written
Hacker News page that is not part of ycombinator.com.

The accepted set anchors on facts the directory listing does not show — team
size, founding year, location, stage, group partner, library view counts — so a
task cannot be answered from the result cards or from prior knowledge of YC.
Three are stateful: a library bookmark, a launch upvote, and registration
followed by a newsletter subscription. Filters narrow to small candidate sets
with near-miss distractors, such as Oklo at 50 against Rigetti at 51.

verify/verify_lib.py derives each expected answer from the frozen initial
snapshot instead of hard-coding it, and requires every "largest"/"most" to be
unambiguous there, so grading fails loudly rather than silently drifting if the
seed changes. Checks cover run packaging, state isolation, the pages that
actually carry the answer, and the requested facts in the final answer.
Found by opening the mirror next to ycombinator.com in a browser rather than
only in the capture harness:

- The mobile drawer was only hidden inside the 768px media query, so at desktop
  width every page rendered a stray bulleted link list under the masthead.
- The hero forced "YC turns builders into" onto one line. Upstream breaks after
  "builders", with "into" leading the italic second line; the split now comes
  from the captured markup instead of a literal in the builder.
- The two menu groups draw in toward the centred brand mark and the account
  actions sit at the far right, as upstream lays them out. Nav links are 14px
  Outfit and the Apply pill is a 40px black serif-italic button, both measured.
- The Paul Graham footnote keeps its quotation marks and puts the attribution
  on its own right-aligned line.
@jackjin1997

Copy link
Copy Markdown
Contributor Author

Independent blind review — WHR-031 Y Combinator (first pass, frozen)

Reviewer model: Claude Opus 5 (claude-opus-5), fresh session with no inherited WHR-031 / PR #31 context.

Under review

  • Code: aiming-lab/WebHarbor @ 386b467bf0f9a13065200589c93d3741f287a228 (base 145b200eab9721e4940a36a0e3d0b3b62677715b)
  • Assets: ChilleD/WebHarbor @ 4a9b9dd20cc3704e069bbd297d2b7522c3d14b38y_combinator.tar.gz, sha256 43c666bd…9176f4 (HF discussion fix(phys_org): address review findings for #74 #83)
  • Packet: WHR-031-final-386b467-20260914, manifest sha256 8eae3efa1aa58e7c5e985fb9cb01ec7f3298ee2885fb7b3ddfe413d405b1ee63 — verified, and all 234 enumerated files verified byte-for-byte by size and SHA-256 (0 missing, 0 mismatched).

Coverage and result: 18/18 tasks judged, 18 PASS, 0 FAIL.

Each run was judged only from its task text and rubric, the full trajectory, the step screenshots, and the initial/after SQLite snapshots. Factual answers were cross-checked against the frozen initial.db as ground truth as well as the rendered page. The three state-changing tasks were judged by a full table-by-table snapshot diff:

  • Y Combinator--8 — adds exactly bookmark(user 1 = alice.j@test.com, article 1 = "YC's essential startup advice"), nothing else.
  • Y Combinator--9 — Gamgee launch vote_count 183 → 184 plus launch_vote(user 2 = bob.m@test.com, launch 138), nothing else.
  • Y Combinator--10 — adds exactly user(nina.patel@test.com, newsletter=1), nothing else.

All 15 read-only runs left after.db byte-identical to initial.db. No run had a failed action result or an empty final answer. Every trajectory's code_sha, asset_sha, task text, rubric and start URL are internally consistent with environment.json and tasks.json, and manifest step/screenshot counts match what is on disk.

One packet observation, not a defect: environment.json.task_file_sha256 (fcefb49b…) identifies the upstream repository task file, while the packet's derived tasks.json hashes to d33f6026…. The latter matches its own manifest entry, so packet integrity holds — the two fields describe different artifacts.

Contamination disclosure. Before writing this verdict I read only PROMPT.md, manifest.json and the 234 files they enumerate. No repository source or history, PR comments, verifier source or verdicts, answer keys, canonical action scripts, or prior reviewer material was read, and the webharbor-review skill body was not invoked or read. Separately, the packet itself discloses — and every trajectory repeats — that these are guided fixed-script diagnostic executions recorded by an operator who had already read implementation and verifier facts. Per the review protocol, scripted execution was treated as neither automatic pass nor automatic fail. Consequently these verdicts say that each frozen execution completed its stated task; they are not a measurement of autonomous agent capability on this environment.

Not executed / out of scope for this pass

  • Source fidelity against the upstream ycombinator.com content (e.g. Coinbase renders as "Los Angeles, CA"; accepted because tasks are graded against the local page).
  • Visual fidelity (noted in passing: the People profile bio renders raw Markdown link syntax; it affected no graded answer).
  • Verifier implementation and deterministic verdicts — not read or run.
  • Hidden answer keys and canonical action scripts — not read.
  • Task-set design quality: difficulty calibration, coverage, redundancy, answer uniqueness beyond each rubric.
  • Code review of the 386b467 diff, dependencies, security.
  • Independent reproduction: no environment built or served, no task re-executed, declared CI run not inspected.
  • Asset archive verification beyond the declared hashes — the 121 MB tarball was not downloaded or unpacked.
  • Autonomous (unguided) success rate.
  • Merge readiness of PR feat(y_combinator): enrich YC staff biographies, harvest profile photos, and isolate staff on /people #31 or this Draft Review PR.

Frozen artifacts

  • cases/WHR-031-y-combinator/independent-review/first-verdict-386b467.json
  • sha256 cc06c24b139caa105de8b2ae94f924a3a7bba070a026a2b60319d7ed40d7452e

This blind result judges the frozen executions only. It does not certify source fidelity, visual fidelity, the verifier implementation, or merge readiness. Nothing here is a merge recommendation, and no PR was merged or marked ready.

@jackjin1997

Copy link
Copy Markdown
Contributor Author

Blind-review reconciliation

The frozen first-pass blind verdict has been checked against the exact candidate and deterministic results:

  • Reviewer: Claude Opus 5 (claude-opus-5) in a fresh Claude Code session.
  • Verdict SHA-256: cc06c24b139caa105de8b2ae94f924a3a7bba070a026a2b60319d7ed40d7452e.
  • Packet integrity: all 234 manifest files verified; contamination status clean.
  • Result: blind 18/18 PASS versus deterministic 18/18 PASS; 0 disagreements.
  • State-changing Tasks 8/9/10 agree on exact intended database diffs; the 15 read-only tasks remain byte-identical.
  • No task, rubric, verifier, run, code, or asset revision is required.

One blind observation was independently confirmed and classified as non-blocking: Jessica Livingston's People bio displays literal Markdown link syntax around “Founders at Work.” It does not hide or alter any Task 13 fact, and both grading paths pass. It is disclosed as a presentation limitation rather than reopening the frozen candidate.

Fresh pre-handoff checks also confirm PR #117 is Draft, CLEAN and MERGEABLE at 386b467bf0f9a13065200589c93d3741f287a228, with unchanged base 145b200eab9721e4940a36a0e3d0b3b62677715b; HF #83 remains open with no conflicting files. The PR can move to Ready after Owner authorization. HF merge and the resulting .assets-revision pin/hash check remain required before GitHub merge.

@jackjin1997
jackjin1997 marked this pull request as ready for review September 14, 2026 01:49
@Raibows

Raibows commented Sep 19, 2026

Copy link
Copy Markdown
Contributor

Thanks for your contribution! @jackjin1997 @myberry2026

@Raibows
Raibows merged commit e18826a into aiming-lab:main Sep 19, 2026
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.

2 participants