Kiro University Challenge の Lessons 5〜7・ボーナス課題をクリアしてみた

Kiro University Challenge の Lessons 5〜7・ボーナス課題をクリアしてみた

Powers・MCP・Custom agents を設定し、Kiro Web も試した、Kiro University Challenge の続編記事です。`.kiro/` に JSON/Markdown を追加するだけで各機能が有効になる様子を、設定ファイルを中心に紹介します。
2026.09.24

はじめに

Kiro の使い方を短期間で学ぶオンラインチャレンジ、Kiro University Challenge が 2026年9月21日から10月5日にかけて開催されています。

https://aws.amazon.com/jp/blogs/news/kiro-university-challenge/

先行記事では Lessons 1〜4 を紹介しています。

https://dev.classmethod.jp/articles/kiro-university-challenge-lessons-1-4/

9/23 に Lessons 5〜6、9/24 に Lesson 7 とボーナス課題2つが公開されたので、成果を紹介します。

課題の題材は前回と同じ AWS What's New 通知ツール(aws-whatsnew-notifier)のリポジトリです。

https://github.com/cm-suzuki-ryo/kiro-university-challenge-2026

Lesson 5: Powers(500 credits)

Powers は、プロジェクト固有の手順や規約を Kiro に読み込ませる仕組みです。.kiro/powers/<power 名>/plugin.json を置くと認識されます。

{
  "name": "aws-whatsnew",
  "version": "1.0.0",
  "description": "Tools and best practices for the AWS What's New Notifier project. Loads setup skills and coding conventions when you mention 'aws-whatsnew' or 'whatsnew'.",
  "keywords": ["aws-whatsnew", "whatsnew", "aws", "rss", "sns", "notifier"],
  "skills": [
    {
      "name": "setup",
      "path": "skills/setup/SKILL.md"
    }
  ]
}

keywords で指定した語がチャットに現れると、この Power が読み込み対象になります。プロジェクト名だけでなく rsssns のように会話で自然に出てくる語も入れておくと、使う側が Power の存在を意識せずに済みます。skillspathplugin.json からの相対パスです。

読み込ませる中身は SKILL.md に Markdown で書きます。ここでは規約部分だけを抜き出します。

## Key Conventions

- Follow `.kiro/steering/python-style.md` for all Python code
- All functions must have type hints
- Use `logging` (not `print`) for output
- State file is stored at `state/seen.json`

規約の本体は Lesson 2 で作った python-style.md に置き、SKILL.md からはそこを参照させています。SKILL.md に書くのは、読み込み時に反映させたい要点だけです。

全文はリポジトリを参照してください。

https://github.com/cm-suzuki-ryo/kiro-university-challenge-2026/blob/main/.kiro/powers/aws-whatsnew/plugin.json

https://github.com/cm-suzuki-ryo/kiro-university-challenge-2026/blob/main/.kiro/powers/aws-whatsnew/skills/setup/SKILL.md

Lesson 6: MCP(1,000 credits)

MCP サーバの登録は .kiro/mcp.json だけで済みます。ここでは URL の取得に使う fetch サーバを登録しました。

{
  "mcpServers": {
    "fetch": {
      "command": "uvx",
      "args": ["mcp-server-fetch"],
      "disabled": false
    }
  }
}

commanduvx を選んだのは、uv が入っていればサーバのパッケージを事前にインストールせずに起動できるためです。

https://github.com/cm-suzuki-ryo/kiro-university-challenge-2026/blob/main/.kiro/mcp.json

Lesson 7: Custom agents(1,000 credits)

Custom agents は、使えるツールと事前ロードするファイルを指定したエージェントを .kiro/agents/ に定義する機能です。src/tests/ の実装作業用に1つ作りました。

{
  "name": "notifier-dev",
  "description": "Development agent for aws-whatsnew-notifier. Focused on src/ and tests/.",
  "tools": ["read", "write", "shell"],
  "includeMcpJson": false,
  "includePowers": false,
  "resources": [
    "file://./.kiro/specs/filter-and-notify.md",
    "file://./.kiro/steering/python-style.md"
  ],
  "permissions": {
    "rules": [
      { "capability": "shell", "match": ["python3 *", "pytest *", "git *"], "effect": "allow" }
    ]
  },
  "prompt": "You are a development assistant for the aws-whatsnew-notifier project. Always follow the coding style in python-style.md and implement features according to filter-and-notify.md.",
  "welcomeMessage": "Ready. I have the spec and style guide loaded. What would you like to work on?"
}

実装作業だけを任せたいので、includeMcpJsonincludePowers はどちらも false にしています。Lesson 5・6 で足した Power と MCP サーバは、このエージェントには読み込まれません。代わりに resources で Lesson 1 の spec と Lesson 2 の steering を直接渡し、prompt でその2ファイルに従うよう指示しています。

permissionsmatch はルールを適用するコマンドのパターンで、effect で許可・拒否を決めます。ここでは実装とテストで使う python3pytestgit を allow にしました。

https://github.com/cm-suzuki-ryo/kiro-university-challenge-2026/blob/main/.kiro/agents/notifier-dev.json

Bonus Lesson 1: Kiro Web と cloud session(250 credits、有料プランのみ)

Kiro Web はブラウザから Kiro のセッションを開く機能です。同じリポジトリを Kiro Web から開きました。

Kiro Web でセッションを開いた画面

Kiro Web がリポジトリを解析した結果の画面

Kiro Web の cloud configuration では、今回 .kiro/agents/.kiro/hooks/.kiro/powers/ の3つをアップロードしました。この範囲の設定はブラウザ側のセッションでもそのまま使えます。有料プランであれば、この課題のために追加で書くファイルはありません。

Bonus Lesson 2: Power のパッケージング(250 credits)

配布できる Power の単位は plugin.jsonskills/ の組です。Lesson 5 で作った .kiro/powers/aws-whatsnew/ がそのままこの形になっているため、パッケージングのために構成を変える作業は発生しませんでした。リポジトリを public で公開すれば、他のプロジェクトからも参照できます。

.kiro/ の最終構成

全レッスンを終えた時点のディレクトリです。

.kiro/
├── agents/
│   └── notifier-dev.json     ← Lesson 7
├── hooks/
│   └── hooks.json            ← Lesson 3
├── mcp.json                  ← Lesson 6
├── powers/
│   └── aws-whatsnew/
│       ├── plugin.json       ← Lesson 5 / Bonus 2
│       └── skills/setup/SKILL.md
├── specs/
│   └── filter-and-notify.md  ← Lesson 1
└── steering/
    └── python-style.md       ← Lesson 2

まとめ

Kiro University Challenge の Lessons 1〜7 とボーナス課題2つを完走しました。このあと成果物の紹介動画を作り、エントリーフォームから応募する予定です。

題材は RSS を取得して分類・通知するだけの小さな仕組みでしたが、Kiro の仕様駆動開発、Powers・MCP・Custom agents がそれぞれ何を担うのかを、手を動かしながら把握できるレッスン構成でした。仕組み自体はシンプルなので、通知先や分類ルールを増やすといった応用も検討しています。

Lesson 7 までは無料プランの Kiro で試せます。この記事を参考に一度手を動かしてみて、仕様駆動開発を体験してください。

成果物ができたら、エントリーして Kiro のクレジットを獲得するのもおすすめです。

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事