DEV Community

Muhammad Umair Ashraf
Muhammad Umair Ashraf

Posted on Edited on

AWS Kiro Core: Building Smarter Applications with Agentic Development

AI coding tools are changing how developers build software.

Today, we can ask AI to generate functions, explain errors, create APIs, write tests, and even help build complete applications.

But there is one important problem: generating code does not automatically mean building good software.

A reliable application still needs clear requirements, proper architecture, consistent coding standards, security, testing, and maintainability.

This is where AWS Kiro becomes interesting.

Kiro is an agentic development environment from AWS that helps developers go beyond simple AI code generation. It introduces structured development workflows through specifications, steering documents, agent hooks, MCP integrations, and specialized agent capabilities.

Instead of simply asking AI to write code, developers can guide an agent through understanding a project, defining requirements, designing a solution, implementing features, and validating the results.

In this article, we'll explore AWS Kiro Core, understand its most useful capabilities, and build a practical Student Management Portal feature using a hands-on approach.

1. What Is AWS Kiro?

AWS Kiro is an agentic integrated development environment designed to help developers build and maintain software with AI assistance.

Traditional AI coding assistants generally focus on answering questions, generating code snippets, and completing code.

Kiro takes a broader approach by supporting different stages of software development.

Imagine that you want to add a student search feature to an existing application.

You might initially ask:

Add a search feature to my
Student Management Portal.
Enter fullscreen mode Exit fullscreen mode

But several questions remain:

  • Should users search by name, email, or student ID?
  • Should the feature support filters?
  • How should pagination work?
  • Which APIs need to change?
  • What validation is required?
  • How should authorization work?
  • Which automated tests should be added?

Kiro helps developers approach these questions systematically.

A simplified agentic development workflow looks like this:

       Business Requirement
                |
                v
          Requirements
                |
                v
          Technical Design
                |
                v
        Implementation Tasks
                |
                v
          Code Generation
                |
                v
          Testing & Review
                |
                v
          Working Feature
Enter fullscreen mode Exit fullscreen mode

The key idea is to understand the problem before implementing the solution.

2. Core AWS Kiro Capabilities

Let's explore the capabilities that make Kiro useful for modern software engineering.

2.1 Spec-Driven Development

One of Kiro's most interesting capabilities is spec-driven development.

In many AI coding workflows, developers provide a prompt and immediately receive generated code.

That approach can work for small tasks, but larger features need proper planning.

Spec-driven development introduces a structured process before implementation.

A typical specification contains three important artifacts.

requirements.md

Describes what needs to be built.

It can include:

  • User stories.
  • Functional requirements.
  • Acceptance criteria.
  • Expected application behavior.
  • Validation requirements.

design.md

Describes how the feature should be implemented.

It may include:

  • Application architecture.
  • Database changes.
  • API design.
  • Component responsibilities.
  • Security considerations.
  • Technical decisions.

tasks.md

Breaks implementation into manageable development tasks.

Example:

Student Search Feature

1. Review the existing student model.
2. Review the current student API.
3. Add search functionality.
4. Add course filtering.
5. Add enrollment status filtering.
6. Implement pagination.
7. Add input validation.
8. Write automated tests.
9. Verify existing functionality.
Enter fullscreen mode Exit fullscreen mode

The developer can review these files, correct requirements, and approve the plan before implementation begins.

Why is this useful?

It reduces ambiguity and gives developers more control over what the agent is going to build.

Rather than discovering missing requirements after code generation, teams can identify them during planning.

2.2 Steering Documents

One common problem with AI coding assistants is repeatedly explaining the same project details.

For example:

  • Which programming language does the project use?
  • Which framework is being used?
  • What database is configured?
  • What coding standards should be followed?
  • Where should new files be created?
  • How should errors be handled?

Kiro uses steering documents to provide persistent project-specific guidance.

A typical project structure looks like this:

