To use Claude Code effectively, the first thing you need is not a technical trick, but a mindset shift. We are no longer developers writing code alone. We are agentic developers working with a powerful AI partner.
Hackathon winner ykdojo repeatedly emphasizes that the core of successful AI collaboration is the ability to break down a big problem into smaller pieces. This is an important principle in traditional software engineering, but it becomes even more decisive when collaborating with AI, because AI performs best when given clear and concrete instructions.
Bad approach:
"Build me a login page."
A vague request like this gives AI too much decision-making power and increases the chance it goes in a direction you didn't want.
Agentic developer approach:
ykdojo applied this principle to build his own voice transcription system. Instead of starting with "build a voice transcription app," he decomposed the work like this:
By completing and validating each step before moving on, he was able to build a complex system reliably.
Direct path (high failure rate): A → B
Stepwise path (high success rate): A → A1 → A2 → A3 → B
Because you validate at each stage and only need to fix that stage if something breaks, debugging becomes much easier.
Claude Code offers two working styles. Choosing the right mode for the situation is a key skill for maximizing productivity.
Press Shift+Tab twice to enter Plan Mode. In this mode, Claude:
But it won't edit anything until you approve it. This implements the philosophy: "Think twice, execute once."
Ado's advice:
"I default to Plan Mode about 90% of the time. In the latest version, you can give feedback when rejecting a plan, which makes iteration faster."
When to use Plan Mode:
If you run with claude --dangerously-skip-permissions, Claude auto-approves all actions. The word "dangerously" is there for a reason.
When to use YOLO Mode:
Warning: do not use YOLO Mode directly on your host system. ykdojo compares it to "unprotected sex" and strongly recommends using it only inside a container.
The most important resource in AI collaboration is context. Claude Code has a large context window (up to 200,000 tokens), but it is not infinite.
ykdojo's analogy: "AI context is like milk"
"The key is keeping it fresh and compressed. Like old milk spoils, old context degrades AI performance."
Context is like AI's working memory. When it fills up with system prompts, code files, chat history, etc., AI can suffer from context drift: it forgets earlier important instructions. One study found that mixing multiple topics in one conversation can degrade performance by up to 39%.
In a single conversation (terminal session), focus on one clear goal. If you're implementing login and suddenly ask, "and also improve the dashboard UI," your context gets polluted. Instead, open a new terminal tab and start a separate conversation.
As conversations get long, ask for a HANDOFF.md file for the next agent, then start fresh with /clear.
ykdojo's real prompt:
Put the rest of the plan in the system-prompt-extraction folder as HANDOFF.md. Explain what you have tried,
what worked, what didn't work, so that the next agent with fresh context is able to just load that file and nothing
else to get started on this task and finish it up.
Claude then generates a HANDOFF.md that includes content like:
# System Prompt Slimming - Handoff Document
## Goal
Reduce Claude Code's system prompt by ~45% (currently at 11%, need ~34% more).
## Current Progress
### What's Been Done
- Removed verbose examples from tool descriptions
- Shortened permission explanations
- Consolidated redundant instructions
### What Worked
- Regex-based pattern matching for finding repetitive text
- Testing each change individually before committing
### What Didn't Work
- Removing safety warnings (caused unexpected behavior)
- Over-aggressive minification (broke JSON parsing)
## Next Steps
1. Target the MCP server descriptions (estimated 2k tokens)
2. Simplify the hooks documentation
3. Test thoroughly after each change
Use /context to see exactly what consumes the context window:
With that information, you can disable unnecessary MCPs or unload unused skills.
Claude Code auto-compacts when the context fills up. ykdojo prefers to disable auto-compaction via /config and manage it manually, because:
ykdojo compares using Claude Code to "exploring a giant iceberg." Sometimes you want a high-level view (Vibe Coding), and sometimes you need to dive into details (Deep Dive).
You focus on the overall structure and flow and don't sweat individual lines. This is suitable for:
You carefully inspect files, functions, code lines, and even dependencies. This is needed for:
ykdojo's advice:
"Some people say Vibe Coding is bad, but sometimes it's totally fine. The key is choosing the right abstraction level for the situation. It's not binary."
Practical example when adding a new feature:
ykdojo says that using Claude Code made him "braver in the unknown." This shows that AI collaboration can expand not only productivity but also confidence and learning capacity.
Real example 1: not a React expert, but...
ykdojo found an issue in frontend code while working at Daft. He wasn't a React expert, but by repeatedly exploring the problem with Claude Code, he eventually fixed it.
Real example 2: new to Rust, but...
He faced a complex problem mixing Python and Rust. Even though he'd never worked with Rust, he asked Claude Code questions, explored the codebase, tried multiple solutions, and found an elegant fix.
The iterative problem-solving process:
ykdojo's lesson:
"Even in unknown worlds, with Claude Code you can do far more than you think. The key is controlling speed, asking the right questions, and iterating."