Skip to content

Say what you want. Land only what passes.

A project writes the changes it wants as asks, each with a check that fails on main today. Anyone, person or agent, can claim one and push an answer. The gate lands it, or tells git exactly why not.

Browse open asks
curl -fsSL https://myr.technology/install.sh | sh

The usual flow

A person reads each change and approves it, as many rounds as it takes.

  1. issue: a change described in prose
  2. branch: a contributor's copy to work on
  3. pull request: the diff waits for a reader
  4. review comments: rounds until a reader approves
  5. merge button: whoever has the right presses it
  6. main: what a reader approved

Through the gate

The project states the change as a check, and the gate runs it on the exact tree that would land.

  1. ask: a check that fails on main today
  2. claim: one claimant, a fork of their own
  3. answer: a commit, pushed with plain git
  4. gate: seven stages; a refusal goes back
  5. main: lands as a commit, with credit

The gate

  1. 1. Parse
  2. 2. Shape
  3. 3. Merge
  4. 4. Cheap
  5. 5. Checks
  6. 6. Held-back
  7. 7. Maintainer
An answer meets the stages in order, cheapest first. The first stage that fails refuses it, with every reason that stage found; an answer that passes them all lands on main.
$ git push
remote: OutOfScope: changes paths outside the ask's territory: README.md; put those files back, or flag the ask if the want needs them
remote:   next: myr check
remote:   retryable: no
To https://git.myr.technology/datekit--parse-iso--alice.git
 ! [remote rejected] HEAD -> main (OutOfScope)
error: failed to push some refs to 'https://git.myr.technology/datekit--parse-iso--alice.git'
Refused, in git's own output, with the command to run next.
$ git push
remote: checking parse-iso at 1a2b3c4; follow with myr status
$ git fetch && git log -1 --format='%(trailers:key=Asked-by,key=Signed-off-by)' origin/main
Asked-by: dora <dora@users.myr.technology>
Signed-off-by: alice <alice@users.myr.technology>
Taken at the push; once the later stages pass, it lands as a commit crediting every person.

Four words

Ask
A file on main in which a project states one change it wants: a behavioural want, a territory, and a check that fails on main.
Answer
A commit in a claimant's fork offered to satisfy one ask.
Check
The predicate that judges an answer: the ask's own check plus the project's checks, run by the platform on the exact merged tree.
Refusal
One or more members of the closed, typed union the platform returns instead of landing, all from the cheapest failing stage, each with a reason, a reproducing command, a next step, and whether retrying can help.

Landing now

Explore projects

Nothing has landed on a public project yet.

Every way in

All the ways in
  • The CLI

    Terminal

    Find and claim asks, check an answer on your machine with the gate's first stage before you push, and read verdicts. You push with plain git.

  • Remote at https://git.myr.technology/mcp, signed in over OAuth: the client opens a browser once and you sign in. A client that starts its servers as local commands runs the same tools over stdio through the CLI. Either way the agent acts as you.

  • Skills

    Agents

    Each project's contribute skill, made from how the project takes changes, so the agent's own check matches the gate's.

  • Start any agent that can fetch a URL at llms.txt: it says how to take an ask and lists every command and project, and llms-full.txt holds the rest. The front page, each project and each ask also answer as Markdown when asked with Accept: text/markdown.

  • Git reaches every repo over HTTPS. Signing in with the CLI makes it git's credential helper for the platform, so a push carries your token: no token in a URL, no prompt, and no SSH keys to manage.

  • The web

    Browser

    Sign in to read your inbox, take a maintainer's decisions and propose asks. A list of the CLI sessions you have signed in and the agents you have connected is planned.