my-application/
│
├── frontend/
├── backend/
├── tests/
│
└── .kiro/
    └── steering/
        ├── product.md
        ├── tech.md
        └── structure.md
Enter fullscreen mode Exit fullscreen mode

Example tech.md:

# Technology Standards

- Backend: Python FastAPI
- Frontend: React
- Database: PostgreSQL
- API architecture: REST
- Testing framework: Pytest

# Development Guidelines

- Follow existing project conventions.
- Validate user inputs.
- Use environment variables for configuration.
- Never hardcode credentials.
- Write automated tests for new features.
- Avoid unnecessary dependencies.
- Follow least-privilege security principles.
Enter fullscreen mode Exit fullscreen mode

Steering documents should describe the actual project rather than introducing technologies that the application does not use.

Productivity benefit: Developers spend less time repeating project instructions, and AI-generated changes can follow established development standards more consistently.

2.3 Agent Hooks

Developers frequently perform repetitive activities:

  • Running tests after modifying code.
  • Checking coding standards.
  • Reviewing changes.
  • Updating documentation.
  • Validating configuration files.

Kiro Hooks can help automate development activities based on configured events.

Example workflow:

Developer Changes Code
          |
          v
       Agent Hook
          |
          v
     Run Test Command
          |
          v
     Review Test Results
          |
          v
    Developer Reviews Fixes
Enter fullscreen mode Exit fullscreen mode

For example, you can configure a workflow that runs relevant backend tests after backend files are modified.

Hooks can reduce manual effort and help developers maintain consistent workflows.

However, automation should be configured carefully. Running tests is generally low risk, while deploying code or modifying production infrastructure requires stronger safeguards.

2.4 Model Context Protocol (MCP)

The Model Context Protocol, commonly called MCP, provides a standardized way for AI agents to interact with external tools and services through configured MCP servers.

This is useful because developers often need information outside their local codebase.

For example, when developing an AWS application, you might need to:

  • Find AWS service documentation.
  • Understand an API operation.
  • Check configuration requirements.
  • Investigate integration problems.
  • Access connected developer tools.

With an appropriately configured MCP server, Kiro can interact with supported external tools and retrieve relevant information.

The AWS Documentation MCP server is particularly useful for AWS-related development workflows.

Example prompt:

Research the best AWS services for deploying
this application.

Explain:

1. Suitable AWS services.
2. Deployment architecture.
3. Security considerations.
4. Networking requirements.
5. Cost considerations.
6. Monitoring and logging options.

Use the available AWS documentation tools.

Do not create or deploy AWS resources.
Only provide a technical recommendation.
Enter fullscreen mode Exit fullscreen mode

MCP does not automatically grant unrestricted access to external systems. Available tools and permissions depend on the server configuration and the permissions granted to the agent.

2.5 Agent Skills and Powers

Skills and Powers help extend agent capabilities with specialized instructions, knowledge, and tools.

Imagine that you regularly perform:

  • AWS architecture reviews.
  • Application security checks.
  • Documentation generation.
  • Infrastructure development.
  • Code quality reviews.

Instead of explaining the entire workflow every time, you can use reusable specialized capabilities.

Some practical areas include:

  • AWS development.
  • Security reviews.
  • Documentation generation.
  • Infrastructure development.
  • Code quality checks.

The goal is to make agents more useful for specialized engineering responsibilities.

2.6 Custom Agents and Permissions

Different software development tasks require different responsibilities.

For example:

Agent role Responsibility
Code Review Agent Review code changes and identify issues
Testing Agent Identify missing tests and validate functionality
Infrastructure Agent Review infrastructure configuration
Documentation Agent Generate and maintain technical documentation

Custom agents can help organize work around these responsibilities.

Permissions are equally important.

An AI agent should not automatically receive unrestricted access to application files, credentials, databases, or cloud infrastructure.

Developers should configure access carefully and review high-impact operations before execution.

This becomes particularly important when using agents for AWS development and deployment workflows.

3. Kiro IDE, CLI, Web, Mobile, and Crew

Kiro's agent experience extends beyond a traditional code editor.

Depending on availability and product status, developers can explore different Kiro surfaces.

Kiro IDE: An integrated development environment for coding, specifications, steering documents, hooks, and agent workflows.

Kiro CLI: A command-line experience for interacting with agents directly from the terminal.

Kiro Web: A browser-based experience for agent-driven development tasks.

Kiro Mobile: A mobile experience for interacting with development tasks and agent activity. Check the official documentation for current availability and preview status.

Kiro Crew: An agent experience focused on ongoing work, reusable context, and task-oriented workflows.

These experiences provide more flexibility for developers who work across different environments.

Check the official Kiro documentation for the latest feature availability.

4. Vibe Coding vs. Spec-Driven Development

Two useful approaches to building applications with Kiro are vibe coding and spec-driven development.

Vibe Coding

Vibe coding is an interactive approach where developers describe what they want and work with AI to generate or modify code.

Example:

Create a modern student management dashboard.

Include:

- A sidebar.
- A student overview section.
- Student information cards.
- A searchable student table.
- A responsive layout.

Use the existing frontend framework.
Enter fullscreen mode Exit fullscreen mode

This approach is useful for:

  • Quick prototypes.
  • UI improvements.
  • Small features.
  • Experiments.
  • Learning new technologies.

Spec-Driven Development

Spec-driven development starts with requirements and technical planning.

Example:

Build a student search feature.

Requirements:

- Search by name, email, and student ID.
- Filter by course and enrollment status.
- Support pagination.
- Validate user inputs.
- Add automated tests.
- Follow existing authorization rules.

First generate the requirements,
technical design, and implementation tasks.

Wait for my approval before implementation.
Enter fullscreen mode Exit fullscreen mode

This approach is useful for:

  • Complex features.
  • Production applications.
  • Multi-component changes.
  • Team development.
  • Projects with clear acceptance criteria.

Neither approach is universally better. Choose based on the complexity and risk of the task.

5. Hands-On Project: Build a Student Search Feature Using Kiro

Let's apply these concepts in a practical project.

The AWS Kiro Core workshop provides a Student Management Portal learning exercise. We'll use a similar feature to demonstrate how Kiro can help transform a requirement into a working implementation.

Project Objective

Build a feature that allows users to:

  1. Search students by name.
  2. Search students by email.
  3. Search students by student ID.
  4. Filter students by course.
  5. Filter students by enrollment status.
  6. Navigate results using pagination.
  7. See a useful message when no results match.

Step 1: Access the AWS Kiro Core Workshop

Open the official workshop:

https://catalog.us-east-1.prod.workshops.aws/workshops/7aa94656-c586-4ee3-8b5a-5494b3b488b4

Follow the workshop setup instructions and prepare the provided development environment.

The workshop uses an AWS Academy lab environment. Follow its specific IAM and environment restrictions. Do not create additional resources or permissions that the lab does not allow.

Open the Student Management Portal project in Kiro.

Step 2: Ask Kiro to Understand the Existing Application

Before making changes, ask Kiro to analyze the project.

Use this prompt:

Analyze this Student Management Portal project.

I want to understand:

1. The frontend architecture.
2. The backend architecture.
3. The database structure.
4. Existing student-related APIs.
5. Current search and filtering functionality.
6. Authentication and authorization.
7. Existing testing approach.

Identify the files relevant to implementing
a student search and filter feature.

Do not modify any files yet.

Provide a clear summary of the existing
application architecture and development flow.
Enter fullscreen mode Exit fullscreen mode

Expected result:

Kiro should explain the existing project structure and identify the files relevant to the feature.

Review its findings before proceeding.

Step 3: Generate Steering Documents

Ask Kiro to document the project's technical context.

Analyze the existing application and create
project steering documents.

Create:

