Claude/startup stack GitHub scraper mbp53h#3
Conversation
… black Two problems, one cause: the mark and the favicon were never the same drawing, and nothing tied either of them to the surface they sit on. The header glyph took its colour from `currentColor`, which inherits `--text` from `.brand`. That is near-white in dark mode and #10222c in light mode — and the square behind it is the hero gradient, which is dark in BOTH themes. So light mode rendered a near-black glyph on a near-black square at roughly 1.7:1. It now takes `--hero-text`, the token that exists for exactly this surface and is documented at 6.8:1 against the gradient's lightest stop. The favicon was a different mark altogether: three horizontal rules on a flat #0b5a86 square, drawn by hand and never revisited when the header became a layered-stack glyph. It is now generated from ICONS.stack itself, so the two cannot diverge again — same paths, same gradient, same rounded square, same inset hairline, same proportion of glyph to box. Two deliberate differences, both measured rather than eyeballed. Stroke is 2.4 against the header's 2, because at 16px in a browser tab the proportionally correct 3.375 renders under a pixel; 2.4 lands at 1.0px, which is where the old favicon sat. And the glyph is now explicitly 19px inside the 30px header square rather than filling it edge to edge — 0.633, the same ratio the favicon uses, and close to the 16-in-26 the mobile breakpoint already specified. The favicon carries a prefers-color-scheme block so its gradient follows the theme the way the header's does. A standalone SVG document cannot read tokens.css, so the six stop values are literal and commented as copies. Verified by rendering: header in both themes, and the favicon at 64, 32 and 16 beside the header mark at its real size. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014cLKVBJb2hPNi6QALTFPFk
Ran four independent audit passes over README.md — counts, coverage, links, and consistency against the rest of the repo — with every finding put to a separate refuter before being acted on. 24 raised, 12 survived. All twelve are fixed here. The one that matters most was self-inflicted. **The site had a second copy of the prose, and it had already drifted.** README.md is not a source for any page. The home page was typed out as HTML inside build.mjs, duplicating the hero, "The problem this solves", the three loops, the honest-cost blockquote and all seven rules — while the README and build.mjs's own header contract both claimed "There is no second copy of the prose anywhere". Two rules had already diverged: "Enrich, don't perfect." against "Enrich, do not perfect.", and two different endings to rule 7. Fixed by making the claim true rather than softening it. The home page now lifts those blocks out of README.md and renders them through the same renderer as every other page. What stays hand-written is the site's own furniture — hero buttons, step cards, the stat block, the "where to start" cards — none of which has a counterpart in the README. Rename a heading the home page depends on and the build fails by name; verified by renaming one and watching it exit 1. The rest, each confirmed against the filesystem before being touched: - "Everything in this repo is also published" was wrong — 22 markdown files never are, deliberately. The section now says what is published, what is not, and why: stack/ and portfolio/ hold files you fill in with your own business, and a fork that publishes its own site has build.mjs withholding the summary of any non-public section that has been filled in. - The workflow sentence said "every push to main". It has run on every branch and every pull request since e8cfed1; only main publishes. - The docs/ row enumerated 7 of 13 pages. automation.md and exchange.md appeared nowhere in the README at all, having been added in 53615bf by the same commit that updated the prompt count and missed this row. All 13 are now referenced, and a check confirms it. - "19 prompts that run on top of a filled-in stack" is contradicted by five of the prompts' own Requires lines. 00, 14 and 15 run against an empty stack by design; 16-18 read portfolio/ and never touch a founder's stack. - The tag vocabulary was stated twice as three values. There are four in the stack layer — [CONFLICT] is the missing one, and AGENTS.md rule 8 is built on it. Fixed in the loops diagram and in Loop 1. - stack/INDEX.md, the router AGENTS.md tells every AI to read first, was reachable from the README only at depth 3. It and CONTEXT.md are now linked from the row that describes the folder. - The framing above the folder table described exactly one reader. The second — the programme running a portfolio — was signalled only by a table row. - Fork instructions said delete web/ and .github/. A founder should delete portfolio/ too, which the same table had said two screens earlier. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014cLKVBJb2hPNi6QALTFPFk
📝 WalkthroughWalkthroughThe README now documents programme usage, conflict tagging, prompt gating, and site publishing. ChangesREADME-driven site publishing
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant README.md
participant web/build.mjs
participant Homepage
README.md->>web/build.mjs: provide sections and loop paragraphs
web/build.mjs->>web/build.mjs: validate and render README content
web/build.mjs->>Homepage: compose homepage HTML
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@README.md`:
- Line 44: Standardize the status vocabulary used by the diagram, Loop 1
instructions, related prompts, and schema so they all use the same canonical
terms instead of mixing “TBD”/“clash” with “missing”/“in conflict.” Update every
corresponding status tag reference consistently while preserving the documented
status meanings.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: ebf374a8-3090-4001-bf36-dc89272b7a6c
📒 Files selected for processing (3)
README.mdweb/assets/site.cssweb/build.mjs
| market research │ 01-company … 10-pulse │ unit economics | ||
| competitor notes │ ↑ one .md per section, front-mattered │ investor one-pager | ||
| call transcripts │ ↑ tagged: confirmed / unverified / TBD │ weekly recap | ||
| call transcripts │ ↑ confirmed / unverified / TBD / clash │ weekly recap |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Use one canonical status vocabulary.
The diagram says TBD/clash, while the Loop 1 instructions say missing/in conflict. Since these are presented as tags, contributors cannot tell which values to use. Standardize the terms here and in the related prompts/schema.
Also applies to: 53-53
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@README.md` at line 44, Standardize the status vocabulary used by the diagram,
Loop 1 instructions, related prompts, and schema so they all use the same
canonical terms instead of mixing “TBD”/“clash” with “missing”/“in conflict.”
Update every corresponding status tag reference consistently while preserving
the documented status meanings.
Summary by CodeRabbit
Documentation
Improvements