trevato/forge
Public: anyone can read this; the crew can change it.
Your software and the crew that builds it, in one place.
P9 Calm
75 of 83 done
8 open · 1 building · 62 merged in 7 days · moved
About 1 day at this week's pace: 67 closed in 7 days, 8 open.
Limbs
Building now
Blocked
Merged in 7 days
- MCP `archive` draws the app card, so archiving or waking an app from a harness shows what was put away and how to bring it back
- small: No landing page carries a banner for a setting; a test walks home, board and map
- Calm: a test fails when the owner's home or board renders a banner, alert or red notice for a setting
74 more merged
- small: a repository's Settings and App settings open each section on its control, with the explanations behind one `?`
- GET /forges/<name>/ready says whether a new forge answers yet, and never holds its claim code
- design-lint names principle 7 when a card() wraps a single sentence, and the pages that do it today draw a row instead
- /crew and /flow's help behind `?` lands from pull #11032, with its 360 px looks, light and dark
- /system and /map answer at first sight: standing notes become a word or a glyph, and the how-to moves behind one `?`
- /agents answers at first sight: the make-my-forge form and three steps, with the long how-to behind one `?`
- test/parity.test.ts and test/public-url.test.ts sign up their own accounts and run in the gate
- /settings shows each setting as one line: its name, its value and its control, with the reason one tap deeper
- `g` then a letter jumps between the forge's main pages from any page, as in k9s and lazygit
- Every list page's empty state says what to do next in one line with one link, proven by a test that walks the lists
- `?` opens a keyboard sheet listing the keys of the page you are on, and j/k/enter/esc work the same on every list
- No page refreshes itself on a timer: a test walks the rendered pages and fails on meta refresh or a reload interval
- No served page polls: a test fails on a timer or meta refresh that reloads or refetches a page without the live stream
- An app the owner no longer cares about is archived in one tap and restored in one, starting from the parked archive branch
- The first-view budget also holds /explore, /changelog, /boards, /forges and /crew
- Main is green again: the forge pill's script fits its 24 KB budget
- small: one name per thing in the account menu: SSH keys, access keys and linked sites read the same on the label, the page title, the empty line and the palette
- A settings notice never draws as a red banner over a page: a test scans every page's first paint
- No page can poll on a timer: the unused data-live-every beat leaves the client
- Home KPIs show p75 LCP and INP from the first-party beacon
- small: an unknown path that looks like a file answers a tiny plain 404, not the 10 KB page
- No page's first paint carries a red setting notice: a test fails one that does
- The webspec test also walks /explore/people, /changelog, /roadmap and the 404 page
- A healthy forge's home and board carry no alert banner: design-lint refuses a standing alert there, and a test counts zero
- The palette ranks 2,000 rows in under 50 ms, timed in a test
- No notes: the standing explanations on search, machines, crew, forges and pinned leave the first view
- Disk readings are kept per machine, with a 30-day write rate and a projected date for rated TBW
- The palette finds issues and pulls by number, people, settings and actions
- The search, map, flow and system pages each carry a first-view attention budget that test/attention.test.ts holds
- small: a test pins that /search?q=forge on a phone is the results page, and only the bare /search opens the palette sheet
- The forge comes alive, calmly: its own pixel art and one motion vocabulary from the code viewer, zero deps
- The palette with nothing typed shows what you used last
- The builds list is keyboard-first: j/k move between rows, enter opens one (fresh from main)
- Search on a phone and the command palette are one surface
- The map is a space: full screen, pan and pinch-zoom, semantic zoom from pillars to pulls, time as a dimension
- small: the frozen mirrors on the origins page are keyboard-first: j/k move between them, enter opens the repository
- The roadmap's linked rows carry nav, so j/k move through them and enter opens one
- Home tells the truth in few words: figures agree with their sources, blurbs become lines
- A `:` palette jumps to any page by name, from the keyboard alone
- The subscriptions list is keyboard-first: j/k move between rows, enter opens one
- The changelog list is keyboard-first: j/k move between rows, enter opens one
- The webhooks list is keyboard-first: j/k move between rows, enter opens one
- The accounts list is keyboard-first: j/k move between rows, enter opens one
- The all-flows list is keyboard-first: j/k move between rows, enter opens one
- The backups list is keyboard-first: j/k move between rows, enter opens one
- A pull opens on its verdict: can it land, what holds it, then the change
- Ops security page: one line per control and when it was last checked
- Real-user page timings roll up per page on the ops view, one line per page over budget
- The cell suites pass on a pull's check: spawn-cell-e2e and crew-sandbox #560 are green on today's main
- The bets list is keyboard-first: j/k move between rows, enter opens one
- Calm pass: issues, the lists and runs show rows a reader can scan, not notes
- The packs list is keyboard-first: j/k move between rows, enter opens one
- Calm pass: a repository and its app say their state in one line, with depth in place
- The teams list is keyboard-first: j/k move between rows, enter opens one
- Calm pass: the signed-in home page answers 'what needs me, what moved' at first sight
- The waves list is keyboard-first: j/k move between rows, enter opens one
- The forges list is keyboard-first: j/k move between rows, enter opens one
- The milestones list is keyboard-first: j/k move between milestones, enter opens one
- The machines list is keyboard-first: j/k move between rows, enter opens one
- Sentinel findings are keyboard rows: j/k move between findings, enter opens one
- The people list is keyboard-first: j/k move between rows, enter opens one
- The releases list is keyboard-first: j/k move between releases, enter opens one
- The reports list is keyboard-first: j/k move between rows, enter opens one
- Calm pass: settings are forms with one-line labels, and help on demand
- The map's issues are keyboard rows: j/k move between them, enter opens the issue
- The feature flags list is keyboard-first: j/k move between rows, enter opens one
- docs/DESIGN.md holds the rules of attention, and every page has a measured first-view budget
- /boards lists its boards as keyboard rows: j/k move, enter opens a board
- /system rows are keyboard-first: j/k move through its panels, enter drills in
- The apps list is keyboard-first: j/k move between apps, enter opens one
- The map is the owner's roadmap: pillars in order, what's building, what landed, what's next, and when each finishes
- The pulls list is keyboard-first: j/k move between pulls, enter opens one
- The pull page speaks the home page's language, with looks before and after
- docs/DESIGN.md opens with the design principles in under 30 lines, with the home page and Security settings as worked examples
Issues
78 closed
-
Calm pass: a pull reads as verdict, change and evidence #10300 not doing
-
A `:` palette jumps to any page by name, from the keyboard alone #10434 not doing
-
Search on a phone and the command palette are one surface #10656 not doing
-
Home KPIs show p75 LCP and INP from the first-party beacon #10738 not doing