trevato/forge
Public: anyone can read this; the crew can change it.
Your software and the crew that builds it, in one place.
Landed 299 today and 728 in 7 days. P0 Trust finishes around Nov 12.
-
P0 Trust
Building · 1
Up next · 1
Waiting on a pull · 2
Blocked · 3
- #650 Decision: identity is the forge's own, one authorization server, with open-platform.sh sign-in linked during the migration
- #10556 Every reader's text a crew brief takes in has a test that it arrives as untrusted data
- #11119 Production's idle `forge-lag` stays under 100 ms, read and fixed from `/healthz`'s `loopWorstWhat`
Done this week · 8
- #11118 No background job holds the loop longer than 50 ms in one synchronous slice on a busy fixture, and a test times each one
- #11102 The board's money line names the Economics slider's position, linked to Settings → Economics
- #11084 The probe verdicts and an app's wake from sleep are the same every run: probe, probes and apps-sleep leave the quarantine
- #11112 A stranger reading an app sees only the app's own Server-Timing; the forge's entries (forge-lag, forge-route and the rest) go to the app's writers
- #11069 A loop stall over 200 ms is named by what ran: route or job, its ms, the last hour's worst on /system
- #11101 test/crew-interrupted.test.ts runs in the gate: three passes under --randomize, each under 10 s
- #11085 Nothing in the gate's quarantine cites a closed issue: the suites parked on #261 and #7632 join the gate or say today's reason
- #11083 test/snapshot.test.ts, test/board-windows.test.ts and test/tui-asked.test.ts read only the state they made, and run in the gate
-
P1 Feed
Waiting on a pull · 1
Blocked · 1
Done this week · 8
- #10389 A like is a signal in the decision ledger, reachable the same way for a person and an agent, and a test reads it back
- #10392 The feed pages by cursor, not by page number: a long timeline loads in constant time and never repeats or skips a post when new ones arrive
- #10196 A failing webhook's feed line opens Settings › Webhooks for an admin, and tells a writer who isn't one who can act
- #9386 A pull's looks say which phone pages scroll sideways, to its crew, without showing the owner's picture
- #10164 A pull that starts waiting on a team's review shows one line in that team's members' feed
- #10135 An adapter pull that turns failed shows one line in its writers' feed
- #10074 An issue page with Edit open has no sideways scroll at 390px, with a look on the pull
- #10100 A moved repository shows one line in its readers' feed: "moved from alice/demo to acme/demo"
-
P2 Explorer
Done this week · 8
- #10967 Explore has an Atom feed: /explore.atom lists the apps rising and newly made, and the page advertises it
- #10951 small: an Explore row's "make it yours" is one tap and the same words in the MCP row
- #10946 Explore answers under 50 ms and says so in Server-Timing, measured by a test
- #10727 The explorer keeps its filters in the URL, so a filtered view is a link that reloads the same
- #10713 Every app in the explorer says "make it yours" and one tap forks it, counted by a test
- #10387 The explorer's filters and ranking are the same words on the page, the API and the MCP `explore` tool
- #10000 An archived origin's missing-scope warning is one plain line with its action, not a boxed alert card
- #9862 The /search results page speaks the home page's language
-
P3 Fork tree
Waiting on a pull · 1
Blocked · 1
Done this week · 8
- #11031 The MCP fork_tree tool answers with a `ui://forge/forks` card: each fork as a row with its depth and how it follows
- #10904 A mirrored repository's credit (upstream, licence, original authors) is in the REST and MCP answers, not only on its page
- #10748 A fork's page says in one line how it follows its upstream and an admin switches it in one tap
- #10076 A test proves a failed recombine shows its sentence on the combined card and clears once main is fixed
- #10040 A push to main alone starts the recombine pass, after the hook has answered
- #10039 One call rebuilds combined/N for every open kept-fork pull into the default branch
- #9953 A frozen mirror says so in one line on its repository page, not in a boxed card
- #9932 A kept fork's pull is checked on its combined commit, so its green is the green of what lands
-
P4 Forge in a link
Waiting on a pull · 1
Blocked · 8
- #643 Just go forge: bring apps over from the platform, and spawn forges from a recipe
- #644 Autonomous migration mode: an app from the platform gets a crew whose standing job is parity, shown as a checklist
- #645 The drop: a private place per app and per forge to dump reference material the migration crew can read
- #646 Platform inventory: every app the owner has on the platform, what it holds, and its migration state
- #647 Data migration: a platform app's Postgres goes into the drop and then into the forge app's store, with a receipt
- #648 Cut-over: move an app's domain from the platform to the forge with a preview check, a receipt and one-step undo
- #649 Spawn with config: a forge from a declarative recipe (apps and their modes, budget, admin, domain), saved and reusable
- #10566 A builder on a from-app issue in a private app sees the page its owner saw
Done this week · 8
- #10991 Crew runs on a forge admin's org repos use the forge's model account (every child made for an org fails its first run today)
- #11067 /docs reads the forge's documentation on the forge itself: an index and each doc rendered, with no hop to the code host
- #10989 Every new forge comes with its own source as a repo, wired to trevato/forge upstream, so its crew can work on it
- #10912 Any agent with only the URL starts building in one call: account, repo and live app, no person or crew needed
- #10923 The client list says in plain words where each sent forge link stands: sent, opened, signed in, first tell
- #10928 Request access: a stranger can ask for an account, and the admin allows it with one tap
- #10903 An agent asking `forges` sees each child's size and usage, as the machines page shows them
- #10484 A parent funds a child forge's crew: a $ cap per child on the parent's own credential, metered, shown on both forges
-
P5 Open to every agent
Up next · 1
Done this week · 8
- #11122 `runs` answers with a ui://forge/runs card: each run's kind, state, issue or pull, and duration, newest first, linked to its log
- #11110 `releases` answers with a ui://forge/release card: each kept release's version, when it rolled, how many pulls it carried and whether it is proven
- #11103 `now` answers with a ui://forge/crew card: who, on what, since when, cost, a waiting planner first
- #11090 Claude Code adds the forge's plugin in one command the forge prints, with no sparse clone
- #11091 An agent reads one slice of the OpenAPI description: operations carry tags and /contract/openapi.json?tag=pulls answers just those
- #11089 An agent installs the OpenCode plugin from the forge it is reading: llms.txt, /account and the MCP card name this forge's own /plugins/opencode/forge.ts
- #11104 Error hints and the API root name /contract/openapi.json directly, not the path that redirects to it
- #10996 The MCP boards tool answers with a `ui://forge/board` card: a board's panels as rows, with the same numbers as the page
-
P6 Never lost
Done this week · 8
- #10969 A mistyped repository address says the nearest repositories you can see, instead of a bare 404
- #10823 The forge pill on an app or preview is reachable by keyboard alone
- #10835 An app page that carries the forge pill is still compressed for a browser that accepts it
- #10763 The forge toolbar on a preview names its pull and links to it
- #10711 The forge toolbar in an app's preview is pinned by tests: shown on pages, absent from data, never twice
- #10385 The Lost test is a test: from any app and any preview the toolbar tells where you are, gets you home, and reaches comment and tell without a second page
- #9708 Settings › Backups speaks the home page's language
- #9656 /maintenance says whether the standby page is answering before the admin powers off
-
P7 Steering
Waiting on a pull · 1
Done this week · 8
- #11121 `asks` answers with a ui://forge/asks card: each decision waiting on the owner as one line with its one action
- #10908 A note's sender who works through MCP reads the crew's replies to it, as the forge button shows them
- #10905 `scorecard` over MCP says merged, returned and cost this week per member, the same words as /crew
- #10860 An approved pull says when it will land
- #10827 A tell sent from the forge pill carries its context: app, page, build and the last console errors
- #10788 On /crew, a member's Returned count opens the pulls returned to them this week in place
- #10780 Clear the 'on you' panel in one go: select many, decide together, undo for ten seconds
- #10700 Settling many asks at once says the same words and offers the same undo on the page, in the terminal and over MCP
-
P8 Story
Done this week · 8
- #1083 Milestones at the front door: how close the big things are, what moved this week, and the wave that moved them
- #11023 /changelog answers a repeat visit with 304: an ETag for every reader, not no-cache
- #10837 /changelog reads like a story: same-shape landings of a day gather into one line, and titles drop lane and test-file jargon
- #10761 /changelog has an Atom feed, linked from the page head
- #10724 GET /changelog answers under 50 ms with 500 entries, timed in a test
- #10702 The story opens wave to changes to pulls to conversation, one tap each, and a test walks it
- #9753 The /releases page speaks the home page's language
- #9688 The /changelog page speaks the home page's language
-
P9 Calm
Waiting on a pull · 1
Blocked · 1
Done this week · 8
- #11111 /system and /map answer at first sight: standing notes become a word or a glyph, and the how-to moves behind one `?`
- #10948 `g` then a letter jumps between the forge's main pages from any page, as in k9s and lazygit
- #10921 No served page polls: a test fails on a timer or meta refresh that reloads or refetches a page without the live stream
- #10872 An app the owner no longer cares about is archived in one tap and restored in one, starting from the parked archive branch
- #10902 The first-view budget also holds /explore, /changelog, /boards, /forges and /crew
- #10825 A settings notice never draws as a red banner over a page: a test scans every page's first paint
- #10789 No page can poll on a timer: the unused data-live-every beat leaves the client
- #10739 small: an unknown path that looks like a file answers a tiny plain 404, not the 10 KB page
-
P10 Talk
Done this week · 8
- #11071 A talk build is reachable through MCP: `say` starts it, reads its versions and diffs, restores and publishes
- #11010 Talk starts an app from one prompt, and each turn is a version you can preview, diff, restore and publish
- #11011 Talk runs the captain: hourly check-ins, the friends watch and owner instructions as routines in a thread, with memory and resume
- #11009 Talk looks like v0: chat beside a live preview, tool calls as readable steps, streaming with stop and steer
- #10496 The first message sent from /talk?about= gives the agent that subject as fenced context
- #10327 The header's Talk button shows when a conversation waits on your yes
- #10495 The header's Talk link carries ?about= on a repository, issue or pull page the viewer actually sees
- #10494 /talk?about= names its subject: one line above the composer, only for what the viewer can read
-
P11 Money
Up next · 3
- #11171 docs/DESIGN.md holds the first five minutes: the five steps, their time budgets, and the words a stranger is never shown
- #11173 A new forge's first screen leads with one box, "say what you want built"; the passkey-only everyday account is offered after it, never first
- #11144 A child forge can run its own fork: the owner switches from the parent's code to their forge repository's main, and back
Waiting on a pull · 4
- #11136 Stripe is connected by pasting one key: checkout and the customer portal run over fetch, with nothing to set up in Stripe's dashboard
- #11139 The anonymous home page and /agents show the plans and one button to get a forge
- #11155 A forge answers every request in its first ten minutes: no 503 "Waking up" on a POST, and no unclean restart after it is made
- #11157 An admin makes gift codes in the forge: a code gives a plan for free, with or without a payment provider
Blocked · 6
- #11137 POST /hooks/stripe verifies the signature on the raw body and turns each event into an entitlement
- #11138 /pricing sells a forge: pick a plan and a name, pay, and the claim link appears
- #11140 A forge whose payment lapses sleeps after a grace period, and no webhook ever deletes one
- #11141 A forge's owner sees their plan in their forge's settings, with a link to manage billing at the provider
- #11158 The first five minutes are proven on every release: a stranger goes from the link to a built change, timed, with nothing to copy and nothing to read twice
- #11172 No screen on a stranger's way to their own forge says subscription, autonomy, cell, child or claim: one test renders each screen and fails on the word
Done this week · 4
- #11143 A new forge follows the topmost forge on its own: its forge repository takes updates by default, and a clean update merges itself
- #11134 Billing is a seam with two providers, none and stripe; with none, every forge is free within its plan
- #11135 Plans are a setting: free, small, medium and large, each with a size, a monthly price, a monthly crew credit and a forge count
- #11142 An app inside a child forge reaches a payment provider when its forge.json declares it
-
P12 Files and data
Blocked · 3
- #7338 forge/boards edits in the file form as well as in the boards editor (schema + acceptance)
- #7578 The forge is a developer's file system: every app's database and the API spec, first-party (web, terminal app, MCP)
- #8934 Config files open as a form in the terminal too: JSON, YAML and TOML values edited field by field
Done this week · 8
- #11109 A `.env.example` in a repository opens as the variables an app needs: name, example value and its comment per row
- #11108 An OpenAPI document in a repository opens as its operations: method, path and summary per row, grouped by tag
- #11073 An lcov coverage file in a repository opens as a table: each source file's line and branch coverage, worst first, linked to the file
- #11072 A JUnit XML test report in a repository opens as its results: pass, fail and skip counts, then each failing case with its message
- #11007 Displays: 2.3 s to list two rows and no word on what a display is — make it fast and clear, or fold it into boards
- #11030 The terminal workspace opens a .sarif file as the same findings table, with `s` for source
- #11029 A .sarif file in a repository opens as its findings: rule, level, file and line, and message per row
- #11022 An .eml file in a repository opens as a message: From, To, Subject, Date and the plain-text body, drawn on the server
-
P13 Maintainers
Blocked · 5
- #7555 Batch doctor: on a red merge batch, find the culprit, tell load reds from real ones, hold with the exact failing test
- #7556 Flow keeper: stuck, conflicted and wrongly held pulls, rebase loops, lulls and forge-down, acted on instead of alarmed
- #7558 Efficiency watcher: network bytes and cache hit rates by cause, filed when a cost doubles
- #7560 Rule watcher: gate-only reds, rule breakers with exact fixes, flaky and load-sensitive budget tests
- #7561 Maintenance board: each worker's findings, actions and their effect, on forge/boards and a home tile
Done this week · 8
- #10939 /maintenance shows, for each duty, when it last ran and what it found, in one line each
- #10924 A nightly off-box backup older than 26 hours is a card on /flow with the one action that retries it
- #10909 `flow` brings a drifting pull up to date with one action, once the drift list is on main
- #10861 A pull drifting far behind main is flagged on /flow with the one action that rebases it
- #10907 `system` over MCP names the last hour's main-thread stalls and the route or job behind each
- #10863 A park note says what each failed try of the pull changed
- #10864 Boards can chart the machine: CPU, memory and load as a source
- #10862 /flow says how many crew runs declined in the last day, and why
-
P14 Templates
Blocked · 4
- #7534 The New forge page shows a template picker (default: today's behaviour) that works at phone width
- #7536 Admins mark which repositories are offered as templates for new forges
- #7537 Second reading: choose which of the parent's code a new forge is built from (`forgeCode`), not only the apps it starts with
- #7538 Choose the template when making a new forge
Done this week · 3
- #11006 Packs: launch a Business pack and a Gamer pack you can start a forge from (the page is empty today)
- #10550 Variants: a branch is a living variant of an app with its own settings, compared side by side
- #10438 Forge standards: the contracts any forge implementation can pass, with a conformance suite
-
Later