- product.md
- tech.md
- structure.md

Document:

1. Application purpose.
2. Technology stack.
3. Coding conventions.
4. Project directory structure.
5. Development standards.
6. Testing approach.
7. Security guidelines.

Use the existing project as the source of truth.

Do not invent technologies or change
the existing application architecture.
Enter fullscreen mode Exit fullscreen mode

Expected result:

Kiro should generate project-specific steering documents.

Review the content and correct any inaccurate information.

Step 4: Create the Feature Specification

Now move to spec-driven development.

Use this prompt:

Create a specification for a Student
Search and Filter feature.

Functional requirements:

1. Search students by name.
2. Search students by email.
3. Search students by student ID.
4. Filter students by course.
5. Filter students by enrollment status.
6. Support pagination.
7. Display a message when no students
   match the search.
8. Validate search inputs.
9. Follow existing authentication
   and authorization rules.
10. Add automated tests.

Generate these artifacts:

- requirements.md
- design.md
- tasks.md

Follow the existing application architecture
and project steering documents.

Do not implement the feature yet.

Wait for my review and approval
before making code changes.
Enter fullscreen mode Exit fullscreen mode

Expected result:

Kiro should help produce three specification artifacts.

Review the requirements, design decisions, and implementation tasks.

Check whether important edge cases are covered, including empty search terms, invalid inputs, duplicate records, and unauthorized access.

Step 5: Implement the Feature

After reviewing and approving the specification, ask Kiro to implement it.

Implement the approved Student Search
and Filter specification.

Follow the existing project architecture.

Work through the implementation tasks
in the specified order.

For each task:

1. Explain the planned changes.
2. Implement the required functionality.
3. Add or update automated tests.
4. Run relevant tests.
5. Summarize modified files.
6. Report any errors or limitations.

Do not modify unrelated functionality.

Ask for my approval before any destructive
or high-impact operation.
Enter fullscreen mode Exit fullscreen mode

Expected result:

Kiro should work through the implementation tasks and report the changes.

Review the generated code and diffs rather than accepting every change automatically.

Step 6: Create an Agent Hook

Let's automate part of the development workflow.

Use this prompt:

Create an agent hook that helps maintain
test coverage for the Student Management Portal.

When relevant backend files are modified,
run the appropriate backend test command.

When relevant frontend files are modified,
run the appropriate frontend test command.

Display test failures clearly.

Do not automatically deploy the application.
Do not make unrelated code changes.

Wait for developer review before
applying additional fixes.
Enter fullscreen mode Exit fullscreen mode

Configure the hook according to the actual project structure, available hook events, and test commands.

Expected result:

A reusable automation workflow that helps developers remember to run relevant tests after changes.

Step 7: Explore AWS Documentation Through MCP

Configure the AWS Documentation MCP server by following the official workshop instructions.

Then use this prompt:

I am preparing to deploy this application
on AWS.

Use the available AWS documentation tools
to research suitable deployment options.

Explain:

1. Suitable AWS services.
2. A possible deployment architecture.
3. Security considerations.
4. Networking requirements.
5. Cost considerations.
6. Monitoring and logging options.

Do not create AWS resources
or deploy the application.

Only provide a technical recommendation.
Enter fullscreen mode Exit fullscreen mode

Expected result:

Kiro can use the configured documentation tools to help research relevant AWS services and deployment considerations.

Review all recommendations against official AWS documentation before applying them.

Step 8: Test the Completed Feature

Finally, validate the implementation.

Use this checklist:

  • [ ] Search by student name works.
  • [ ] Search by email works.
  • [ ] Search by student ID works.
  • [ ] Course filtering works.
  • [ ] Enrollment status filtering works.
  • [ ] Pagination works.
  • [ ] Empty search results are handled correctly.
  • [ ] Invalid inputs are handled safely.
  • [ ] Authorization rules are respected.
  • [ ] Automated tests pass.
  • [ ] Existing application functionality still works.

