Conversational artifact builder feature gap
Conversational artifact builder feature gap
The target product is a public web experience where a visitor describes a small software tool in chat, BusDK turns that request into a runnable web app or downloadable binary, and the customer receives the artifact without seeing or receiving source code. The product does not need access to a customer Git repository. The first implementation can use one Bus-controlled template repository, create one branch per customer build run, assign Bus workers to that branch, verify the produced artifact, and publish only the runnable artifact and safe evidence.
BusDK already has most of the underlying infrastructure. The missing work is a product-specific build-run layer that connects the existing modules end to end.
Existing module fit
| Module family | Existing useful capability | Product gap |
|---|---|---|
busdk.com |
Public static site with product positioning, pricing/contact sections, and commercial page ownership. | Add the public entry point for the artifact builder offer and link it to the chat/build application. |
bus-portal |
Frontend host for portal modules, browser-facing configuration, module mounting, and safe separation from backend business logic. | Host a simple chat module, but keep build orchestration, artifacts, billing, and worker control in API providers. |
bus-portal-ai |
Existing browser AI module with chat and terminal surfaces backed by LLM, billing, container, terminal, and theme API URLs. | Current chat is generic LLM chat, not a build-run conversation. It lacks run status, artifact delivery, build messages, and public-safe evidence. |
bus-api |
Provider host, route configuration, OpenAPI shape, and capability-aware API boundary. | Mount build-run, artifact, task, worker, repo, billing, and auth providers as one product API. |
bus-task and bus-api-provider-task
|
Generic task threads, task messages, task status, replay, and HTTP routes. | Use as the internal conversation/task substrate, but add customer-facing build-run semantics above it. |
bus-worker, bus-api-provider-worker, bus-integration-worker
|
Worker creation, assignment, messages, status, worktree refs, direct-plan, direct-exec, branch selection, and Codex App Server execution. | Add a product worker profile and orchestration policy that turns a build spec into a verified artifact, not just a worker conversation. |
bus-repos, bus-api-provider-repos, bus-integration-repos
|
Repo plan/ensure/status contracts and Git-backed worktree creation for preconfigured local repositories. | Configure one controlled template repository and enforce branch-per-run naming, cleanup, and no-source delivery policy. |
bus-events |
Durable event substrate, replay/follow, export/import/sync, scoped metadata, and evidence streams. | Define build-domain events and a public-safe progress projection. |
bus-api-provider-billing, bus-integration-billing, bus-integration-stripe
|
Billing status, checkout session, portal session, entitlement checks, quotas, Stripe checkout, Stripe webhooks, and usage export. | Map a paid build run to checkout metadata, webhook fulfillment, run activation, and optional credits or quotas. |
bus-api-provider-auth |
Registration, OTP, waitlist approval, scoped JWTs, and internal service tokens. | Add or configure a low-friction visitor session and email capture flow for public build conversations. |
bus-services |
Starts service stacks from services.yml and can group Events, API, Repos, Workers, Tasks, and billing services. |
Add a named artifact-builder stack with readiness checks and documented local/demo deployment. |
bus-api-provider-llm and bus-integration-codex
|
OpenAI-compatible model API and Codex-backed LLM execution behind Bus APIs. | Support the chat/intake assistant, but do not let generic chat be the product boundary. |
bus-attachments |
Evidence file metadata, checksums, and attachment records. | Useful as an internal evidence reference, but public artifact download needs a dedicated artifact delivery contract. |
Required software features
1. Build-run domain module
Owner: new bus-build module or equivalent shared package.
Add a shared build-run contract used by the portal module, API provider, integration worker, tests, and CLI/debug tooling. The contract should define the build run id, customer/session identity, requested artifact type, lifecycle phase, linked task ref, linked worker id, repo id, branch, artifact manifest, checkout/payment status, and public-safe status message.
Required lifecycle phases:
| Phase | Meaning |
|---|---|
drafting |
Visitor is still describing the requested tool. |
quoted |
The system has enough information to explain scope, price, and delivery expectation. |
authorized |
Free trial, manual approval, or paid checkout allows work to start. |
repo_ready |
The template repository branch/worktree exists. |
worker_running |
A worker has accepted the build task. |
artifact_pending |
Worker claims implementation is complete and artifact verification is running. |
artifact_ready |
Verified artifact is available for preview or download. |
delivered |
Customer received the artifact link. |
failed |
Run stopped with a customer-safe reason and internal evidence. |
Definition of done: one package exposes typed request, response, lifecycle, artifact, and event structures; every build run can be serialized as JSON without exposing source paths or secrets.
2. Build API provider
Owner: new bus-api-provider-builds.
Add customer-facing HTTP routes for the chat product. The provider should own the public build-run API and call or publish to Tasks, Workers, Repos, Billing, Artifacts, and Events behind that boundary.
Minimum routes:
| Route | Purpose |
|---|---|
POST /api/v1/build-runs |
Start a new visitor/customer build run. |
GET /api/v1/build-runs/{run_id} |
Return the public-safe build-run state. |
POST /api/v1/build-runs/{run_id}/messages |
Add a customer chat message. |
GET /api/v1/build-runs/{run_id}/events |
Stream or poll public-safe progress events. |
POST /api/v1/build-runs/{run_id}/checkout |
Create a checkout session or payment authorization for the run. |
GET /api/v1/build-runs/{run_id}/artifacts |
List verified artifacts. |
GET /api/v1/build-runs/{run_id}/artifacts/{artifact_id}/download |
Download a verified artifact. |
Definition of done: a browser client can create a run, chat, receive progress, pay or receive manual authorization, and download an artifact using only this API surface.
3. Build integration worker
Owner: new bus-integration-builds.
Add the event-driven orchestrator that turns a build run into internal Bus work. It should subscribe to build-run events, create or update a task thread, ensure the template repo branch, create a worker, send the worker assignment, watch worker messages/status, run artifact verification, publish public-safe progress, and close or fail the run.
The integration should publish build-domain events such as:
| Event | Purpose |
|---|---|
bus.build.run.requested |
New run created. |
bus.build.message.added |
Customer supplied more requirements. |
bus.build.quote.ready |
Scope and price can be shown. |
bus.build.run.authorized |
Payment/manual approval permits work. |
bus.build.repo.ready |
Branch/worktree prepared. |
bus.build.worker.assigned |
Worker id and task ref attached. |
bus.build.progress.updated |
Customer-safe progress update. |
bus.build.artifact.submitted |
Worker produced a candidate artifact manifest. |
bus.build.artifact.verified |
Artifact passed verification. |
bus.build.run.failed |
Run failed with customer-safe reason. |
Definition of done: a build run can proceed from chat to verified artifact without the portal directly calling worker, repo, or task internals.
4. Conversational build portal module
Owner: new bus-portal-build module, or a build-specific submodule inside
bus-portal-ai if speed is more important than separation.
Create a simple public chat surface. It should not expose terminal access, source code, raw worker logs, branch paths, or complex controls. The UI should show the conversation, a concise scope summary, payment/authorization state, progress messages, preview links, and download links.
Definition of done: the first screen is chat; a visitor can describe the tool, answer clarifying questions, approve scope, pay or request approval, and later receive a working preview/download without leaving the conversation.
5. Template repository and branch policy
Owner: bus-repos, bus-integration-repos, bus-integration-worker, and the
new build orchestrator.
Configure one Bus-controlled template repository for the first product. The template should contain a small Go web/binary application skeleton, build commands, artifact manifest rules, and worker instructions. Each customer run creates a branch from a stable base ref.
Recommended branch shape:
build/{YYYYMMDD}/{run_id}
Required policy:
- one branch per build run;
- branch names are generated by the build orchestrator, not by the customer;
- the public API never returns worktree paths or source URLs;
- failed runs keep internal evidence but do not publish source;
- cleanup/pruning policy is explicit before production use.
Definition of done: bus-integration-repos can ensure the configured template
repository branch, and bus-integration-worker can run a direct-exec worker
against that branch without assuming a customer repository.
6. Worker build profile
Owner: bus-integration-worker, worker identity repository, and the template
repository.
Add a persistent worker profile for artifact building. The worker profile must translate the chat-derived build spec into an implementation, run the template build commands, create an artifact manifest, and report only safe progress.
The worker assignment should include:
- build run id;
- task ref;
- branch;
- requested artifact type: web app, binary, or both;
- required build commands;
- artifact manifest path;
- verification commands;
- explicit rule that source code is not returned to the customer;
- concise customer-facing progress style.
Definition of done: creating a worker with this profile on a run branch produces either a manifest-valid artifact or a specific failure reason.
7. Artifact manifest and public artifact delivery
Owner: new artifact surface inside bus-api-provider-builds, or a separate
bus-api-provider-artifacts if artifact delivery will be reused broadly.
Add a manifest format that the worker writes and the build orchestrator verifies. The manifest is the boundary between source work and customer delivery.
Minimum manifest fields:
| Field | Purpose |
|---|---|
artifact_id |
Stable id within the build run. |
kind |
web, binary, archive, evidence, or log. |
name |
Customer-facing name. |
path |
Internal artifact path, never returned directly to public clients. |
sha256 |
Content hash. |
size_bytes |
Download size. |
platform |
Optional binary platform, such as darwin-arm64 or linux-amd64. |
entrypoint |
Optional web entry file or binary name. |
source_included |
Must be false for customer-delivered artifacts in this product. |
Definition of done: the API serves immutable artifact downloads by run id and artifact id, validates checksums, blocks source archives, and avoids directory listing or arbitrary file reads.
8. Web preview hosting
Owner: bus-api-provider-builds, bus-portal-build, and optionally existing
container/static hosting providers.
For web artifacts, add a preview URL that loads the built app in the browser without showing source. The fastest first version can serve a static build directory under a signed or session-protected preview URL. A later version can run containerized previews when the artifact needs a backend process.
Definition of done: a verified web artifact can be opened from the chat transcript, renders in a browser, uses correct MIME types, and cannot browse outside the artifact directory.
9. Binary build and download path
Owner: template repository, build orchestrator, and artifact provider.
Add template build targets for downloadable binaries. The first version can support one platform, then expand to multiple platforms. Each binary must be listed in the artifact manifest with platform, size, hash, and customer-facing filename.
Definition of done: a build run can produce at least one downloadable binary artifact, and the customer can download it without receiving source code.
10. Verification and acceptance gate
Owner: new bus-build or bus-integration-builds, with optional CLI command
for local review.
Do not let a worker directly publish artifacts. Add a verification step that
checks the manifest, file existence, checksums, source-exclusion policy, build
logs, and basic runtime smoke proof. For web previews, verification should
open or request the built page and confirm it returns a non-empty response. For
binaries, verification should run a safe --help, version, or smoke command
when available.
Definition of done: only artifacts that pass verification become visible to the customer. Failed verification produces a new worker message or a failed build-run event with an internal reason and a customer-safe summary.
11. Billing and run activation
Owner: bus-api-provider-billing, bus-integration-billing,
bus-integration-stripe, and bus-api-provider-builds.
Use the existing billing system, but add build-run fulfillment semantics. The checkout request must carry the build run id in metadata or a provider-neutral fulfillment reference. Stripe webhook handling must publish or trigger a Bus event that marks the run as authorized. The build provider should also support manual approval for the first pilots, so a human can authorize a run without pretending that the full billing automation is finished.
Definition of done: payment or manual approval causes exactly one build run to
move from quoted to authorized, and duplicate webhooks do not start
duplicate workers.
12. Visitor session and lead capture
Owner: bus-api-provider-auth, bus-portal-build, and
bus-api-provider-builds.
The product starts with no leads, so the chat must create value before asking for heavy registration. Use an anonymous or lightweight session for the first messages, then request email when the system can show a concrete scope summary or preview quote.
Definition of done: the system can resume a run by signed session or email login, and every paid/authorized run has a contact address without exposing private customer data in public events.
13. Public-safe progress projection
Owner: bus-integration-builds and bus-api-provider-builds.
Workers and repositories produce internal details that customers should not see. Add a build-run projection that converts internal Events, task messages, worker messages, and verification results into safe progress updates.
Allowed public progress examples:
- “I have enough detail to create the first version.”
- “The build worker is implementing the web app.”
- “The artifact is being verified.”
- “The preview is ready.”
- “The build failed during verification; the run has been returned for repair.”
Definition of done: the public API never emits raw terminal output, source diffs, worktree paths, internal branch paths beyond a harmless run id, secrets, model traces, or unreviewed worker logs.
14. Artifact-builder service profile
Owner: bus-services.
Add a named service stack for this product. The stack should include Events, API, Tasks, Workers, Repos, Billing, Auth, the build provider, the build integration, the portal, and the configured template repository path.
Definition of done: one documented command starts the local/demo stack, one status command reports readiness, and missing prerequisites are named without printing secrets.
15. Internal operator review surface
Owner: first CLI/debug command in bus-build or a small internal portal view.
The public UI should remain chat-only, but BusDK operators need a way to see run state, internal worker evidence, artifact verification results, and manual approval controls. This can be a CLI first.
Minimum commands:
| Command | Purpose |
|---|---|
bus build runs |
List build runs by phase. |
bus build show <run_id> |
Show full internal state and linked refs. |
bus build approve <run_id> |
Manually authorize a pilot run. |
bus build artifacts <run_id> |
Inspect artifact manifests and verification. |
bus build retry <run_id> |
Reassign or reopen a failed run. |
Definition of done: the operator can manage the first paid pilot without inspecting raw databases, event streams, or worktree folders.
Recommended MVP order
The smallest working path is:
- Create
bus-buildcontracts andbus-api-provider-builds. - Create one template repository with build commands and artifact manifest.
- Add
bus-integration-buildsorchestration for manual authorization. - Add a build worker profile that can modify the template branch and produce a manifest.
- Add artifact verification and download routes.
- Add the chat-only
bus-portal-buildmodule. - Add static web preview support.
- Add a
bus-servicesartifact-builder profile. - Connect Stripe checkout metadata and webhook activation.
- Publish the
busdk.comentry page that links to the chat product.
This order gives a demoable artifact builder before full billing automation. The first sellable pilot can use manual approval after payment/contact while the same build-run lifecycle remains the future automated path.
Feature ownership summary
| Feature | Primary owner | Existing dependencies |
|---|---|---|
| Build-run contracts | bus-build |
bus-events, bus-task
|
| Customer build API | bus-api-provider-builds |
bus-api, auth, billing, tasks, workers, repos |
| Build orchestration | bus-integration-builds |
Events, tasks, repos, workers, billing |
| Chat UI | bus-portal-build |
bus-portal, bus-ui, build API |
| Marketing entry | busdk.com |
Build portal URL |
| Template repo branch/worktree | Template repository, bus-repos, bus-integration-repos
|
Git repo config |
| Worker execution |
bus-integration-worker, worker identity repo |
Template repo, task ref, branch |
| Artifact manifest and downloads |
bus-api-provider-builds or bus-api-provider-artifacts
|
Build verification, artifact storage |
| Web preview | Build provider or preview service | Artifact manifest |
| Billing activation | Billing and Stripe modules, build provider | Checkout metadata, webhooks |
| Service stack | bus-services |
Events, API, providers, integrations |
| Operator controls |
bus-build CLI or internal portal |
Build events/projections |
What should not be built first
Do not start with a general sales agent. BusDK has no lead database yet, and the immediate proof problem is not outbound selling. The highest-leverage agentic feature is the build orchestrator plus worker profile: it lets a visitor experience BusDK building something useful from chat, then creates a concrete artifact that can be sold, previewed, and delivered.
Do not expose terminals, source archives, raw worker logs, or customer Git repository access in the public product. Those are internal operator and worker concerns. The public proof is the working artifact, the progress transcript, and the verified download or preview.
First acceptance test
A credible first acceptance test is:
- A visitor opens the public chat product and asks for a tiny Go web tool.
- The system creates a build run and asks one clarifying question.
- The visitor approves the scope; an operator manually authorizes the run.
- The build integration creates a branch in the template repository.
- A worker is created on that branch and receives the build task.
- The worker produces a web artifact manifest.
- Verification checks the manifest, checksum, source-exclusion policy, and preview response.
- The visitor receives a preview URL and a downloadable artifact.
- No source code, worktree path, secret, or raw worker log appears in the public UI or artifact download.
Passing this test proves the commercially important claim: BusDK can supervise agent workers to produce a working software artifact from a conversation, without needing customer repository access and without exposing source code.