Skip to content

Start a task with its work

Preview 0.32 publishes F03 as a runnable Foundation lesson. Complete F02 — Orient to live governance state) first, then begin from a clean numbered attempt with academy.docs.0001 queued and docs/ticket-list-contract.md seeded. Keep a native terminal and one active codeArbiter host at that same repository. Agent commands do not run in the shell.

This attempt uses $ca-task start academy.docs.0001, then $ca-chore docs, to create one post-Prepare commit. That commit must contain both .codearbiter/open-tasks.md and docs/ticket-list-contract.md. The task remains [~]; this lesson starts bounded work but does not mark it done.

The docs chore ends at its normal branch-completion handoff. Choose Keep the branch as-is (I’ll handle it later). This exercise stays local, with no push and no hosted pull request.

  1. You

    Prepare a runnable attempt

    From clean main, run the installed Preview 0.32 Academy Prepare command for your operating system.

    Why this matters: The prepared commit must bind the original board line and contract sentence before learner work begins.

    Windows

    $academy = "$env:LOCALAPPDATA\ArbiterAcademy\preview-0.32\Scripts\arbiter-academy.exe"
    & $academy --repository (Get-Location).Path prepare F03-work-the-board

    macOS

    academy="${XDG_DATA_HOME:-$HOME/.local/share}/arbiter-academy/preview-0.32/bin/arbiter-academy"
    "$academy" --repository "$PWD" prepare F03-work-the-board

    Linux

    academy="${XDG_DATA_HOME:-$HOME/.local/share}/arbiter-academy/preview-0.32/bin/arbiter-academy"
    "$academy" --repository "$PWD" prepare F03-work-the-board

    Expected result

    Academy creates a clean numbered F03 attempt with academy.docs.0001 queued and docs/ticket-list-contract.md seeded.

    Evidence

    The prepared commit establishes the comparison base.

    If that does not happen

    If Prepare reports a missing prerequisite, complete F02 before returning to clean main and trying again. If it reports an existing attempt or dirty checkout, return to clean main or use Reset before trying again.

  1. You

    Read the bounded docs task

    On the prepared attempt, read academy.docs.0001 and its continuation lines before changing anything. Its boundary is docs/ticket-list-contract.md, and the task must remain in progress.

    Why this matters: The exact task text defines the work file, evidence, and prohibition on completing the task in this lesson.

    Windows

    Select-String -Path '.codearbiter/open-tasks.md' -Pattern 'academy.docs.0001' -Context 1,5

    macOS

    grep -n -A 5 -B 1 'academy.docs.0001' .codearbiter/open-tasks.md

    Linux

    grep -n -A 5 -B 1 'academy.docs.0001' .codearbiter/open-tasks.md

    Expected result

    The prepared board shows academy.docs.0001 as [ ] and names docs/ticket-list-contract.md as its sole work boundary.

    Evidence

    The prepared task line and continuation fields identify this exercise boundary.

    If that does not happen

    If the task is absent, already started, completed, or points elsewhere, stop. Do not substitute another task or edit the board by hand.

Read the task’s description, done condition, boundary, lane, and evidence link. Do not substitute a similarly named task or broaden the correction.

  1. Your host

    Start the docs task through codeArbiter

    In the prepared attempt, use the host-native task command to start academy.docs.0001. This is an agent command, not a shell command.

    Why this matters: The task writer owns the canonical [~] transition and started date.

    Any OS · Claude Code

    /ca:task start academy.docs.0001

    Any OS · Codex

    $ca-task start academy.docs.0001

    Any OS · Pi

    /ca-task start academy.docs.0001

    Any OS · Pi

    /skill:ca-task start academy.docs.0001

    Expected result

    The task writer changes academy.docs.0001 from [ ] to [~], adds the real started date, and leaves its text unchanged.

    Evidence

    The durable board state can later be inspected, but it cannot authenticate which agent command produced it.

    If that does not happen

    If the command blocks, preserve its message and stop. Do not imitate the transition with a direct board edit.

  1. You

    Inspect the in-progress transition

    Inspect the task writer's diff before starting the docs chore. Confirm that only academy.docs.0001 moved to [~] with a started date.

    Why this matters: The board transition must ride the work commit, so it remains unstaged and uncommitted at this point.

    Windows

    git diff -- .codearbiter/open-tasks.md

    macOS

    git diff -- .codearbiter/open-tasks.md

    Linux

    git diff -- .codearbiter/open-tasks.md

    Expected result

    The board diff contains one queued-to-started line change for academy.docs.0001, and no commit exists after Prepare yet.

    Evidence

    The reviewed unstaged diff shows the candidate board half of the co-commit.

    If that does not happen

    If another task or continuation line changed, stop before the docs lane. Preserve the diff for diagnosis.

