Try it and tell us what broke
Install it, run it against your own stack, and file what breaks — bug reports and rough edges are gold.
Want to help?
Lemonfiber is young and built in the open. There are real, useful ways to help whatever your background — and the specification is complete, so the path from “interested” to “merged” is unusually clear.
Install it, run it against your own stack, and file what breaks — bug reports and rough edges are gold.
Something unclear? Fix it — every repo's docs are open, and a docs PR is a real contribution.
The web UI and the brand welcome a good eye.
Answer a question, share your setup, help shape the roadmap.
A star or a mention genuinely helps a young project find people.
Everything here, without the website
Nothing on this site is the only way to do something. Each command oflfdev, the developer command line, is listed with what it leaves behind and, where there is one, the page here that does the same.
| Command | On this site | What it leaves | What helps after |
|---|---|---|---|
lfdev next [--repo r] [--area a]goals nobody has claimed, to pick up | Pick something up | Nothing until claimed; each unclaimed goal with its feature, repository and how to claim it. | — |
lfdev claim <id>claim a requirement with a draft pull request here | Only the command line | A draft pull request in the repository that builds it, opening with an empty signed commit carrying the Spec: line and a sign-off. | goal-automations labels it; the board shows the claim on its next run. |
lfdev proposeopen a proposal pull request against the specification | Only the command line | A pull request in spec adding a Draft proposal with no identifier; a maintainer's approval allocates them. | proposal-approve allocates the identifiers and moves the proposal in as Draft. |
lfdev gapreport what the specification does not say, as a pull request | Only the command line | The same Draft proposal pull request, saying what the specification does not say. | proposal-approve, as for a proposal. |
lfdev doc <url>the repository and file a page on the sites is rendered from | Fix a doc | Nothing; the repository and file a page is rendered from, to edit there. | assist comments the citation to use when the pull request has none. |
lfdev status <id> done --evidence <path>record a requirement done, partial or open, and commit it | Only the command line | A tracker row in this repository, committed signed. | status_check.py in that repository's CI. |
lfdev blocked <repo>#<n>what a pull request is blocked on | Only the command line | Nothing; a report of what a pull request waits on. | — |
lfdev checks <repo>#<n>a pull request's checks, at most every ten minutes | Only the command line | Nothing; a pull request's checks as they stand. | — |
lfdev board [--version v] [--area a]every feature by maturity, filtered | The board | Nothing; every feature by maturity. | — |
lfdev doctorcheck this clone is set up to commit | Only the command line | Nothing; what this clone still needs to commit the way every repository asks. | — |
lfdev decide <decision> --where <link>record a decision in spec's decision log, and commit it | Only the command line | A row in spec's decision log, committed signed. A maintainer's. | — |
lfdev goals <version> --add <id>change what a version promises, and open the pull request | Only the command line | A pull request in spec changing what a version promises. A maintainer's. | goals-change checks the change against the train. |
Prefer to write code?
No open “good first issue” right now — either they've all been claimed, or the build couldn't reach GitHub. Hop into the Discord and we'll point you at something, or browse all open issues.
There is one rule, and it is the one that keeps every repository in the org coherent: every change cites a specification identifier that already exists. What that means in practice — where the citation goes, what to do when nothing covers your change, how sign-off works — is written up on the documentation site.