# 🗞️Topics ## ghostwriter.nvimのSlack検索強化 [[🦉ghostwriter.nvim]]でv0.16.0をリリースしました。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" /> <span class="link-card-v2-site-name">GitHub</span> </div> <div class="link-card-v2-title"> Release v0.16.0 · tadashi-aikawa/ghostwriter.nvim </div> <div class="link-card-v2-content"> 0.16.0 (2025-04-16)✨ FeaturesAdd functionality to normalize Slack mention format to @user (3031ff4)GhostwriterRe ... </div> <img class="link-card-v2-image" src="https://opengraph.githubassets.com/e0880f64141de6d3e2192dbf82e5730fba96c57583a03c4e8e96ac76b69005e9/tadashi-aikawa/ghostwriter.nvim/releases/tag/v0.16.0" /> <a href="https://github.com/tadashi-aikawa/ghostwriter.nvim/releases/tag/v0.16.0"></a> </div> [[📰2025年15週 Weekly Report#ghostwriter.nvimでSlackに関する機能強化]] で追加した機能に対して、よりAIフレンドリーになるようなフォーマットに変更しています。また、101以上のメッセージも検索できるようになり、より大量の[[Slack]]情報を取り込めるようになりました。(最後のパース処理に少し時間はかかりますが...) スレッドとの関連情報が紐づけられていないので、次はそこの対応をしてリリースする予定です。 ## Owleliaを久々にリリース 1年弱ぶりに[[🦉Owlelia]]をリリースしました。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" /> <span class="link-card-v2-site-name">GitHub</span> </div> <div class="link-card-v2-title"> Release v0.49.0 · tadashi-aikawa/owlelia </div> <div class="link-card-v2-content"> 0.49.0 (2025-04-19)⚠ BREAKING CHANGESdatetime: Return undefined when invalid date-time is input or cannot be for ... </div> <img class="link-card-v2-image" src="https://opengraph.githubassets.com/ea772702136e39bbfb3b5cc488b53ad3f3dbba8bb102e66aa36c6e6bbc0a66a2/tadashi-aikawa/owlelia/releases/tag/v0.49.0" /> <a href="https://github.com/tadashi-aikawa/owlelia/releases/tag/v0.49.0"></a> </div> 機能追加だけでなく、[[Conventional Commits]]や[[semantic-release]]を使ったリリースフロー最適化など開発者向けの対応も行っています。 また、一部では破壊的変更もあります。[[Node.js]] v16のサポートは切りましたし、`DateTime.from` は一部の予期せぬ状況下で `undefined` を返却するようにしました。 ## SPAベースの作成 1年ぶりに[[Nuxt]]と[[TypeScript]]のSPAベースを作成してみました。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" /> <span class="link-card-v2-site-name">Minerva</span> </div> <div class="link-card-v2-title"> 📜2025-04-19 Nuxt3 x TypeScript で各技術を選定したSPAベースをつくってみる </div> <div class="link-card-v2-content">開発スピードとデザインを重視し、1年前に構築したNuxt3ベースのSPAを再構築。技術スタックはshadcn-vueやZod、OpenAPI fetchなどを用いて型安全性や拡張性を確保しつつ、Neovim環境も最適化。ドメイン層の設計も意識し、責務の分離を徹底した。</div> <img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/activity.webp" /> <a data-href="📜2025-04-19 Nuxt3 x TypeScript で各技術を選定したSPAベースをつくってみる" class="internal-link"></a> </div> %%[[📜2025-04-19 Nuxt3 x TypeScript で各技術を選定したSPAベースをつくってみる]]%% 1年前に作った以下の記事と選定技術にそこまで違いはありませんが、バージョンはもちろん最新化しています。[[Zod]]はv4のベータ版がリリースされているので、stableが出るまで待とうかと思っています。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" /> <span class="link-card-v2-site-name">Minerva</span> </div> <div class="link-card-v2-title"> 📜2024-04-28 Nuxt3 x TypeScript x shadcn-vue x TailwindCSS x Pinia x Zod x Bunで最強のSPAベースをつくってみる </div> <div class="link-card-v2-content">本業で1からWebプロダクトをつくることになった。重要視されるのは開発スピードとデザインの2つ。品質はまだそこまで優先されていない。また、初期フェーズのあとは担当チームに引き継ぐ必要があるため、あまりリスクの大きい技術は利用しない。</div> <img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/activity.webp" /> <a data-href="📜2024-04-28 Nuxt3 x TypeScript x shadcn-vue x TailwindCSS x Pinia x Zod x Bunで最強のSPAベースをつくってみる" class="internal-link"></a> </div> %%[[📜2024-04-28 Nuxt3 x TypeScript x shadcn-vue x TailwindCSS x Pinia x Zod x Bunで最強のSPAベースをつくってみる]]%% ## Vueのtemplateタグ内で補完決定後の挿入範囲がおかしい 先のSPAベースを作成していてハマりました。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" /> <span class="link-card-v2-site-name">Minerva</span> </div> <div class="link-card-v2-title"> 📝NeovimでVueのtemplate内で補完候補を選択すると挿入場所がおかしい </div> <div class="link-card-v2-content">NeovimでVueのtemplate内補完時、textEditのrangeが複数行にまたがるLSPレスポンスにより挿入位置がずれる事象が発生。Volarの再インストールで解消した。VSCodeやHTMLでは再現しない。</div> <img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/troubleshooting.webp" /> <a data-href="📝NeovimでVueのtemplate内で補完候補を選択すると挿入場所がおかしい" class="internal-link"></a> </div> %%[[📝NeovimでVueのtemplate内で補完候補を選択すると挿入場所がおかしい]]%% 原因が[[Volar]]の[[LSP]]っぽくて解決は難しそうだったので、issueで報告しました。なおってくれると嬉しいですが...。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" /> <span class="link-card-v2-site-name">GitHub</span> </div> <div class="link-card-v2-title"> When completing HTML tags within a template tag in Neovim, text gets overwritten in unexpected areas. · Issue #5331 · vuejs/language-tools </div> <div class="link-card-v2-content"> Vue - Official extension or vue-tsc version 2.2.8 VSCode version 1.99.3 Vue version 3.5.13 TypeScript version 5. ... </div> <img class="link-card-v2-image" src="https://opengraph.githubassets.com/e7b5d626cbcd2f8cf9be83bdd0726d6246659aade9b270dcfd2b29670b8d38d1/vuejs/language-tools/issues/5331" /> <a href="https://github.com/vuejs/language-tools/issues/5331"></a> </div> ## Playwrightのキャッチアップ [[Playwright]] 1.51は気になる変更点がいくつかあったのでキャッチアップしました。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/favicon-64.png" /> <span class="link-card-v2-site-name">Minerva</span> </div> <div class="link-card-v2-title"> 📜2025-04-19 Playwright 1.51のキャッチアップ </div> <div class="link-card-v2-content">Playwright 1.51でTestStepInfoの取得やstepのスキップ、attachment追加などテストステップの改善を確認した。Trace Viewerでファイル内容の表示も試し、Git情報をHTMLレポートに出力する設定も検証した。</div> <img class="link-card-v2-image" src="https://publish-01.obsidian.md/access/35d05cd1bf5cc500e11cc8ba57daaf88/Notes/attachments/activity.webp" /> <a data-href="📜2025-04-19 Playwright 1.51のキャッチアップ" class="internal-link"></a> </div> %%[[📜2025-04-19 Playwright 1.51のキャッチアップ]]%% # 👀Reading ## AI時代はプログラミングスキルがさらに重要になる <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://static.zenn.studio/images/logo-transparent.png" /> <span class="link-card-v2-site-name">Zenn</span> </div> <div class="link-card-v2-title"> AI時代はプログラミングスキルがさらに重要になる </div> <img class="link-card-v2-image" src="https://res.cloudinary.com/zenn/image/upload/s--oZQ83HiX--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:AI%25E6%2599%2582%25E4%25BB%25A3%25E3%2581%25AF%25E3%2583%2597%25E3%2583%25AD%25E3%2582%25B0%25E3%2583%25A9%25E3%2583%259F%25E3%2583%25B3%25E3%2582%25B0%25E3%2582%25B9%25E3%2582%25AD%25E3%2583%25AB%25E3%2581%258C%25E3%2581%2595%25E3%2582%2589%25E3%2581%25AB%25E9%2587%258D%25E8%25A6%2581%25E3%2581%25AB%25E3%2581%25AA%25E3%2582%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:dyoshikawa%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzNmN2M2YzVmZTIuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png" /> <a href="https://zenn.dev/dyoshikawa/articles/programming-skills-will-be-more-valueable"></a> </div> ~~~ めちゃくちゃ良い記事。考察も深いし、勉強になる。パレードの法則はなるほどと思った。 ~~~ ## Tailwind v4 - shadcn/vueViteNuxtAstro <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://www.shadcn-vue.com/favicon-16x16.png" /> <span class="link-card-v2-site-name">www.shadcn-vue.com</span> </div> <div class="link-card-v2-title"> Tailwind v4 - shadcn/vue </div> <div class="link-card-v2-content"> How to use shadcn-vue with Tailwind v4. </div> <img class="link-card-v2-image" src="https://shadcn-vue.com/og.png" /> <a href="https://www.shadcn-vue.com/docs/tailwind-v4.html"></a> </div> ~~~ shadcn-vueのTailwindCSS v4対応きてた。 ~~~ ## Release v0.49.0 · tadashi-aikawa/owlelia <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" /> <span class="link-card-v2-site-name">GitHub</span> </div> <div class="link-card-v2-title"> Release v0.49.0 · tadashi-aikawa/owlelia </div> <div class="link-card-v2-content"> 0.49.0 (2025-04-19)⚠ BREAKING CHANGESdatetime: Return undefined when invalid date-time is input or cannot be for ... </div> <img class="link-card-v2-image" src="https://opengraph.githubassets.com/ea772702136e39bbfb3b5cc488b53ad3f3dbba8bb102e66aa36c6e6bbc0a66a2/tadashi-aikawa/owlelia/releases/tag/v0.49.0" /> <a href="https://github.com/tadashi-aikawa/owlelia/releases/tag/v0.49.0"></a> </div> ~~~ Owlelia v0.49.0 リリース 🚀 ~~~ ## エンジニアリングの本質をコーディングに還元してしまう短絡的な見方への反発 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://static.zenn.studio/images/logo-transparent.png" /> <span class="link-card-v2-site-name">Zenn</span> </div> <div class="link-card-v2-title"> エンジニアリングの本質をコーディングに還元してしまう短絡的な見方への反発 </div> <img class="link-card-v2-image" src="https://res.cloudinary.com/zenn/image/upload/s--xejq5GuO--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E3%2582%25A8%25E3%2583%25B3%25E3%2582%25B8%25E3%2583%258B%25E3%2582%25A2%25E3%2583%25AA%25E3%2583%25B3%25E3%2582%25B0%25E3%2581%25AE%25E6%259C%25AC%25E8%25B3%25AA%25E3%2582%2592%25E3%2582%25B3%25E3%2583%25BC%25E3%2583%2587%25E3%2582%25A3%25E3%2583%25B3%25E3%2582%25B0%25E3%2581%25AB%25E9%2582%2584%25E5%2585%2583%25E3%2581%2597%25E3%2581%25A6%25E3%2581%2597%25E3%2581%25BE%25E3%2581%2586%25E7%259F%25AD%25E7%25B5%25A1%25E7%259A%2584%25E3%2581%25AA%25E8%25A6%258B%25E6%2596%25B9%25E3%2581%25B8%25E3%2581%25AE%25E5%258F%258D%25E7%2599%25BA%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:kbwo%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzkxMzQ1ZGZjYjguanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png" /> <a href="https://zenn.dev/kbwok/articles/0aeedaf2aa342c"></a> </div> ~~~ わかる。 AIに振り回されると、AIガチャを当たるまで引き続け… を繰り返すことになり、結果は出るかもしれないが結果以外に何も出ないこともある。 AIとのコミュニケーションを土管のようにディスパッチするだけの人もいて、これは信頼性にも欠ける無駄なコミュニケーションだと思う。 利用はしても頼ってはいけない というのが最近の自分なりのスタンス。 ~~~ ## Vibe Coding is not an excuse for low-quality work <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5461e150-2b93-418a-b0b7-0499a1a2ac22%2Ffavicon-16x16.png" /> <span class="link-card-v2-site-name">addyo.substack.com</span> </div> <div class="link-card-v2-title"> Vibe Coding is not an excuse for low-quality work </div> <div class="link-card-v2-content"> A field guide to responsible AI-assisted development </div> <img class="link-card-v2-image" src="https://substackcdn.com/image/fetch/w_1200,h_600,c_fill,f_jpg,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F841e3e3d-0d3f-4cec-aad1-8a8e6fc4a12c_1620x1620.png" /> <a href="https://addyo.substack.com/p/vibe-coding-is-not-an-excuse-for"></a> </div> ~~~ めっっっちゃいい。最近のAgentに対するモヤモヤ感に対することがほぼ言語化されてる。 ~~~ # 📚New Notes - [[@deprecated (JSDoc)]] - [[BFF]] - [[ESLint Stylistic]] - [[ミネルヴァ]] - [[NotebookLM]] - [[Reka UI]] - [[TestStepInfo (Playwright)]] - [[📝async関数に対してawaitがついていないときはエラーにしたい]] - [[eslint-config-prettier]] - [[shadcn-nuxt]] - [[typescript-eslint]] - [[unovue]] - [[エンティティ (DDD)]] - [[ログの出力レベルを変更 (nvim-lspconfig)]] - [[ログの出力場所を表示 (nvim-lspconfig)]] - [[値オブジェクト (DDD)]] - [[関数が非推奨であることを示す (JavaScript)]] - [[📜2025-04-19 Nuxt3 x TypeScript で各技術を選定したSPAベースをつくってみる]] - [[📜2025-04-19 Playwright 1.51のキャッチアップ]] - [[📜2025-04-19 pnpmでESLint9を使ってみる]] - [[📜2025-04-20 nvim-lspconfigでVolarのHybrid Modeを有効にする]] - [[📝NeovimでVueのtemplate内で補完候補を選択すると挿入場所がおかしい]] - [[📰2025年15週 Weekly Report]]