What Have We Learned?

By completing this project, you will understand how to use Kiro for:

  • Understanding an existing codebase.
  • Creating project steering documents.
  • Defining feature requirements.
  • Designing implementation plans.
  • Generating and reviewing code.
  • Automating development checks.
  • Connecting external documentation through MCP.
  • Validating the final implementation.

This is a practical way to move from simply asking AI to generate code toward using an agentic development workflow.

6. How Kiro Can Improve Developer Productivity

Let's connect Kiro's capabilities with common software development challenges.

Development challenge Kiro capability Potential benefit
Unclear requirements Spec-driven development Better feature planning
Repeating project instructions Steering documents Consistent project context
Repetitive development checks Agent Hooks Less manual work
Finding external documentation MCP integrations Reduced context switching
Repeated specialized workflows Skills and Powers Reusable expertise
Different development responsibilities Custom agents Focused workflows
Managing agent activity Agent session management Better task visibility
Unwanted access to files or tools Permissions More control over agent actions

The biggest opportunity is reducing the time spent switching between planning, coding, documentation, testing, and troubleshooting.

However, productivity should not be measured only by how quickly code is generated.

A better measure is how quickly a developer can deliver a correct, tested, secure, and maintainable feature.

7. Best Practices for Using Kiro in Real Projects

Here are some practical recommendations for developers and engineering teams.

1. Understand the existing codebase first.

Ask Kiro to analyze the application architecture before requesting major changes.

2. Write clear prompts.

Include expected behavior, constraints, validation requirements, and edge cases.

3. Review specifications before implementation.

An incorrect requirement can produce incorrect code. Review the requirements and design before proceeding.

4. Keep steering documents updated.

Outdated technical context can lead to incorrect implementation decisions.

5. Automate repetitive tasks.

Use hooks for routine checks, but keep risky operations under developer control.

6. Apply least-privilege access.

Do not give agents unrestricted access to production environments, credentials, or cloud resources.

7. Test AI-generated code.

Run unit tests, integration tests, security checks, and application-level validation.

8. Review every important change.

Inspect code diffs, dependency changes, infrastructure modifications, and deployment plans.

9. Protect sensitive information.

Never expose API keys, database passwords, access tokens, or confidential application data in prompts or project documentation.

10. Keep humans involved in important decisions.

AI agents can accelerate engineering work, but developers remain responsible for architecture, security, quality, and production readiness.

8. Final Thoughts

AWS Kiro represents an important direction in AI-assisted software engineering.

The real opportunity is not simply asking AI to generate more code. It is using an agent that understands project context, helps define requirements, follows development standards, connects with useful tools, and supports repeatable engineering workflows.

Its combination of spec-driven development, steering documents, hooks, MCP integrations, and specialized agent capabilities can help developers approach software development in a more structured way.

The AWS Kiro Core workshop is a useful starting point because it brings these concepts together through practical exercises.

If you are a software developer, cloud engineer, DevOps engineer, or computer science student, I recommend trying the workshop yourself.

Start with a small feature, create its specification, review the design, implement the tasks, and test the result.

Let AI help you move faster, but keep engineering decisions, security, and final approval in your hands.


References and Further Learning

Here are the official resources to explore Kiro in more detail:

  1. AWS Kiro Core Workshop
  2. Kiro Official Documentation
  3. Kiro Official Website
  4. AWS Kiro Documentation Overview
  5. Kiro — Spec-Driven Development
  6. Kiro — Steering Documents
  7. Kiro — Hooks
  8. Kiro — MCP Integration
  9. Kiro — Agent Skills
  10. Kiro — Powers

Note: Kiro features, availability, and documentation can change. Check the official documentation for the latest information before following a particular setup or configuration procedure.


Have you tried agentic development with Kiro? Which capability would make the biggest difference in your daily development workflow: specs, steering, hooks, or MCP?

Share your experience in the comments!

Top comments (0)