How I Integrate Claude Code to my Dev Workflow
Using commands, context, modes, and MCP servers in Claude
Claude Code is arguably one of the best coding assistants right now. It allows you to use AI to execute tasks directly from your terminal. You give it a task, and it figures out what needs to be done to complete it. It decides the steps required, chooses the tools or models to use, and works with what is available within its context.
It can refer to other files, pull in instructions from different sources, and connect to other systems when needed. It operates beyond a simple prompt-response flow and acts more like a coding agent that can carry out a sequence of actions to get to an outcome.
Honestly, it is a really useful tool to have in your developer workflow. Here are some of the things I found useful while using it.
Adding Context to a Project for Claude
When working on a project, giving Claude the right context is key. Providing too much information at once can actually reduce its performance. Claude works best when instructions are structured clearly and concisely.
One way to set this up is by running the /init command in Claude on your project. This lets Claude analyse the entire codebase to understand the project’s purpose, architecture, important commands, critical files, coding patterns, and structure. After this analysis, Claude generates a summary and writes it to a Claude.md file, usually stored in the home directory of your project.
The Claude.md file serves two purposes. First, it guides Claude through the codebase by highlighting important aspects like coding style, architecture, and structure. Second, it allows you to include custom instructions for Claude. Every request you make to Claude automatically includes this file, acting like a persistent system prompt. Without it, you would need to repeat context in each prompt, which can be tedious.
The Claude.md file can exist in three locations:
Claude.md– Generated with the/initcommand, this version can be committed to version control and shared with other engineers.Claude.local.md– Contains personal or private instructions that should not be shared.~/.claude/Claude.md– Applies to all projects on your machine, providing global instructions that Claude should always follow.
You can also add or edit instructions directly. Typing a hash (#) followed by a command, like # XYZ, updates the appropriate section in your Claude.md file. To reference files in your project, you can use the at sign (@) to point Claude to a specific file, either in your codebase or within your Claude.md file.
This system keeps Claude aligned with your project, ensures consistent behaviour, and allows for customisations without repeating instructions.
Modes
Two modes Claude can be used in are planning and thinking.
Planning mode is for reviewing what Claude intends to do before it actually executes a task. Instead of producing the implementation right away, it shows the steps it plans to take. This is especially useful for complex tasks that require extensive research across the codebase.
To enable planning mode, press Shift and tap twice. This prevents Claude from starting implementation immediately, so you can approve its plan first. If you already have auto-accept edits enabled, pressing Shift + Tab once also puts you in planning mode.
Thinking mode is for deeper analysis. It is triggered by keywords that control the depth of reasoning:
think– basic reasoningthink more– extended reasoningthink a lot– comprehensive reasoningthink longer– extended time reasoningultra-think– maximum reasoning capacity
Use the thinking mode when you want Claude to analyse a problem deeply before addressing it. Planning mode, in contrast, focuses on broader research across the project rather than deep analysis.
You can combine both modes to guide Claude more intentionally, but doing so consumes more tokens. This combination helps you be deliberate about what changes are made, when they happen, and what to expect from those changes.
Managing Context with /compact
One command that becomes very useful for maintaining and controlling context in your conversations is the /compact command.
When you are working on a task over a long conversation, the context can build up quickly. You may not want to start a new thread, but at the same time, you might be done with the existing context in that conversation.
The /compact command solves this by compressing the entire conversation history into a summary. This frees up more context while still preserving the key information from what has already been discussed.
It is a practical way to continue working in the same conversation or transition into a new one without losing the important context you have built up.
Custom Commands
Claude comes with built-in commands that you can access by typing /. But you can also create your own custom commands.
This is especially useful for repetitive tasks where you want to maintain consistency in how things are done. Instead of rewriting the same instructions every time, you can define a custom command once and reuse it.
To set this up, you create a .claude folder in your project directory. Inside it, you create another folder called commands. For each custom command, you create a markdown file named after the command, for example command-name.md.
To use the command in Claude, you simply type /command-name.
You can also make these commands more flexible by passing arguments to them, such as file paths, text, or numbers. This allows you to adapt the command to different situations while keeping the structure consistent.
This approach helps you standardise workflows and repeatedly provide specific instructions as part of your context.
MCP Servers
MCP is a way to enhance the functionality of Claude Code and coding agents by giving them access to external software. Instead of figuring everything out on their own, they can leverage tools that already exist to perform specific tasks.
For example, if you want to interact with a database, run tests on your application, integrate with a development tool, or perform operations on your file system, there is already software designed for these use cases. MCP allows AI to access that software through MCP servers, rather than trying to handle everything itself.
To use an MCP server, you add it to your project using a command like claude mcp add followed by the server details. You can then manage permissions in the .claude/settings.local.json file, where you define what the server is allowed to do.
Once connected, you can simply reference the capability in your prompt. For example, if an MCP server is available for working with databases, you can ask Claude to build or connect to a database, and it will use that server to carry out the task.
This makes it easier to extend what Claude can do by plugging into tools that are already built for those functions.