The task writer’s change stays uncommitted while you do the work it started.

  1. You

    Read the exact contract correction

    Read docs/ticket-list-contract.md. The bounded correction replaces its false sentence with: Ticket list output shows the claimant for a claimed ticket and no claimant for an open ticket.

    Why this matters: The docs chore needs one exact factual correction, not a broad rewrite or implementation change.

    Windows

    Get-Content 'docs/ticket-list-contract.md'

    macOS

    cat docs/ticket-list-contract.md

    Linux

    cat docs/ticket-list-contract.md

    Expected result

    You can state the one replacement sentence and the rule it records: claimed tickets show a claimant; open tickets do not.

    Evidence

    The prepared document supplies the original byte boundary for Check.

    If that does not happen

    If the prepared sentence already differs, stop. Do not adapt the correction to a different document version.

  1. Your host

    Run the real docs chore

    Invoke the host-native docs chore. When the host asks for scope, supply only the approved claimant-visibility correction in docs/ticket-list-contract.md. Keep academy.docs.0001 at [~].

    Why this matters: The docs lane applies its normal review, anti-slop, commit-gate, and branch-completion workflow to the bounded correction.

    Any OS · Claude Code

    /ca:chore docs Correct claimant visibility in docs/ticket-list-contract.md

    Any OS · Codex

    $ca-chore docs Correct claimant visibility in docs/ticket-list-contract.md

    Any OS · Pi

    /ca-chore docs Correct claimant visibility in docs/ticket-list-contract.md

    Any OS · Pi

    /skill:ca-chore docs Correct claimant visibility in docs/ticket-list-contract.md

    Expected result

    The host changes only the contract sentence, preserves the in-progress board transition, and pauses for review before its normal commit gate.

    Evidence

    The later commit can prove the resulting repository boundary, not that this agent command ran.

    If that does not happen

    If the host proposes code, task completion, another document, or release metadata, stop the chore and preserve the current diff.

When the docs chore pauses at its commit gate, inspect the staged state before you approve it.

  1. You

    Review the staged co-commit

    When the docs chore pauses before commit, run both native-terminal inspections for your operating system: the staged path list and the full staged diff. Authorize its commit gate only after both prove that exactly .codearbiter/open-tasks.md and docs/ticket-list-contract.md are staged, academy.docs.0001 remains [~], and the document contains only the approved sentence replacement.

    Why this matters: Starting the task and doing its bounded work belong in one commit. A board-only commit or a document-only commit breaks that rule.

    Windows

    git diff --staged --name-only
    git diff --staged

    macOS

    git diff --staged --name-only
    git diff --staged

    Linux

    git diff --staged --name-only
    git diff --staged

    Expected result

    Both inspections prove that the staged path set is exactly .codearbiter/open-tasks.md and docs/ticket-list-contract.md. The full staged diff shows the [~] board transition plus only the approved sentence replacement, ready for one commit.

    Evidence

    The learner reviews the exact staged co-commit before authorizing the docs lane to continue.

    If that does not happen

    If either inspection shows a missing or extra path, a different diff, or academy.docs.0001 as [x], do not authorize the commit gate. Keep the staged state visible for correction, then run both inspections again before authorizing.

After the commit gate succeeds, use the normal branch-completion handoff.

  1. YouActive harness

    Keep the attempt branch local

    After the docs chore's normal commit gate succeeds and its branch-completion handoff appears, choose Keep the branch as-is (I'll handle it later).

    Why this matters: The Academy attempt needs its local evidence branch intact and does not need remote publication.

    Expected result

    The numbered attempt stays checked out and clean with one local co-commit, no push, and no hosted pull request.

    Evidence

    The local branch and commit remain available; no hosted pull request is created or claimed.

    If that does not happen

    Do not choose merge, push, pull request, or discard. If another option already ran, stop and preserve the resulting state.

  1. You

    Confirm the one-commit result

    Inspect status, the latest commit, and its changed paths after choosing Keep the branch as-is.

    Why this matters: Check requires one post-Prepare commit, the exact two-path co-commit, and no non-ignored worktree state.

    Windows

    git status --short
    git log --oneline --decorate -1
    git diff-tree --no-commit-id --name-only -r HEAD

    macOS

    git status --short
    git log --oneline --decorate -1
    git diff-tree --no-commit-id --name-only -r HEAD

    Linux

    git status --short
    git log --oneline --decorate -1
    git diff-tree --no-commit-id --name-only -r HEAD

    Expected result

    Status is empty, and the only post-Prepare commit changes .codearbiter/open-tasks.md and docs/ticket-list-contract.md.

    Evidence

    The one post-Prepare commit and no non-ignored worktree state form the durable local result.

    If that does not happen

    If status is not clean or history has another learner commit, preserve the branch. Do not amend, squash, reset, or delete evidence.

The numbered attempt is clean and has exactly one learner commit after Prepare. Its changed path set is exactly .codearbiter/open-tasks.md plus docs/ticket-list-contract.md. The board keeps the original academy.docs.0001 task text, changes its marker from [ ] to [~], and records the started date that matches the commit date.

