Skip to content

docs: generate the competitive landscape from data fetched this run - #41

Merged
webdevsamran merged 1 commit into
mainfrom
docs/competitive-landscape
Sep 9, 2026
Merged

docs: generate the competitive landscape from data fetched this run#41
webdevsamran merged 1 commit into
mainfrom
docs/competitive-landscape

Conversation

@webdevsamran

Copy link
Copy Markdown
Owner

The competitive tables across these four repositories stated their own method — "repository metadata fetched via the GitHub API" — and were then typed by hand, from data 17 days stale.

api-verity-lab shows what that costs. Its table recorded a live competitor as "repo gone (404)" because the fetcher asked for the wrong org name and wrote the resulting null into the artifact as a finding. The repository was archived and public with 1,534 stars.

What changed

  • Numbers come from a fetch run today, committed to data/competitor-meta.json.
  • The table is generated from that file. scripts/generate_landscape.py --check fails the build when the markdown and the data disagree, and runs in CI.
  • Only api-verity-lab had a checked-in fetcher; the others had capability data with no reproducible way to refresh it. All four have one now, each with its own competitor set.
  • All four inherit the fix that makes a failed lookup raise rather than silently become data.

README

A ## How this compares section says plainly where this project overlaps its neighbours and where it does not, linking to the full table rather than duplicating it — one place for the numbers to be right.

What this deliberately does not do

Nothing here asserts a competitor lacks a feature. Stars, licences and dates are facts about repositories on the fetch date. Capability judgements stay in prose, where they can be argued with.

Verification

ruff · ruff format --check · mypy · full test suite · generate_landscape.py --check — all clean.

The competitive tables in this family of repositories stated their own method
-- "repository metadata fetched via the GitHub API" -- and were then typed by
hand, from data 17 days stale. api-verity-lab shows what that costs: its table
recorded a live competitor as "repo gone (404)" because its fetcher asked for
the wrong org name and wrote the resulting null into the artifact as a finding.

So the numbers now come from a fetch run today and the table is generated from
the committed result, with scripts/generate_landscape.py --check failing the
build when the markdown and the data disagree.

Only api-verity-lab had a checked-in fetcher; the others had committed
capability data with no reproducible way to refresh it. All four have one now,
each with its own competitor set, and all four inherit the fix that makes a
failed lookup raise rather than silently become data.

The README gains a "How this compares" section that says plainly where this
project overlaps its neighbours and where it does not -- linking to the full
table rather than duplicating it, so there is one place for the numbers to be
right.

Nothing here asserts that a competitor lacks a feature. Stars, licences and
dates are facts about repositories on the fetch date; capability judgements
stay in the prose, where they can be argued with.

Verified: ruff, ruff format, mypy, 316 tests pass, landscape --check clean.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@webdevsamran
webdevsamran merged commit 7ba3841 into main Sep 9, 2026
12 checks passed
@webdevsamran
webdevsamran deleted the docs/competitive-landscape branch September 9, 2026 10:40
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.

1 participant