Docs
Core concepts
A goal is split into capabilities. For each capability the planner offers items to reuse or buy, plus a build option. It then searches for the plans no other plan beats on quality, cost and risk, and recommends one. This page defines each piece and shows real numbers.
Items and kinds
An item is anything reusable that has a link, a licence and optionally a price. Every item has a kind. (The self-hosted node calls an item a block; its identifiers, such as blk_ ids and the /api/blocks route, keep that name.)
| Kind | What it is |
|---|---|
repo | A code repository or library. |
skill | An agent skill: instructions plus scripts an agent loads on demand. |
harness | An agent harness: orchestration, tools and evals around a model. |
mcp_server | A Model Context Protocol server that gives an agent tools. |
model, dataset | A model or dataset, for example from Hugging Face. |
prompt, template | Hosted app only: prompt packs and project starters. The planner treats them as skills. |
design | A design file, for example a Figma file imported as an item. |
paper | An arXiv paper used as a blueprint. Papers are never offered as something to use, only as a basis for a build. |
build_task | Reserved for build requests. The planner does not use it yet. |
On the hosted app an item is a listing, named owner/slug, and the catalog is what users have published or imported. On a node, an item id is blk_ followed by 16 hex characters, derived from the seller's key and the item name. Items come from two places: sellers who publish them (the bundled examples are published this way when you run seed), and free items the node finds online with --online (GitHub, the MCP registry, Hugging Face and any MCP servers you configured). Online finds are unsigned and free, and keep their origin.
Capabilities
The planner turns your goal into a set of capabilities: short tags for the jobs the finished thing must do. By default it matches words in your goal against a fixed taxonomy of 23 capabilities and keeps the best eight. English words are matched whole. Simplified Chinese terms are matched as substrings, for 22 of the 23 capabilities (ui-design has no Chinese terms yet). With --llm it asks Claude to split the goal instead, and may use tags outside the list.
| Capability | Matched by words such as |
|---|---|
web-frontend | website, frontend, ui, dashboard, landing, react |
backend-api | api, backend, server, rest, endpoint |
auth | login, authentication, signup, oauth, users |
payments | payment, checkout, stripe, billing, subscription |
crypto-payments | bitcoin, usdc, usdt, wallet, blockchain, escrow |
database | database, sql, postgres, storage, persist |
retrieval-rag | rag, retrieval, search, documents, embeddings, vector |
llm-chat | chatbot, assistant, llm, conversational, agent |
web-scraping | scrape, crawl, extract, monitor |
document-parsing | pdf, docx, ocr, invoice, parse |
speech | voice, speech, audio, transcribe, tts |
vision | image, vision, photo, detection, video |
trading | trading, stocks, backtest, portfolio, quant |
data-analysis | analytics, analysis, csv, report, charts |
notifications | email, sms, slack, telegram, alert |
scheduling | schedule, cron, daily, weekly, calendar |
mobile-app | mobile, ios, android, app |
deployment | deploy, hosting, docker, kubernetes, cloud |
testing-eval | test, evaluation, eval, benchmark, qa |
ui-design | figma, mockup, wireframe, prototype, branding |
agent-harness | harness, orchestration, workflow, multi-agent, mcp |
recommendation | recommend, recommender, personalized, ranking |
translation | translate, translation, multilingual, language |
Sellers declare capabilities on their items using the same tags. An item that declares the capability a requirement needs is a stronger match than one found only by text: when any candidate for a requirement declares it, only the declaring items are considered. The keyword planner is deliberately simple. If a goal is phrased unusually, check the requirements in the output before trusting the plan.
Quality, cost and risk
Each option for a requirement gets three numbers. Quality and risk run from 0 to 1. Cost is in US dollars.
Quality, higher is better
Quality is a weighted average of the signals an item has. Signals it lacks are left out, not counted as zero. An item with no signals scores 0.4: below average, never zero. On the hosted app the signals come from the listing: reviews, stars (including GitHub stars), downloads, the test pass rate, the date of the last update and archived status. On a node they come from the item and from attestations.
| Signal | Weight | How it is scored |
|---|---|---|
| Verified-purchase rating | 2.0 | Average of 1 to 5 ratings from buyers whose escrow was released, pulled toward 3 so one review cannot dominate. |
tests_pass_rate | 1.5 | 0 to 1 as reported by the seller, or by the latest attestation if one exists. |
stars | 1.0 | Square root scale. About 10,000 stars scores 1. |
downloads | 1.0 | Log scale. One million downloads scores 1. |
citations | 0.5 | Linear. 200 citations scores 1. |
scorecard | 0.75 | OpenSSF Scorecard result from 0 to 10, linear. |
dependents | 0.5 | Log scale. 10,000 dependents scores 1. |
Three penalties then multiply the score, so they can only lower it and a missing signal changes nothing. Known vulnerabilities take off 20% per critical or high advisory and 4% per other one, at most 50% in total. For code kinds (repo, skill, harness, mcp_server), staleness multiplies by 0.6 plus 0.4 times freshness, where freshness is 1 within 90 days of the last update and falls in a straight line to 0 at four years. An archived item is multiplied by 0.7. Nothing in the hosted catalog or in the node's own discovery supplies scorecard, dependents or vulnerability counts yet. They apply when an item carries them.
The quality of a plan option is then scaled by how well the item fits the requirement (its text relevance, and whether it declares the capability). Seller-supplied signals are claims until someone verifies them. See Trust and verification.
Cost, lower is better
Cost is the sum of the prices of paid items, plus an estimate for each step you build. The default build estimate is $8.00 of agent tokens per missing piece. It is an estimate of your own agent's spend, not a charge by ReuseForge.
Risk, lower is better
Risk adds up named causes and is capped at 1:
| Cause | Added risk |
|---|---|
Licence is UNKNOWN or not asserted | 0.4 |
| Item from the network with no verified purchases yet | 0.2 |
| Build step with an arXiv blueprint | 0.5 (total) |
| Build step with no blueprint found | 0.7 (total) |
| Each critical or high vulnerability | 0.2, at most 0.5 |
| Each other known advisory | 0.03, at most 0.15 |
| Archived | 0.25 |
| Code item not updated for months | 0 within 90 days, rising to 0.2 at four years |
| Security scorecard, 0 to 10 | +0.04 per point below 5, up to 0.2; down to -0.1 above 7.5 |
| Dependents | down to -0.1 at 10,000 |
The total is kept between 0 and 1. The rows from vulnerabilities down apply only when the item has that signal.
The Pareto plan
A plan picks one option per requirement. Its quality and risk are the averages over its steps, and its cost is the total. Plan A dominates plan B when A is at least as good on all three and strictly better on at least one. The Pareto front is every plan inside your budget that no other plan dominates. The planner searches this exactly, not by sampling, and returns up to 12 plans from the front.
The command line prints only the recommended plan. The whole front is the pareto_front field of the JSON that POST /api/plan returns on a node, and the hosted planner shows it as a chart. Because every plan on the front is a real trade-off, you choose how much to pay for quality. The recommended plan maximises quality minus 0.15 times risk, and breaks ties toward the cheaper plan.
Here is the front for the goal RAG chatbot over my PDF invoices with a dashboard and crypto checkout with no budget set, using only the bundled seed data (python -m repoblock seed). Your numbers will differ with other items.
| Plan | Quality | Cost | Risk | What it does |
|---|---|---|---|---|
| A recommended | 0.936 | $52.00 | 0.200 | Buy three DEMO items: RAG harness ($25), checkout kit ($15), starter UI ($12). Free parser. |
| B | 0.919 | $27.00 | 0.200 | Buy checkout kit and starter UI. Free RAG framework and parser. |
| C | 0.839 | $23.00 | 0.283 | Buy the checkout kit ($15). Build the UI ($8). |
| D | 0.800 | $20.00 | 0.283 | Buy the starter UI ($12). Free Stripe library for payments. Build crypto payments ($8). |
| E | 0.720 | $16.00 | 0.367 | Free items, plus two builds ($16). |
Set a budget of 16 and only plan E fits. Set 10 and nothing fits: the planner says No plan fits the budget. Raise the budget or drop a requirement. It never quietly exceeds the budget.
Shared items are paid once
One item can cover several requirements. In the table above, the checkout kit declares both payments and crypto-payments. Plan B uses it for both and pays $15 once, so the plan costs $15 + $12 = $27, not $42. The escrow order (test mode) lists each paid item once, and the basket shows it once.
Build from a paper
Every requirement also gets a build option, which is how a plan fits a small budget or covers something nobody sells. With --online, each build step carries up to two arXiv papers as blueprints. Without it there is no blueprint, and the step scores lower on quality and higher on risk. The step is priced at the build estimate. Nobody is paid for it inside ReuseForge: it is work for your own agent.
python -m repoblock brief "voice assistant that sends telegram alerts" --budget 30 --onlinebrief prints a document for a coding agent. It lists what is already covered (integrate, do not rebuild), what must be built with its blueprint links and rough budget, MCP servers worth giving the agent, and the rules: ship with tests, record the licence of everything you use, and publish the finished piece back as an item. The last rule is what makes the next buyer's plan cheaper. ReuseForge writes the brief. Running the build is up to your agent.
Glossary
| Term | Meaning |
|---|---|
| Item | A reusable listing with a link, licence, price and signals. Called a block on a self-hosted node. |
| Goal | What you want to end up with, in plain text. |
| Plan | One option per requirement, with quality, cost and risk. |
| Escrow | Payment held by a neutral party until the buyer accepts or the window ends. Test mode only today: no real money moves. |
| Escrow agent, arbiter | The party that confirms deposits and decides disputes. On a self-hosted node, the node operator. |
| Backer | Someone who funds a crowdfunded build and receives revenue units. Test mode only today. |
| Unit | One of 1,000,000 revenue shares in a crowdfunded build. |
| Ledger | The signed, hash-linked log every node keeps. See Trust. |
Last updated: