mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-08-28 05:27:41 +00:00
Docs updates: reorder nav, rename DOT Language, simplify dark factory, add fork/upgrade/asset docs
- Move Comparison link below Troubleshooting in nav - Rename "DOT Language" page to "Fabro Language" - Remove five-tier table from dark factory page, keep link to Dan Shapiro's post - Add fork command docs and checkpoints section - Add upgrade, asset list, asset cp command docs - Add upgrade_check config reference - Add retros feature flag to server config Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
cea079a4b6
commit
aee3de78a2
8 changed files with 115 additions and 15 deletions
|
|
@ -1 +1 @@
|
|||
ec0a612ea531fcf53383afb15ad23561a7bbe6ae
|
||||
49379f08d0f26d38c25f036738c4a85cddd7a323
|
||||
|
|
|
|||
|
|
@ -102,7 +102,6 @@
|
|||
"group": "Reference",
|
||||
"icon": "book",
|
||||
"pages": [
|
||||
"getting-started/comparison",
|
||||
"reference/dot-language",
|
||||
"reference/cli",
|
||||
"reference/cli-configuration",
|
||||
|
|
@ -110,6 +109,7 @@
|
|||
"reference/architecture",
|
||||
"administration/server-configuration",
|
||||
"administration/troubleshooting",
|
||||
"getting-started/comparison",
|
||||
"administration/security",
|
||||
"reference/acknowledgements"
|
||||
]
|
||||
|
|
|
|||
|
|
@ -168,6 +168,25 @@ fabro run --run-branch fabro/run/<RUN_ID>
|
|||
|
||||
See [`fabro rewind`](/reference/cli#fabro-rewind) for the full command reference.
|
||||
|
||||
## Forking a run
|
||||
|
||||
If you want to explore an alternate path from a checkpoint without losing the original run's history, use `fabro fork` instead of `fabro rewind`. Fork creates a new independent run branching from the target checkpoint — the original run stays intact.
|
||||
|
||||
```bash
|
||||
# List checkpoints
|
||||
fabro fork <RUN_ID> --list
|
||||
|
||||
# Fork from a specific checkpoint
|
||||
fabro fork <RUN_ID> plan@2
|
||||
|
||||
# Resume the forked run
|
||||
fabro run --run-branch fabro/run/<NEW_RUN_ID>
|
||||
```
|
||||
|
||||
Use **rewind** when you want to redo a run from an earlier point (destructive — resets the original). Use **fork** when you want to try a different approach while keeping the original run as a reference.
|
||||
|
||||
See [`fabro fork`](/reference/cli#fabro-fork) for the full command reference.
|
||||
|
||||
## When checkpointing is active
|
||||
|
||||
Git checkpointing activates automatically when:
|
||||
|
|
|
|||
|
|
@ -11,18 +11,7 @@ This is an aspirational concept, and getting there is iterative.
|
|||
|
||||
## From coding to orchestrating
|
||||
|
||||
Dan Shapiro's [five-level framework](https://www.danshapiro.com/blog/2026/01/the-five-levels-from-spicy-autocomplete-to-the-software-factory/) describes the progression from AI-assisted coding to autonomous software production:
|
||||
|
||||
| Level | Name | Human role |
|
||||
|-------|------|------------|
|
||||
| 0 | Spicy Autocomplete | Copy/paste from chat |
|
||||
| 1 | Coding Intern | AI writes boilerplate; human reviews everything |
|
||||
| 2 | Junior Developer | Pair programming with AI |
|
||||
| 3 | Developer | Most code is AI-generated; human is a full-time reviewer |
|
||||
| 4 | Engineering Team | Human manages specs and plans; agents do the work |
|
||||
| 5 | Dark Software Factory | Specs go in, software comes out |
|
||||
|
||||
Most teams today operate at Level 2–3: AI writes code, humans review it line by line. The transition from Level 3 to Level 4 is the hardest — it requires replacing ad-hoc human review with structured, repeatable verification that you actually trust.
|
||||
Most teams today have AI writing code while humans review it line by line. The hardest transition is moving beyond that — replacing ad-hoc human review with structured, repeatable verification that you actually trust. Dan Shapiro's [five-level framework](https://www.danshapiro.com/blog/2026/01/the-five-levels-from-spicy-autocomplete-to-the-software-factory/) describes this progression well.
|
||||
|
||||
## What makes it work
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ CLI flags always take the highest priority:
|
|||
|
||||
```toml title="cli.toml"
|
||||
verbose = true
|
||||
upgrade_check = true
|
||||
mode = "server"
|
||||
|
||||
[server]
|
||||
|
|
@ -69,6 +70,17 @@ Authorization = "Bearer sk-xxx"
|
|||
|
||||
All fields are optional. You can include just the sections and keys you want to override.
|
||||
|
||||
## `upgrade_check`
|
||||
|
||||
Controls whether Fabro runs a daily background check for new releases. The check runs during `run`, `exec`, `init`, and `install` commands and prints a notice to stderr when a newer version is available.
|
||||
|
||||
| Value | Description |
|
||||
|---|---|
|
||||
| `true` | Check for new releases (default) |
|
||||
| `false` | Disable automatic upgrade checks |
|
||||
|
||||
The `--no-upgrade-check` CLI flag overrides this for a single invocation. See [`fabro upgrade`](/reference/cli#fabro-upgrade) for manual upgrades.
|
||||
|
||||
## `verbose`
|
||||
|
||||
Enable verbose output by default for `fabro run start` and `fabro doctor`, without passing `-v` every time.
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ These flags apply to all subcommands:
|
|||
| Flag | Description |
|
||||
|---|---|
|
||||
| `--debug` | Enable DEBUG-level logging (default is INFO) |
|
||||
| `--no-upgrade-check` | Skip the automatic background upgrade check |
|
||||
| `-h, --help` | Print help |
|
||||
| `-V, --version` | Print version |
|
||||
|
||||
|
|
@ -424,6 +425,30 @@ fabro run --run-branch fabro/run/<RUN_ID>
|
|||
|
||||
See [Checkpoints](/execution/checkpoints#rewinding-to-an-earlier-checkpoint) for background on how checkpointing works.
|
||||
|
||||
## `fabro fork`
|
||||
|
||||
Fork a new run from an existing run's checkpoint. Unlike `fabro rewind`, which resets the original run in place, `fabro fork` creates an independent copy — the original run stays intact.
|
||||
|
||||
```bash
|
||||
fabro fork <RUN_ID> [TARGET]
|
||||
fabro fork <RUN_ID> --list
|
||||
```
|
||||
|
||||
| Argument / Flag | Description |
|
||||
|---|---|
|
||||
| `<RUN_ID>` | Run ID or unambiguous prefix (required) |
|
||||
| `[TARGET]` | Checkpoint to fork from: node name, `node@visit`, or `@ordinal` (1-based). Omit to fork from the latest checkpoint. |
|
||||
| `--list` | Show the checkpoint timeline instead of forking |
|
||||
| `--no-push` | Skip pushing new branches to the remote |
|
||||
|
||||
Target formats are the same as [`fabro rewind`](#fabro-rewind). After forking, resume the new run:
|
||||
|
||||
```bash
|
||||
fabro run --run-branch fabro/run/<NEW_RUN_ID>
|
||||
```
|
||||
|
||||
See [Checkpoints — Forking a run](/execution/checkpoints#forking-a-run) for when to use fork vs. rewind.
|
||||
|
||||
## `fabro logs`
|
||||
|
||||
View the event log of a workflow run. Runs can be referenced by ID prefix or workflow name (uses the most recent run).
|
||||
|
|
@ -595,6 +620,58 @@ fabro doctor --dry-run
|
|||
| `-v, --verbose` | Show detailed information for each check |
|
||||
| `--dry-run` | Skip live service probes (LLM, sandbox, API, web, Brave Search) |
|
||||
|
||||
## `fabro upgrade`
|
||||
|
||||
Download and install a newer version of Fabro from GitHub releases. Verifies the download with SHA256 checksums and atomically replaces the binary.
|
||||
|
||||
```bash
|
||||
fabro upgrade
|
||||
fabro upgrade --dry-run
|
||||
fabro upgrade --version 0.6.0
|
||||
```
|
||||
|
||||
| Flag | Description |
|
||||
|---|---|
|
||||
| `--version <VERSION>` | Target version (e.g. `0.5.0` or `v0.5.0`). Defaults to the latest release. |
|
||||
| `--force` | Upgrade even if already on the target version |
|
||||
| `--dry-run` | Preview what would happen without making changes |
|
||||
|
||||
Fabro refuses to downgrade unless you specify an explicit `--version`. A daily background check notifies you when a new version is available — disable it with `upgrade_check = false` in [`cli.toml`](/reference/cli-configuration#upgrade_check) or the `--no-upgrade-check` global flag.
|
||||
|
||||
## `fabro asset list`
|
||||
|
||||
List assets (screenshots, test reports, traces) collected from a workflow run.
|
||||
|
||||
```bash
|
||||
fabro asset list <RUN_ID>
|
||||
fabro asset list <RUN_ID> --node verify --json
|
||||
```
|
||||
|
||||
| Argument / Flag | Description |
|
||||
|---|---|
|
||||
| `<RUN_ID>` | Run ID or unambiguous prefix (required) |
|
||||
| `--node <NODE>` | Filter to assets from a specific node |
|
||||
| `--json` | Output as JSON |
|
||||
|
||||
## `fabro asset cp`
|
||||
|
||||
Copy assets from a workflow run to the local filesystem.
|
||||
|
||||
```bash
|
||||
fabro asset cp <RUN_ID> ./output # all assets, flat
|
||||
fabro asset cp <RUN_ID> ./output --tree # preserve directory structure
|
||||
fabro asset cp <RUN_ID>:report.html ./output # specific file
|
||||
```
|
||||
|
||||
| Argument / Flag | Description |
|
||||
|---|---|
|
||||
| `<SOURCE>` | `RUN_ID` (all assets) or `RUN_ID:path` (specific file) |
|
||||
| `[DEST]` | Destination directory (defaults to `.`) |
|
||||
| `--node <NODE>` | Filter to assets from a specific node |
|
||||
| `--tree` | Preserve `{node}/{retry}/` directory structure |
|
||||
|
||||
When copying all assets in flat mode, filenames must be unique across nodes. Use `--tree` or `--node` to disambiguate.
|
||||
|
||||
## `fabro install`
|
||||
|
||||
Interactive setup wizard that walks you through configuring API keys and validating your environment. Runs `fabro doctor` with live probes after setup to validate the configuration.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
title: "DOT Language"
|
||||
title: "Fabro Language"
|
||||
description: "Complete reference for Fabro's DOT workflow language"
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -118,6 +118,9 @@ impl Default for WebConfig {
|
|||
pub struct Features {
|
||||
#[serde(default)]
|
||||
pub session_sandboxes: bool,
|
||||
/// Experimental: enable automatic retro generation after workflow runs.
|
||||
#[serde(default)]
|
||||
pub retros: bool,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Default, Deserialize, PartialEq, Serialize)]
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue