Tag: ai-coding
-
ChatGPT Codex: Using AGENTS.md to describe the environment the sandbox must respect
A field-tested take on using AGENTS.md to describe the environment the sandbox must respect with ChatGPT Codex: what it rewards, where it breaks, and how to keep the workflow honest.
-
Claude Code: Writing a CLAUDE.md that captures tacit team knowledge
A field-tested take on writing a CLAUDE.md that captures tacit team knowledge with Claude Code: what it rewards, where it breaks, and how to keep the workflow honest.
-
GitHub Copilot: Running Copilot CLI as a scriptable review step inside pre-commit hooks
A field-tested take on running Copilot CLI as a scriptable review step inside pre-commit hooks with GitHub Copilot: what it rewards, where it breaks, and how to keep the workflow honest.
-
Local LLMs with Ollama: Keeping a small local model honest with tight prompts
A field-tested take on keeping a small local model honest with tight prompts with Local LLMs with Ollama: what it rewards, where it breaks, and how to keep the workflow honest.
-
Agentic coding: Difference between an agent and a slow script
A field-tested take on the difference between an agent and a slow script with Agentic coding: what it rewards, where it breaks, and how to keep the workflow honest.
-
MCP servers: Exposing read-only resources before you expose write actions
A field-tested take on exposing read-only resources before you expose write actions with MCP servers: what it rewards, where it breaks, and how to keep the workflow honest.
-
AI coding workflows: Small reversible steps instead of one heroic prompt
A field-tested take on small reversible steps instead of one heroic prompt with AI coding workflows: what it rewards, where it breaks, and how to keep the workflow honest.
-
Prompt engineering for code: Acceptance criteria as the only prompt that matters
A field-tested take on acceptance criteria as the only prompt that matters with Prompt engineering for code: what it rewards, where it breaks, and how to keep the workflow honest.
-
Cline and Roo Code: Auditing every tool call before it touches a file
A field-tested take on auditing every tool call before it touches a file with Cline and Roo Code: what it rewards, where it breaks, and how to keep the workflow honest.
-
JetBrains AI Assistant: Refactorings that remain safe because JetBrains understands types
A field-tested take on refactorings that remain safe because JetBrains understands types with JetBrains AI Assistant: what it rewards, where it breaks, and how to keep the workflow honest.
-
Windsurf: Flows that preserve intent across a long refactor
A field-tested take on flows that preserve intent across a long refactor with Windsurf: what it rewards, where it breaks, and how to keep the workflow honest.
-
Cursor: Agent mode as a disciplined driver, not a replacement for review
A field-tested take on agent mode as a disciplined driver, not a replacement for review with Cursor: what it rewards, where it breaks, and how to keep the workflow honest.
More posts tagged ai-coding
- Google Gemini: Debugging a production incident from a screenshot and a log bundle
- ChatGPT Codex: Scoping tasks tightly enough that the agent can finish in one pass
- Claude Code: Using sub-agents for parallel research across a large codebase
- GitHub Copilot: Pairing inline completion with a custom instructions file to enforce house style
- Local LLMs with Ollama: Picking a local model for the specific task, not for the benchmark
- Agentic coding: Budgets as the only feature that stops a bad loop
- MCP servers: Smallest MCP server that earns its keep
- AI coding workflows: Review cycle that keeps agent output honest
- Prompt engineering for code: Shortest prompt that still passes review
- Cline and Roo Code: Picking a model per task instead of per editor
- JetBrains AI Assistant: Letting Junie drive while the IDE still owns correctness
- Windsurf: Cascade as a deliberate planning surface, not an auto-pilot
- Cursor: Writing .cursorrules that actually stay short and enforceable
- Google Gemini: Feeding an entire service plus its tests into a single prompt
- ChatGPT Codex: Letting Codex open the PR while you stay the reviewer of record
- Claude Code: Planning mode as a cheap insurance policy against cascading edits
- GitHub Copilot: Using the @workspace agent to plan multi-file refactors before a single line is written
- Local LLMs with Ollama: Sunday-afternoon project: your own code reviewer that runs offline
- Agentic coding: Building trust with agents the way you build it with juniors
- MCP servers: Where the protocol ends and your product begins
- AI coding workflows: Resting the agent: when taking the keyboard back beats another turn
- Prompt engineering for code: When to stop prompting and start coding
- Cline and Roo Code: Treating the agent as a shell you can still read
- JetBrains AI Assistant: AI that respects your refactoring history instead of fighting it
- Windsurf: Turning agent output into atomic, reviewable commits
- Cursor: Using MCP inside Cursor to give the agent a real toolbox
- Google Gemini: Separating research (AI Studio) from execution (Code Assist) on purpose
- ChatGPT Codex: Replaying failed tasks with tighter prompts instead of starting over
- Claude Code: Running Claude Code headlessly in CI as a structured reviewer
- GitHub Copilot: Wiring MCP servers into Copilot to give it domain-specific tools
- Local LLMs with Ollama: Quantisation choices that actually matter for code
- Agentic coding: Why short agent loops beat heroic ones
- MCP servers: Sandboxing MCP tool calls so one bad prompt cannot ruin a week
- AI coding workflows: Time-boxing agent loops before they eat the day
- Prompt engineering for code: Prompts as contracts, not wishes
- Cline and Roo Code: Memory banks that outlive a single session
- JetBrains AI Assistant: Pairing AI Assistant with Code With Me for remote reviews
- Windsurf: Indexing strategies for a monorepo with generated code
- Cursor: Migrating a legacy module without losing git history or sanity
- Google Gemini: Crossing modalities: log, screenshot, code, spec, all in one turn
- ChatGPT Codex: Catching silent test skips before they ship to main
- Claude Code: Composing slash commands into a bespoke team-specific DSL
- GitHub Copilot: Measuring acceptance rate honestly instead of celebrating vanity metrics
- Local LLMs with Ollama: RAG over internal docs without handing them to a third party
- Agentic coding: Rollback plans for changes you did not watch land
- MCP servers: Versioning MCP servers like APIs, not like scripts
- AI coding workflows: Rescue patterns when an agent has gone off the rails
- Prompt engineering for code: Few-shot examples that teach taste, not just format
- Logging every turn so you can learn from the agent, not just use it
- The overlooked value of structural search and replace
- When to reach for Cascade and when to fall back to pure editing
- Keeping tests running in the background while the agent edits
- Keeping answers tight with explicit output contracts
- Treating Codex as a junior engineer with an infinite patience budget
- Diffing agent output against main before you trust a single file
- Leaning on Copilot Edits for multi-file, reviewable diffs instead of raw chat
- Caching embeddings locally for a private retrieval layer
- The honest case for agents that only suggest
- Why your wiki should probably be an MCP resource, not a tool
- Writing acceptance tests first, agents second
- Diffing prompts the way you diff code
- Cline and Roo Code: open-source agents teach you more than closed ones
- JetBrains AI Assistant: not every green inspection is an agent task
- Windsurf: the value of a pause button in an otherwise relentless agent
- Cheap wins: the keybindings that turn Cursor back into a proper editor
- Google Gemini: Using long context to write migration scripts that respect every edge
- ChatGPT Codex: Splitting epics into Codex-sized tasks on purpose
- Claude Code: Quiet art of pausing the agent instead of letting it churn
- From Idea to Published App in a Weekend — With AI on a Mac
- GitHub Copilot: Underrated power of /explain on legacy code no one dares to touch
- Local LLMs with Ollama: When a local 7B beats a cloud 70B in latency-sensitive loops
- Agentic coding: How to review a PR an agent opened in the middle of the night
- MCP servers: Composing agents over a catalogue of shared MCP tools
- AI coding workflows: Treating diffs as the primary artefact, chat as exhaust
- Prompt engineering for code: How to write a system prompt you can still read in six months
- Cline and Roo Code: Roo modes that codify team-specific workflows
- JetBrains AI Assistant: Writing specs as Markdown that Junie can consume
- Windsurf: Pairing Cascade with a linter that refuses bad taste
- Cursor: Right amount of automation before it becomes magical thinking
- Google Gemini: Generating Mermaid architecture diagrams the agent can then critique
- ChatGPT Codex: Auditing the diff, not the narrative – the code is the contract
- Claude Code: Keeping Claude honest with explicit acceptance criteria, not vibes
- GitHub Copilot: Copilot Spaces as shared context libraries for team onboarding
- Local LLMs with Ollama: Thermal budget of a MacBook pretending to be a server
- Agentic coding: Guardrails before autonomy, always
- MCP servers: Least-privilege auth for MCP in a real enterprise
- AI coding workflows: Scorecard question: did this PR have to exist?
- Prompt engineering for code: Structured outputs: JSON schemas that keep agents honest
- Cline and Roo Code: Building an internal guardrails library on top of Cline
- JetBrains AI Assistant: When the IDE already knows the answer and the agent just needs to ask
- Windsurf: What Windsurf teaches about the ergonomics of agent IDEs
- Cursor: Resetting indexes when completions start feeling stale
- Google Gemini: Pairing Gemini with Code Assist for refactors that span a whole module
- ChatGPT Codex: Keeping the human in the loop by requiring explicit acceptance
- Claude Code: Hooks that enforce lint, test and security gates before any write
- GitHub Copilot: Constraining the agent with .github/copilot-instructions.md for reproducible behaviour
- Local LLMs with Ollama: Running evals locally before trusting a new model
- Agentic coding: Planning outputs as the real product of the first turn
- MCP servers: Testing MCP servers with a plain JSON-RPC client first
- AI coding workflows: Pair-with-AI rituals that survive a team of ten
- Prompt engineering for code: Difference between role prompts and persona cosplay
- Cline and Roo Code: Routing cheap models for boilerplate, frontier models for design
- JetBrains AI Assistant: Scoping Junie tasks by module to keep review tractable
- Windsurf: Using write-mode sparingly to protect your muscle memory
- Cursor: Pairing tab with explicit intent comments to steer predictions
- Google Gemini: Auditing IAM policies with a million-token sweep over Terraform
- ChatGPT Codex: Parallelising bug-fix attempts and picking the cleanest patch
- Claude Code: Checkpointing long sessions to protect yourself from context rot
- GitHub Copilot: Switching models mid-conversation when reasoning quality starts to degrade
- Local LLMs with Ollama: Pairing Ollama with Continue or Cline for a private IDE
- Agentic coding: What to log when an agent writes for you
- MCP servers: Treating MCP servers as a supply chain, not a side project
- AI coding workflows: Daily shutdown routine that actually ships code
- Prompt engineering for code: Turning specs into prompts without losing the nuance
- Cline and Roo Code: Plan mode as a cheap dry run before committing budget
- JetBrains AI Assistant: Using inspections as invisible rails for the agent
- Windsurf: Keeping the editor quiet until you ask for help
- Cursor: Composer runs that land a feature in a single reviewable diff
- Google Gemini: Using Gemini CLI as glue between Cloud Run and your local repo
- ChatGPT Codex: Using AGENTS.md to describe the environment the sandbox must respect
- Claude Code: Writing a CLAUDE.md that captures tacit team knowledge
- GitHub Copilot: Running Copilot CLI as a scriptable review step inside pre-commit hooks
- Local LLMs with Ollama: Keeping a small local model honest with tight prompts
- Agentic coding: Difference between an agent and a slow script
- MCP servers: Exposing read-only resources before you expose write actions
- AI coding workflows: Small reversible steps instead of one heroic prompt
- Prompt engineering for code: Acceptance criteria as the only prompt that matters
- Cline and Roo Code: Auditing every tool call before it touches a file
- JetBrains AI Assistant: Refactorings that remain safe because JetBrains understands types
- Windsurf: Flows that preserve intent across a long refactor
- Cursor: Agent mode as a disciplined driver, not a replacement for review
- Google Gemini: Debugging a production incident from a screenshot and a log bundle
- ChatGPT Codex: Scoping tasks tightly enough that the agent can finish in one pass
- Claude Code: Using sub-agents for parallel research across a large codebase
- GitHub Copilot: Pairing inline completion with a custom instructions file to enforce house style
- Local LLMs with Ollama: Picking a local model for the specific task, not for the benchmark
- Agentic coding: Budgets as the only feature that stops a bad loop
- MCP servers: Smallest MCP server that earns its keep
- AI coding workflows: Review cycle that keeps agent output honest
- How Programming Is Changing in the Era of Generative AI
- Prompt engineering for code: Shortest prompt that still passes review
- Cline and Roo Code: Picking a model per task instead of per editor
- JetBrains AI Assistant: Letting Junie drive while the IDE still owns correctness
- Windsurf: Cascade as a deliberate planning surface, not an auto-pilot
- Cursor: Writing .cursorrules that actually stay short and enforceable
- Google Gemini: Feeding an entire service plus its tests into a single prompt
- ChatGPT Codex: Letting Codex open the PR while you stay the reviewer of record
- Claude Code: Planning mode as a cheap insurance policy against cascading edits
- GitHub Copilot: Using the @workspace agent to plan multi-file refactors before a single line is written
- Local LLMs with Ollama: Sunday-afternoon project: your own code reviewer that runs offline
- Agentic coding: Building trust with agents the way you build it with juniors
- MCP servers: Where the protocol ends and your product begins
- AI coding workflows: Resting the agent: when taking the keyboard back beats another turn
- Prompt engineering for code: When to stop prompting and start coding
- Cline and Roo Code: Treating the agent as a shell you can still read
- JetBrains AI Assistant: AI that respects your refactoring history instead of fighting it
- Windsurf: Turning agent output into atomic, reviewable commits
- Cursor: Using MCP inside Cursor to give the agent a real toolbox
- Google Gemini: Separating research (AI Studio) from execution (Code Assist) on purpose
- ChatGPT Codex: Replaying failed tasks with tighter prompts instead of starting over
- Claude Code: Running Claude Code headlessly in CI as a structured reviewer
- GitHub Copilot: Wiring MCP servers into Copilot to give it domain-specific tools
- Local LLMs with Ollama: Quantisation choices that actually matter for code
- Agentic coding: Why short agent loops beat heroic ones
- MCP servers: Sandboxing MCP tool calls so one bad prompt cannot ruin a week
- AI coding workflows: Time-boxing agent loops before they eat the day
- Prompt engineering for code: Prompts as contracts, not wishes
- Cline and Roo Code: Memory banks that outlive a single session
- JetBrains AI Assistant: Pairing AI Assistant with Code With Me for remote reviews
- Windsurf: Indexing strategies for a monorepo with generated code
- Cursor: Migrating a legacy module without losing git history or sanity
- Google Gemini: Crossing modalities: log, screenshot, code, spec, all in one turn
- ChatGPT Codex: Catching silent test skips before they ship to main
- Claude Code: Composing slash commands into a bespoke team-specific DSL
- GitHub Copilot: Measuring acceptance rate honestly instead of celebrating vanity metrics
- Local LLMs with Ollama: RAG over internal docs without handing them to a third party
- Agentic coding: Rollback plans for changes you did not watch land
- MCP servers: Versioning MCP servers like APIs, not like scripts
- AI coding workflows: Rescue patterns when an agent has gone off the rails
- Prompt engineering for code: Few-shot examples that teach taste, not just format
- Cline and Roo Code: Logging every turn so you can learn from the agent, not just use it
- JetBrains AI Assistant: Overlooked value of structural search and replace
- Windsurf: When to reach for Cascade and when to fall back to pure editing
- Cursor: Keeping tests running in the background while the agent edits
- Google Gemini: Keeping answers tight with explicit output contracts
- ChatGPT Codex: Treating Codex as a junior engineer with an infinite patience budget
- Claude Code: Diffing agent output against main before you trust a single file
- GitHub Copilot: Leaning on Copilot Edits for multi-file, reviewable diffs instead of raw chat
- Local LLMs with Ollama: Caching embeddings locally for a private retrieval layer
- Agentic coding: Honest case for agents that only suggest
- MCP servers: Why your wiki should probably be an MCP resource
- AI coding workflows: Writing acceptance tests first, agents second
- Prompt engineering for code: Diffing prompts the way you diff code
- Cline and Roo Code: Why open-source agents are a better teacher than closed ones
- JetBrains AI Assistant: Resisting the urge to turn every green inspection into an agent task
- Windsurf: Value of a pause button in an otherwise relentless agent
- Cursor: Cheap wins: keybindings that turn Cursor into a proper editor
- Google Gemini: Using long context to write migration scripts that respect every edge
- ChatGPT Codex: Splitting epics into Codex-sized tasks on purpose
- Claude Code: Quiet art of pausing the agent instead of letting it churn
- GitHub Copilot: Underrated power of /explain on legacy code no one dares to touch
- Local LLMs with Ollama: When a local 7B beats a cloud 70B in latency-sensitive loops
- Agentic coding: How to review a PR an agent opened in the middle of the night
- MCP servers: Composing agents over a catalogue of shared MCP tools
- AI coding workflows: Treating diffs as the primary artefact, chat as exhaust
- Prompt engineering for code: How to write a system prompt you can still read in six months
- Cline and Roo Code: Roo modes that codify team-specific workflows
- JetBrains AI Assistant: Writing specs as Markdown that Junie can consume
- Windsurf: Pairing Cascade with a linter that refuses bad taste
- Cursor: Right amount of automation before it becomes magical thinking
- Google Gemini: Generating Mermaid architecture diagrams the agent can then critique
- ChatGPT Codex: Auditing the diff, not the narrative – the code is the contract
- Claude Code: Keeping Claude honest with explicit acceptance criteria, not vibes
- GitHub Copilot: Copilot Spaces as shared context libraries for team onboarding
- Local LLMs with Ollama: Thermal budget of a MacBook pretending to be a server
- Agentic coding: Guardrails before autonomy, always
- MCP servers: Least-privilege auth for MCP in a real enterprise
- AI coding workflows: Scorecard question: did this PR have to exist?
- Prompt engineering for code: Structured outputs: JSON schemas that keep agents honest
- Cline and Roo Code: Building an internal guardrails library on top of Cline
- JetBrains AI Assistant: When the IDE already knows the answer and the agent just needs to ask
- Windsurf: What Windsurf teaches about the ergonomics of agent IDEs
- Cursor: Resetting indexes when completions start feeling stale
- Google Gemini: Pairing Gemini with Code Assist for refactors that span a whole module
- ChatGPT Codex: Keeping the human in the loop by requiring explicit acceptance
- Claude Code: Hooks that enforce lint, test and security gates before any write
- GitHub Copilot: Constraining the agent with .github/copilot-instructions.md for reproducible behaviour
- Local LLMs with Ollama: Running evals locally before trusting a new model
- Agentic coding: Planning outputs as the real product of the first turn
- MCP servers: Testing MCP servers with a plain JSON-RPC client first
- AI coding workflows: Pair-with-AI rituals that survive a team of ten
- Prompt engineering for code: Difference between role prompts and persona cosplay
- Cline and Roo Code: Routing cheap models for boilerplate, frontier models for design
- JetBrains AI Assistant: Scoping Junie tasks by module to keep review tractable
- Windsurf: Using write-mode sparingly to protect your muscle memory
- Cursor: Pairing tab with explicit intent comments to steer predictions
- Google Gemini: Auditing IAM policies with a million-token sweep over Terraform
- ChatGPT Codex: Parallelising bug-fix attempts and picking the cleanest patch
- Claude Code: Checkpointing long sessions to protect yourself from context rot
- GitHub Copilot: Switching models mid-conversation when reasoning quality starts to degrade
- Local LLMs with Ollama: Pairing Ollama with Continue or Cline for a private IDE
- Agentic coding: What to log when an agent writes for you
- MCP servers: Treating MCP servers as a supply chain, not a side project
- AI coding workflows: Daily shutdown routine that actually ships code
- Prompt engineering for code: Turning specs into prompts without losing the nuance
- Cline and Roo Code: Plan mode as a cheap dry run before committing budget
- JetBrains AI Assistant: Using inspections as invisible rails for the agent
- Windsurf: Keeping the editor quiet until you ask for help
- Cursor: Composer runs that land a feature in a single reviewable diff
- Google Gemini: Using Gemini CLI as glue between Cloud Run and your local repo
- ChatGPT Codex: Using AGENTS.md to describe the environment the sandbox must respect
- Claude Code: Writing a CLAUDE.md that captures tacit team knowledge
- GitHub Copilot: Running Copilot CLI as a scriptable review step inside pre-commit hooks
- Local LLMs with Ollama: Keeping a small local model honest with tight prompts
- Agentic coding: Difference between an agent and a slow script
- MCP servers: Exposing read-only resources before you expose write actions
- AI coding workflows: Small reversible steps instead of one heroic prompt
- Prompt engineering for code: Acceptance criteria as the only prompt that matters
- Cline and Roo Code: Auditing every tool call before it touches a file
- JetBrains AI Assistant: Refactorings that remain safe because JetBrains understands types
- Windsurf: Flows that preserve intent across a long refactor
- Cursor: Agent mode as a disciplined driver, not a replacement for review
- Google Gemini: Debugging a production incident from a screenshot and a log bundle
- ChatGPT Codex: Scoping tasks tightly enough that the agent can finish in one pass
- Claude Code: Using sub-agents for parallel research across a large codebase
- GitHub Copilot: Pairing inline completion with a custom instructions file to enforce house style
- Local LLMs with Ollama: Picking a local model for the specific task, not for the benchmark
- Agentic coding: Budgets as the only feature that stops a bad loop
- MCP servers: Smallest MCP server that earns its keep
- AI coding workflows: Review cycle that keeps agent output honest
- Prompt engineering for code: Shortest prompt that still passes review
- Cline and Roo Code: Picking a model per task instead of per editor
- JetBrains AI Assistant: Letting Junie drive while the IDE still owns correctness
- Windsurf: Cascade as a deliberate planning surface, not an auto-pilot
- Cursor: Writing .cursorrules that actually stay short and enforceable
- Google Gemini: Feeding an entire service plus its tests into a single prompt
- ChatGPT Codex: Letting Codex open the PR while you stay the reviewer of record
- Claude Code: Planning mode as a cheap insurance policy against cascading edits
- GitHub Copilot: Using the @workspace agent to plan multi-file refactors before a single line is written
- GitHub Copilot: First honest week with GitHub Copilot on a real codebase
- Local LLMs with Ollama: Teaching a team to trust a model they own end to end
- Agentic coding: What agentic coding taught us about how we really work
- MCP servers: First comparison between MCP and home-grown tool plumbing
- AI coding workflows: What we retired because an agent finally did it well
- Prompt engineering for code: Prompt engineering as writing, not programming
- Cline and Roo Code: Teaching juniors by pairing on Cline sessions
- JetBrains AI Assistant: Writing specs tight enough for Junie to execute cleanly
- Windsurf: Retrospective after our first Windsurf-heavy sprint
- Cursor: Teaching Cursor the house style without a wall of prose
- Google Gemini: Gemini for Workspace as the quiet engineering multiplier
- ChatGPT Codex: Pairing Codex with tight acceptance criteria for the first time
- Claude Code: First pass at measuring Claude Code against ordinary coding
- GitHub Copilot: Small refactor Copilot did not quite nail, and why it mattered
- Local LLMs with Ollama: First honest benchmark between local and cloud models
- Agentic coding: Retrospective after our first week of full agentic coding
- MCP servers: Testing MCP servers with the same rigor as customer-facing APIs
- AI coding workflows: When taking the keyboard back was the real productivity move
- Prompt engineering for code: Honest taxonomy of prompts, as discovered in practice
- Cline and Roo Code: Plan mode budget that caught a runaway loop early
- JetBrains AI Assistant: First safe refactor that felt genuinely new
- Windsurf: Onboarding a new hire with Windsurf already installed
- Cursor: First code review after a heavy Cursor day
- Google Gemini: First attempt at Vertex evaluations for code tasks
- ChatGPT Codex: Measuring what Codex actually merged, not what it attempted
- Claude Code: Learning to pause the agent on purpose
- GitHub Copilot: Onboarding a junior engineer with Copilot already in the seat
- Local LLMs with Ollama: Cost-per-token in wall time, discovered by accident
- Agentic coding: Deliberate agent downtime as an early productivity discovery
- MCP servers: Teaching the team MCP through a single example server
- AI coding workflows: Daily checklist that outlasted two tool migrations
- Prompt engineering for code: Shorter prompts after a month of deliberately deleting words
- Cline and Roo Code: What closed-source agents still did better, and where they did not
- JetBrains AI Assistant: Teaching Junie through existing Markdown docs
- Windsurf: Write mode restraint in the first month of use
- Cursor: Learning to write intent in comments, not in chat
- Google Gemini: Honest cost of long-context prompts in a small team
- ChatGPT Codex: Small playbook that made Codex predictable
- Claude Code: Moment Claude Code beat a human reviewer on taste
- GitHub Copilot: First model switch inside Copilot Chat, and what it taught us
- Local LLMs with Ollama: Air-gapped development as a serious practice, not a demo
- Agentic coding: First PR an agent opened that we merged without edits
- MCP servers: What the protocol gave us and what our product still had to
- AI coding workflows: First retrospective on what AI did and did not change
- Prompt engineering for code: First prompt rot we detected, and the lessons from it
- Cline and Roo Code: Quiet pleasure of reading every tool call
- JetBrains AI Assistant: Early taste tests: JetBrains AI versus the newcomers
- Windsurf: Windsurf setting that changed how we reviewed code
- Cursor: Pricing tier choices with incomplete information
- Google Gemini: First real comparison we ran between Gemini and the rest
- ChatGPT Codex: Choosing Codex for upgrades, humans for design
- Claude Code: Slash commands as the first real team workflow
- GitHub Copilot: When to lean on Copilot CLI instead of the IDE extension
- Local LLMs with Ollama: Pairing Ollama with Continue for a first private IDE setup
- Agentic coding: Cost-per-merged-change metric we invented out of necessity
- MCP servers: First MCP server a security review actually approved
- AI coding workflows: Diff as primary artefact, chat as exhaust, a first lesson
- Prompt engineering for code: How we measured prompt quality before we had metrics
- Cline and Roo Code: First month of honest logs from an open-source agent
- JetBrains AI Assistant: First CI run with Junie as a contributor
- Windsurf: First MCP server we plugged into Windsurf
- Cursor: Undoing Cursor changes on purpose, a first discipline
- Google Gemini: When to ask Gemini and when to open the logs yourself
- ChatGPT Codex: First time we stopped Codex mid-task and why
- Claude Code: When headless Claude Code became part of our CI
- GitHub Copilot: Measuring Copilot adoption without lying to ourselves
- Local LLMs with Ollama: Offline code reviewer that survived a flaky Wi-Fi week
- Agentic coding: Long-running agent that finally paused itself
- MCP servers: Observability gaps that bit us exactly once
- AI coding workflows: Acceptance tests first, agents second, as a beginner mantra
- Prompt engineering for code: Style guides for both humans and models, a beginner attempt
- Cline and Roo Code: Running Cline against a local LLM for the first time
- JetBrains AI Assistant: When Junie finished the task we had been avoiding
- Windsurf: Beginner comparison: Windsurf, Cursor, VS Code Agent
- Cursor: MCP inside Cursor as an early glimpse of the toolbelt
- Google Gemini: Writing Mermaid diagrams Gemini could then critique
- ChatGPT Codex: Budgeting Codex tasks when usage was still a black box
- Claude Code: Turning a chaotic commit history into a tidy narrative
- GitHub Copilot: Premium request debate, before anyone had real data
- Local LLMs with Ollama: Caching embeddings locally for a beginner RAG
- Agentic coding: How a junior engineer earned their first autonomous task
- MCP servers: Versioning MCP servers like APIs, a first-year habit
- AI coding workflows: Choosing boredom over brilliance in the first year
- Prompt engineering for code: When a prompt quietly became a feature spec
- Cline and Roo Code: Memory banks as a beginner experiment in agent continuity
- JetBrains AI Assistant: Pairing Code With Me with AI Assistant for remote review
- Windsurf: Pausing Cascade versus pausing yourself
- Cursor: When agent mode decided to write tests we never wrote
- Google Gemini: Verbosity we trimmed in month two
- ChatGPT Codex: Diff-first review habit we learned from Codex
- Claude Code: First time Claude Code said no to a bad instruction
- GitHub Copilot: Discovering Copilot Edits and rethinking the pull request
- Local LLMs with Ollama: Moment a local 7B beat the cloud on a real task
- Agentic coding: Case for suggest-only agents in safety-critical code
- MCP servers: First sandboxing policy we wished we had started with
- AI coding workflows: Shutdown routine that made AI-heavy days survivable
- Prompt engineering for code: Diffing prompts without a system, and the system that followed
- Cline and Roo Code: Picking models per task with almost no data, and learning fast
- JetBrains AI Assistant: AI Assistant versus plain inspections on the same codebase
- Windsurf: First atomic commit authored entirely by Cascade
- Cursor: First week we stopped fighting Cursor and let it drive
- Google Gemini: Mixing AI Studio and Code Assist without losing context
- ChatGPT Codex: When Codex rewrote code we did not ask it to
- Claude Code: Running Claude Code on a legacy repo nobody wanted to touch
- GitHub Copilot: First .github/copilot-instructions.md that actually shipped
- Local LLMs with Ollama: Local evaluations that predicted our first cloud regression
- Agentic coding: Short loops as the winning rhythm, discovered through long ones
- MCP servers: Why we promoted an internal wiki to an MCP resource
- AI coding workflows: Time-boxing agent loops before they ate the afternoon
- Prompt engineering for code: Prompt library we started in a shared Markdown file
- Cline and Roo Code: First audit trail that made a security lead smile
- JetBrains AI Assistant: Beginner workflow with Junie, ADRs, and module scope
- Windsurf: Writing our first Cascade-friendly task spec
- Cursor: Indexing hiccups on a monorepo larger than the demo
- Google Gemini: IAM audits with Gemini: the day it noticed what we missed
- ChatGPT Codex: Scoping tasks to finish in a single pass, a beginner lesson
- Claude Code: Hooks as a cheap gateway drug to workflow automation
- GitHub Copilot: Why @workspace changed how we wrote issues
- Local LLMs with Ollama: Quantisation choices with incomplete information
- Agentic coding: First rollback plan we actually used
- MCP servers: Composing agents over a tiny catalogue of shared tools
- AI coding workflows: Rescue patterns discovered after the first agentic disaster
- Prompt engineering for code: Few-shot examples drawn from our own first PRs
- Cline and Roo Code: Cline tool manifests we shared with colleagues over lunch
- JetBrains AI Assistant: First inspection the agent actually listened to
- Windsurf: Windsurf defaults we kept and the ones we overrode
- Cursor: Composer for the first multi-file refactor we trusted
- Google Gemini: First migration we ran through a single long prompt
- ChatGPT Codex: First Codex PR that shipped without a human touch
- Claude Code: Cost spike that taught us to checkpoint
- GitHub Copilot: Copilot Chat in the terminal versus the editor, a first look
- Local LLMs with Ollama: Thermal limits on the first serious local code session
- Agentic coding: Guardrails before autonomy, learned the expensive way
- MCP servers: First auth model we picked, and later regretted
- AI coding workflows: Scorecard that replaced vanity metrics in month three
- Prompt engineering for code: Role prompts the first time we stopped cosplaying with them
- Cline and Roo Code: Roo modes that encoded our first team conventions
- JetBrains AI Assistant: Refactoring across types with AI Assistant and not losing sleep
- Windsurf: What the first long Cascade session actually cost
- Cursor: Tab predict surprises that made us rewrite comments
- Google Gemini: Gemini CLI as a weekend scripting partner
- ChatGPT Codex: Parallel tasks and the temptation to scope too wide
- Claude Code: Sub-agents the first time they saved an afternoon
- GitHub Copilot: Early art of rejecting suggestions without hurting velocity
- Local LLMs with Ollama: Private RAG pipelines, assembled out of a weekend of curiosity
- Agentic coding: Planning outputs as the real product of the initial turn
- MCP servers: Early protocol tour, done with a plain JSON-RPC client
- AI coding workflows: Pair-with-AI rituals for a team that had never tried them
- Prompt engineering for code: Structured outputs, discovered the hard way
- Cline and Roo Code: Plan mode as a cheap insurance policy from day one
- JetBrains AI Assistant: Structural search as the hidden rail for early prompts
- Windsurf: Moment Windsurf made a skeptical reviewer pause
- Cursor: Agent mode as a faster, more honest pair programmer
- Google Gemini: Multimodal debugging with a single screenshot
- ChatGPT Codex: Sandbox surprises in the first month of Codex
- Claude Code: Planning mode as the training wheels we kept
- GitHub Copilot: When inline completion earned its place in the daily loop
- Local LLMs with Ollama: Picking a local model for code without benchmarks to lean on
- Agentic coding: Budgets as the first feature any agent had to have
- MCP servers: Exposing read-only resources before we dared expose actions
- AI coding workflows: Small reversible steps as a rhythm we borrowed from elsewhere
- Prompt engineering for code: Learning that acceptance criteria beat cleverness
- Cline and Roo Code: Bring-your-own-key in the early days of model pricing
- JetBrains AI Assistant: Junie arrives: the first autonomous task we trusted
- Windsurf: Flows as a new way to carry intent across files
- Cursor: Writing a .cursorrules file that did not embarrass us
- Google Gemini: Gemini Code Assist versus the API, a first year comparison
- ChatGPT Codex: Writing AGENTS.md for a team that had never used agents
- Claude Code: Writing your first CLAUDE.md and learning what to leave out
- GitHub Copilot: Teaching Copilot your repository one readme at a time
- Local LLMs with Ollama: First week running Ollama on a work laptop
- Agentic coding: First overnight agent run we dared to approve
- MCP servers: First MCP server that earned its keep
- AI coding workflows: First weekly review that made AI-assisted work sustainable
- Prompt engineering for code: First prompts we wrote that still pass review a year later
- Cline and Roo Code: First open-source agent we actually trusted
- JetBrains AI Assistant: AI Assistant day one in a JetBrains shop
- Windsurf: First look at Cascade after a year of Cursor
- Cursor: First hour inside Cursor after years of VS Code
- Google Gemini: First million-token prompt we actually sent
- ChatGPT Codex: First Codex task that opened a real pull request
- Claude Code: First week of Claude Code at the terminal
- GitHub Copilot: First honest week with GitHub Copilot on a real codebase
- Local LLMs with Ollama: Teaching a team to trust a model they own end to end
- Agentic coding: What agentic coding taught us about how we really work
- MCP servers: First comparison between MCP and home-grown tool plumbing
- AI coding workflows: What we retired because an agent finally did it well
- Prompt engineering for code: Prompt engineering as writing, not programming
- Cline and Roo Code: Teaching juniors by pairing on Cline sessions
- JetBrains AI Assistant: Writing specs tight enough for Junie to execute cleanly
- Windsurf: Retrospective after our first Windsurf-heavy sprint
- Cursor: Teaching Cursor the house style without a wall of prose
- Google Gemini: Gemini for Workspace as the quiet engineering multiplier
- ChatGPT Codex: Pairing Codex with tight acceptance criteria for the first time
- Claude Code: First pass at measuring Claude Code against ordinary coding
- GitHub Copilot: Small refactor Copilot did not quite nail, and why it mattered
- Local LLMs with Ollama: First honest benchmark between local and cloud models
- Agentic coding: Retrospective after our first week of full agentic coding
- MCP servers: Testing MCP servers with the same rigor as customer-facing APIs
- AI coding workflows: When taking the keyboard back was the real productivity move
- Prompt engineering for code: Honest taxonomy of prompts, as discovered in practice
- Cline and Roo Code: Plan mode budget that caught a runaway loop early
- JetBrains AI Assistant: First safe refactor that felt genuinely new
- Windsurf: Onboarding a new hire with Windsurf already installed
- Cursor: First code review after a heavy Cursor day
- Google Gemini: First attempt at Vertex evaluations for code tasks
- ChatGPT Codex: Measuring what Codex actually merged, not what it attempted
- Claude Code: Learning to pause the agent on purpose
- GitHub Copilot: Onboarding a junior engineer with Copilot already in the seat
- Local LLMs with Ollama: Cost-per-token in wall time, discovered by accident
- Agentic coding: Deliberate agent downtime as an early productivity discovery
- MCP servers: Teaching the team MCP through a single example server
- AI coding workflows: Daily checklist that outlasted two tool migrations
- Prompt engineering for code: Shorter prompts after a month of deliberately deleting words
- Cline and Roo Code: What closed-source agents still did better, and where they did not
- JetBrains AI Assistant: Teaching Junie through existing Markdown docs
- Windsurf: Write mode restraint in the first month of use
- Cursor: Learning to write intent in comments, not in chat
- Google Gemini: Honest cost of long-context prompts in a small team
- ChatGPT Codex: Small playbook that made Codex predictable
- Claude Code: Moment Claude Code beat a human reviewer on taste
- GitHub Copilot: First model switch inside Copilot Chat, and what it taught us
- Local LLMs with Ollama: Air-gapped development as a serious practice, not a demo
- Agentic coding: First PR an agent opened that we merged without edits
- MCP servers: What the protocol gave us and what our product still had to
- AI coding workflows: First retrospective on what AI did and did not change
- Prompt engineering for code: First prompt rot we detected, and the lessons from it
- Cline and Roo Code: Quiet pleasure of reading every tool call
- JetBrains AI Assistant: Early taste tests: JetBrains AI versus the newcomers
- Windsurf: Windsurf setting that changed how we reviewed code
- Cursor: Pricing tier choices with incomplete information
- Google Gemini: First real comparison we ran between Gemini and the rest
- ChatGPT Codex: Choosing Codex for upgrades, humans for design
- Claude Code: Slash commands as the first real team workflow
- GitHub Copilot: When to lean on Copilot CLI instead of the IDE extension
- Local LLMs with Ollama: Pairing Ollama with Continue for a first private IDE setup
- Agentic coding: Cost-per-merged-change metric we invented out of necessity
- MCP servers: First MCP server a security review actually approved
- AI coding workflows: Diff as primary artefact, chat as exhaust, a first lesson
- Prompt engineering for code: How we measured prompt quality before we had metrics
- Cline and Roo Code: First month of honest logs from an open-source agent
- JetBrains AI Assistant: First CI run with Junie as a contributor
- Windsurf: First MCP server we plugged into Windsurf
- Cursor: Undoing Cursor changes on purpose, a first discipline
- Google Gemini: When to ask Gemini and when to open the logs yourself
- ChatGPT Codex: First time we stopped Codex mid-task and why
- Claude Code: When headless Claude Code became part of our CI
- GitHub Copilot: Measuring Copilot adoption without lying to ourselves
- Local LLMs with Ollama: Offline code reviewer that survived a flaky Wi-Fi week
- Agentic coding: Long-running agent that finally paused itself
- MCP servers: Observability gaps that bit us exactly once
- AI coding workflows: Acceptance tests first, agents second, as a beginner mantra
- Prompt engineering for code: Style guides for both humans and models, a beginner attempt
- Cline and Roo Code: Running Cline against a local LLM for the first time
- JetBrains AI Assistant: When Junie finished the task we had been avoiding
- Windsurf: Beginner comparison: Windsurf, Cursor, VS Code Agent
- Cursor: MCP inside Cursor as an early glimpse of the toolbelt
- Google Gemini: Writing Mermaid diagrams Gemini could then critique
- ChatGPT Codex: Budgeting Codex tasks when usage was still a black box
- Claude Code: Turning a chaotic commit history into a tidy narrative
- GitHub Copilot: Premium request debate, before anyone had real data
- Local LLMs with Ollama: Caching embeddings locally for a beginner RAG
- Agentic coding: How a junior engineer earned their first autonomous task
- MCP servers: Versioning MCP servers like APIs, a first-year habit
- AI coding workflows: Choosing boredom over brilliance in the first year
- Prompt engineering for code: When a prompt quietly became a feature spec
- Cline and Roo Code: Memory banks as a beginner experiment in agent continuity
- JetBrains AI Assistant: Pairing Code With Me with AI Assistant for remote review
- Windsurf: Pausing Cascade versus pausing yourself
- Cursor: When agent mode decided to write tests we never wrote
- Google Gemini: Verbosity we trimmed in month two
- ChatGPT Codex: Diff-first review habit we learned from Codex
- Claude Code: First time Claude Code said no to a bad instruction
- GitHub Copilot: Discovering Copilot Edits and rethinking the pull request
- Local LLMs with Ollama: Moment a local 7B beat the cloud on a real task
- Agentic coding: Case for suggest-only agents in safety-critical code
- MCP servers: First sandboxing policy we wished we had started with
- AI coding workflows: Shutdown routine that made AI-heavy days survivable
- Prompt engineering for code: Diffing prompts without a system, and the system that followed
- Cline and Roo Code: Picking models per task with almost no data, and learning fast
- JetBrains AI Assistant: AI Assistant versus plain inspections on the same codebase
- Windsurf: First atomic commit authored entirely by Cascade
- Cursor: First week we stopped fighting Cursor and let it drive
- Google Gemini: Mixing AI Studio and Code Assist without losing context
- ChatGPT Codex: When Codex rewrote code we did not ask it to
- Claude Code: Running Claude Code on a legacy repo nobody wanted to touch
- GitHub Copilot: First .github/copilot-instructions.md that actually shipped
- Local LLMs with Ollama: Local evaluations that predicted our first cloud regression
- Agentic coding: Short loops as the winning rhythm, discovered through long ones
- MCP servers: Why we promoted an internal wiki to an MCP resource
- AI coding workflows: Time-boxing agent loops before they ate the afternoon
- Prompt engineering for code: Prompt library we started in a shared Markdown file
- Cline and Roo Code: First audit trail that made a security lead smile
- JetBrains AI Assistant: Beginner workflow with Junie, ADRs, and module scope
- Windsurf: Writing our first Cascade-friendly task spec
- Cursor: Indexing hiccups on a monorepo larger than the demo
- Google Gemini: IAM audits with Gemini: the day it noticed what we missed
- ChatGPT Codex: Scoping tasks to finish in a single pass, a beginner lesson
- Claude Code: Hooks as a cheap gateway drug to workflow automation
- GitHub Copilot: Why @workspace changed how we wrote issues
- Local LLMs with Ollama: Quantisation choices with incomplete information
- Agentic coding: First rollback plan we actually used
- MCP servers: Composing agents over a tiny catalogue of shared tools
- AI coding workflows: Rescue patterns discovered after the first agentic disaster
- Prompt engineering for code: Few-shot examples drawn from our own first PRs
- Cline and Roo Code: Cline tool manifests we shared with colleagues over lunch
- JetBrains AI Assistant: First inspection the agent actually listened to
- Windsurf: Windsurf defaults we kept and the ones we overrode
- Cursor: Composer for the first multi-file refactor we trusted
- Google Gemini: First migration we ran through a single long prompt
- ChatGPT Codex: First Codex PR that shipped without a human touch
- Claude Code: Cost spike that taught us to checkpoint
- GitHub Copilot: Copilot Chat in the terminal versus the editor, a first look
- Local LLMs with Ollama: Thermal limits on the first serious local code session
- Agentic coding: Guardrails before autonomy, learned the expensive way
- MCP servers: First auth model we picked, and later regretted
- AI coding workflows: Scorecard that replaced vanity metrics in month three
- Prompt engineering for code: Role prompts the first time we stopped cosplaying with them
- Cline and Roo Code: Roo modes that encoded our first team conventions
- JetBrains AI Assistant: Refactoring across types with AI Assistant and not losing sleep
- Windsurf: What the first long Cascade session actually cost
- Cursor: Tab predict surprises that made us rewrite comments
- Google Gemini: Gemini CLI as a weekend scripting partner
- ChatGPT Codex: Parallel tasks and the temptation to scope too wide
- Claude Code: Sub-agents the first time they saved an afternoon
- GitHub Copilot: Early art of rejecting suggestions without hurting velocity
- Local LLMs with Ollama: Private RAG pipelines, assembled out of a weekend of curiosity
- Agentic coding: Planning outputs as the real product of the initial turn
- MCP servers: Early protocol tour, done with a plain JSON-RPC client
- AI coding workflows: Pair-with-AI rituals for a team that had never tried them
- Prompt engineering for code: Structured outputs, discovered the hard way
- Cline and Roo Code: Plan mode as a cheap insurance policy from day one
- JetBrains AI Assistant: Structural search as the hidden rail for early prompts
- Windsurf: Moment Windsurf made a skeptical reviewer pause
- Cursor: Agent mode as a faster, more honest pair programmer
- Google Gemini: Multimodal debugging with a single screenshot
- ChatGPT Codex: Sandbox surprises in the first month of Codex
- Claude Code: Planning mode as the training wheels we kept
- GitHub Copilot: When inline completion earned its place in the daily loop
- Local LLMs with Ollama: Picking a local model for code without benchmarks to lean on
- Agentic coding: Budgets as the first feature any agent had to have
- MCP servers: Exposing read-only resources before we dared expose actions
- AI coding workflows: Small reversible steps as a rhythm we borrowed from elsewhere
- Prompt engineering for code: Learning that acceptance criteria beat cleverness
- Cline and Roo Code: Bring-your-own-key in the early days of model pricing
- JetBrains AI Assistant: Junie arrives: the first autonomous task we trusted
- Windsurf: Flows as a new way to carry intent across files
- Cursor: Writing a .cursorrules file that did not embarrass us
- Google Gemini: Gemini Code Assist versus the API, a first year comparison
- ChatGPT Codex: Writing AGENTS.md for a team that had never used agents
- Claude Code: Writing your first CLAUDE.md and learning what to leave out
- GitHub Copilot: Teaching Copilot your repository one readme at a time
- Local LLMs with Ollama: First week running Ollama on a work laptop
- Agentic coding: First overnight agent run we dared to approve
- MCP servers: First MCP server that earned its keep
- AI coding workflows: First weekly review that made AI-assisted work sustainable
- Prompt engineering for code: First prompts we wrote that still pass review a year later
- Cline and Roo Code: First open-source agent we actually trusted
- JetBrains AI Assistant: AI Assistant day one in a JetBrains shop
- Windsurf: First look at Cascade after a year of Cursor
- Cursor: First hour inside Cursor after years of VS Code
- Google Gemini: First million-token prompt we actually sent
- ChatGPT Codex: First Codex task that opened a real pull request
- Claude Code: First week of Claude Code at the terminal
- GitHub Copilot: First honest week with GitHub Copilot on a real codebase