The contract note has one correction: claimed tickets show their claimant, while open tickets show no claimant. No other content changes. The branch remains local and checked out after Keep the branch as-is. There is no hosted pull request.

  1. You

    Check the durable co-commit

    From the retained attempt branch, run the installed Preview 0.32 Academy Check command for your operating system.

    Why this matters: Repository evidence can validate content and history without claiming agent telemetry.

    Windows

    $academy = "$env:LOCALAPPDATA\ArbiterAcademy\preview-0.32\Scripts\arbiter-academy.exe"
    & $academy --repository (Get-Location).Path check F03-work-the-board

    macOS

    academy="${XDG_DATA_HOME:-$HOME/.local/share}/arbiter-academy/preview-0.32/bin/arbiter-academy"
    "$academy" --repository "$PWD" check F03-work-the-board

    Linux

    academy="${XDG_DATA_HOME:-$HOME/.local/share}/arbiter-academy/preview-0.32/bin/arbiter-academy"
    "$academy" --repository "$PWD" check F03-work-the-board

    Expected result

    Check accepts only the exact one-commit, two-path, clean result with academy.docs.0001 still [~].

    Evidence

    Check can inspect board bytes, document bytes, commit topology, commit date, changed paths, and worktree cleanliness. It cannot prove `$ca-task` ran and cannot prove `$ca-chore` ran.

    If that does not happen

    Read the named durable-state mismatch, repair only that mismatch, and run Check again.

A Check can compare the prepared board and document blobs with the one post-Prepare commit. It can validate the exact task transition, correction, commit parent, commit date, changed paths, and clean worktree. It cannot prove that $ca-task ran, and it cannot prove that $ca-chore ran. Those are agent invocations, not authenticated repository facts.

If Check reports a durable-state mismatch, repair only that mismatch and run Check again. Stay on the clean retained F03 attempt branch, not main, when you use Reset for a fresh numbered attempt; it preserves failed evidence rather than rewriting the retained branch.

Hint 1. The target is academy.docs.0001, and its only work file is docs/ticket-list-contract.md.

Hint 2. The task must remain [~]. A done transition belongs to later work, not this co-commit.

Hint 3. Review the staged path list before authorizing the docs chore’s commit gate. A board-only commit and a document-only commit both fail the boundary.

  1. You

    Reset for a fresh retry

    From the clean retained F03 attempt branch, not main, run the installed Preview 0.32 Academy Reset command for your operating system when you need a fresh F03 attempt.

    Why this matters: A new attempt must preserve failed evidence instead of rewriting the one-commit history.

    Windows

    $academy = "$env:LOCALAPPDATA\ArbiterAcademy\preview-0.32\Scripts\arbiter-academy.exe"
    & $academy --repository (Get-Location).Path reset F03-work-the-board

    macOS

    academy="${XDG_DATA_HOME:-$HOME/.local/share}/arbiter-academy/preview-0.32/bin/arbiter-academy"
    "$academy" --repository "$PWD" reset F03-work-the-board

    Linux

    academy="${XDG_DATA_HOME:-$HOME/.local/share}/arbiter-academy/preview-0.32/bin/arbiter-academy"
    "$academy" --repository "$PWD" reset F03-work-the-board

    Expected result

    Reset archives the failed prepared attempt before a new numbered attempt is created.

    Evidence

    Reset preserves failed evidence before a new attempt begins.

    If that does not happen

    Keep work you need intact; do not force-reset, rebase, or delete the branch to imitate Academy attempt bookkeeping.

When F03 Check passes and you are continuing rather than retrying, return to clean main before opening F04. This preserves the completed F03 branch as evidence while satisfying F04 Prepare’s base-branch requirement.

  1. You

    Return safely to main for F04

    After F03 Check passes and you do not need Reset, return to main before beginning F04. Keep the completed F03 attempt branch intact.

    Why this matters: F04 Prepare requires the Academy base branch, while the retained F03 branch remains the durable local evidence.

    Windows

    git switch main
    if ($LASTEXITCODE -ne 0) { throw "git switch main failed" }
    git status --short --branch

    macOS

    git switch main && git status --short --branch

    Linux

    git switch main && git status --short --branch

    Expected result

    main is checked out with an empty status, and the completed numbered F03 attempt branch still exists locally.

    Evidence

    The terminal shows main and no worktree changes; the retained F03 branch remains available for its Check evidence.

    If that does not happen

    If status is not empty, do not force-switch, reset, rebase, delete, or hide the attempt. Preserve it and resolve the reported state before continuing.

$ca-task start records that work began. $ca-chore docs performs the bounded non-behavioral change and carries the dirty board transition through the same governed commit. Co-locating those paths prevents a board-only commit from claiming progress without work and prevents a document-only commit from hiding that the task entered progress.

The local Git result is deliberately narrower than the workflow that produced it. Check can verify the one commit and its bytes, but not either agent invocation, the learner’s review, or the branch-handoff choice. The guide states those limits instead of treating durable state as telemetry.