Skip to content

docs: say in the README that this is a fork, and what that changes - #6

Open
theRealBithive wants to merge 4 commits into
mainfrom
docs/readme-fork-header
Open

theRealBithive wants to merge 4 commits into
mainfrom
docs/readme-fork-header

Conversation

@theRealBithive

Copy link
Copy Markdown
Owner

What changes

The README was upstream's, unchanged, pointing at upstream's repository. Anyone
landing here cloned the wrong remote and read CI badges for a workflow that is
not the one running.

  • A badge block for this fork: CI status from theRealBithive/quackback, two
    policy badges, the upstream link, the licence. The stars badge is gone — it
    counted upstream's.
  • A ## This is a fork section at the top. Everything below it is upstream's
    own description of the product and is left exactly as it stands, so a sync
    stays a sync rather than a merge.
  • Clone URLs point here. The iOS/Android SDK links, Discussions and the
    contributors list still point upstream on purpose: those are upstream's and we
    do not host them.

Why there is no coverage percentage

There was a live number to be had and it would have been a misrepresentation.
This repository has no repository-wide coverage or mutation percentage,
deliberately: both gates grade what a change touches, not the total. A total
is a number nobody has to defend, and it improves when you measure less — which
is the exact failure mode coverage-scope.test.ts and mutation-scope.test.ts
exist to make loud.

So the two blue badges state a rule and say so in the text under them, and the
one live badge is CI. The blockquote also says where the two gates actually
bite: they compare against the merge base, so on main the diff is empty and
they grade nothing. The evidence is on the pull request.

Both badge URLs were fetched and render (CI: passing, diff coverage: enforced per PR), and both CLAUDE.md anchors resolve.

Also in here

An entry in SELF-IMPROVE.md: declaring a file in the mutation manifest is an
assertion that the named suites pin it on their own, and finding out that the
assertion is false costs a full run. That happened twice on the branch this was
written alongside.

Docs only. Nothing in the running service changes.

🤖 Generated with Claude Code

MKindshofer and others added 4 commits September 5, 2026 07:57
The README was upstream's product pitch, and it still is below the new
section — deliberately, so an upstream sync stays a sync rather than a merge
argument. What it never said is that this repository is a fork Exkulpa runs
as a network service, which is the fact AGPL-3.0 §13 attaches obligations to,
and that four fork-local rules apply that upstream has no reason to carry.

The badges are rebuilt around what is true here. The CI badge now points at
this fork's workflow instead of upstream's, so it reports our runs and not
somebody else's. The clone commands point at this fork for the same reason.

The two gate badges deliberately state a rule rather than a number. There is
no repository-wide coverage or mutation percentage to report: both gates
grade what a change touches, and a repo total is a figure nobody has to
defend which improves when you measure less. A percentage badge would have
had to be invented or fetched from a third party, and the diff-scoped
mutation score in particular covers five declared files — printing it as a
repository score would be a straightforward misrepresentation. Since both
gates are jobs inside the CI workflow, the CI badge already goes red when
either fails, which is the honest live signal.

The stars badge is gone. On a fork nobody stars it measured nothing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…costs

Adding a manifest entry asserts that the named suites pin the file. On a
pre-existing file that claim is usually false, and the only way to find out
is to run the gate. One file this round cost a dozen small tests to make the
claim true; the next would have cost sixty mutants of untouched error
handling and was backed out instead.

Also records two traps that each cost a run: NoCoverage mutants mean the
entry names too few suites rather than that the code is untested, and editing
the manifest as text puts the new record in `equivalents` too, which the gate
reports as a missing reason.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The badge blockquote claimed the CI badge goes red when `diff-coverage`
or `mutation` fails. True as far as it goes — neither job is
`continue-on-error` and neither is skipped on a push — but it reads as if
the green badge on `main` were evidence those two gates found something.
It is not: both compare against the merge base, and on `main` that is
`main`, so the diff is empty and they grade nothing. The evidence is on
the pull request, which is what the badge label says and what the
sentence now says too.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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