Vibe Coding
for Researchers
vibe coded too
These slides were vibe coded.
I didn't write HTML for this deck. I described what I wanted, and an AI agent built it.
- Asked me questions: format, audience, length, demo subject
- Wrote a plan, which I reviewed and approved
- Loaded a “slides” skill with design know-how
- Made 3 style previews, and I picked this one
- Built & screenshot-checked every slide, fixing overlaps
Every term in today's talk was used to make these slides.
- 04A definition
- 05From typing to directing
- 06The tool landscape
- 07Honest caveats
What is vibe coding?
Programming by describing intent, not by typing syntax.
A definition
There's a new kind of coding I call “vibe coding”, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists.
By the end of 2025 it was Collins Dictionary's Word of the Year. Today it broadly means building software mostly through conversation with an AI.
01 · DESCRIBESay what you want
In plain language: the goal, the data, the constraints.
02 · GENERATEAI writes & runs it
Code, files, commands, often in one go.
03 · STEERJudge the result
Look at the output, not the syntax. Give feedback. Repeat.
From typing code to directing it
Each generation of tools takes on a bigger piece of the work.
~2021Autocomplete
Finishes the line you're typing.
e.g. early GitHub Copilot
~2023Chat assistant
Answers questions; you copy-paste snippets back and forth.
e.g. ChatGPT, Claude.ai
~2024AI-native editor
Edits across many files in your project.
e.g. Cursor, Copilot edits
2025 →Autonomous agent
Plans, writes, runs, tests and fixes, then reports back.
e.g. Claude Code, Codex
Your role moves from typist → reviewer → director.
The spectrum runs from pure vibes (accept everything) to AI-assisted engineering (review everything). For research, aim for the second.
The landscape
Many tools, same ideas. Learn the concepts once and they transfer.
IN THE BROWSERChat + canvas
- Claude.ai (Artifacts)
- ChatGPT (Canvas)
- Gemini
Quick scripts, one-off questions.
APP BUILDERSPrompt → app
- Lovable
- Bolt
- Replit, v0
Web apps with zero setup.
AI EDITORSIDE + AI
- Cursor
- VS Code + Copilot
- Windsurf
You see and edit the code.
TERMINAL AGENTSAutonomous
- Claude Code
- OpenAI Codex
- Gemini CLI
Read, edit and run your project files.
Today's demo: Claude Code inside VS Code.
Honest caveats
It's powerful, and it can be confidently wrong.
01Plausible ≠ correct
Invented functions, wrong units, silently dropped rows. Code that runs can still produce the wrong science.
02Security & privacy
Leaked API keys, unsafe dependencies, unpublished data sent to a cloud model. Know your institution's policy.
03Faster isn't guaranteed
A 2025 METR study: experienced developers were 19% slower with AI tools on their own repos, while believing they were ~20% faster.
04You own the output
Your name is on the paper. If you can't explain and defend the code, you can't trust the result.
- 09Where research time goes
- 10Use cases
- 11Before / after: a SLURM job
- 12Coders vs non-coders
- 13Research hygiene
Why researchers should care
Less time on plumbing, more time on science.
Where does research time actually go?
- Converting and cleaning data formats
- Plotting… and re-plotting for reviewer 2
- Writing job scripts, fighting the scheduler
- One-off analysis scripts nobody can re-run
- Porting legacy MATLAB / Fortran code
- Websites, posters, forms, admin
Vibe coding shrinks the distance between a research idea and a working tool.
The science stays yours. The plumbing gets delegated.
What researchers build with it
Data pipelines
Clean, merge & convert CSV, HDF5, NetCDF, FITS.
Figures
Publication-quality plots with one consistent style.
HPC & SLURM
Draft job scripts on your laptop; you review before submitting.
Simulations
Quick models and prototypes to test an idea first.
Literature tools
Parse BibTeX, organise papers, extract tables from PDFs.
Code translation
MATLAB / Fortran → Python, with comments and docs.
Reproducibility
Tests, READMEs, environment files, notebooks → scripts.
Web presence
Lab sites, project pages, portfolios. ← today's demo
Before / after: drafting a SLURM job script
BEFOREAn afternoon of docs
Search “SLURM job array”, copy a colleague's script, guess the flags, fail, read logs, retry.
Then ask: “what could go wrong?” (one real bug is hiding in there)
Something for everyone in the room
IF YOU RARELY CODEYou can now build
- Tools you couldn't build before
- Learn by asking “why?” and “explain this”
- Prototype an idea before hiring a developer
Watch out: you can't spot subtle bugs yet. Test against cases where you know the answer.
IF YOU ALREADY CODEYou can now skip
- Boilerplate, glue code and config files
- Documenting and refactoring legacy code
- Tests, CI, packaging, and new languages fast
Watch out: over-trust and review fatigue. Read the diffs, keep commits small.
Good research hygiene with AI
Five habits that make vibe-coded research trustworthy.
01Use git
Commit before every AI change. It's your undo button and your audit trail.
02Verify
Check against analytic results, small cases and unit tests, not vibes.
03Protect data
No sensitive, unpublished or human-subject data in cloud tools without approval.
04Pin environments
requirements.txt / environment.yml. Record the tool and model you used.
05Disclose
Follow journal and funder AI policies. Mention AI assistance in methods.
Rule of thumb
If it ends up in a paper, a human has read every line of it.
- 15The big picture
- 16LLM & context window
- 17Prompt engineering
- 18Agent
- 19Plan mode
- 20CLAUDE.md / AGENTS.md
- 21Skills
- 22MCP
- 23Subagents
The vocabulary
Eight terms. Every one appears in the live demo.
How the pieces fit together
You
the researcher, the director
Agent
an LLM working in a loop: plan → act → observe
[ context window: everything it can “see” ]
AGENTS.md
always loaded
Skills
loaded on demand
Plan mode
plan → you approve → act
Built-in tools
read / edit files, run terminal commands
MCP servers
browser, Drive, GitHub, databases…
Subagents
parallel helpers with fresh context
LLM & the context window
A Large Language Model predicts the next piece of text (a token, roughly ¾ of a word). Trained on huge amounts of text and code. Claude, GPT and Gemini are LLMs.
Everything the model can see right now: instructions, your messages, files it read, tool output. Today that's roughly 200K–1M tokens. Anything outside it doesn't exist for the model.
.md
Tip: one task per session. When it gets long, start fresh.
Prompt engineering
Writing instructions the way you'd brief a smart new colleague who knows nothing about your project.
The first answer is a draft. Iterate.
Agent: an LLM in a loop with tools
| Chatbot | Agent | |
|---|---|---|
| see | what you paste | your files & folders |
| do | only talks | edits files, runs commands |
| errors | you report them | reads them & fixes itself |
| you | copy & paste | review & approve |
You stay in control: agents ask permission before risky actions (editing, running commands, using the network), and you choose how much to auto-approve.
Plan mode: measure twice, cut once
The agent may explore and ask questions, but it can't change anything until you approve a plan.
01Explore & ask
Reads your files, asks clarifying questions.
02Propose a plan
Steps, files to touch, how it will verify.
03You review → approve
Edit it, push back, or start over. Cheap now, expensive later.
CLAUDE.md / AGENTS.md: the project's memory
A plain Markdown file in your project, read automatically at the start of every session.
Same idea, two names
AGENTS.md: open, cross-tool standard (Codex, Cursor, Copilot, Gemini CLI…).
CLAUDE.md: Claude Code's version.
What goes in it
- What the project is & who it's for
- How to build / run / test
- Conventions and hard rules
Short and specific beats long and vague: it costs context every session.
Rule 2 is why the agent asked me questions before writing any slides.
Skills: expertise on demand
A folder of instructions, scripts and references the agent loads only when the task needs it.
How it stays cheap
Only each skill's name + one-line description sits in context. The full instructions load when relevant. This is called progressive disclosure.
| AGENTS.md | Skill | |
|---|---|---|
| when | always loaded | on demand |
| scope | this project | reusable anywhere |
| holds | rules & facts | a procedure + tools |
This deck: built with a “frontend-slides” skill.
MCP: “USB-C for AI tools”
The Model Context Protocol: one open standard for connecting agents to outside apps and data.
Why it matters
Write a connector once and it works in many AI apps. Introduced by Anthropic (Nov 2024), now supported by most major tools.
What it adds
Tools the agent can call: open a web page, read a Drive file, create a GitHub repo, query a database.
Careful: an MCP server acts with your permissions. Install only ones you trust.
Subagents: a team, not a soloist
The main agent hands off focused jobs to helpers. Each has a fresh context and returns only a summary.
Why
- Parallel: independent jobs run at once
- Clean context: the main agent sees results, not the mess
- Specialised: each can have its own instructions
Trade-off: more tokens, so more cost. Use them for big, independent, parallel work.
Let's build your academic portfolio
From scattered profiles to a live website on GitHub Pages, using every term we just covered.
Same tools, your data. You can repeat this tonight.
| # | Step | What happens | Term |
|---|---|---|---|
| 1 | Write the brief | weak prompt → strong prompt | prompt eng. |
| 2 | Plan first | agent asks questions, proposes a plan | plan mode |
| 3 | Rules + skill | project rules; a reusable skill, written live | AGENTS.md · skills |
| 4 | Gather data | parallel helpers read each source | subagents + MCP |
| 5 | Design & build | design skill + portfolio skill | skills · agent |
| 6 | Verify & ship | browser check, push to GitHub Pages | MCP · agent loop |
Three things to remember
01You direct, the agent types
…but you own the result. Verify like it's a student's first draft.
02Context is everything
Prompts, AGENTS.md, skills, MCP and subagents are all ways of feeding the right context.
03Start small, use git
Automate one annoying task this week. Commit before every change.
- code.claude.com/docs
- agents.md
- agentskills.io
- modelcontextprotocol.io
Let's build.
Mohamed Al-Begaowe