Fallout-build / Fallout-build/Fallout

Epic: AI-native build interface — make the build model and run results machine-readable

Open
#648 0 comments 0 reactions 0 assignees View on GitHub
enhancement target/backlog
Dominant language
C#
Stars
154
Forks
19
Avg merge
1d 22h
Merged PRs (30d)
15

Description

### Problem

Fallout already holds a complete model of a build in memory. The plan resolver walks the dependency graph, `ExecutableTarget` carries per-target status and tool requirements, and `[Parameter]` declares typed inputs with defaults. None of that is reachable as data.

Everything leaves the process as human-oriented console text through `Host.WriteTargetOutcome` and `Host.WriteBuildOutcome`. A caller that is a program rather than a person has to infer the build from `Build.cs` and guess at results by pattern-matching a large log. That is slow, expensive in tokens for an AI consumer, and easy to get confidently wrong — reporting "tests failed" when restore was what actually failed.

### Outcome

A machine consumer can ask Fallout three questions and get answers as data:

- What can this build do?
- What would this run do?
- What did this run do?

Plus two capabilities that make automated use safe and fast enough to be worth having: declared target effects, and target-level caching.

### Scope

| Capability | Issue |
|---|---|
| Build model as data: `describe --json`, `plan --json` | #642 |
| Durable run summary plus semantic exit codes | #643 |
| Declared target effects, gated at plan time | #644 |
| Content-addressed target caching | #647 |
| MCP server as a standalone product | #646 |

The MCP server is deliberately last. It is a thin layer over #642 (the build model as data) and #643 (the durable run summary), and building it first would mean screen-scraping the console output this milestone exists to replace.

### Already tracked elsewhere

Structured console output is covered and is not re-filed here:

- #391 (Serilog event core, Spectre console frame, NDJSON machine path) — the streaming half, with a concrete task list
- #104 (AI-friendly terse and structured output modes) — the output-mode design and its open questions
- #156 (`IOutputSink` extension point) — the plugin extension point these land on

### Notes

Every item in this milestone is a serialisation of, or a gate on, a model the engine already has. None of them needs a new execution engine. Dogfooding them also pressure-tests the `IOutputSink` and related extension points before the plugin SDK (milestone #7) makes those shapes public API.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.