Complete lesson text and action cards
Source-owned text for offline reading and retrieval. Command success still requires actual local evidence.
Set up the practice folder
Download the resource ZIP at the top of this Build. Extract it into a new folder you own (for example C:\BBBPractice on Windows, or ~/bbb-practice on macOS/Linux). Open a terminal in the extracted folder. Run the version command for your platform. All subsequent commands assume this folder.
Expected: Python reports version 3.10 or newer and the terminal is in the extracted resource folder.
windows
python --version
Get-Location
Get-ChildItem
macos
python3 --version
pwd
ls
linux
python3 --version
pwd
ls
Map the programming evolution
Write the sequence books → Stack Overflow → search → ChatGPT → copied code/errors → assisted coding → coding agents → agentic workflow. For one recent task, list what you wrote/debugged manually and what you could direct/verify instead.
Expected: The map distinguishes implementer, assisted programmer and overseer.
Draw the evidence loop
Write human → objective → agent → code/tools → environment → evidence → agent → human oversight. Circle every place that can fail in the practice project.
Expected: The loop includes observable evidence and a human review boundary.
Write a bounded task brief
Adapt delegation.md with objective, scope, constraints, verification and evidence. Tell an installed signed-in agent to inspect app.py and verify.py, then propose one small change without editing yet.
Expected: The task brief has five concrete fields and the proposed files stay inside the practice folder.
Choose acceptable proof
Run verify.py yourself. Save the command, exit code and complete output. Compare this proof with a sentence claiming “all tests pass.”
Expected: VERIFY PASS is recorded with a command and exit code.
windows
python verify.py
macos
python3 verify.py
linux
python3 verify.py
Build an incident report
Fill incident-template.md with working directory, Python version, input, expected result, actual output and one diagnostic. Ask the agent to identify missing observability before it suggests a fix.
Expected: The incident report can reproduce the symptom without private credentials.
Create a project operating manual
Write AGENTS.md in the practice folder: objective, directory map, install/run/test commands, logs location, boundaries and stop condition. Keep verification in a dedicated file.
Expected: AGENTS.md contains reproducible run/test commands and explains the directory structure.
Practice inspect, test, correct and review
Write the sequence DEFINE → INSPECT → PLAN → EXECUTE → TEST → OBSERVE → DIAGNOSE → CORRECT → VERIFY → REVIEW. Use the agent for a docstring change, then run verification independently and inspect the diff.
Expected: Only the requested docstring changed; VERIFY PASS and a reviewed diff are retained.
windows
python verify.py
macos
python3 verify.py
linux
python3 verify.py
Write an eight-step recovery plan
Record: stop retries, preserve stderr/logs, locate last checkpoint, inspect environment, reproduce minimally, form one hypothesis, delegate smallest repair, independently verify and review. Apply the plan to a deliberately missing practice input.
Expected: The recovery plan has eight steps and an observed failure/recovery pair.
Ask for system-level diagnosis
Give the agent incident-template.md, app.py and verify.py. Request a diagnostic summary citing the exact file/line and failing assertion. Ask it to gather its own command output, then separate facts from hypotheses.
Expected: The diagnosis names a failing case, observed evidence and one testable hypothesis.
Classify the decision boundaries
Make a three-row table: assisted (you choose each action), supervised (bounded task with review), autonomous (preapproved bounded loop with stop rules). Place code edits, test runs, external messages and production deploys into the appropriate policy.
Expected: The table distinguishes all three levels and requires explicit review for external actions.
Define the overseer duties
Write the duties for this project: define outcome, constrain scope, provide tools/context, demand evidence, review diffs, protect data, monitor cost and decide whether to release. Assign an owner to every duty.
Expected: The job description names an accountable owner and check for each duty.
Break a practice copy and reproduce
In this practice folder only, copy broken_app.py over app.py. Run verify.py and retain the repeated-input assertion failure. Do not change verify.py.
Expected: The repeated-input case fails before repair; the test remains unchanged.
windows
Copy-Item -LiteralPath broken_app.py -Destination app.py
python verify.py
macos
cp broken_app.py app.py
python3 verify.py
linux
cp broken_app.py app.py
python3 verify.py
Direct the repair without writing it
Give your signed-in agent delegation.md and the failure evidence. Ask it to diagnose and fix app.py only. Do not write the fix yourself. Review the minimal diff, independently run verify.py, and record the failure-to-pass pair.
Expected: VERIFY PASS follows a minimal agent-authored fix that preserves repeated inputs and leaves verification intact.
windows
python verify.py
macos
python3 verify.py
linux
python3 verify.py
Write a repeatable onboarding checklist
Fill in onboarding-checklist.md for your agent. Record AGENTS.md, the tool’s user settings and memory folder, the assigned workspace, permissions, guard location, backup schedule, and a final proof task. Keep the checklist in your project.
Expected: The checklist contains a concrete path and owner for rules, memory, permissions, guard, backup, restore and final verification.
Demonstrate the variable-path limit safely
Run workspace_guard.py --self-test. Read the source: the target is resolved before deciding. The variable_target case points at the home folder but performs no filesystem operation. Compare this with a hook that sees only command text.
Expected: GUARD PASS reports inside allowed and profile, outside, variable-derived profile and workspace root denied; no deletion was executed.
windows
python workspace_guard.py --self-test
macos
python3 workspace_guard.py --self-test
linux
python3 workspace_guard.py --self-test
Verify the actual protection in your tool
For CLI tools, open the hook/permissions screen and confirm the configured guard is active. Use your tool’s documented pre-command hook protocol; the BBB working reference is linked in Sources. Run a harmless directory listing, then a guard dry-run targeting the profile. Do not execute a destructive profile probe. Grok Bot has no proven local shell guard here: use project-only tasks and reviewed actions, with backups.
Expected: A harmless command runs, the guard dry-run returns DENY, and the checklist records the actual hook protocol and active state or the Grok Bot limitation.
Enable a real backup of memory and project files
Connect a second backup drive. Windows: configure System Protection as additional recovery and use a scheduled copy/File History that explicitly includes hidden agent folders. macOS: configure Time Machine and verify dot folders are included. Linux: use a home backup such as restic/Deja Dup; Timeshift omits /home by default. Download the copy-only profile backup script for your platform, inspect it, and adapt the folder list to your tool. Record the last successful scheduled run; protect backup access because it may contain credentials.
Expected: A backup on another drive includes the tool’s user settings and memory folder and this project, and a successful schedule/time is recorded.
windows
.\profile-backup.ps1 -Destination D:\Backups\llm-profiles
macos
bash profile-backup.sh /Volumes/YourBackup/llm-profiles
linux
bash profile-backup.sh /media/YourBackup/llm-profiles
Practice a hash-verified restore
Run restore_drill.py with a separate backup directory. The script creates a new proof file, copies it, restores a second copy, and compares SHA256 hashes. Then restore one non-secret file from your actual agent memory backup into a separate scratch directory and open it; do not overwrite the live profile.
Expected: RESTORE PASS contains matching hashes; the actual memory file is readable after restoration into scratch.
windows
python restore_drill.py --backup-root D:\Backups\bbb-practice --work-root practice
macos
python3 restore_drill.py --backup-root /Volumes/YourBackup/bbb-practice --work-root practice
linux
python3 restore_drill.py --backup-root /media/YourBackup/bbb-practice --work-root practice