6 minute read

Hey there, LISA here! 🙂

In my previous post, I showed you Kiro’s Requirements → Design process. Today, I’ll share how the actual development unfolds in detail!

Task Creation: Design Becomes Work!

Task List

Once design is complete, Kiro automatically generates tasks. And this was really what impressed me!

Difference from Task Master

Task Master takes a PRD and creates tasks, but without an intermediate design phase:

  • Lack of systematic management: Design and implementation are mixed within tasks
  • No approval process: PRD → direct task generation → immediate execution
  • Hard to predict: Work starts before seeing the big picture

Kiro Spec Mode focuses on step-by-step confirmation:

  • Requirements organizedI approve
  • Design document createdI approve
  • Task list generatedI approve
  • Clear understanding and approval at each stage makes prediction much better

Generated Task List

✅ Task completed: Extend front matter structure for multilingual support
  - Add 'lang' field to identify post language
  - Add 'translation_key' field to link related translations
  - Add 'translations' hash with available language URLs
  - Update existing posts with new front matter fields

✅ Task completed: Implement category translation system
  - Create Liquid filter for category name translation
  - Update category archive pages to use translated names
  - Modify post display templates to show translated categories
  - Ensure category URLs reflect the selected language

🔵 Task in progress: Create directory structure for translated posts
  - Create '_posts/en/' directory for English translations
  - Create '_posts/es/' directory for Spanish translations
  - Set up proper Jekyll collection configuration for language directories
  - Test post discovery and URL generation for translated content

⭕ Start task: Implement SEO optimization for multilingual content
  - Create '_includes/hreflang-tags.html' for automatic hreflang generation
  - Update '_includes/seo.html' to include language-specific meta tags
  - Add language information to structured data (JSON-LD)
  - Ensure proper HTML lang attribute setting based on content language

See! Content from the design phase converted directly to tasks!

Task Execution: Faster Than Cursor!

Task Execution Process

The process of executing tasks one by one was really impressive!

Why It’s Fast

With Cursor:

  • “Do this” → code generation → check → request changes → generate again

With Kiro:

  • Specific methods already determined in design phase
  • During task execution, it just implements the design content
  • No time wasted wondering “how should I do this?”

Actual Work Process

Task 7: Set up multilingual configuration structure from tasks.md
Status: In Progress

I'll implement task 1 to set up the multilingual configuration structure. Let me start by examining the current _config.yml file to understand the existing configuration.

📂 Read file(s) _config.yml

Now I need to examine the existing posts to understand the current categories that need translation mappings.

📂 Read file(s) 
  • 2025-09-04-tipsmart-development-story.md 1 → 16
  • 2025-09-05-jekyll-blog-setup-guide.md 1 → 16  
  • 2025-09-06-what-is-vibe-coding.md 1 → 16
  • 2025-09-07-ai-development-tools-comparison.md 1 → 16

Now I have a good understanding of the existing categories. Let me add the multilingual configuration to the _config.yml file. Based on the posts, I can see the following categories that need translation mappings:

• 바이브코딩 (Vibe Coding)
• AI도구 (AI Tools)  
• Mobile
• Development
• Story
• Jekyll

✅ Accepted edits to _config.yml

Now let me verify the configuration was added correctly by reading the updated file:

📂 Read file(s) _config.yml 90 → 131
📂 Read file(s) _config.yml 130 → 171

Perfect! The multilingual configuration has been successfully added to _config.yml.

See! It systematically checks and proceeds step by step! Much more natural than the Task Master + Claude Code combination.

Task Completion: Summary of Results!

Task Completion Summary

When a task completes, it neatly summarizes what was accomplished:

Task 1 Completed: Set up multilingual configuration structure

Added language configuration in _config.yml with supported languages: • Korean (ko) - set as default
• English (en) • Spanish (es)

Added category translation mappings for existing categories: • 바이브코딩 → vibe-coding (en), codificacion-vibe (es) • AI도구 → ai-tools (en), herramientas-ia (es)
• Mobile → mobile (en), movil (es) • Development → development (en), desarrollo (es) • Story → story (en), historia (es) • Jekyll → jekyll (en), jekyll (es)

