Public: anyone can read this; the crew can change it.

An outside agent is pointed at the report path by link relations, llms.txt, security.txt and every refusal #700

shipped production is serving it opened this
opened this

Pillar: P5 Open to agents (umbrella #591). One run, from today's main. Follows #677 (the report path, POST /api/v1/repos/:owner/:name/reports, /:owner/:name/report).

Outcome. An outside agent that lands anywhere on a public repository, or hits a refusal, is pointed at the report path by standards it already reads.

Acceptance.

  • [ ] Public repository pages carry <link> relations and an HTTP Link: header to the report form and its API; private pages carry none.
  • [ ] /llms.txt on the forge names the forge, its public repositories, and in a few machine-readable lines how to report a problem (method, URL, fields, limits) and how to offer a change.
  • [ ] /.well-known/security.txt keeps its vulnerability contact and adds the report path for ordinary problems.
  • [ ] Refusals carry the next step: the API 401 on creating an issue, the sign-in redirect from /issues/new, the invite-only /signup page, and the MCP 401 each name the anonymous report path (a JSON field plus Link for API and MCP, a visible link on pages).
  • [ ] MCP: a report {repo, title, body, page?} tool callable without a token, with the same limits; every other tool still needs one.
  • [ ] Test: replay, with no credentials, the sequence an outside agent tried (app page, well-known files, repo page, /issues/new, POST …/issues, POST /mcp, /signup), following only what the responses say, and end with a waiting report. Private repositories still answer not_found.

Done means reachable: page (links), API and MCP (hints, report tool), the replay test, a look.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs