最近、プライベートだけでなく仕事でも Mac を使い始め、ランチャーとして Raycast を導入したら Raycast はいいぞおじさんになってきました。 今回はそんな Raycast の拡張機能を活用した “Working Out Loud” について紹介します。

Working Out Loud と分報

Working Out Loud に出会う

Working Out Loud という考え方はご存知ですか? Working Out Loud で調べると辿り着くのが以下の記事かと思います。

Working Out Loud 大声作業(しなさい)、チームメンバー同士でのトレーニング文化の醸成 - スタディサプリ Product Team Blog

ソフトウェアエンジニアリングと一見関わりはなさそうで、しかしチームで成果を出す過程においてとても重要だと[筆者][ohbarye]が考えているコンセプト、 "Working Out Loud" について書いてみます。 日本語の記事がほとんど見当たらないのであまり知られている言葉ではないかもしれません。 対象読者 以下に興味や関心を持つ方を対象読者として想定しています。 チーム開発におけるコラボレーション手法 チーム開発者としての振る舞い方 テックリードやスペシャリストの育成 が、本心ではチーム開発する全ての方に届いてほしいです。
icon
blog.studysapuri.jp

こちらの記事の言葉を引用すると、Working Out Loud とは以下のような働き方です。

  • 作業が途中であってもチームメンバーの目の触れる場所にガンガンアウトプットする
  • 作業で詰まったらとにかく尋ねる

今回紹介するのは前者の「チームメンバーの目の触れる場所にガンガンアウトプットする」にフォーカスした取り組みです。

私が Working Out Loud という考え方に出会ったのは社内の LT 大会です。 その LT は Working Out Loud を実践することで業務を効率よく進められた、という内容だったかと思います。 漠然と「こうした方が良さそうだなぁ」と思っていたことに名前がついていることを知れて、記憶に残っている LT でした。

Working Out Loud で達成したいことの一つは、リモートワークで起きがちな「隣の人がなにやってるか分からん」の解消です。 私の所属する部署は全員フルリモート勤務なので、意図的に公開しないとなんの作業をしているかは基本的に相手には伝わりません。

リモートワークを始めて数年、同僚が何をやっているか見えづらい環境での組織の成熟に限界を感じ始めていました。 そんな中で Working Out Loud と出会って、リモートワークだからこそ「今何をしているのか」を共有することの重要性に気づかされました。

メンバーはそれぞれ得意な領域が異なり、かつ(良い意味で)サポートしたがる人が多いです。 そんな特性のある組織なのに「隣の人がなにやってるか分からん」状態が続くと、サポートしたい人からサポートが必要な人が見つからない、サポートを望む人が誰に相談すればいいか分からない、という状況が発生してしまいます。

自然と「スタンドプレイから生じるチームワーク」が生まれれば良いのですが、なかなかそうもいきません。 そこで、去年から部署内でも Working Out Loud 用 Slack チャンネルが作られて作業状況を共有できる環境ができました。 Working Out Loud にはそんなチームワークを生む仕組みとして期待しています。

所属部署では「Working Out Loud しろよ!」というトップダウン的な進め方ではなく、あくまでやりたい人が Working Out Loud するスタイルです。 他の人の投稿を見て興味が出た人、効果があると感じた人が自発的に参加していくことを望んでいます。

こういうのって強制されてやるもんでもないですし、他の人にもやって欲しいならまず自分がやるべきだと思うので、積極的に自分の作業していることを投稿しています。 チャンネルの存在意義を認知してもらうための導線は必要ですけどね。

それに加えて、最近では生成 AI を活用してナレッジ共有するための情報源として使えないか?とも考えてます。 ナレッジ共有の仕組みは多くの組織で考えられているテーマかと思いますが、今の職場でも同じです。

ナレッジ共有の仕組みを考えることも重要ですが、まずはナレッジの元になる情報がなければ始まらないとも思います。 もし必要になったときに情報が残っていなければどうしようもないので、とにかく Working Out Loud の活動を継続して情報を記録していくことが重要と考えて取り組んでいます。

Obsidian を使った個人用分報

Working Out Loud を Slack チャンネルで始めて数ヶ月が経過し、ある程度習慣化してきた頃に同僚から Obsidian を使った分報の話を聞きました。

