Preview 0.30

U06: Preview a bounded change without turning advice into authority

Know before you begin

U06 is a guided, runnable lesson in Academy Preview 0.30. Use its installed Prepare, Check, and Reset commands from this page; do not substitute repository-local source execution.

The website is the course interface. Academy CLI is a setup, Check, and recovery helper when a lesson is released. A direct native-terminal command has no !; a shell command passed through a harness begins with exactly one !; a host-native CodeArbiter command belongs in the harness and has no !. Each rendered action card labels the surface and supplies a copy button.

Confirm the public lesson boundary

You · Browser · All operating systems

Read this guided public lesson before running anything. Academy Preview 0.30 publishes U06 and its installed Prepare, Check, and Reset commands are the supported Academy lifecycle.

Why

The website is the primary lesson surface and the installed Academy lifecycle is available for this accepted lab.

Expected result

You know U06 is a guided, runnable public Academy lesson.

If that does not happen

If the installed command cannot find U06, stop and verify you installed Preview 0.30. Do not run repository-local source as a substitute.

Evidence

The Preview 0.30 manifest includes U06 in the available, runnable, and guided lists.

What you will prove

In a prepared attempt, you will turn one frozen Markdown seed into one exact safe policy. You will ask the selected host for a read-only ca-preview, evaluate its advice, and retain only two learner commits: the candidate, then its binding report. You do not push, change product code, add dependencies, or make an advanced operation look routine.

The source Check contract is deliberately narrow. It compares the prepared candidate bytes, exact final candidate bytes, candidate commit and tree, one changed path, canonical report bytes, a clean worktree, and four not-executed classifications. It does not prove that an agent command ran, what reviewers it predicted, whether a secret scan ran, or that you agreed with a preview.

Prepare safely

Prepare the U06 attempt

Use the installed Academy Prepare command to create the frozen U06 attempt and candidate.

Why

Prepare is an Academy lifecycle operation, not a substitute for editing fixtures by hand.

Academy · Native terminal · Windows

$academy = "$env:LOCALAPPDATA\ArbiterAcademy\preview-0.30\Scripts\arbiter-academy.exe"
& $academy --repository (Get-Location).Path prepare U06-preview-and-advanced-surfaces

Academy · Native terminal · macOS

academy="${XDG_DATA_HOME:-$HOME/.local/share}/arbiter-academy/preview-0.30/bin/arbiter-academy"
"$academy" --repository "$PWD" prepare U06-preview-and-advanced-surfaces

Academy · Native terminal · Linux

academy="${XDG_DATA_HOME:-$HOME/.local/share}/arbiter-academy/preview-0.30/bin/arbiter-academy"
"$academy" --repository "$PWD" prepare U06-preview-and-advanced-surfaces

Expected result

Preview 0.30 creates one numbered U06 attempt branch and the frozen candidate file.

If that does not happen

If Prepare stops, preserve its message and correct only the stated repository condition. Do not create an attempt or candidate by hand.

Evidence

The printed attempt branch and the frozen candidate path prove preparation completed.

Inspect the prepared scenario

In the prepared attempt, inspect the scenario descriptor before touching the candidate. This is a native terminal command and has no !.

Why

The descriptor identifies a read-only preview over the attempt tree rather than a sandbox or hosted operation.

You · Native terminal · Windows

Get-Content training_scenarios/U06-preview-and-advanced-surfaces.json

You · Native terminal · macOS

cat training_scenarios/U06-preview-and-advanced-surfaces.json

You · Native terminal · Linux

cat training_scenarios/U06-preview-and-advanced-surfaces.json

Expected result

The descriptor names read_only_preview, attempt-tree, and preview-not-run.

If that does not happen

If the file is absent, stop and run Prepare again; do not create it yourself.

Evidence

Retain the exact descriptor path and the attempt branch name.

Inspect the frozen candidate

Read the seeded candidate from the prepared attempt. It is the only learner-editable source in the first learner commit and this direct terminal command has no !.

Why

The Check profile binds exact prepared and final candidate bytes; a generic document does not pass.

You · Native terminal · Windows

Get-Content docs/U06-preview-candidate.md

You · Native terminal · macOS

cat docs/U06-preview-candidate.md

You · Native terminal · Linux

cat docs/U06-preview-candidate.md

Expected result

You see the intentionally incomplete U06 preview candidate and make no edit yet.

If that does not happen

If its bytes differ from the prepared fixture, stop. Do not normalize or replace the seed.

Evidence

The prepared commit and candidate path form the first report binding.

Prepare creates the bounded attempt and frozen candidate. Do not create the candidate, report, or attempt branch by hand.

Create a contained preview

Create only the contained candidate diff

Ask the selected host to replace only docs/U06-preview-candidate.md with the exact reviewed safe Markdown policy and stop before staging. This is a harness instruction, not a shell command, so it has no !.

Why

The active agent owns the bounded edit; the learner owns inspection and later commits.

Your agent · Claude Code harness · All operating systems

Replace only docs/U06-preview-candidate.md.
Write this exact UTF-8 body, including final LF:
# U06 preview candidate

## Read-only documentation policy

Preview may inspect the prepared attempt and report predicted reviewers. It does not run a sandbox, create a skill, start watch, or convene a tribunal.

## Evidence

Record the reviewed commit, candidate tree, exact changed path, and repository bindings in the U06 Academy record.

Do not stage, commit, create a report, or run any advanced surface.

Your agent · Codex harness · All operating systems

Replace only docs/U06-preview-candidate.md.
Write this exact UTF-8 body, including final LF:
# U06 preview candidate

## Read-only documentation policy

Preview may inspect the prepared attempt and report predicted reviewers. It does not run a sandbox, create a skill, start watch, or convene a tribunal.

## Evidence

Record the reviewed commit, candidate tree, exact changed path, and repository bindings in the U06 Academy record.

Do not stage, commit, create a report, or run any advanced surface.

Your agent · Pi harness · All operating systems

Replace only docs/U06-preview-candidate.md.
Write this exact UTF-8 body, including final LF:
# U06 preview candidate

## Read-only documentation policy

Preview may inspect the prepared attempt and report predicted reviewers. It does not run a sandbox, create a skill, start watch, or convene a tribunal.

## Evidence

Record the reviewed commit, candidate tree, exact changed path, and repository bindings in the U06 Academy record.

Do not stage, commit, create a report, or run any advanced surface.

Your agent · Pi harness · All operating systems

Replace only docs/U06-preview-candidate.md.
Write this exact UTF-8 body, including final LF:
# U06 preview candidate

## Read-only documentation policy

Preview may inspect the prepared attempt and report predicted reviewers. It does not run a sandbox, create a skill, start watch, or convene a tribunal.

## Evidence

Record the reviewed commit, candidate tree, exact changed path, and repository bindings in the U06 Academy record.

Do not stage, commit, create a report, or run any advanced surface.

Expected result

Only the candidate is modified and it remains unstaged.

If that does not happen

If another path changes or staging begins, stop and preserve the state for review; do not erase it to hide the mistake.

Evidence

The first learner commit must contain exactly docs/U06-preview-candidate.md.

Inspect the contained diff

Inspect the unstaged diff before asking for a preview. This native terminal observation has no ! and must show only the candidate path.

Why

A read-only preview must be grounded in a bounded input, not a vague description of intended work.

You · Native terminal · Windows

git diff -- docs/U06-preview-candidate.md
git status --short

You · Native terminal · macOS

git diff -- docs/U06-preview-candidate.md
git status --short

You · Native terminal · Linux

git diff -- docs/U06-preview-candidate.md
git status --short

Expected result

The only modified path is docs/U06-preview-candidate.md and the policy says preview is read-only.

If that does not happen

If the diff contains another path, do not stage or preview it. Preserve the difference and start a reviewed retry later.

Evidence

The candidate SHA-256 and changed_paths will be bound in the final report.

Run the host-native read-only preview

Ask the active CodeArbiter host for a read-only preview of the current diff. This host-native command has no ! and does not commit, stage, push, or execute advanced surfaces.

Why

ca-preview is a bounded diff review; it is distinct from Academy Preview 0.30, which is the release name and public availability boundary.

Your agent · Claude Code harness · All operating systems

/ca:preview

Your agent · Codex harness · All operating systems

$ca-preview

Your agent · Pi harness · All operating systems

/ca-preview

Your agent · Pi harness · All operating systems

/skill:ca-preview

Expected result

The host reports an advisory preview of the candidate diff without mutating repository state.

If that does not happen

If the host cannot find the command, do not replace it with shell syntax. Record the unavailable host capability and retain the diff.

Evidence

The later Academy binding record names only durable repository facts and not-executed classifications. It does not preserve ca-preview output or claim host invocation proof.

The two names are easy to confuse. Academy Preview 0.30 names an installed release and its public availability boundary. ca-preview is a host-native, advisory review of the current diff. It does not stage, commit, push, create a release, or give the agent authority to enlarge the change.

Read the preview

Assess the preview as advice

You · Active CodeArbiter harness · All operating systems

Read the preview output in the selected host. Confirm it addresses only documentation and does not claim a sandbox run, new skill, hosted watch, or tribunal.

Why

The learner evaluates advisory output; a repository Check cannot prove the host result was understood.

Expected result

You can state whether the candidate remains a docs-only, read-only policy before staging it.

If that does not happen

If the preview points beyond the candidate boundary, stop and preserve the result instead of expanding scope.

Evidence

No committed record preserves this advisory output; the later Academy binding record proves only repository facts and not-executed classifications.

Stage only the candidate

After reviewing the diff, stage only the candidate in a native terminal. This direct command has no !.

Why

The strict first commit rejects any unrelated path.

You · Native terminal · Windows

git add -- docs/U06-preview-candidate.md
git diff --cached --name-only

You · Native terminal · macOS

git add -- docs/U06-preview-candidate.md
git diff --cached --name-only

You · Native terminal · Linux

git add -- docs/U06-preview-candidate.md
git diff --cached --name-only

Expected result

The staged name list contains only docs/U06-preview-candidate.md.

If that does not happen

If another path is staged, stop and inspect it. Do not use reset, restore, or a broad add to conceal it.

Evidence

The candidate commit is the direct child of the prepared commit.

Commit the candidate through the gate

Run the host-native commit gate only after the staged boundary is correct. This is not a shell command and has no !.

Why

The Academy teaches the governed commit path rather than a raw git commit shortcut.

Your agent · Claude Code harness · All operating systems

/ca:commit

Your agent · Codex harness · All operating systems

$ca-commit

Your agent · Pi harness · All operating systems

/ca-commit

Your agent · Pi harness · All operating systems

/skill:ca-commit

Expected result

One linear candidate commit is created with no report path in it.

If that does not happen

If the commit gate stops, address only its stated issue or preserve the attempt for Reset. Do not amend or force history.

Evidence

The Check compares this commit's tree and candidate bytes with the final report bindings.

Treat the preview as a signal to inspect, not a verdict to obey blindly. The candidate commit must be the direct child of the prepared attempt and contain only docs/U06-preview-candidate.md. Preserve any mismatch for review instead of adding an unrelated correction or rewriting history.

Record evidence

Classify advanced surfaces without running them

You · Active CodeArbiter harness · All operating systems

Record each advanced surface as not run here: sandbox needs Docker and an untrusted target; new-skill needs a demonstrated gap and approved scope; watch needs a real hosted PR and CI; tribunal is a persistent expensive audit, not routine training. Do not execute any of those commands.

Why

Knowing when not to invoke a powerful operation is part of power-user fluency.

Expected result

You have four explicit not run here classifications and no advanced command execution.

If that does not happen

If a real project qualifies for one surface, leave this lesson and use that operation's own scope and authorization process.

Evidence

The report records ca-sandbox, ca-new-skill, ca-watch, and ca-tribunal as not-executed.

The four advanced surfaces are not run here. ca-sandbox needs Docker and an untrusted target. ca-new-skill needs a demonstrated gap and approved scope. ca-watch needs a real hosted PR and CI. ca-tribunal is a persistent, expensive audit, not routine training. Naming a surface in a report is not permission to execute it.

Write the Academy binding record

Ask the selected host to create only .codearbiter/reports/academy/U06-preview.json from the committed candidate and current prepared attempt, with canonical JSON and the four not-executed classifications. This is an Academy binding record, not ca-preview output: do not add reviewer predictions, scan status, or a claim that the host command ran. Do not stage or commit it yet.

