Skip to content
Back to skills

Demo 5 Sandbox Feature Pr

ASecurity

Demo skill for the meta "decode improves decode" flow — launch decode in a sandboxed clone of the course repo, plan and build one small feature inside the Workspace, let Hand-back push the Session Branch, then open a draft PR against the course repo.

  • 613 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 8, 2026
ai-agentsgobashdockergit

Works with

  • cli

Security analysis

A100/100

Scanned October 8, 2026

npx -y skills add decodingai-magazine/building-a-coding-agent-from-scratch-course --skill demo-5-sandbox-feature-pr --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Demo 5 Sandbox Feature Pr?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Demo 5 Sandbox Feature Pr
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/decodingai-magazine-demo-5-sandbox-feature-pr/badge)](https://www.skillsdirectory.com/skills/decodingai-magazine-demo-5-sandbox-feature-pr)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: demo-5-sandbox-feature-pr
description: Demo skill for the meta "decode improves decode" flow — launch decode in a sandboxed clone of the course repo, plan and build one small feature inside the Workspace, let Hand-back push the Session Branch, then open a draft PR against the course repo.
---

The meta demo: **decode improves decode.** Run decode inside an isolated sandbox Workspace that is
a clone of this very course repo, plan and implement one small self-contained feature there, and
let the harness ship the work back as a branch you turn into a draft PR.

Nothing the model does touches your host checkout — the Workspace is an isolated clone, and the
branch only lands on your host through Hand-back (ADR-0012 §8).

## 1. Launch decode against a sandboxed clone of the course repo (human step)

Sandbox mode is selected by the **`SANDBOX_MODE` environment variable** — it is an env var, not a
command-line flag; the repo to clone into the Workspace is the **`--repo`** flag. Launch the local
docker rung (Docker must be running):

```
SANDBOX_MODE=docker decode --repo git@github.com:decodingai-magazine/building-a-coding-agent-from-scratch-course.git
```

This clones the course repo into the isolated Workspace (`/workspace` ≡ host `.decode/sandbox`)
and drops you into the REPL, with `bash` and the file tools scoped to that clone.

To run the same demo on the remote rung instead, swap `SANDBOX_MODE=docker` for
`SANDBOX_MODE=modal` — everything else is identical (Modal credentials must be configured).

## 2. Plan the feature — in plan mode

If you are decode reading this inside the Workspace, start here — step 1 is the human's launch
command, already done; do NOT try to run `decode` yourself. Enter **plan mode** by calling
`enter_plan_mode` with **no arguments** (it takes none — you present the plan later, to
`exit_plan_mode`), explore the code read-only, then present a short plan before touching anything.
Pick ONE feature — small, self-contained, provable in a single session:

- A `decode --version` flag that prints the installed package version, plus its unit test.
- One small pure helper (e.g. in `tools/` or `entities/`) with a focused unit test.
- A scoped docstring/README fix that resolves a real inaccuracy you found while exploring.

The plan should name the files to touch, the test that proves the feature, and nothing else.
Exit plan mode (`exit_plan_mode`) once the human approves it.

## 3. Build it inside the Workspace

Implement the plan: edit, then run the suite inside the Workspace (`uv run pytest -q` /
`make unit-tests`) until it is green. Keep the final green test output — it goes in the PR body.
All of this happens on the sandboxed clone.

## 4. Get the branch onto the remote

The branch has to be on `origin` before a PR can point at it. There are two ways it gets there —
know which one you are in:

- **Sandbox run (the intended demo, `SANDBOX_MODE=docker`/`modal`):** just leave the REPL (exit,
  or `/ship` while idle). On exit, **Hand-back** secures the final Workspace onto a deterministic
  `decode/<session-id>` **Session Branch**, auto-commits any uncommitted model work, and
  `git push`es it back to the course repo with your ambient host git credentials — every git
  command runs host-side, so no credential ever enters the sandbox. The friendly exit line names
  the branch it pushed. You do **not** push by hand in this path.

- **No sandbox, or your own feature branch:** if decode is running straight on the host (no
  `SANDBOX_MODE`), there is no Hand-back — commit your work on a feature branch and push it
  yourself:

  ```
  git push -u origin <your-branch>
  ```

  **Give this push a generous timeout (≥ 180s) and do not kill it.** This repo installs a
  **pre-push** hook that runs the full unit suite (`make unit-tests`, ~2 minutes) before the push
  goes out — a short tool timeout will terminate it mid-run and look like a network hang. It is
  the gate doing its job; you already ran the suite green in step 3, so just let it finish. Do
  **not** reach for `git push --no-verify` to dodge it — that skips the format/lint/test gate the
  push is supposed to enforce. Only fall back to `--no-verify` if the human explicitly tells you
  to.

## 5. Open a draft PR against the course repo

Turn the pushed branch into a draft PR with the `gh` CLI — `--head decode/<session-id>` for the
Hand-back path, or `--head <your-branch>` for the manual path. Build the body with a heredoc so
newlines and backticks land literally (never hand-escape `\n` into `--body`):

~~~
gh pr create --draft \
  --repo decodingai-magazine/building-a-coding-agent-from-scratch-course \
  --head <branch> --title "<feature>" \
  --body "$(cat <<'EOF'
<what & why, 2-3 lines>

Test evidence:
```
<the green pytest summary line>
```

Built end-to-end inside a decode sandbox Workspace (SANDBOX_MODE=docker) and shipped by Hand-back.
EOF
)"
~~~

Report the feature you built, the branch it landed on, and the draft-PR URL.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.