Puppet Masters

“A complete commingling and fusion of our separate beings to create a new and unique entity.” — the Puppet Master, proposing a unification with Major Kusanagi, Ghost in the Shell (1995)

Last week you built inside a chat window, and the results lived on Claude’s or ChatGPT’s servers. This week you’ll work a different way: you hand a coding agent a repository of your own, and everything it does there is recorded in version control, so you can read it, undo it, and publish it to the open web.

Exercise: Building and Deploying

This week you’ll set up Claude Code on the web or Codex on the web (OpenAI’s coding agent), whichever matches your subscription. Connect it to a GitHub repository, and prompt it to build a web-based object that runs on GitHub Pages. You can make a variant of last week’s tracker or something entirely new. The point is to get used to this way of working and to see what version control looks like when an agent is doing the committing.

Our reading is sections 2.2 and 2.3 of Simon Willison’s Agentic Engineering Patterns. In “Using Git with coding agents”, he describes a repository as a folder that tracks its own changes and commits as “timestamped bundles of changes” with a message and an author. He also argues that you don’t need to memorize Git so long as you know what’s possible. “Subagents” explains why an agent sometimes sends a fresh copy of itself off to explore your files. Watch for both this week.

Step 1: Make a repository

  1. Sign in to GitHub or create a free account. You don’t need the Student Developer Pack for this, though it’s worth applying for at education.github.com. If you already use GitHub for work or other projects and would rather not connect that account to a coding agent, it’s fine to create a separate, throwaway account just for this class.
  2. Click New repository, give it a descriptive name, make it public (free GitHub Pages sites need a public repository), check Add a README, and click Create repository.
  3. If you’re building on last week’s tracker, upload your JSON file now: Add file → Upload files, then commit. That’s your first commit, and you made it yourself.

Step 2: Connect your coding agent

Both tools send you to a GitHub authorization screen. When it asks which repositories to allow, choose Only select repositories and pick the one you just made rather than granting access to everything. You can add more repositories later: on GitHub, go to Settings → Applications → Installed GitHub Apps, then Configure next to the Claude or Codex app. Both interfaces change often, so if a button has moved, follow the on-screen equivalent. Either way, you are giving an agent permission to read and write one repository.

Step 3: Prompt something new

Write one prompt, in your own words, for something that runs entirely in the browser. Here’s a starting point to adapt:

“Build a static web page for GitHub Pages: index.html at the root of the repository, with plain HTML, CSS, and JavaScript and no build step. Use the JSON file in this repository to make [your idea]. Commit as you go with clear commit messages.”

Some directions: last week’s tracker with a new interface, a timeline, a map, a quiz, or a small game built from your dataset. Or skip the dataset and make something entirely new. Keep it small enough to finish this week.

While the agent works, watch what it does: which files it reads, whether it sends out a subagent to explore, and what commands it runs.

Step 4: Read the version control

This is the new part, so slow down here. Before you merge anything, look at what the agent left behind on GitHub:

When you’re happy, merge the pull request into main.

Step 5: Turn on GitHub Pages

  1. In your repository, go to Settings → Pages.
  2. Under Source, choose Deploy from a branch, set the branch to main and the folder to / (root), and click Save.
  3. After a minute or two, GitHub shows your site’s URL (https://yourname.github.io/your-repo/). Open it to make sure it works.

Want a change? Prompt again, review the new pull request, merge, and reload. Each round adds to the history.

For full credit, your discussion post must include:

Discussion

Share your Pages link, your repository link, and your screenshot, then reflect:

Don’t forget to reply twice to peers (1 point / reply) for full credit!