Why

The record binds durable repository facts without pretending to preserve telemetry from a read-only plugin command.

Your agent · Claude Code harness · All operating systems

Create only .codearbiter/reports/academy/U06-preview.json from the prepared commit and committed U06 candidate. Use canonical JSON, exact candidate bindings, read_only true, and all four advanced surfaces not-executed. It is an Academy binding record, not ca-preview output: do not include reviewer predictions, scan status, or invocation claims. Do not stage or commit.

Your agent · Codex harness · All operating systems

Create only .codearbiter/reports/academy/U06-preview.json from the prepared commit and committed U06 candidate. Use canonical JSON, exact candidate bindings, read_only true, and all four advanced surfaces not-executed. It is an Academy binding record, not ca-preview output: do not include reviewer predictions, scan status, or invocation claims. Do not stage or commit.

Your agent · Pi harness · All operating systems

Create only .codearbiter/reports/academy/U06-preview.json from the prepared commit and committed U06 candidate. Use canonical JSON, exact candidate bindings, read_only true, and all four advanced surfaces not-executed. It is an Academy binding record, not ca-preview output: do not include reviewer predictions, scan status, or invocation claims. Do not stage or commit.

Expected result

Only the Academy binding record is modified; it binds the prepared commit, candidate commit, tree, path, SHA-256, and one changed path without claiming ca-preview telemetry.

If that does not happen

If a field is not a repository binding or a not-executed classification, omit it. Do not invent placeholder SHA values, scan status, reviewer predictions, or invocation proof.

Evidence

The second learner commit may contain only this canonical Academy record.

Inspect the Academy binding record

Inspect the unstaged binding record and candidate state in a native terminal. This direct command has no !.

Why

The learner verifies the repository-evidence boundary before it becomes immutable history.

You · Native terminal · Windows

Get-Content .codearbiter/reports/academy/U06-preview.json
git status --short

You · Native terminal · macOS

cat .codearbiter/reports/academy/U06-preview.json
git status --short

You · Native terminal · Linux

cat .codearbiter/reports/academy/U06-preview.json
git status --short

Expected result

The record names only the candidate binding, read_only true, and four not-executed surfaces; it contains no reviewer, scan, or invocation claim.

If that does not happen

If any binding is absent, malformed, or claims ca-preview telemetry or an executed advanced surface, stop before staging.

Evidence

Canonical JSON bytes and exact Academy record keys are part of the Check profile.

Stage only the report

Stage only the binding report in a native terminal. This direct command has no !.

Why

The strict second commit rejects an extra changed path.

You · Native terminal · Windows

git add -- .codearbiter/reports/academy/U06-preview.json
git diff --cached --name-only

You · Native terminal · macOS

git add -- .codearbiter/reports/academy/U06-preview.json
git diff --cached --name-only

You · Native terminal · Linux

git add -- .codearbiter/reports/academy/U06-preview.json
git diff --cached --name-only

Expected result

The staged name list contains only .codearbiter/reports/academy/U06-preview.json.

If that does not happen

If another path appears, stop and inspect the attempt. Do not broaden the report commit.

Evidence

The report must be the second and final learner commit.

Commit the evidence through the gate

Run the host-native commit gate only after the staged report is correct. This is not a shell command and has no !.

Why

The final evidence enters history through the same governed route as the candidate.

Your agent · Claude Code harness · All operating systems

/ca:commit

Your agent · Codex harness · All operating systems

$ca-commit

Your agent · Pi harness · All operating systems

/ca-commit

Your agent · Pi harness · All operating systems

/skill:ca-commit

Expected result

The report is the final direct child of the candidate commit.

If that does not happen

If the gate stops, keep the attempt inspectable and resolve only the stated issue. Do not amend or rewrite the candidate commit.

Evidence

The Check profile requires exactly two clean linear learner commits after preparation.

The second commit contains only .codearbiter/reports/academy/U06-preview.json. It is an Academy binding record, not ca-preview output: it binds the prepared commit, committed candidate, candidate tree, candidate path, candidate SHA-256, and the single changed path. It marks the policy read_only and classifies all four advanced surfaces as not-executed. Check independently rejects secret-bearing committed bytes; neither the record nor Check claims that ca-preview ran or persisted telemetry.

