INTAKE
Wrong? Fix it from where you found it.
Every claim and every node carries a report link. It opens an issue with a fenced vibex block naming exactly what the reader was looking at. The request arrives with its coordinates attached, instead of “the auth docs seem wrong”.
What the reader gets
Set meta.repository to a GitHub or GitLab URL and the rendered pages grow three kinds of report link. Other hosts get no link, rather than one that opens a 404.
“This is wrong or out of date”
A quiet flag next to each claim in a Documentation panel.
“Something is missing here”
In the details panel of any table, container, endpoint or state.
Requests about no single claim
Three buttons: request a doc, report a gap, and propose a change to something that does not exist yet.
Nothing is sent anywhere. The link opens a prefilled issue form, which the person still reads and submits.
What the issue carries
The block sits under the reader's own words. It names the document, the claim and what the build thought of it, the node, and the commit the page was built from. A person skims past it; an agent reads it first.
Four intents, each matching an issue template: doc-request, doc-problem, spec-gap and proposal.
An issue body is public input, and anyone can type a fenced block. Triage treats the block as a hint and checks every ID against what the build actually contains.
What happens next
vibeX runs this loop on its own repository with .github/workflows/intake.yml and .github/scripts/triage-issue.mjs. Copy both into yours and point the triage step at your specs folder.
- 1 · triage
- Runs on any issue labelled
intake. It resolves the block against the build and replies either way:readywhen it can be acted on,needs-infowith a precise question when it cannot, such as which claim does not exist or which diagram was never named. - 2 · authoring
- Only for
readyissues, and only ifANTHROPIC_API_KEYis set. An agent follows the sameSKILL.mdyou do, edits the spec, and runsvalidateanddocs --check. - 3 · pull request
- The change arrives as a pull request that closes the issue. It never merges on its own. A person reviews it, and the drift check has to pass.
- no key
- Triage still runs, still replies and still labels. For a
readyissue it says that nothing will be written automatically and leaves it for a person.
The lines it holds
It answers either way
Actionable or not, the issue gets a reply and a label. An intake queue that answers nothing is worse than none.
It asks rather than guesses
An unresolvable claim ID or an unnamed diagram gets a question, not a pull request. A confident wrong change costs a reviewer more than an unanswered issue.
It cannot assert its way out
If the agent could not establish something from the code, it goes in coverage.out_of_scope, never into an asserted claim under somebody's name.
What it connects to
Where most reports start
A claim that reads wrong is the most common report, and the block names it exactly.
Docs →“This table is missing”
A spec-gap from a node names the spec and the node the reader was on.
Argue before building
A proposal issue becomes specs marked meta.proposed, so everyone can see they describe something that does not exist yet.