Obsidian は Markdown でメモできて、ナレッジを残すのに便利な機能が豊富に揃っているアプリです。

Obsidian - Sharpen your thinking

The free and flexible app for your private thoughts.
icon
obsidian.md

X でもよく名前を見かけていて、私も去年から使い始めました。 一番古いデイリーノートは 2025 年 3 月 27 日になっていたので、そろそろ使い始めて 1 年になろうとするくらいです。 使い方はナレッジやデイリーノートの記録といった一般的なものです。

ある日、Obsidian に分単位の作業を記録してその情報を元に生成 AI に自分用の日報や週報を作る、という使い方を同僚に見せてもらいました。

分単位の作業、いわゆる分報ですが、Obsidian に記録されるので Working Out Loud にはなっておらず、個人用のメモ扱いです。 以前にも Obsidian への分報をやろうとしましたが、記録を残しても整理する大変さが上回ってしまい辞めてしまっていました。

しかし、生成 AI を使うことで日々の記録がサクッと活用できる形に書き換えられていてとても便利そうだったので、Slack への Working Out Loud もやりつつ、Obsidian に自分用の分報として活動内容を記録し始めました。

分報を記録するだけでなく生成 AI と組み合わせて作業記録から学びや反省を抽出して確認、ノートにナレッジとして記録することで実益が伴ったので、Obsidian への分報はモチベーションが上がって継続できました。

Obsidian と Claude Code の組み合わせの参考にしたのは以下の記事です。 まだこちらの記事のような活用はできてませんが、デイリーノートに分報が残っていることで週報の内容が濃くなりました。

Obsidian × Claude Codeで情報整理を緩くやってみたけど、想像以上によかった話

icon
zenn.dev

Obsidian は奥が深いです。 マークダウンエディタとしてメモを取るだけなら簡単に始められますが、どうメモを残すか、どうメモを活かすかが問われるツールだと思います。 Obsidian の使い方の一つとして、現在は分報とその活用に取り組んでいます。

アウトプットはアクションが増えると続かない

「Slack への Working Out Loud」と「Obsidian への分報」の二足のわらじを始めてみましたが、どちらかが疎かになるのは明白で、すぐに Slack への投稿が完全に止まってしまいました。

Obsidian への分報には Thino というプラグインを使っていて、Obsidian 上に分報用の入力画面を表示できます。 この拡張機能によって Obsidian を開くだけで分報の記録ができるようになっていて、分報を記録するためのハードルが低くなっていました。

一方、Slack への Working Out Loud は専用チャンネルに各自がスレッドを立てて投稿する形になっているので、「Slack を開く → チャンネルを開く → スレッドを探す → 投稿する」という一連のアクションが必要です。 Slack には多数のチャンネルが存在していて、Working Out Loud チャンネルも他の人の投稿があるので、投稿したい自分のスレッドを探すだけでも手間がかかります。

アウトプットすることは大事だと分かっていても手が動かないことがあります。 その要因はアウトプット自体の大変さもありますが、アウトプットするまでのアクションの多さも関係していると思います。

本ブログも静的サイトジェネレーターで構築している分、アウトプットする以外の作業が多くてハードルが高くなっています。 自前でサイトを用意する楽しみはありつつも、文章を書くだけでブログ記事として公開できるようにしたいところです。

Obsidian に比べて Slack への投稿はアクションが多いためハードルが高く、両方続けようとしたけど結果として Slack への Working Out Loud が続きませんでした。

バイブコーディングで自分が求める Raycast 拡張機能を作る

冒頭でも書いた通り、公私ともに Mac を使い始め、ランチャーとして Raycast を導入しました。 Raycast のせいで左手デバイスの Elgato Stream Deck を使わなくなってしまったくらいには Raycast は便利です。 今回の Working Out Loud ができなくなってしまった問題も Raycast を使って解決できないか考えました。

Raycast とは

Raycast は MacOS の Spotlight に代わるランチャーアプリで、キーボードショートカットからアプリケーションの起動や各種操作を行えます。 最近 Windows 向けにベータ版がリリースされました。

Raycast - Your shortcut to everything

A collection of powerful productivity tools all within an extendable launcher.
icon
www.raycast.com

