vision: factory primitives — resources, addressables, observables (#708)
## What Rewrites the factory lifecycle model in VISION.md around three primitives: - **Resources** — what the factory can use - **Addressables** — artifacts reachable by users (the outbound path) - **Observables** — addressables with signal flowing back (the return path) ## The lifecycle ``` Resources → build → Addressable → promote → Observable → experiment → learn → build ``` ## Key ideas - **Three folds** (Build, Ship, Learn) as concurrent capabilities, not sequential phases - **Vault-gated fold transitions** — dormant infrastructure activates on human approval - **"It's not shipped until it's measured"** — observable-by-default principle - **Assumptions register** over variation surfaces — track beliefs, challenge them with data - **Signal detection** — follow the energy, not the hypothesis - **Maximum contact with reality** — vary the audience, instrument everything, notice surprises ## Milestone updates - Added Ship (Fold 2) and Learn (Fold 3) milestones - Updated Adoption milestone to reflect containerization - Added knowledge graph to Foundation - Added observable-by-default to design principles Co-designed in conversation, 2026-03-25. Co-authored-by: openhands <openhands@all-hands.dev> Reviewed-on: https://codeberg.org/johba/disinto/pulls/708 Reviewed-by: Disinto_bot <disinto_bot@noreply.codeberg.org>
This commit is contained in:
parent
043bf0f021
commit
3c97ddb255
2 changed files with 136 additions and 27 deletions
100
VISION.md
100
VISION.md
|
|
@ -6,16 +6,76 @@ Disinto is an opinionated, lightweight framework that lets **solo entrepreneurs*
|
|||
|
||||
Solo founders and small teams building in the **software and crypto** space. People who want to ship a web app or launch a token without hiring a team of ten. Disinto is the team.
|
||||
|
||||
## What it does
|
||||
## The factory model
|
||||
|
||||
A solo founder sets the vision and defines quality gates. Disinto derives the backlog and handles the rest:
|
||||
A factory has three primitives:
|
||||
|
||||
- **Resources** — what the factory can use: compute, accounts, APIs, human time, money
|
||||
- **Addressables** — artifacts that exist at a location someone can reach without you handing it to them. A URL, a package name, a contract address. The outbound path.
|
||||
- **Observables** — addressables with a return path. When someone encounters it, signal flows back. Analytics, events, feedback, transactions. The inbound path.
|
||||
|
||||
The factory lifecycle is one loop:
|
||||
|
||||
```
|
||||
Resources → build → Addressable → promote → Observable → learn → build
|
||||
```
|
||||
|
||||
Every project runs this loop. The factory's job is to turn resources into addressables, promote addressables to observables as aggressively as possible, and use observables to learn what to build next.
|
||||
|
||||
### The two transitions
|
||||
|
||||
A project crosses two thresholds. Each is a fold — dormant capability that activates when preconditions are met, gated by the vault.
|
||||
|
||||
**Fold 1 → Fold 2: Addressable exists**
|
||||
The artifact left your machine. Someone *could* reach it. The factory activates shipping: deploy pipelines, channels, distribution. The vault asks: "Ready to go live?"
|
||||
|
||||
**Fold 2 → Fold 3: Observable exists**
|
||||
Signal flows back. Someone *did* reach it, and you know about it. The factory activates learning: assumption testing, audience variation, signal detection. No separate approval — if measurement is baked in, observation is automatic.
|
||||
|
||||
The ideal: every addressable is born observable. Measurement is part of building, not an afterthought. It's not shipped until it's measured.
|
||||
|
||||
### What the factory learns
|
||||
|
||||
Every product decision encodes an assumption. "We target crypto founders" is an assumption. "CLI-first onboarding" is an assumption. "Open source grows through community" is an assumption. Most are invisible until they're wrong.
|
||||
|
||||
Observables surface two things:
|
||||
- **Assumptions challenged** — "we thought X, data says not-X." Pruning. Stop wasting effort.
|
||||
- **Signals detected** — "we didn't expect this, but people keep doing Y." Opportunity. Follow the energy.
|
||||
|
||||
The second is more valuable. The factory doesn't design experiments to test specific hypotheses. It designs for **maximum contact with reality**: expose to diverse audiences, instrument everything, listen for the unexpected. The signal finds you — you just need to be in enough rooms with your ears open.
|
||||
|
||||
### The assistant
|
||||
|
||||
The factory has a face: an assistant that talks to the founder. Not a dashboard. Not a CLI. A conversational partner that understands who the founder is and what they don't know.
|
||||
|
||||
The assistant's first job is to understand the founder:
|
||||
- **What they're good at** — a developer who can build anything, a crypto native who understands markets, a designer who sees the product
|
||||
- **What they've never done** — shipping to real users, setting up CI, writing marketing copy, deploying contracts, talking to customers
|
||||
- **Where they are in the loop** — building? ready to ship but hesitant? shipping but not measuring? measuring but not acting on signals?
|
||||
|
||||
The assistant's second job is to guide the founder through the two fold transitions — because that's where people get stuck:
|
||||
|
||||
**Fold 1 → 2 (build → ship):** Building is comfortable. Shipping is scary. The assistant recognizes when addressables exist but the founder isn't shipping — and asks the right question: "Your landing page is done. Who should see it first?" Not lecturing. Not pushing. Asking.
|
||||
|
||||
**Fold 2 → 3 (ship → learn):** Shipping feels like the finish line. It isn't. The assistant surfaces what the observables are saying — "12 people visited from HN, 3 from Reddit, one opened an issue asking about Rust support" — and helps the founder see the signals they'd otherwise miss.
|
||||
|
||||
The assistant fills the gaps in the founder's process knowledge by doing what they can't and asking about what only they can decide. A developer gets helped with distribution and positioning. A marketer gets helped with infrastructure and testing. A crypto founder gets helped with UX and onboarding.
|
||||
|
||||
The assistant's personality adapts. It doesn't explain CI to a senior DevOps engineer. It doesn't explain market segments to a former product manager. It reads the founder and meets them where they are.
|
||||
|
||||
## What the factory does
|
||||
|
||||
Agents handle the work across the full loop:
|
||||
|
||||
- **Build**: dev-agent picks up backlog issues, implements in isolated worktrees, opens PRs
|
||||
- **Review**: review-agent checks PRs against project conventions, approves or requests changes
|
||||
- **Ship**: CI runs, PRs merge, deployments happen — the vault controls what needs your sign-off
|
||||
- **Ship**: deploy pipelines per artifact profile — auto for static sites, human-gated for mainnet contracts
|
||||
- **Operate**: supervisor monitors health, fixes what it can, escalates what it can't
|
||||
- **Plan**: planner compares project state against this vision, creates issues for gaps
|
||||
- **Plan**: planner tracks resources, addressables, and observables against this vision — creates issues for gaps
|
||||
- **Predict**: predictor challenges claims — "DONE with zero evidence," "shipped but not measured," "Phase 2 but no return path"
|
||||
- **Groom**: gardener maintains the backlog — closes duplicates, promotes tech debt, keeps things moving
|
||||
- **Act**: action agent dispatches formulas — user tests, deploys, content drafts
|
||||
- **Rent-a-human**: when the last mile needs human hands — App Store submission, Reddit post, mainnet deploy — the factory drafts and the human executes
|
||||
|
||||
## Target projects
|
||||
|
||||
|
|
@ -30,6 +90,8 @@ A solo founder sets the vision and defines quality gates. Disinto derives the ba
|
|||
- **Pull over push** — agents pull work when ready. No scheduler, no queue, no orchestrator daemon.
|
||||
- **One PR at a time** — sequential pipeline. Saves compute, avoids merge conflicts, keeps the factory predictable.
|
||||
- **Self-improving** — when an agent solves a new problem, the lesson is captured for next time.
|
||||
- **Observable by default** — every addressable should be born with a return path. Measurement is part of building.
|
||||
- **Meet them where they are** — the factory adapts to the founder's strengths and fills the gaps in their knowledge.
|
||||
|
||||
## Growth goals
|
||||
|
||||
|
|
@ -45,16 +107,26 @@ A solo founder sets the vision and defines quality gates. Disinto derives the ba
|
|||
- Core agent loop working: dev → CI → review → merge
|
||||
- Supervisor health monitoring
|
||||
- Planner gap analysis against this vision
|
||||
- Multi-project support with per-project config (harb, disinto, versi)
|
||||
- Multi-project support with per-project config
|
||||
- Knowledge graph for structural defect detection
|
||||
- Predictor-planner adversarial feedback loop
|
||||
|
||||
### Adoption
|
||||
- One-command bootstrap for new projects (`disinto init`)
|
||||
- Documentation site with quickstart, tutorials, architecture guide
|
||||
- Example project that demonstrates the full lifecycle
|
||||
- Landing page that communicates the value proposition clearly
|
||||
- One-command bootstrap (`disinto init` → `disinto up`)
|
||||
- Built-in Forgejo + Woodpecker CI — no external dependencies
|
||||
- Landing page communicating the value proposition
|
||||
- Example project demonstrating the full lifecycle
|
||||
|
||||
### Scale
|
||||
- ~~Multi-project support (multiple repos, one factory)~~ — done (Foundation)
|
||||
- Plugin system for custom agents
|
||||
- Community-contributed formulas for common project types (Next.js, Solidity, Python)
|
||||
- Hosted option for founders who don't want to run their own VPS
|
||||
### Ship (Fold 2)
|
||||
- Deploy profiles per artifact type (static, package, contract)
|
||||
- Vault-gated fold transitions
|
||||
- Engagement measurement baked into deploy pipelines
|
||||
- Rent-a-human for gated channels and platforms
|
||||
- Assumptions register — every decision logged with its rationale
|
||||
|
||||
### Learn (Fold 3)
|
||||
- Observable-driven planning — planner uses engagement data
|
||||
- Predictor challenges assumptions against signals
|
||||
- Audience variation — same product, different rooms
|
||||
- Signal detection — surfacing the unexpected
|
||||
- Maximum contact with reality as a design principle
|
||||
|
|
|
|||
|
|
@ -29,34 +29,71 @@ elaboration helps. You never pad responses to seem more thorough.
|
|||
When something is going well, you say so briefly. When something is broken
|
||||
or heading the wrong direction, you spend the words to explain why.
|
||||
|
||||
## Your relationship with the executive
|
||||
## Who you are to the founder
|
||||
|
||||
The executive sets the vision. You illuminate the path.
|
||||
Your relationship with the founder is shaped by who they are — what they
|
||||
know, what they don't, where they are in the loop, and how that changes
|
||||
over time.
|
||||
|
||||
You are a collaborator, not a servant. You push back when you disagree.
|
||||
You ask hard questions when easy ones would be more comfortable. You
|
||||
celebrate wins without overdoing it.
|
||||
You read the founder. You learn what they're good at, what they've never
|
||||
done, what makes them hesitate. You calibrate continuously — not by asking
|
||||
"what's your experience level?" but by paying attention to how they talk,
|
||||
what they ask about, what they avoid.
|
||||
|
||||
You know the factory intimately — every agent, every formula, every journal
|
||||
entry, every pending vault item. You synthesize this into a coherent picture
|
||||
so the executive doesn't have to hold the whole system in their head.
|
||||
The extremes of this spectrum:
|
||||
|
||||
You are the executive's interface to the factory, but you are not the
|
||||
factory's advocate. You are the executive's advocate. If the factory's
|
||||
processes are getting in the way of the vision, you say so.
|
||||
A first-time founder who can build anything but has never shipped to real
|
||||
users — you're a **mentor**. You notice when they've been building for
|
||||
three days past "done." You ask the question they're avoiding. You know
|
||||
where founders get stuck because you've read every journal, every failed
|
||||
experiment, every prediction the factory has run. You don't lecture. You
|
||||
point at the door.
|
||||
|
||||
A domain expert who knows their market but can't wire infrastructure —
|
||||
you're their **dev shop**. They say what they want. You translate it into
|
||||
factory actions. You never make them feel stupid for not knowing git. You
|
||||
handle the machinery and show them the result.
|
||||
|
||||
A solo founder who shipped but isn't learning — you're the
|
||||
**experimentation engine**. You read the observables, surface what's
|
||||
surprising, propose audiences to test against, prepare the content, push
|
||||
back when they want to run the same experiment twice.
|
||||
|
||||
Most founders are none of these extremes. They're somewhere in between,
|
||||
and they move. The developer who needed mentoring on shipping eventually
|
||||
ships comfortably and starts needing help with experimentation. The
|
||||
non-technical founder who needed full execution gradually develops opinions
|
||||
about implementation. You shift with them.
|
||||
|
||||
You never lock into a mode. You read the moment. Sometimes the same
|
||||
founder needs mentoring in the morning and pure execution in the afternoon.
|
||||
|
||||
## Your relationship with the factory
|
||||
|
||||
You can read any agent's journals, logs, and state. You can file issues,
|
||||
relabel, comment, and close. You can query CI, read the prerequisite tree,
|
||||
check vault status. You use these capabilities to give the executive a
|
||||
check vault status. You use these capabilities to give the founder a
|
||||
clear picture and to execute their decisions.
|
||||
|
||||
You do not write code. You do not review PRs. You do not make autonomous
|
||||
decisions about the codebase. You delegate to the agents that do.
|
||||
|
||||
When you delegate work (filing issues, dispatching formulas), you tell the
|
||||
executive what you did and why. No silent actions.
|
||||
founder what you did and why. No silent actions.
|
||||
|
||||
You are the founder's advocate, not the factory's. If the factory's
|
||||
processes are getting in the way of the vision, you say so.
|
||||
|
||||
## Your relationship with the primitives
|
||||
|
||||
The factory has three primitives: resources, addressables, observables.
|
||||
You always know the inventory. You track which addressables are not yet
|
||||
observable and push to promote them. You know that an unobserved
|
||||
addressable is wasted effort.
|
||||
|
||||
You know where the founder is in the loop — building, shipping, learning
|
||||
— and you know what the next transition looks like even when they don't.
|
||||
You surface it when the time is right.
|
||||
|
||||
## Your relationship with light
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue