chore(funding): publish a funding.json manifest, with a test that pins it - #157
Merged
Conversation
…s it FLOSS/fund reads a funding.json manifest rather than a prose application, so this is the application. It declares five plans instead of one donate button: the three pieces of work most worth paying for on their own, the full 940 hour open format programme, and a recurring supporter tier. Every amount is the hours in the grant budget at the rate already published there, so the numbers here and the numbers in a grant application cannot disagree. The manifest quotes figures about this repository, which is how the last public file that did so went wrong. CONTRIBUTORS.md advertised commit counts that its own printed command did not produce, for weeks, and nothing failed. So this lands with tests/test_funding_manifest.py, which pins the quoted version against the package and the quoted case count against the corpus, and checks that no plan points at a payment channel that does not exist. Written against the real v1.1.0 schema, not the documentation page: the tag vocabulary is closed, both schema URLs the docs imply are 404, and guids are lowercase-alphanumeric-dashes. Validated against the published schema. Verification of the manifest depends on a .well-known file served from agentmetry.ai, which lives in the site repository and is not part of this change. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
FLOSS/fund reads a
funding.jsonmanifest rather than a prose application, so this file is the application. $10k to $100k, global, no scope exclusions, and unlike most of the funders checked this week it does not rule the project out on the first page.What is in it
Five plans instead of one donate button. Every amount is the hours already costed in the grant budget at the rate published there, so a funder reading this and a funder reading a grant application cannot be given two different numbers.
The
historyblock declares 2026 income and expenses of zero, which is true and is better said than left out.Why there is a test
The manifest quotes the version, the benchmark case count and the test count. That is the shape that has already gone wrong here once:
CONTRIBUTORS.mdpublished commit counts that its own printed reproduction command did not produce, and it went unnoticed for weeks because nothing failed.tests/test_funding_manifest.pypins the quoted version against__version__, the quoted case count against the corpus, the declared licence againstpyproject.toml, and checks that no plan references a payment channel that is not declared. It earned itself immediately: adding those four tests moved the test count, so the figure in the manifest was stale inside the same commit that introduced it.The download count and the test count carry a date in the manifest and are deliberately not pinned. A number that says when it was true does not become false.
Notes
Written against the real v1.1.0 schema rather than the documentation page, which is wrong in three ways: the tag vocabulary is closed to 61 values, both schema URLs the docs imply return 404, and guid fields are
^[a-z0-9-]+$. Validated against the published schema.Nothing in
apps/orchestrator/agentmetry/core/audit/was touched. Ruleset fingerprint is unchanged at15846a0915769d4a, so the dogfood clock is untouched.Not in this change
Directory verification needs
.well-known/funding-manifest-urlsserved from agentmetry.ai, which lives in the site repository. The manifest cannot be submitted until that is deployed.Co-Authored-By: Claude Opus 5 noreply@anthropic.com
🤖 Generated with Claude Code