<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title></title>
    <link rel="self" type="application/atom+xml" href="https://blog.y4suyuki.com/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://blog.y4suyuki.com"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-05-29T18:12:00+09:00</updated>
    <id>https://blog.y4suyuki.com/atom.xml</id>
    <entry xml:lang="en">
        <title>superpowers</title>
        <published>2026-05-29T18:12:00+09:00</published>
        <updated>2026-05-29T18:12:00+09:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.y4suyuki.com/blog/superpowers/"/>
        <id>https://blog.y4suyuki.com/blog/superpowers/</id>
        
        <content type="html" xml:base="https://blog.y4suyuki.com/blog/superpowers/">&lt;p&gt;superpowers を使えば coding agent のカスタマイズで 90 点くらい取れるということでしばらく試してみている&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;obra&#x2F;superpowers&quot;&gt;https:&#x2F;&#x2F;github.com&#x2F;obra&#x2F;superpowers&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;しばらく使ってみて手放せなくなっているので使用感を紹介したい&lt;&#x2F;p&gt;
&lt;p&gt;チームメンバーにも徐々に使っていってもらっている&lt;&#x2F;p&gt;
&lt;h2 id=&quot;superpowers&quot;&gt;superpowers&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;obra&#x2F;superpowers?tab=readme-ov-file#superpowers&quot;&gt;https:&#x2F;&#x2F;github.com&#x2F;obra&#x2F;superpowers?tab=readme-ov-file#superpowers&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Superpowers is a complete software development workflow for your coding agents, built on top of a set of composable &quot;skills&quot; and some initial instructions that make sure your agent uses them.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;改めてこれを読むと、例えば claude code などはコーディングに特化しているかというと必ずしもそうではなく、API や MCP を使って分析や作業をさせたりできる汎用的な AI Agent interface であって、コーディングにおいてのプラクティスを強化する余地は大きい&lt;&#x2F;p&gt;
&lt;p&gt;super powers を使うと開発における coding agent としてのカスタマイズを一気にインストールすることができる&lt;&#x2F;p&gt;
&lt;p&gt;ハーネスの方向性として２種類あって&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;一般的なソフトウェア開発の進め方におけるベストプラクティス&lt;&#x2F;li&gt;
&lt;li&gt;AI agentを使った開発におけるベストプラクティス&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;このそれぞれにおいて世に出回っている tips 的なものは大抵抑えられていると思う&lt;&#x2F;p&gt;
&lt;h2 id=&quot;インストール&quot;&gt;インストール&lt;&#x2F;h2&gt;
&lt;p&gt;インストールは github にあるインストール方法を参照して各自のツールでのインストール方法を参照すれば良い&lt;&#x2F;p&gt;
&lt;p&gt;インストールすると様々な SKILL などがインストールされる&lt;&#x2F;p&gt;
&lt;p&gt;これらを必要に応じて呼び出すわけだが、superpowers としてインストールしておけば明示的に呼び出すことは普段の開発ではめったに無いと思う&lt;&#x2F;p&gt;
&lt;h2 id=&quot;実装タスク&quot;&gt;実装タスク&lt;&#x2F;h2&gt;
&lt;p&gt;例えば新しいタスクに着手したい場合、最近は会社で Linear というタスク管理ツールを使っているので、 Linear で管理している issue （チケット）を指定して「 &lt;code&gt;${linear_issue_id}&lt;&#x2F;code&gt; に着手します」という感じで claude code とのチャットをスタートする&lt;&#x2F;p&gt;
&lt;p&gt;coding agent が issue の情報を取得するとだいたい brainstorm skill を使用して planning するための brainstorming を開始する&lt;&#x2F;p&gt;
&lt;h3 id=&quot;brainstorming&quot;&gt;brainstorming&lt;&#x2F;h3&gt;
&lt;p&gt;skill file はこれ&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;obra&#x2F;superpowers&#x2F;blob&#x2F;main&#x2F;skills&#x2F;brainstorming&#x2F;SKILL.md&quot;&gt;https:&#x2F;&#x2F;github.com&#x2F;obra&#x2F;superpowers&#x2F;blob&#x2F;main&#x2F;skills&#x2F;brainstorming&#x2F;SKILL.md&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;brainstorming では planning でやることのスコープを絞る前に issue から読み取れる情報やそれ以上の情報を踏まえ実装時に考慮すべき可能性を広げるために想像力を膨らませながら、必要なときは適宜質問しながら planning に必要な情報を足していく&lt;&#x2F;p&gt;
&lt;p&gt;これをskill がやってくれるので、こっちはどちらかというと受け身で必要な情報を補足したり、前提など違ってそうなところあれば指摘して直す&lt;&#x2F;p&gt;
&lt;p&gt;このプロセスの気が利いてるところは、要件について整理しながら「こういうケースはどうしますか？」とかを聞いてくれて、チケット作成時に見落としているようなケースについて確認をしてくれたりするので重宝している&lt;&#x2F;p&gt;
&lt;p&gt;UIとして気が利いているのは design 上のオプションをいくつか提示してくれてどっちが良いか、足したいコメントがあるかなど聞いてくれるので、大抵いちいちプロンプト入れなくても選択肢を選ぶだけで良い&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;ox-hugo&#x2F;blog-image1.png&quot; alt=&quot;img&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;あともう一つ気に入っているのが visual comparison でUIの実装について特に細かい指示を与えてない場合、UIのイメージを実際にHTMLに書き出してどれが良いか聞いてくれる&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;ox-hugo&#x2F;blog-image2.png&quot; alt=&quot;img&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;ox-hugo&#x2F;blog-image3.png&quot; alt=&quot;img&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;質問が一通りできて、 design が固まってきたら design doc を作成する&lt;&#x2F;p&gt;
&lt;p&gt;細かいけど coding にしろ design doc にしろ、基本的にまず self review が入っているのも良い&lt;&#x2F;p&gt;
&lt;h3 id=&quot;実装プラン&quot;&gt;実装プラン&lt;&#x2F;h3&gt;
&lt;p&gt;design doc ができたら review して問題なければ writing plan skill を使って実装プランを作成していく&lt;&#x2F;p&gt;
&lt;p&gt;writing-plan の skill file はこれ&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;obra&#x2F;superpowers&#x2F;blob&#x2F;main&#x2F;skills&#x2F;writing-plans&#x2F;SKILL.md&quot;&gt;https:&#x2F;&#x2F;github.com&#x2F;obra&#x2F;superpowers&#x2F;blob&#x2F;main&#x2F;skills&#x2F;writing-plans&#x2F;SKILL.md&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;実装プランは design doc から実際の実装タスクを書き起こす&lt;&#x2F;p&gt;
&lt;p&gt;あまりここで質問されることはないので出来上がった plan を見て問題なければ次へ進む&lt;&#x2F;p&gt;
&lt;p&gt;こんな感じで基本的にはこのあとの実装フェーズの agent への指示書となっているのであまりレビューしたい観点はない&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;markdown&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F5C2E7;&quot;&gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt; **&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F38BA8;font-weight: bold;&quot;&gt;For agentic workers:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;**&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F5C2E7;&quot;&gt; REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;`- [ ]`&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F5C2E7;&quot;&gt;) syntax for tracking.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;**&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F38BA8;font-weight: bold;&quot;&gt;Goal:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;**&lt;&#x2F;span&gt;&lt;span&gt; Add a slash-command-driven resume review feature (&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;`&#x2F;review advisor`&lt;&#x2F;span&gt;&lt;span&gt; and &lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;`&#x2F;review interviewer`&lt;&#x2F;span&gt;&lt;span&gt;) that streams Japanese critique into the chat and persists it to history.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;**&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F38BA8;font-weight: bold;&quot;&gt;Architecture:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;**&lt;&#x2F;span&gt;&lt;span&gt; Client-side slash-command parser. Custom &lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;`prepareSendMessagesRequest`&lt;&#x2F;span&gt;&lt;span&gt; on &lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;`DefaultChatTransport`&lt;&#x2F;span&gt;&lt;span&gt; routes &lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;`&#x2F;review *`&lt;&#x2F;span&gt;&lt;span&gt; to a new &lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;`POST &#x2F;api&#x2F;review`&lt;&#x2F;span&gt;&lt;span&gt; endpoint while non-slash messages keep going to &lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;`&#x2F;api&#x2F;chat`&lt;&#x2F;span&gt;&lt;span&gt;. The endpoint loads the resume, builds a reviewer system prompt for the requested mode, and streams Claude Sonnet 4.5 with no tools. Result is persisted as a normal assistant chat message.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;**&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F38BA8;font-weight: bold;&quot;&gt;Tech Stack:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;**&lt;&#x2F;span&gt;&lt;span&gt; Next.js 16 (App Router), Vercel AI SDK v6 (&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;`ai`&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;`@ai-sdk&#x2F;react`&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;`@ai-sdk&#x2F;anthropic`&lt;&#x2F;span&gt;&lt;span&gt;), Drizzle&#x2F;SQLite, Zod v4, Vitest.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;**&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F38BA8;font-weight: bold;&quot;&gt;Spec:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;**&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; `docs&#x2F;superpowers&#x2F;specs&#x2F;2026-05-22-review-feature-design.md`&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FAB387;&quot;&gt;## File Structure&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;**&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F38BA8;font-weight: bold;&quot;&gt;New files&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;**&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; `src&#x2F;lib&#x2F;ai&#x2F;review-prompts.ts`&lt;&#x2F;span&gt;&lt;span&gt; — exports two Japanese reviewer system prompts (&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;`advisorPrompt`&lt;&#x2F;span&gt;&lt;span&gt;, &lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;`interviewerPrompt`&lt;&#x2F;span&gt;&lt;span&gt;).&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; `src&#x2F;lib&#x2F;chat&#x2F;slash-command.ts`&lt;&#x2F;span&gt;&lt;span&gt; — pure &lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;`parseSlashCommand(text)`&lt;&#x2F;span&gt;&lt;span&gt; function.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; `src&#x2F;lib&#x2F;chat&#x2F;__tests__&#x2F;slash-command.test.ts`&lt;&#x2F;span&gt;&lt;span&gt; — unit tests for the parser.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; `src&#x2F;app&#x2F;api&#x2F;review&#x2F;route.ts`&lt;&#x2F;span&gt;&lt;span&gt; — POST handler.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;**&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F38BA8;font-weight: bold;&quot;&gt;Modified files&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;**&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; `src&#x2F;components&#x2F;chat&#x2F;chat-interface.tsx`&lt;&#x2F;span&gt;&lt;span&gt; — replace &lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;`DefaultChatTransport`&lt;&#x2F;span&gt;&lt;span&gt; config with one that uses &lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;`prepareSendMessagesRequest`&lt;&#x2F;span&gt;&lt;span&gt; to switch endpoints.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;**&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F38BA8;font-weight: bold;&quot;&gt;Unchanged&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;**&lt;&#x2F;span&gt;&lt;span&gt;: DB schema, types, &lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;`&#x2F;api&#x2F;chat`&lt;&#x2F;span&gt;&lt;span&gt;, main chat system prompt, resume UI components.&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;---&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #FAB387;&quot;&gt;## Task 1: Reviewer prompts&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;**&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F38BA8;font-weight: bold;&quot;&gt;Files:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;**&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span&gt; Create: &lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;`src&#x2F;lib&#x2F;ai&#x2F;review-prompts.ts`&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt;-&lt;&#x2F;span&gt;&lt;span&gt; [ ] &lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;**&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F38BA8;font-weight: bold;&quot;&gt;Step 1: Create review-prompts.ts&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;**&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Create &lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt;`src&#x2F;lib&#x2F;ai&#x2F;review-prompts.ts`&lt;&#x2F;span&gt;&lt;span&gt; with:&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;...&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h3 id=&quot;実装&quot;&gt;実装&lt;&#x2F;h3&gt;
&lt;p&gt;実装フェーズでは基本的にスタートしたら完了するまで待ち&lt;&#x2F;p&gt;
&lt;p&gt;最初に sub agent で並列で実装するかどうか聞いてくれるが、基本 sub agent で並列でやるで問題ない&lt;&#x2F;p&gt;
&lt;p&gt;実装フェーズは特に言うことはなくてまあ design 通りのものができる&lt;&#x2F;p&gt;
&lt;p&gt;実装のクオリティに関しては superpowers で担保する領域ではないので code architecture とか別の仕組みで強制させるか、既存のコードの質によると思うのでそこに問題があるならリファクタとかする&lt;&#x2F;p&gt;
&lt;h2 id=&quot;まとめ&quot;&gt;まとめ&lt;&#x2F;h2&gt;
&lt;p&gt;superpowers を使うことのメリットは planning の質が上がることと、 design doc がきちんと書ける事が大きいと思う&lt;&#x2F;p&gt;
&lt;p&gt;これまでも agent coding で実装がうまくいくかどうかは planning の質によると言われていたし、実際日々仕事で実装していて superpowers 使うようになってうまく plan できて実装もスムーズに終わることが大半なので非常に満足している&lt;&#x2F;p&gt;
&lt;p&gt;チーム開発においては AI-DLC では spec のレビューを同期でやると良いとされているが、実際に先日チームメイトと話していて planning のやり取りで選択肢を選ぶのに困る時があると聞いたので、そういうときはその領域に詳しいメンバーと一緒に同期で planning するのが良いかもしれない&lt;&#x2F;p&gt;
&lt;p&gt;またこの分野はかなり変遷激しいので半年もしないうちに superpowers よりよいプラクティスが出るかもしれないが、開発における本質的なところを抑えていると思うので人間のエンジニアが作業してるうちは結構使うのではと思っている&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>zola blogging</title>
        <published>2026-05-29T01:02:00+09:00</published>
        <updated>2026-05-29T01:02:00+09:00</updated>
        
        <author>
          <name>
            
              Unknown
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://blog.y4suyuki.com/blog/zola-blogging/"/>
        <id>https://blog.y4suyuki.com/blog/zola-blogging/</id>
        
        <content type="html" xml:base="https://blog.y4suyuki.com/blog/zola-blogging/">&lt;p&gt;zola は rust 製の静的サイトエンジン&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.getzola.org&#x2F;&quot;&gt;https:&#x2F;&#x2F;www.getzola.org&#x2F;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Your one-stop static site engine
