Nov 2026

Claude Cowork 101 Workshop

Adelaide

Speakers

DDD Adelaide
Qantas Product Innovation Centre

Affinda

Affinda helps organisations to understand, adopt and deploy AI.

  • Affinda Gateway
  • Affinda Extract
  • Affinda Deployment
Affinda

Thank you, Adelaide University

Dr Nicholas Fewster-Young Main sponsor
Program Director of Data Science, College of Science

Xuan Nam (Viktor) Ngo
Master of Data Science

Kate Klimeš
Program Manager, Adelaide University

Adelaide University

Thank you to our volunteers

Wifi

Join AU-Guest and register your details (valid for 7 days)

Anthropic

Today’s agenda

  • 6:00 Welcome
  • 6:10 Meet Claude Code
  • 6:20 Meet the room
  • 6:35 Choose your build
  • 6:45 Build something
  • 7:30 Pizza break
  • 7:50 Skills, then MCP with Elle
  • 8:20 Finish and prepare to share
  • 8:40 Show and tell
  • 9:00 Close

Welcome & Intro

Get set up

  1. Open workshop.claudecommunity.com.au and sign in
  2. Create a free GitHub account at github.com
  3. Create a free Cloudflare account at cloudflare.com

Already have both accounts? Just sign in to each.

Open the workshophttps://workshop.claudecommunity.com.au/

Three ways to use Claude Code

  1. In the Claude app, with a Claude subscription
  2. In your terminal (the CLI): sign in with a subscription, or use an API key
  3. On the workshop website: add your API key to your Profile

Tonight we use the workshop website with your own API key.

Meet Claude Code

What is Claude Code?

  • In a chat, you copy and paste code back and forth
  • Claude Code works in your files and your terminal, and does the work itself
  • It is an agent: software that takes actions to reach a goal you set
  • It can read your code, edit files, run commands and search the web

How it works: a loop

  1. PromptYou ask in plain English
  2. Gather contextIt reads files and searches
  3. ActIt edits files and runs commands
  4. VerifyIt checks the result, then repeats
  • You can interrupt at any point: press Esc and tell it what to do instead

You stay in control

Mode What Claude does
Manual Asks before every edit and command
Auto-accept Edits files without asking, still asks before most commands
Plan Reads and plans only, changes nothing
Auto Works without routine prompts while a background safety check screens most actions
  • Press Shift+Tab to move between modes
  • It can make mistakes. Stay in the loop so you catch them early

Your turn: meet Claude Code

  • Task 1: Say hello to Claude Code
  • Start it with cd /workspace/site && claude
  • Ask it what the project is and how it is laid out
  • Point it at a file with @package.json

Choose your build

Astro

Astro builds fast content sites, powerful web applications, dynamic server APIs, and everything in-between.

  • Your starter: a static content site with Astro 7 and Tailwind CSS v4
  • One file per page. Deploys to Cloudflare Workers
  • Ships the elite-web skill
  • Pick this if you mostly want pages and content
Astro websitehttps://astro.build

Astro starter repo

Optional. Clone it and build from therehttps://github.com/jackmcpickle/astro-starter

TanStack Start

TanStack Start is a full-stack framework for React and Solid, with type-safe routing, server-side rendering, streaming, and server functions.

  • Your starter: a full-stack React app with Tailwind CSS v4
  • One file per route. Deploys to Cloudflare Workers
  • Ships the elite-react skill
  • Pick this if you want an app with interactivity
TanStack Start websitehttps://tanstack.com/start/latest

TanStack Start starter repo

Optional. Clone it and build from therehttps://github.com/jackmcpickle/tanstack-start-starter

How to work with it

Explore, plan, code, commit

  1. ExploreClaude gathers the context it needs for your project
  2. PlanYou agree a plan of action to measure success against
  3. CodeBack and forth between you and Claude until it is right
  4. CommitReview the change and save it, then start the next one

Plan first

  • Press Shift+Tab until the status bar shows plan mode on
  • Claude reads files and runs commands to explore, but edits nothing
  • It asks questions, then comes back with a plan you can change
  • This is the cheapest place to change course: no code is written yet
  • Say what “correct” looks like, so Claude knows when it is done

Check the work

  • /diff shows the change line by line: what was removed and what was added
  • Look for changes you didn’t ask for, tests that got weaker, new packages and hard-coded values
  • All wrong? /rewind (or Esc twice) takes you back
  • /code-review is a second opinion from a clean context, with none of your session’s history

Context

What is context?

  • Context is Claude’s working memory: your messages, its replies, every file it read, every command’s output, plus CLAUDE.md
  • Think of it as a desk with a fixed size
  • Claude can only work with what’s on the desk
  • When it fills up, older details fall off and answers get vaguer

CLAUDE.md: standing instructions

  • Claude starts every session fresh. It reads CLAUDE.md at the start of each one
  • In your project folder it is shared with the team. ~/.claude/CLAUDE.md is just for you, in every project
  • Put in commands, conventions, “don’t touch this folder”
  • Correcting Claude over and over? Ask it to save the rule
  • /init asks Claude to write or improve the file. Read it before you accept

Keep the desk tidy

  • /context shows what’s using space
  • /compact swaps the conversation for a short summary. Use it mid-task when you need to keep going
  • /clear empties the conversation. Use it when you start something new
  • Be specific: a vague prompt makes Claude explore more, and that costs more space
  • Switch off MCP servers you aren’t using, and hand legwork to a subagent

Your turn: context

  • Task 2: Give Claude standing instructions
  • Add the build and dev commands to CLAUDE.md, then type /memory
  • Task 3: See what Claude is holding in mind
  • Try /context, /compact and /clear

Subagents

What is a subagent?

  • Exploring your code and searching the web fills up context fast
  • A subagent is a helper Claude starts for one job, like “explore this codebase for me”
  • It has its own context window and does the legwork there
  • It returns only a summary, so you get the answer without the journey

Make your own subagent

  • A subagent is a Markdown file with a short settings header (YAML frontmatter)
  • .claude/agents/ works in this project
  • ~/.claude/agents/ works in all your projects
  • Easiest way: describe the subagent you want and ask Claude to write it
  • Try it: ask Claude to use a subagent to explore your project

Skills

What is a skill?

  • A folder of instructions and examples that teaches Claude how to do one thing
  • Only its name and description sit in context until Claude uses it
  • CLAUDE.md is for facts Claude always needs
  • A skill is for a procedure it needs sometimes
  • A prompt is for a one-off request

Use a skill

Use the elite-web skill to add an About page at /about that says what this site is for,
and link to it from the home page.
  • Claude matches your request against each skill’s description and loads the ones that fit
  • Naming the skill, or typing /elite-web or /elite-react, removes the guesswork
  • Your starter ships its skill in .claude/skills/

Write your own skill

.claude/skills/site-check/
└── SKILL.md
  • SKILL.md starts with a header that gives a name and a description
  • In the description, say what the skill does and when to use it
  • .claude/skills/ is part of the project: anyone who clones it gets the skill
  • ~/.claude/skills/ is personal and works in every project

Your turn: skills

  • Task 5: Build a page with a skill
  • Use plan mode and your starter’s skill to add an About page
  • Task 6: Write your own skill
  • Create site-check, then run /site-check

MCP

What is MCP?

  • Out of the box, Claude can read files, run commands and fetch web pages
  • MCP (Model Context Protocol) servers give it more tools: a database, an issue tracker, a cloud account
  • HTTP servers are remote services, hosted by the provider
  • Stdio servers are local programs that run on your machine

Add a server

claude mcp add --transport http --scope project cloudflare-docs https://docs.mcp.cloudflare.com/mcp
Scope Who gets the server
local (the default) You, in this project
user You, in every project
project Everyone who opens the project, through .mcp.json
  • Start claude again, approve cloudflare-docs, then type /mcp. It should say connected

Connect your account

claude mcp add --transport http --scope project cloudflare https://mcp.cloudflare.com/mcp \
  --header 'Authorization: Bearer ${CLOUDFLARE_API_TOKEN}'
  • Keep the single quotes, so the real token never ends up in .mcp.json
  • Every connected server takes some context. /mcp shows what’s connected and lets you disable it
  • A command-line tool such as gh can do the same job for less context

Your turn: MCP

  • Task 7: Connect Claude to Cloudflare’s docs
  • Add cloudflare-docs, then ask a question that needs the docs
  • Task 9: Let Claude read your site’s logs
  • Add cloudflare, then ask why the waitlist form doesn’t work

Hooks

Advice or a guarantee?

  • CLAUDE.md and skills are advice. Claude follows them almost always
  • A hook is a command Claude Code itself runs at a fixed moment, every time
  • Claude can’t skip it or talk its way past it
  • Use one to format files after edits, block dangerous operations, or notify you when Claude finishes

How a hook is set up

In settings.json you pick an event, an optional matcher (which tools it applies to) and a command to run.

Event Runs
PreToolUse Before a tool call, and can block it
PostToolUse After a tool call completes
UserPromptSubmit When you submit a prompt
Stop When Claude finishes responding
  • /hooks lists the hooks you have configured

Saying no with PreToolUse

  • The hook gets the tool’s name and input, such as the command or the file path
  • Exit code 0: the call goes ahead
  • Exit code 2: the call is blocked, and the message goes back to Claude as the reason
  • .claude/settings.json is part of the project, so the whole team gets the same hooks
  • A hook runs real commands. Only add ones you have read and understood

Your turn: hooks

  • Task 10: Guard your secrets with a hook
  • Type /hooks and find the secrets guard that is already running
  • Ask Claude to print a token and watch the guard say no
  • Then write your own hook to keep Claude out of .dev.vars and .env files

Real world demo

Anthropic

Resources. Workshops.

Networking & wrap up