Check the boundary

Confirm the clean evidence boundary

Confirm that the attempt has no tracked or untracked changes. This native terminal check has no !.

Why

A valid U06 report cannot compensate for leftover worktree state.

You · Native terminal · Windows

git status --porcelain --untracked-files=all

You · Native terminal · macOS

git status --porcelain --untracked-files=all

You · Native terminal · Linux

git status --porcelain --untracked-files=all

Expected result

The command prints nothing.

If that does not happen

If anything prints, stop and inspect it; do not delete, reset, or hide it to force a clean result.

Evidence

The semantic Check rejects dirty and untracked paths.

Check the committed evidence

Use the installed Academy Check command after the exact two-commit evidence packet is clean.

Why

Installed Academy availability and source-level semantic acceptance are different claims.

Academy · Native terminal · Windows

$academy = "$env:LOCALAPPDATA\ArbiterAcademy\preview-0.30\Scripts\arbiter-academy.exe"
& $academy --repository (Get-Location).Path check U06-preview-and-advanced-surfaces

Academy · Native terminal · macOS

academy="${XDG_DATA_HOME:-$HOME/.local/share}/arbiter-academy/preview-0.30/bin/arbiter-academy"
"$academy" --repository "$PWD" check U06-preview-and-advanced-surfaces

Academy · Native terminal · Linux

academy="${XDG_DATA_HOME:-$HOME/.local/share}/arbiter-academy/preview-0.30/bin/arbiter-academy"
"$academy" --repository "$PWD" check U06-preview-and-advanced-surfaces

Expected result

Preview 0.30 accepts the exact prepared candidate, two committed evidence paths, and clean worktree.

If that does not happen

If Check fails, preserve the attempt and repair only the reported evidence mismatch. Do not rewrite history or edit source fixtures.

Evidence

Check limit: source Check verifies committed repository facts, not a host invocation, a human interpretation, or an advanced command execution.

Check limit: source Check verifies committed repository facts. It cannot establish that you ran ca-preview, understood its result, or consciously chose not to execute an advanced command. The installed Academy Preview 0.30 Check evaluates this accepted source contract.

Recover or continue

Reset a failed U06 attempt safely

Use the installed Academy Reset command only when you need a retry; it archives the failed attempt before preparing the next one.

Why

Recovery preserves evidence; it is not a destructive Git cleanup recipe.

Academy · Native terminal · Windows

$academy = "$env:LOCALAPPDATA\ArbiterAcademy\preview-0.30\Scripts\arbiter-academy.exe"
& $academy --repository (Get-Location).Path reset U06-preview-and-advanced-surfaces

Academy · Native terminal · macOS

academy="${XDG_DATA_HOME:-$HOME/.local/share}/arbiter-academy/preview-0.30/bin/arbiter-academy"
"$academy" --repository "$PWD" reset U06-preview-and-advanced-surfaces

Academy · Native terminal · Linux

academy="${XDG_DATA_HOME:-$HOME/.local/share}/arbiter-academy/preview-0.30/bin/arbiter-academy"
"$academy" --repository "$PWD" reset U06-preview-and-advanced-surfaces

Expected result

Preview 0.30 archives the failed attempt and prepares an independent retry.

If that does not happen

Do not simulate a retry with reset --hard, branch deletion, or history rewriting; use the Academy Reset record.

Evidence

The archived attempt reference and new prepared branch prove recovery preserved learner history.

Keep a failed attempt visible. Do not amend, rebase, force-update, delete, reset, or overwrite history to make an incomplete preview packet look valid. A future released Reset must archive the attempt before it creates a retry.

Hint 1

The candidate is a reviewed, frozen teaching target. Equivalent prose is not evidence when the Check requires exact final bytes.

Hint 2

Use the preview before staging the candidate. The report belongs only after that candidate is committed and its repository facts are available to bind.

Hint 3

The safest power-user move is often not running a powerful command. State why the surface is out of scope and preserve the narrow evidence you do have.

Next step

Continue with U07-capstone.

Recovery guidance