Raycast はデフォルトで様々な機能を使えますが、ストアで公開されている拡張機能を追加することで公式以外の機能を使えるようになります。 Slack や Obsidian 向けの拡張機能もあって、Raycast から直接 Slack への投稿や Obsidian へのノート作成ができるようになります。 ただ、私が求める「Obsidian と Slack への同時投稿」ができる拡張機能はストアに存在しなかったので、自分で作ることにしました。

Raycast 拡張機能を作る

拡張機能はストアで公開されているものを使うだけでなく自作もできます。 ストアの拡張機能には自分の要件に合うものがなかったので、自分が求める Raycast 拡張機能を開発してみました。

Raycast 拡張機能の開発方法はこちらの記事を参照させていただきました。

Raycast Extension 開発のすすめ

icon
zenn.dev

作った拡張機能には以下の機能を持たせています。

  • Raycast 上で分報を入力できる UI
  • Slack の Working Out Loud チャンネルに分報を投稿
  • Obsidian のデイリーノートに分報を追加

この拡張機能で達成したかったことは、Obsidian への分報と同じくらい簡単に Slack への Working Out Loud 投稿ができるようにすることです。 そのため、Raycast 上で分報を入力して投稿するだけで、Obsidian と Slack の両方に同じ内容の分報が記録されるようにしました。

Raycast はデフォルトでは + Space で起動でき、数回のキー入力で今回作成した拡張機能を含めた各種コマンドやアプリケーションを起動できます。 また、Raycast の機能はショートカットキーで起動できるので更に手間を減らせます。

私の場合は + J で今回作成した拡張機能を起動できるようにしていて、 + J を押して分報を入力し、 + Enter キーを押すだけで Obsidian と Slack の両方に分報を投稿できるようになりました。

ストアに公開することで Raycast 上から拡張機能をインストールできます。 同僚に使ってもらう機会があればストア経由のほうがよいですが、ストアに公開するハードルが高そうだったので、現在は個人リポジトリで管理していて、手動でインストールしています。

今回のバイブコーディングの方法

今回の拡張機能は生成 AI (Claude Code) に頼りまくりのバイブコーディングで作りました。

正直なところ、バイブコーティングに関しては持ち帰ってもらえるナレッジはないです。 実用的なものを作るバイブコーティングが今回が初めてだったので、こんな風にやってたという記録が目的です。

ターミナルは Claude Code との組み合わせをよく見かける Ghostty を使ってはみたものの、よく紹介されているような高度な使い方はできていません。

バイブコーディングのプラクティスに沿ってなさそうですが、開発では都度生成 AI に要件を伝えてコードを書いてもらい、動作確認と修正を繰り返し、目的を達成する Raycast 拡張機能を完成を目指しました。

開発や Claude Code の経験が少なく、正直あんまりイメージできてませんが、最近公開された Claude Code 公式のベストプラクティスを参考にしたらもっと効率よく開発できるんですかね。

Best Practices for Claude Code - Claude Code Docs

Tips and patterns for getting the most out of Claude Code, from configuring your environment to scaling across parallel sessions.
icon
code.claude.com

まだまだ粗があるし、多くの人に刺さるような機能ではないですが、自分にとって有用な機能を実装できるようになってきたのはバイブコーディングのおかげです。

改良の余地があるので、Claude Code を活用して使い勝手をよくしていきたいです。 ある程度綺麗になったら GitHub、できれば Raycast ストアでの公開まで持っていけたらいいなぁ。

まとめ

バイブコーディングで Raycast の拡張機能を作ることで、Obsidian への分報と Slack への Working Out Loud の同時投稿ができるようになりました。

この拡張機能によって、停滞していた Slack への Working Out Loud が再開でき、1 日あたり 35 件程度の投稿ができるようになりました。 投稿数よりも内容のほうが重要ですが、気軽に投稿できるようになったことで Working Out Loud のハードルが下がったことが一番の成果だと思います。

おそらく数年前に同じことを考えても実現できてなかったでしょう。 生成 AI のおかげでアイデアを形にするまでのハードルが大幅に下がっていると実感します。

「自分が欲しい機能は自分で作る」という世の中で起きてることがやっと自分の身にも起きてきたな、という感じです。 そして一番言いたいことは、「Raycast はいいぞ」ということです。