Forget dependencies. Everything you need in one binary.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;zola で blog を作ったときのメモ&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why-zola&quot;&gt;Why zola&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;仕事で toC 向けのメディアをやっているので自分でサイトをホストしてみたかった&lt;&#x2F;li&gt;
&lt;li&gt;Next + vercel とかが慣れてるので速攻で始めやすいが、blog には too much だし、セキュリティとかの問題とかも考えると依存管理がシンプルなものが良い&lt;&#x2F;li&gt;
&lt;li&gt;emacs org mode で書いたものをそのまま公開できる&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;basics&quot;&gt;Basics&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;getting-started&#x2F;overview&#x2F;&quot;&gt;https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;getting-started&#x2F;overview&#x2F;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;この overview を一通りなぞればだいたい分かる
contents 以下に markdown を加えて build すれば静的サイトが作成されるので適当なところにホストすれば良い&lt;&#x2F;p&gt;
&lt;h2 id=&quot;extra-features&quot;&gt;Extra features&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;rss-feed&quot;&gt;RSS feed&lt;&#x2F;h3&gt;
&lt;p&gt;会社の技術ブログのキュレーションに RSS feed を使っているので必要&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;templates&#x2F;feeds&#x2F;&quot;&gt;https:&#x2F;&#x2F;www.getzola.org&#x2F;documentation&#x2F;templates&#x2F;feeds&#x2F;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;config に以下の変更を加えるだけで &lt;code&gt;&#x2F;atom.xml&lt;&#x2F;code&gt; が生成される&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;toml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;generate_feeds&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FAB387;&quot;&gt; true&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;blog をホストする理由は会社とは関係なく個人のブログサイトとして運営したい意図もあるので、会社用の feed を生成したい&lt;&#x2F;p&gt;
&lt;p&gt;taxonomy を定義すると contents を特定の group にまとめ、それぞれに feed を作成することができる&lt;&#x2F;p&gt;
&lt;p&gt;会社名を taxonomy に定義し、会社で書いたブログに taxonomy をセットする&lt;&#x2F;p&gt;
&lt;p&gt;config に taxonomies を定義&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #CDD6F4; background-color: #1E1E2E;&quot;&gt;&lt;code data-lang=&quot;toml&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;taxonomies&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt; [&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;    {&lt;&#x2F;span&gt;&lt;span&gt; name&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E3A1;&quot;&gt; &amp;quot;company&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;,&lt;&#x2F;span&gt;&lt;span&gt; feed&lt;&#x2F;span&gt;&lt;span style=&quot;color: #94E2D5;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FAB387;&quot;&gt; true&lt;&#x2F;span&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;},&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #9399B2;&quot;&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;company を定義したので &lt;code&gt;&#x2F;company&lt;&#x2F;code&gt; で taxonomy の一覧と term を表示するための template を作成&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;&#x2F;templates&#x2F;taxonomy_list.html&lt;&#x2F;code&gt; と &lt;code&gt;&#x2F;templates&#x2F;single.html&lt;&#x2F;code&gt; を作成する&lt;&#x2F;p&gt;
&lt;p&gt;こうすることで &lt;code&gt;&#x2F;company&lt;&#x2F;code&gt; で taxonomy 一覧と &lt;code&gt;&#x2F;company&#x2F;HERP&lt;&#x2F;code&gt; で &lt;code&gt;company=[&quot;HERP&quot;]&lt;&#x2F;code&gt; で定義した post 一覧が確認でき、 &lt;code&gt;&#x2F;company&#x2F;herp&#x2F;atom.xml&lt;&#x2F;code&gt; で &lt;code&gt;company=[&quot;HERP&quot;]&lt;&#x2F;code&gt; の post の RSS feed が作成され会社用のブログの feed を会社のキュレーションシステムに渡せる&lt;&#x2F;p&gt;
&lt;h3 id=&quot;design&quot;&gt;design&lt;&#x2F;h3&gt;
&lt;p&gt;デザインは最低限でよいが、とりあえず読みやすくしたい&lt;&#x2F;p&gt;
&lt;p&gt;適当に opencode で指示して sass 調整してもらった&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