Configured language metadata including: • Locales (ko-KR, en-US, es-ES) • Text direction (ltr for all languages) • Language flags and display names

The configuration has been validated with jekyll doctor and everything looks good. The multilingual foundation is now in place for the next tasks in the implementation plan.

This level of systematicness is like actual human work!

Automatic Testing: Verifying It Actually Works!

Automatic Testing Process

The most impressive part was automatic testing!

🔍 Searched workspace
Looking for structured data in the generated HTML

Let me check the translation structured data specifically:
📂 Read file(s) what-is-vibe-coding.html 840 → 861

Perfect! Now let me test the error handling scenarios. Let me create a post without a translation_key to test the fallback behavior:

📝 Created 2025-09-08-test-no-translation-key.md

Let me rebuild the site to test the error handling:
⚡ Command
bundle exec jekyll build --trace

Configuration file: /Users/jongrokkm/XcodeProjects/blogs/_config.yml
To use retry middleware with Faraday v2.0+, install `faraday-retry`
        Source: /Users/jongrokkm/XcodeProjects/blogs
   Destination: /Users/jongrokkm/XcodeProjects/blogs/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
           Remote Theme: Using theme mmistakes/minimal-mistakes
                    done in 2.947 seconds.
 Auto-regeneration: disabled. Use --watch to enable.

Now let me check if the error handling works for the post without translation_key:
📂 Read file(s) test-no-translation-key.html 770 → 811

I notice that the error handling for missing translation_key isn't showing. Let me check if the translation links component is being included. The issue might be that the condition in the layout is checking for page.lang but no translation_key.

It tests like a real developer!

  • Checks normal cases
  • Tests error cases too
  • Actually builds to verify functionality
  • Analyzes root causes when problems are found

Clear Differences from Cursor and Claude Code

1. Step-by-step Approval Workflow

  • Task Master: PRD → generate all tasks at once → immediate execution
  • Cursor/Claude Code: Each works separately → context breaks in between
  • Kiro: Requirements approval → Design approval → Tasks approval → step-by-step execution

2. Work Predictability

  • Existing tools: “What will it create this time?” anxiety
  • Kiro: Everything shown in design phase → predictable

3. Quality Control

  • Existing: I manually test and verify
  • Kiro: Automatically tests and checks error cases

4. Collaboration Style

  • Existing: Me → AI tool (one-way)
  • Kiro: Me ↔ Kiro (interactive improvement)

Honest Overall Review

👍 Really Great Aspects

  • Systematic approach: Perfect Requirements → Design → Tasks flow
  • Predictability: Can know what and how everything will be done in advance
  • Quality: Automatic testing makes it trustworthy
  • Speed: No time wasted wandering around in the middle

😅 Areas for Improvement

  • Learning curve: Spec mode looks a bit complex at first
  • Paid service: Already paying for other tools, so can’t continue using immediately
  • Web development focused: Curious how it would work for mobile app development

Conclusion: Found a Task Master Replacement!

Honestly, I think it could completely replace the Task Master + Claude Code combination.

Especially for:

  • Solo developers
  • People who want systematic processes
  • Web development projects

In these cases, Kiro Spec mode would be much better!

When my other paid tools expire, I’m seriously considering switching to Kiro. This level of quality is definitely worth the investment.

Of course, this doesn’t mean Task Master is bad at all! It’s just a different approach. Task Master is also a fantastic tool, and I was able to successfully create TipSmart thanks to the Task Master + Claude Code combination.

Starting with the next post, I’ll return to the originally planned story and systematically introduce the actual process of developing an iOS app with Task Master and Claude Code! I’ll share everything from PRD creation to managing 50-60 tasks, including the real problems I encountered.

📱 Keep Loving TipSmart!

Got so caught up in exciting new tool stories that I almost forgot about my first work! 😅

Download TipSmart from App Store 📱


If this post was helpful, please share it on social media! It’ll help those comparing Kiro with other AI tools!