decodingai-magazine/building-a-coding-agent-from-scratch-course/demo-5-sandbox-feature-pr

Claude Code and agent skill by decodingai-magazine/building-a-coding-agent-from-scratch-course

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

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.

Install

npx vskill@latest install decodingai-magazine/building-a-coding-agent-from-scratch-course/demo-5-sandbox-feature-pr

SKILL.md

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 pushes 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.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/decodingai-magazine/building-a-coding-agent-from-scratch-course/demo-5-sandbox-feature-pr/badge)](https://verified-skill.com/skills/decodingai-magazine/building-a-coding-agent-from-scratch-course/demo-5-sandbox-feature-pr)

Something wrong with this skill or its page? Tell us.