Skip to content

Claude/startup stack GitHub scraper mbp53h#3

Merged
fritzhand merged 2 commits into
mainfrom
claude/startup-stack-github-scraper-mbp53h
Jul 25, 2026
Merged

Claude/startup stack GitHub scraper mbp53h#3
fritzhand merged 2 commits into
mainfrom
claude/startup-stack-github-scraper-mbp53h

Conversation

@fritzhand

@fritzhand fritzhand commented Jul 25, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • Documentation

    • Expanded README guidance for programmes, portfolio use, prompt behavior, conflict tagging, and site publishing.
    • Clarified how the site is built, what content is withheld, and how to fork or delete it.
  • Improvements

    • Homepage content now stays aligned with README updates.
    • Improved brand mark colors, sizing, and favicon rendering.
    • Homepage loop descriptions now include conflict tagging.

claude added 2 commits July 25, 2026 03:38
… 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
@coderabbitai

coderabbitai Bot commented Jul 25, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The README now documents programme usage, conflict tagging, prompt gating, and site publishing. web/build.mjs extracts homepage content from README sections and generates the favicon from the stack icon. Brand mark sizing and theme color styling are also updated.

Changes

README-driven site publishing

Layer / File(s) Summary
README content and publishing contract
README.md
Updates navigation, programme guidance, conflict states, prompt behavior, site-generation checks, unpublished content, and fork instructions.
README-driven homepage rendering
web/build.mjs
Adds validated README section and paragraph extraction, then uses the extracted content for homepage sections and loop cards.
Generated site branding
web/assets/site.css, web/build.mjs
Applies theme-aware brand mark styling and generates the favicon from the stack icon with embedded theme styling.

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
Loading

Possibly related PRs

  • fritzhand/startup-stack#1: Also modifies web/build.mjs for repository-driven site generation, including homepage and favicon output.

Suggested reviewers: claude

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Title check ⚠️ Warning The title mentions a GitHub scraper, but the PR actually changes README content, site CSS, and homepage build logic. Rename it to reflect the real change, e.g. 'Refactor homepage generation from README content'.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/startup-stack-github-scraper-mbp53h

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@fritzhand
fritzhand merged commit d8bbce9 into main Jul 25, 2026
4 of 5 checks passed

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between b9ad3b5 and 5ccaa06.

📒 Files selected for processing (3)
  • README.md
  • web/assets/site.css
  • web/build.mjs

Comment thread README.md
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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 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.

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