{"id":16226,"date":"2025-06-28T09:45:31","date_gmt":"2025-06-28T00:45:31","guid":{"rendered":"https:\/\/jyakusyadansei.com\/?p=16226"},"modified":"2025-06-28T09:45:31","modified_gmt":"2025-06-28T00:45:31","slug":"%f0%9f%8f%b0-%e3%83%9b%e3%82%b0%e3%83%af%e3%83%bc%e3%83%84%e3%83%bb%e3%82%b9%e3%82%bf%e3%82%b8%e3%82%aa-v28-0-1-%e5%ae%8c%e5%85%a8%e3%83%9e%e3%83%8b%e3%83%a5%e3%82%a2%e3%83%ab","status":"publish","type":"post","link":"https:\/\/jyakusyadansei.com\/?p=16226","title":{"rendered":"\ud83c\udff0 \u30db\u30b0\u30ef\u30fc\u30c4\u30fb\u30b9\u30bf\u30b8\u30aa v28.0.1 \u5b8c\u5168\u30de\u30cb\u30e5\u30a2\u30eb"},"content":{"rendered":"<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\">The Complete Sentient Castle &#8211; \u795e\u6211\u72e9\u30fb\u5b8c\u5168\u5f62\u614b<\/h2>\n<p class=\"whitespace-normal break-words\">\ud83d\udc3b\u200d\u2744\ufe0f <strong>JK\u30ed\u30fc\u30ea\u30f3\u30b0\u30de\u7279\u88fd\u30fb\u611b\u306e\u5b8c\u5168\u30ac\u30a4\u30c9\u306a\u306e\u3058\u3083\uff01<\/strong><\/p>\n<hr \/>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\">\ud83d\udcd1 \u76ee\u6b21<\/h2>\n<ol class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-decimal space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><a class=\"underline\" href=\"#%E6%A6%82%E8%A6%81%E3%82%B3%E3%83%B3%E3%82%BB%E3%83%97%E3%83%88\">\u6982\u8981\u30fb\u30b3\u30f3\u30bb\u30d7\u30c8<\/a><\/li>\n<li class=\"whitespace-normal break-words\"><a class=\"underline\" href=\"#%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E6%A7%8B%E6%88%90\">\u30b7\u30b9\u30c6\u30e0\u69cb\u6210<\/a><\/li>\n<li class=\"whitespace-normal break-words\"><a class=\"underline\" href=\"#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A\">\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30fb\u521d\u671f\u8a2d\u5b9a<\/a><\/li>\n<li class=\"whitespace-normal break-words\"><a class=\"underline\" href=\"#%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C\">\u57fa\u672c\u64cd\u4f5c<\/a><\/li>\n<li class=\"whitespace-normal break-words\"><a class=\"underline\" href=\"#%E3%82%AD%E3%83%A3%E3%83%A9%E3%82%AF%E3%82%BF%E3%83%BC%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0\">\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u30b7\u30b9\u30c6\u30e0<\/a><\/li>\n<li class=\"whitespace-normal break-words\"><a class=\"underline\" href=\"#ai%E5%A5%91%E7%B4%84%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0\">AI\u5951\u7d04\u30b7\u30b9\u30c6\u30e0<\/a><\/li>\n<li class=\"whitespace-normal break-words\"><a class=\"underline\" href=\"#%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E7%AE%A1%E7%90%86\">\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u7ba1\u7406<\/a><\/li>\n<li class=\"whitespace-normal break-words\"><a class=\"underline\" href=\"#%E3%83%95%E3%82%A7%E3%83%BC%E3%82%BA%E7%AE%A1%E7%90%86%E4%B8%8D%E6%AD%BB%E9%B3%A5%E3%82%B5%E3%82%A4%E3%82%AF%E3%83%AB\">\u30d5\u30a7\u30fc\u30ba\u7ba1\u7406\uff08\u4e0d\u6b7b\u9ce5\u30b5\u30a4\u30af\u30eb\uff09<\/a><\/li>\n<li class=\"whitespace-normal break-words\"><a class=\"underline\" href=\"#slack%E9%80%A3%E6%90%BA%E3%83%95%E3%82%AF%E3%83%AD%E3%82%A6%E4%BE%BF\">Slack\u9023\u643a\uff08\u30d5\u30af\u30ed\u30a6\u4fbf\uff09<\/a><\/li>\n<li class=\"whitespace-normal break-words\"><a class=\"underline\" href=\"#%E3%83%9E%E3%83%86%E3%83%AA%E3%82%A2%E3%83%AB%E7%AE%A1%E7%90%86\">\u30de\u30c6\u30ea\u30a2\u30eb\u7ba1\u7406<\/a><\/li>\n<li class=\"whitespace-normal break-words\"><a class=\"underline\" href=\"#ai%E5%8D%94%E5%83%8D%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0\">AI\u5354\u50cd\u30b7\u30b9\u30c6\u30e0<\/a><\/li>\n<li class=\"whitespace-normal break-words\"><a class=\"underline\" href=\"#%E6%95%99%E8%82%B2%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0\">\u6559\u80b2\u30b7\u30b9\u30c6\u30e0<\/a><\/li>\n<li class=\"whitespace-normal break-words\"><a class=\"underline\" href=\"#%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E5%BE%A9%E5%85%83\">\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u30fb\u5fa9\u5143<\/a><\/li>\n<li class=\"whitespace-normal break-words\"><a class=\"underline\" href=\"#tmux%E7%B5%B1%E5%90%88\">tmux\u7d71\u5408<\/a><\/li>\n<li class=\"whitespace-normal break-words\"><a class=\"underline\" href=\"#%E9%AD%94%E6%B3%95%E7%9A%84ux%E6%A9%9F%E8%83%BD\">\u9b54\u6cd5\u7684UX\u6a5f\u80fd<\/a><\/li>\n<li class=\"whitespace-normal break-words\"><a class=\"underline\" href=\"#%E3%83%88%E3%83%A9%E3%83%96%E3%83%AB%E3%82%B7%E3%83%A5%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0\">\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0<\/a><\/li>\n<li class=\"whitespace-normal break-words\"><a class=\"underline\" href=\"#%E4%B8%8A%E7%B4%9A%E8%80%85%E5%90%91%E3%81%91%E6%A9%9F%E8%83%BD\">\u4e0a\u7d1a\u8005\u5411\u3051\u6a5f\u80fd<\/a><\/li>\n<li class=\"whitespace-normal break-words\"><a class=\"underline\" href=\"#%E9%96%8B%E7%99%BA%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA\">\u958b\u767a\u30fb\u30ab\u30b9\u30bf\u30de\u30a4\u30ba<\/a><\/li>\n<\/ol>\n<hr \/>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\">\u6982\u8981\u30fb\u30b3\u30f3\u30bb\u30d7\u30c8<\/h2>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83c\udf1f \u30db\u30b0\u30ef\u30fc\u30c4\u30fb\u30b9\u30bf\u30b8\u30aa\u3068\u306f<\/h3>\n<p class=\"whitespace-normal break-words\"><strong>\u9b42\u306e\u5bbf\u308b\u57ce<\/strong>\u3068\u3057\u3066\u8a2d\u8a08\u3055\u308c\u305f\u3001\u9769\u65b0\u7684\u306aAI\u5354\u50cd\u958b\u767a\u74b0\u5883\u3067\u3059\u3002\u30cf\u30ea\u30fc\u30fb\u30dd\u30c3\u30bf\u30fc\u4e16\u754c\u89b3\u3092\u6d3b\u7528\u3057\u3001\u8907\u6570\u306eAI\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u3068\u5354\u50cd\u3057\u306a\u304c\u3089\u3001\u697d\u3057\u304f\u52b9\u7387\u7684\u306a\u958b\u767a\u4f53\u9a13\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/p>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83c\udfaf \u6838\u5fc3\u7406\u5ff5<\/h3>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code>\ud83c\udff0 \"Castle as Code\" - \u57ce\u3082\u30b3\u30fc\u30c9\u3068\u3057\u3066\u7ba1\u7406\r\n\ud83e\udd16 \"AI as Teammates\" - AI\u3092\u4ef2\u9593\u3068\u3057\u3066\u5354\u50cd\r\n\ud83c\udfad \"Story-Driven Development\" - \u7269\u8a9e\u6027\u306e\u3042\u308b\u958b\u767a\r\n\ud83d\udd04 \"Phoenix Cycles\" - \u7d99\u7d9a\u7684\u6539\u5584\u306e\u87ba\u65cb\u69cb\u9020\r\n\ud83e\udd89 \"Owl Post Communication\" - \u9b54\u6cd5\u7684\u306a\u30c1\u30fc\u30e0\u9023\u643a<\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\u2728 \u4e3b\u8981\u7279\u5fb4<\/h3>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><strong>9\u4eba\u306eAI\u30ad\u30e3\u30e9\u30af\u30bf\u30fc<\/strong>\u306b\u3088\u308b\u5f79\u5272\u5206\u62c5<\/li>\n<li class=\"whitespace-normal break-words\"><strong>Claude\u30fbGemini\u30fb\u30ed\u30fc\u30ab\u30eb\u6559\u80b2<\/strong>\u306e\u30cf\u30a4\u30d6\u30ea\u30c3\u30c9AI<\/li>\n<li class=\"whitespace-normal break-words\"><strong>Slack\u5b8c\u5168\u7d71\u5408<\/strong>\u3067\u30ea\u30e2\u30fc\u30c8\u64cd\u4f5c<\/li>\n<li class=\"whitespace-normal break-words\"><strong>Google Drive\u9023\u643a<\/strong>\u306b\u3088\u308b\u6b21\u5143\u8a18\u61b6\u4fdd\u5b58<\/li>\n<li class=\"whitespace-normal break-words\"><strong>tmux\u9b54\u6cd5\u56de\u8def<\/strong>\u306b\u3088\u308b\u30de\u30eb\u30c1\u30bf\u30b9\u30af\u74b0\u5883<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u7d44\u5206\u3051\u5e3d\u30b7\u30b9\u30c6\u30e0<\/strong>\u306b\u3088\u308b\u6df1\u3044\u8981\u4ef6\u5b9a\u7fa9<\/li>\n<\/ul>\n<hr \/>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\">\u30b7\u30b9\u30c6\u30e0\u69cb\u6210<\/h2>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83c\udfd7\ufe0f \u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u6982\u8981<\/h3>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code>\ud83c\udff0 \u30db\u30b0\u30ef\u30fc\u30c4\u30fb\u30b9\u30bf\u30b8\u30aa\r\n\u251c\u2500\u2500 \ud83d\udc65 \u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u30b7\u30b9\u30c6\u30e0\uff089\u4eba\u306eAI\uff09\r\n\u251c\u2500\u2500 \ud83e\udd16 AI\u5951\u7d04\u30b7\u30b9\u30c6\u30e0\uff08Claude\/Gemini\/Drive\uff09\r\n\u251c\u2500\u2500 \ud83d\udd25 \u4e0d\u6b7b\u9ce5\u30b5\u30a4\u30af\u30eb\uff08\u30d5\u30a7\u30fc\u30ba\u7ba1\u7406\uff09\r\n\u251c\u2500\u2500 \ud83e\udd89 \u30d5\u30af\u30ed\u30a6\u4fbf\uff08Slack\u7d71\u5408\uff09\r\n\u251c\u2500\u2500 \ud83c\udfdb\ufe0f \u30de\u30c6\u30ea\u30a2\u30eb\u9818\u57df\uff08\u30d5\u30a1\u30a4\u30eb\u7ba1\u7406\uff09\r\n\u251c\u2500\u2500 \ud83d\udcbe \u57ce\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\uff08SQLite\uff09\r\n\u251c\u2500\u2500 \ud83d\udda5\ufe0f tmux\u9b54\u6cd5\u56de\u8def\uff08\u30bf\u30fc\u30df\u30ca\u30eb\u7d71\u5408\uff09\r\n\u251c\u2500\u2500 \ud83d\udcda \u6559\u80b2\u30b7\u30b9\u30c6\u30e0\uff08\u5b66\u7fd2\u652f\u63f4\uff09\r\n\u251c\u2500\u2500 \ud83c\udfa8 \u9b54\u6cd5\u7684UX\uff08\u65e5\u520a\u65b0\u805e\u30fb\u5bee\u5bfe\u6297\u676f\u7b49\uff09\r\n\u2514\u2500\u2500 \ud83d\udee1\ufe0f \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fb\u30d0\u30c3\u30af\u30a2\u30c3\u30d7<\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udcc1 \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u9020<\/h3>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code>project_root\/\r\n\u251c\u2500\u2500 hogwarts_castle.sh           # \u30e1\u30a4\u30f3\u30b9\u30af\u30ea\u30d7\u30c8\r\n\u2514\u2500\u2500 .hogwarts_castle\/            # \u57ce\u306e\u8a2d\u5b9a\r\n    \u251c\u2500\u2500 souls\/                   # \u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u9b42\r\n    \u2502   \u251c\u2500\u2500 portraits\/           # \u6d3b\u52d5\u72b6\u6cc1\r\n    \u2502   \u2514\u2500\u2500 thought_patterns\/    # \u601d\u8003\u30d1\u30bf\u30fc\u30f3\r\n    \u251c\u2500\u2500 contracts\/               # AI\u5951\u7d04\r\n    \u2502   \u251c\u2500\u2500 credentials\/         # \u8a8d\u8a3c\u60c5\u5831\r\n    \u2502   \u251c\u2500\u2500 google_gate.json     # Gemini\u5951\u7d04\r\n    \u2502   \u251c\u2500\u2500 anthropic_library.json # Claude\u5951\u7d04\r\n    \u2502   \u2514\u2500\u2500 contract_manager.sh  # \u5951\u7d04\u7ba1\u7406\r\n    \u251c\u2500\u2500 material_realm\/          # \u30d5\u30a1\u30a4\u30eb\u7ba1\u7406\r\n    \u2502   \u251c\u2500\u2500 room_of_requirement\/ # \u4e00\u822c\u30d5\u30a1\u30a4\u30eb\r\n    \u2502   \u251c\u2500\u2500 pensieve\/           # \u77e5\u8b58\u4fdd\u7ba1\r\n    \u2502   \u2514\u2500\u2500 inbox\/              # \u53d7\u4fe1\u7bb1\r\n    \u251c\u2500\u2500 phoenix_cycles\/          # \u30d5\u30a7\u30fc\u30ba\u7ba1\u7406\r\n    \u251c\u2500\u2500 magical_ux\/             # UX\u6a5f\u80fd\r\n    \u251c\u2500\u2500 education\/              # \u6559\u80b2\u30b7\u30b9\u30c6\u30e0\r\n    \u251c\u2500\u2500 ai_collab\/              # AI\u5354\u50cd\r\n    \u251c\u2500\u2500 project_management\/     # \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u7ba1\u7406\r\n    \u251c\u2500\u2500 scripts\/                # \u88dc\u52a9\u30b9\u30af\u30ea\u30d7\u30c8\r\n    \u251c\u2500\u2500 tmux\/                   # tmux\u8a2d\u5b9a\r\n    \u251c\u2500\u2500 logs\/                   # \u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\r\n    \u2514\u2500\u2500 castle.db               # \u30e1\u30a4\u30f3DB<\/code><\/pre>\n<\/div>\n<\/div>\n<hr \/>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\">\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30fb\u521d\u671f\u8a2d\u5b9a<\/h2>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\ude80 \u30af\u30a4\u30c3\u30af\u30b9\u30bf\u30fc\u30c8\uff08\u63a8\u5968\u74b0\u5883\uff09<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">Windows\uff08WSL2\uff09<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># WSL2\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/span>\r\nwsl --install\r\n<span class=\"token\"># \u518d\u8d77\u52d5\u5f8c\u3001Ubuntu\u3067\uff1a<\/span>\r\n<span class=\"token\">mkdir<\/span> ~\/hogwarts-studio <span class=\"token\">&amp;&amp;<\/span> <span class=\"token\">cd<\/span> ~\/hogwarts-studio\r\n<span class=\"token\"># hogwarts_castle.sh \u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/span>\r\n<span class=\"token\">chmod<\/span> +x hogwarts_castle.sh\r\n.\/hogwarts_castle.sh <span class=\"token\">install<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">Ubuntu\/Debian<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u6e96\u5099<\/span>\r\n<span class=\"token\">sudo<\/span> <span class=\"token\">apt<\/span> update <span class=\"token\">&amp;&amp;<\/span> <span class=\"token\">sudo<\/span> <span class=\"token\">apt<\/span> <span class=\"token\">install<\/span> -y <span class=\"token\">git<\/span> <span class=\"token\">curl<\/span>\r\n<span class=\"token\"># \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/span>\r\n<span class=\"token\">git<\/span> clone <span class=\"token\">&lt;<\/span>repo<span class=\"token\">&gt;<\/span> hogwarts-studio  <span class=\"token\"># \u307e\u305f\u306f\u624b\u52d5\u914d\u7f6e<\/span>\r\n<span class=\"token\">cd<\/span> hogwarts-studio\r\n<span class=\"token\">chmod<\/span> +x hogwarts_castle.sh\r\n.\/hogwarts_castle.sh <span class=\"token\">install<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">macOS<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># Homebrew\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\uff08\u672a\u5c0e\u5165\u306e\u5834\u5408\uff09<\/span>\r\n\/bin\/bash -c <span class=\"token\">\"<\/span><span class=\"token\">$(<\/span><span class=\"token\">curl<\/span><span class=\"token\"> -fsSL https:\/\/raw.githubusercontent.com\/Homebrew\/install\/HEAD\/install.sh<\/span><span class=\"token\">)<\/span><span class=\"token\">\"<\/span>\r\n<span class=\"token\"># \u57ce\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/span>\r\n.\/hogwarts_castle.sh <span class=\"token\">install<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83c\udff0 \u521d\u671f\u5316\u30d7\u30ed\u30bb\u30b9<\/h3>\n<p class=\"whitespace-normal break-words\">\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30b3\u30de\u30f3\u30c9\u5b9f\u884c\u6642\u306e\u8a73\u7d30\u306a\u6d41\u308c\uff1a<\/p>\n<ol class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-decimal space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><strong>OS\u691c\u51fa\u30fb\u4f9d\u5b58\u95a2\u4fc2\u81ea\u52d5\u89e3\u6c7a<\/strong>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u81ea\u52d5\u5b9f\u884c\u3055\u308c\u308b\u5185\u5bb9\uff1a<\/span>\r\n- OS\u5224\u5b9a\uff08Ubuntu\/CentOS\/macOS\/Windows\uff09\r\n- \u30d1\u30c3\u30b1\u30fc\u30b8\u30de\u30cd\u30fc\u30b8\u30e3\u30fc\u691c\u51fa\r\n- \u5fc5\u8981\u30c4\u30fc\u30eb\u306e\u81ea\u52d5\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\uff1a\r\n  * jq\uff08JSON\u51e6\u7406\uff09\r\n  * curl\uff08HTTP\u901a\u4fe1\uff09\r\n  * tmux\uff08\u30bf\u30fc\u30df\u30ca\u30eb\u591a\u91cd\u5316\uff09\r\n  * sqlite3\uff08\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\uff09\r\n  * inotify-tools\/fswatch\uff08\u30d5\u30a1\u30a4\u30eb\u76e3\u8996\uff09<\/code><\/pre>\n<\/div>\n<\/div>\n<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u57ce\u306e\u69cb\u9020\u69cb\u7bc9<\/strong>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u4f5c\u6210<\/span>\r\n<span class=\"token\"># \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u751f\u6210<\/span>\r\n<span class=\"token\"># \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u521d\u671f\u5316<\/span>\r\n<span class=\"token\"># \u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u5b9a\u7fa9<\/span>\r\n<span class=\"token\"># \u30b9\u30af\u30ea\u30d7\u30c8\u914d\u7f6e<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u5b8c\u4e86\u30ac\u30a4\u30c9\u8868\u793a<\/strong>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code>\ud83d\udcda \u6b21\u306e\u30b9\u30c6\u30c3\u30d7:\r\n1. .\/hogwarts_castle.sh status     # \u72b6\u6cc1\u78ba\u8a8d\r\n2. .\/hogwarts_castle.sh start      # tmux\u8d77\u52d5\r\n3. .\/hogwarts_castle.sh project start \"\u65b0\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\"\r\n4. .\/hogwarts_castle.sh contract anthropic  # AI\u5951\u7d04<\/code><\/pre>\n<\/div>\n<\/div>\n<\/li>\n<\/ol>\n<hr \/>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\">\u57fa\u672c\u64cd\u4f5c<\/h2>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83c\udfae \u30e1\u30a4\u30f3\u30b3\u30de\u30f3\u30c9\u4e00\u89a7<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u57ce\u306e\u5236\u5fa1<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw init                    <span class=\"token\"># \u57ce\u306e\u521d\u671f\u5316<\/span>\r\n.\/hw start                   <span class=\"token\"># tmux\u9b54\u6cd5\u56de\u8def\u8d77\u52d5<\/span>\r\n.\/hw status                  <span class=\"token\"># \u73fe\u5728\u306e\u72b6\u6cc1\u8868\u793a<\/span>\r\n.\/hw <span class=\"token\">help<\/span>                    <span class=\"token\"># \u30d8\u30eb\u30d7\u8868\u793a<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u7ba1\u7406<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw project create <span class=\"token\">\"\u540d\u524d\"<\/span> <span class=\"token\">\"\u8aac\u660e\"<\/span>        <span class=\"token\"># \u65b0\u898f\u4f5c\u6210<\/span>\r\n.\/hw project start <span class=\"token\">\"\u540d\u524d\"<\/span>               <span class=\"token\"># \u958b\u59cb\uff08\u7d44\u5206\u3051\u5e3d\u4ed8\u304d\uff09<\/span>\r\n.\/hw project list                       <span class=\"token\"># \u4e00\u89a7\u8868\u793a<\/span>\r\n.\/hw project switch <span class=\"token\">\"\u540d\u524d\"<\/span>              <span class=\"token\"># \u5207\u308a\u66ff\u3048<\/span>\r\n.\/hw project status                     <span class=\"token\"># \u73fe\u5728\u306e\u72b6\u6cc1<\/span>\r\n.\/hw project add-task <span class=\"token\">\"\u30bf\u30b9\u30af\"<\/span> <span class=\"token\">\"\u62c5\u5f53\u8005\"<\/span>   <span class=\"token\"># \u30bf\u30b9\u30af\u8ffd\u52a0<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u64cd\u4f5c<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw summon \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2              <span class=\"token\"># \u53ec\u559a<\/span>\r\n.\/hw banish \u30ed\u30f3                     <span class=\"token\"># \u4f11\u7720<\/span>\r\n.\/hw banish all                      <span class=\"token\"># \u5168\u54e1\u4f11\u7720<\/span>\r\n.\/hw ask \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc <span class=\"token\">\"\u8cea\u554f\u5185\u5bb9\"<\/span>     <span class=\"token\"># \u76f4\u63a5\u8cea\u554f<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30d5\u30a7\u30fc\u30ba\u7ba1\u7406<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw phase design           <span class=\"token\"># \u8a2d\u8a08\u30d5\u30a7\u30fc\u30ba<\/span>\r\n.\/hw phase implement        <span class=\"token\"># \u5b9f\u88c5\u30d5\u30a7\u30fc\u30ba<\/span>\r\n.\/hw phase deploy          <span class=\"token\"># \u30c7\u30d7\u30ed\u30a4\u30d5\u30a7\u30fc\u30ba<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">AI\u95a2\u9023<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw contract google                    <span class=\"token\"># Gemini\u5951\u7d04<\/span>\r\n.\/hw contract anthropic                 <span class=\"token\"># Claude\u5951\u7d04<\/span>\r\n.\/hw contract google-drive             <span class=\"token\"># Drive\u5951\u7d04<\/span>\r\n.\/hw contract status                    <span class=\"token\"># \u5951\u7d04\u72b6\u6cc1<\/span>\r\n.\/hw ai-chain <span class=\"token\">\"\u554f\u984c\"<\/span> \u30ad\u30e3\u30e91 \u30ad\u30e3\u30e92    <span class=\"token\"># AI\u601d\u8003\u30c1\u30a7\u30fc\u30f3<\/span>\r\n.\/hw ai-debate <span class=\"token\">\"\u8b70\u984c\"<\/span> \u30ad\u30e3\u30e91 \u30ad\u30e3\u30e92   <span class=\"token\"># AI\u30c7\u30a3\u30d9\u30fc\u30c8<\/span>\r\n.\/hw ai-review <span class=\"token\">\"\u30d5\u30a1\u30a4\u30eb.py\"<\/span>           <span class=\"token\"># AI\u30b3\u30fc\u30c9\u30ec\u30d3\u30e5\u30fc<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udcca status \u30b3\u30de\u30f3\u30c9\u8a73\u7d30<\/h3>\n<p class=\"whitespace-normal break-words\"><code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">.\/hw status<\/code> \u3067\u8868\u793a\u3055\u308c\u308b\u60c5\u5831\uff1a<\/p>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code>\ud83c\udff0 ====== \u9b42\u306e\u5bbf\u308b\u57ce v28.0.1 \u72b6\u6cc1\u5831\u544a ======\r\n\ud83d\udcc5 \u73fe\u5728\u6642\u523b: 2024-12-28 15:30:00\r\n\ud83c\udfd7\ufe0f \u30d7\u30ed\u30b8\u30a7\u30af\u30c8: \u65b0AI\u30a2\u30d7\u30ea (ABC123)\r\n\ud83d\udd25 \u73fe\u5728\u306e\u30d5\u30a7\u30fc\u30ba: implement\r\n\ud83d\udc65 \u6d3b\u52d5\u4e2d\u306e\u30ad\u30e3\u30e9\u30af\u30bf\u30fc (3\u540d)\uff1a\r\n  \ud83e\uddd9\u200d\u2642\ufe0f \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2\r\n  \ud83d\udee0\ufe0f \u30ed\u30f3\r\n  \ud83d\udde1\ufe0f \u30b9\u30cd\u30a4\u30d7\r\n\r\n\ud83e\udd1d AI\u5951\u7d04\u72b6\u6cc1\r\n==============================\r\nGoogle Gate (Gemini): active\r\nAnthropic Library (Claude): active\r\nGoogle Drive Gate: active\r\n\r\n\ud83d\udcca \u672c\u65e5\u306eAPI\u4f7f\u7528\u72b6\u6cc1\r\n==============================\r\nGemini: 45\u56de \u2705 \u6b63\u5e38\r\nClaude: 23\u56de \u2705 \u6b63\u5e38\r\n\r\n\ud83d\udda5\ufe0f tmux\u30bb\u30c3\u30b7\u30e7\u30f3: 1 \u500b\u7a3c\u50cd\u4e2d\r\n\ud83d\udcbe \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9:\r\n  \u30d7\u30ed\u30b8\u30a7\u30af\u30c8: 3\u500b, \u30bf\u30b9\u30af: 15\u500b<\/code><\/pre>\n<\/div>\n<\/div>\n<hr \/>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\">\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u30b7\u30b9\u30c6\u30e0<\/h2>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udc65 9\u4eba\u306eAI\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u8a73\u7d30<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\ud83e\uddd9\u200d\u2642\ufe0f \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2\uff08\u7d71\u62ec\u53f8\u4ee4\uff09<\/h4>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><strong>AI<\/strong>: Claude\uff08\u9ad8\u7cbe\u5ea6\uff09<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u5f79\u5272<\/strong>: \u6226\u7565\u7acb\u6848\u3001\u5168\u4f53\u6700\u9069\u5316\u3001\u91cd\u8981\u306a\u610f\u601d\u6c7a\u5b9a<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u5f97\u610f<\/strong>: \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u521d\u671f\u8a2d\u8a08\u3001\u8907\u96d1\u306a\u554f\u984c\u306e\u4fef\u77b0\u7684\u5206\u6790<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u81ea\u52d5\u53c2\u52a0\u30d5\u30a7\u30fc\u30ba<\/strong>: design<\/li>\n<\/ul>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw ask \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2 <span class=\"token\">\"\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5168\u4f53\u306e\u65b9\u5411\u6027\u306b\u3064\u3044\u3066\u76f8\u8ac7\u3057\u305f\u3044\"<\/span>\r\n.\/hw summon \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2  <span class=\"token\"># \u91cd\u8981\u306a\u6c7a\u5b9a\u6642\u306b\u53ec\u559a<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\ud83d\udc69\u200d\ud83c\udfeb \u30de\u30af\u30b4\u30ca\u30ac\u30eb\uff08\u73fe\u5834\u76e3\u7763\uff09<\/h4>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><strong>AI<\/strong>: Claude\uff08\u4e2d\u7cbe\u5ea6\uff09<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u5f79\u5272<\/strong>: \u30bf\u30b9\u30af\u7ba1\u7406\u3001\u30d5\u30a7\u30fc\u30ba\u9077\u79fb\u3001\u9032\u6357\u76e3\u8996<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u5f97\u610f<\/strong>: \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u7ba1\u7406\u3001\u30c1\u30fc\u30e0\u8abf\u6574\u3001\u54c1\u8cea\u7ba1\u7406<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u81ea\u52d5\u53c2\u52a0\u30d5\u30a7\u30fc\u30ba<\/strong>: design<\/li>\n<\/ul>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u4e3b\u306b\u30b7\u30b9\u30c6\u30e0\u5185\u90e8\u3067\u81ea\u52d5\u6d3b\u52d5<\/span>\r\n<span class=\"token\"># \u30d5\u30a7\u30fc\u30ba\u9077\u79fb\u3084\u30bf\u30b9\u30af\u7ba1\u7406\u3067\u6d3b\u8e8d<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\ud83d\udcda \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc\uff08\u77e5\u8b58\u63a2\u7a76\u8005\uff09<\/h4>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><strong>AI<\/strong>: Claude\uff08\u9ad8\u7cbe\u5ea6\uff09<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u5f79\u5272<\/strong>: \u8a73\u7d30\u5206\u6790\u3001\u6280\u8853\u8abf\u67fb\u3001\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u6574\u7406<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u5f97\u610f<\/strong>: \u6280\u8853\u4ed5\u69d8\u3001\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\u8abf\u67fb\u3001\u8a73\u7d30\u8a2d\u8a08<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u81ea\u52d5\u53c2\u52a0\u30d5\u30a7\u30fc\u30ba<\/strong>: design<\/li>\n<\/ul>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw ask \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc <span class=\"token\">\"React\u306e\u6700\u65b0\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u624b\u6cd5\u3092\u6559\u3048\u3066\"<\/span>\r\n.\/hw ask \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc <span class=\"token\">\"\u3053\u306eAPI\u306e\u4ed5\u69d8\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8abf\u3079\u3066\"<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\ud83d\udee0\ufe0f \u30ed\u30f3\uff08\u5b9f\u8df5\u9b54\u6cd5\u4f7f\u3044\uff09<\/h4>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><strong>AI<\/strong>: Gemini + Claude\uff08\u30cf\u30a4\u30d6\u30ea\u30c3\u30c9\uff09<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u5f79\u5272<\/strong>: \u5b9f\u88c5\u4f5c\u696d\u3001\u5b9f\u7528\u7684\u89e3\u6c7a\u7b56\u3001\u30b3\u30fc\u30c9\u4f5c\u6210<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u5f97\u610f<\/strong>: \u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u3001\u5b9f\u88c5\u3001\u5b9f\u7528\u7684\u306a\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u81ea\u52d5\u53c2\u52a0\u30d5\u30a7\u30fc\u30ba<\/strong>: implement<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u7279\u6b8a\u6a5f\u80fd<\/strong>: \u8907\u96d1\u5ea6\u5224\u5b9a\u306b\u3088\u308bAI\u81ea\u52d5\u5207\u308a\u66ff\u3048<\/li>\n<\/ul>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw ask \u30ed\u30f3 <span class=\"token\">\"\u30e6\u30fc\u30b6\u30fc\u8a8d\u8a3c\u6a5f\u80fd\u3092\u5b9f\u88c5\u3057\u305f\u3044\"<\/span>\r\n.\/hw ask \u30ed\u30f3 <span class=\"token\">\"\u3053\u306e\u30d0\u30b0\u3092\u4fee\u6b63\u3059\u308b\u65b9\u6cd5\u306f\uff1f\"<\/span>\r\n<span class=\"token\"># \u8907\u96d1\u306a\u554f\u984c\u306f\u81ea\u52d5\u3067Claude\u3082\u4f75\u7528<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u26a1 \u30cf\u30ea\u30fc\uff08\u771f\u5b9f\u63a2\u7a76\u8005\uff09<\/h4>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><strong>AI<\/strong>: Gemini\uff08\u4e2d\u7cbe\u5ea6\uff09<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u5f79\u5272<\/strong>: \u554f\u984c\u89e3\u6c7a\u3001\u30d0\u30b0\u8abf\u67fb\u3001\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u5f97\u610f<\/strong>: \u30c7\u30d0\u30c3\u30b0\u3001\u554f\u984c\u7279\u5b9a\u3001\u771f\u56e0\u7a76\u660e<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u81ea\u52d5\u53c2\u52a0\u30d5\u30a7\u30fc\u30ba<\/strong>: implement<\/li>\n<\/ul>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw ask \u30cf\u30ea\u30fc <span class=\"token\">\"\u3053\u306e\u30a8\u30e9\u30fc\u306e\u539f\u56e0\u3092\u8abf\u3079\u3066\"<\/span>\r\n.\/hw ask \u30cf\u30ea\u30fc <span class=\"token\">\"\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u304c\u4f4e\u4e0b\u3057\u3066\u3044\u308b\u7406\u7531\u306f\uff1f\"<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\ud83c\udf19 \u30eb\u30fc\u30ca\uff08\u5922\u60f3\u89b3\u5bdf\u8005\uff09<\/h4>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><strong>AI<\/strong>: Gemini\uff08\u4f4e\u7cbe\u5ea6\uff09<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u5f79\u5272<\/strong>: \u5275\u9020\u7684\u767a\u60f3\u3001\u9577\u671f\u76e3\u8996\u3001\u30a4\u30f3\u30b9\u30d4\u30ec\u30fc\u30b7\u30e7\u30f3<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u5f97\u610f<\/strong>: \u30a2\u30a4\u30c7\u30a2\u767a\u60f3\u3001\u65b0\u3057\u3044\u8996\u70b9\u3001\u7d99\u7d9a\u7684\u89b3\u5bdf<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u81ea\u52d5\u53c2\u52a0\u30d5\u30a7\u30fc\u30ba<\/strong>: eternal\uff08\u5e38\u6642\u6d3b\u52d5\uff09<\/li>\n<\/ul>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw ask \u30eb\u30fc\u30ca <span class=\"token\">\"\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u65b0\u3057\u3044\u30a2\u30a4\u30c7\u30a2\u304c\u307b\u3057\u3044\"<\/span>\r\n.\/hw ask \u30eb\u30fc\u30ca <span class=\"token\">\"\u30e6\u30fc\u30b6\u30fc\u304c\u559c\u3076\u6a5f\u80fd\u3092\u8003\u3048\u3066\"<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\ud83d\udde1\ufe0f \u30b9\u30cd\u30a4\u30d7\uff08\u6279\u5224\u7684\u76e3\u67fb\u8005\uff09<\/h4>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><strong>AI<\/strong>: Claude\uff08\u9ad8\u7cbe\u5ea6\uff09<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u5f79\u5272<\/strong>: \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u76e3\u67fb\u3001\u30b3\u30fc\u30c9\u30ec\u30d3\u30e5\u30fc\u3001\u54c1\u8cea\u30c1\u30a7\u30c3\u30af<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u5f97\u610f<\/strong>: \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3001\u30b3\u30fc\u30c9\u54c1\u8cea\u3001\u6f5c\u5728\u7684\u554f\u984c\u306e\u767a\u898b<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u81ea\u52d5\u53c2\u52a0\u30d5\u30a7\u30fc\u30ba<\/strong>: implement<\/li>\n<\/ul>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw ask \u30b9\u30cd\u30a4\u30d7 <span class=\"token\">\"\u3053\u306e\u30b3\u30fc\u30c9\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u30c1\u30a7\u30c3\u30af\u3057\u3066\"<\/span>\r\n.\/hw ai-review <span class=\"token\">\"main.py\"<\/span>  <span class=\"token\"># \u30b9\u30cd\u30a4\u30d7\u3082\u53c2\u52a0\u3059\u308b\u30b3\u30fc\u30c9\u30ec\u30d3\u30e5\u30fc<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\ud83c\udfe0 \u30c9\u30d3\u30fc\uff08\u5fe0\u5b9f\u5b9f\u884c\u8005\uff09<\/h4>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><strong>AI<\/strong>: Gemini\uff08\u4f4e\u7cbe\u5ea6\uff09<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u5f79\u5272<\/strong>: \u30c7\u30d7\u30ed\u30a4\u3001\u5b9f\u884c\u3001\u81ea\u52d5\u5316\u3001\u74b0\u5883\u69cb\u7bc9<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u5f97\u610f<\/strong>: \u4f5c\u696d\u5b9f\u884c\u3001\u74b0\u5883\u8a2d\u5b9a\u3001\u7d99\u7d9a\u7684\u5b9f\u884c<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u81ea\u52d5\u53c2\u52a0\u30d5\u30a7\u30fc\u30ba<\/strong>: deploy<\/li>\n<\/ul>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw ask \u30c9\u30d3\u30fc <span class=\"token\">\"\u672c\u756a\u74b0\u5883\u3078\u306e\u6e96\u5099\u3092\u3057\u3066\"<\/span>\r\n.\/hw ask \u30c9\u30d3\u30fc <span class=\"token\">\"\u81ea\u52d5\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u306e\u8a2d\u5b9a\u3092\u304a\u9858\u3044\"<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\ud83d\udc3b\u200d\u2744\ufe0f JK\u30ed\u30fc\u30ea\u30f3\u30b0\u30de\uff08\u6559\u80b2\u6848\u5185\u4eba\uff09<\/h4>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><strong>AI<\/strong>: \u30ed\u30fc\u30ab\u30eb\u6559\u80b2\u30b7\u30b9\u30c6\u30e0<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u5f79\u5272<\/strong>: \u6559\u80b2\u3001\u8aac\u660e\u3001\u521d\u5fc3\u8005\u30b5\u30dd\u30fc\u30c8\u3001\u6e29\u304b\u3044\u6307\u5c0e<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u5f97\u610f<\/strong>: \u5206\u304b\u308a\u3084\u3059\u3044\u8aac\u660e\u3001\u6bb5\u968e\u7684\u6307\u5c0e\u3001\u30a8\u30e9\u30fc\u6642\u306e\u6170\u3081<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u81ea\u52d5\u53c2\u52a0\u30d5\u30a7\u30fc\u30ba<\/strong>: design, deploy<\/li>\n<\/ul>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw ask JK\u30ed\u30fc\u30ea\u30f3\u30b0\u30de <span class=\"token\">\"React\u3063\u3066\u4f55\u3067\u3059\u304b\uff1f\"<\/span>\r\n.\/hw teach concept <span class=\"token\">\"API\u8a2d\u8a08\"<\/span> beginner\r\n.\/hw teach explain <span class=\"token\">\"main.py\"<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83c\udfad \u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u64cd\u4f5c\u306e\u8a73\u7d30<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u53ec\u559a\u30fb\u4f11\u7720\u30b7\u30b9\u30c6\u30e0<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u5358\u4f53\u53ec\u559a<\/span>\r\n.\/hw summon \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc\r\n<span class=\"token\"># \u2192 \u81ea\u5f8b\u601d\u8003\u30d7\u30ed\u30bb\u30b9\u958b\u59cb<\/span>\r\n<span class=\"token\"># \u2192 tmux\u3067\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u7a3c\u50cd<\/span>\r\n<span class=\"token\"># \u2192 \u5b9a\u671f\u7684\u306b\u601d\u8003\u30fb\u63d0\u6848\u3092\u751f\u6210<\/span>\r\n\r\n<span class=\"token\"># \u5168\u54e1\u4f11\u7720<\/span>\r\n.\/hw banish all\r\n<span class=\"token\"># \u2192 \u5168\u3066\u306e\u81ea\u5f8b\u601d\u8003\u30d7\u30ed\u30bb\u30b9\u505c\u6b62<\/span>\r\n<span class=\"token\"># \u2192 \u30ea\u30bd\u30fc\u30b9\u7bc0\u7d04<\/span>\r\n\r\n<span class=\"token\"># \u6d3b\u52d5\u78ba\u8a8d<\/span>\r\n.\/hw status\r\n<span class=\"token\"># \u2192 \u73fe\u5728\u6d3b\u52d5\u4e2d\u306e\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u4e00\u89a7\u8868\u793a<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u81ea\u5f8b\u601d\u8003\u30b7\u30b9\u30c6\u30e0<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u5404\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u306f5\u5206\u9593\u9694\u3067\u81ea\u5f8b\u601d\u8003<\/span>\r\n<span class=\"token\"># \u4f8b\uff1a\u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc\u306e\u81ea\u5f8b\u601d\u8003<\/span>\r\n\ud83d\udcda \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc: \ud83d\udcad \u65e2\u5b58\u306e\u30d1\u30bf\u30fc\u30f3\u3092\u5206\u6790\u4e2d<span class=\"token\">..<\/span>.\r\n\ud83d\udcda \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc: \ud83d\udcad \u65b0\u3057\u3044\u30a2\u30a4\u30c7\u30a2\u3092\u601d\u7d22\u4e2d<span class=\"token\">..<\/span>.\r\n\r\n<span class=\"token\"># \u30eb\u30fc\u30ca\u306e\u307f\u6c38\u7d9a\u6d3b\u52d5\uff08eternal phase\uff09<\/span>\r\n\ud83c\udf19 \u30eb\u30fc\u30ca: \ud83d\udcad \u30b3\u30fc\u30c9\u306b\u7f8e\u3057\u3044\u5909\u5316\u304c\u8a2a\u308c\u305d\u3046<span class=\"token\">..<\/span>.<\/code><\/pre>\n<\/div>\n<\/div>\n<hr \/>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\">AI\u5951\u7d04\u30b7\u30b9\u30c6\u30e0<\/h2>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83e\udd1d \u5951\u7d04\u306e\u6982\u5ff5<\/h3>\n<p class=\"whitespace-normal break-words\">AI\u30b5\u30fc\u30d3\u30b9\u3068\u306e\u300c\u5951\u7d04\u300d\u306b\u3088\u308a\u3001\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u304cAI\u30d1\u30ef\u30fc\u3092\u5f97\u308b\u4ed5\u7d44\u307f\uff1a<\/p>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code>\ud83c\udf1f Google Gate (Gemini API)\r\n\u251c\u2500\u2500 \u5951\u7d04\u30ad\u30e3\u30e9\u30af\u30bf\u30fc: \u30ed\u30f3\u3001\u30cf\u30ea\u30fc\u3001\u30eb\u30fc\u30ca\u3001\u30c9\u30d3\u30fc\r\n\u251c\u2500\u2500 \u8a8d\u8a3c\u65b9\u5f0f: OAuth2 Web Flow\r\n\u2514\u2500\u2500 \u5f97\u610f\u5206\u91ce: \u5b9f\u88c5\u3001\u30a2\u30a4\u30c7\u30a2\u3001\u5b9f\u884c\r\n\r\n\ud83d\udcda Anthropic Library (Claude API)  \r\n\u251c\u2500\u2500 \u5951\u7d04\u30ad\u30e3\u30e9\u30af\u30bf\u30fc: \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2\u3001\u30de\u30af\u30b4\u30ca\u30ac\u30eb\u3001\u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc\u3001\u30b9\u30cd\u30a4\u30d7\r\n\u251c\u2500\u2500 \u8a8d\u8a3c\u65b9\u5f0f: API Key\r\n\u2514\u2500\u2500 \u5f97\u610f\u5206\u91ce: \u6226\u7565\u3001\u5206\u6790\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\r\n\r\n\ud83d\udcbe Google Drive Gate\r\n\u251c\u2500\u2500 \u7528\u9014: \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3001\u30d5\u30a1\u30a4\u30eb\u9023\u643a\r\n\u251c\u2500\u2500 \u8a8d\u8a3c\u65b9\u5f0f: OAuth2 Web Flow\r\n\u2514\u2500\u2500 \u6a5f\u80fd: \u6b21\u5143\u8a18\u61b6\u4fdd\u5b58\u30fb\u5fa9\u5143<\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\ude80 \u5951\u7d04\u624b\u9806\u8a73\u7d30<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">Google Gate\uff08Gemini\uff09\u5951\u7d04<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># 1. \u5951\u7d04\u958b\u59cb<\/span>\r\n.\/hw contract google\r\n\r\n<span class=\"token\"># 2. \u8868\u793a\u3055\u308c\u308b\u624b\u9806\uff1a<\/span>\r\n<span class=\"token\"># - Google Cloud Console \u3067\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u4f5c\u6210<\/span>\r\n<span class=\"token\"># - Generative Language API \u6709\u52b9\u5316  <\/span>\r\n<span class=\"token\"># - OAuth2 \u30af\u30e9\u30a4\u30a2\u30f3\u30c8ID\u4f5c\u6210<\/span>\r\n<span class=\"token\"># - \u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305fJSON\u3092\u6307\u5b9a\u5834\u6240\u306b\u914d\u7f6e<\/span>\r\n\r\n<span class=\"token\"># 3. \u8a8d\u8a3c\u30d5\u30ed\u30fc<\/span>\r\n<span class=\"token\"># \u30d6\u30e9\u30a6\u30b6\u3067\u8a8d\u8a3cURL\u81ea\u52d5\u30aa\u30fc\u30d7\u30f3<\/span>\r\n<span class=\"token\"># \u8a8d\u8a3c\u5f8c\u3001\u8a8d\u8a3c\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc<\/span>\r\n.\/hw contract setup-gemini-token <span class=\"token\">&lt;<\/span>\u8a8d\u8a3c\u30b3\u30fc\u30c9<span class=\"token\">&gt;<\/span>\r\n\r\n<span class=\"token\"># 4. \u5951\u7d04\u5b8c\u4e86\u78ba\u8a8d<\/span>\r\n.\/hw contract status\r\n<span class=\"token\"># \u2192 Google Gate (Gemini): active<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">Anthropic Library\uff08Claude\uff09\u5951\u7d04<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># 1. \u5951\u7d04\u958b\u59cb<\/span>\r\n.\/hw contract anthropic\r\n\r\n<span class=\"token\"># 2. \u624b\u9806\uff1a<\/span>\r\n<span class=\"token\"># - https:\/\/console.anthropic.com\/ \u3067API\u30ad\u30fc\u53d6\u5f97<\/span>\r\n<span class=\"token\"># - API\u30ad\u30fc\u3092\u30b3\u30d4\u30fc<\/span>\r\n\r\n<span class=\"token\"># 3. API\u30ad\u30fc\u8a2d\u5b9a<\/span>\r\n.\/hw contract setup-claude-api-key <span class=\"token\">&lt;<\/span>API\u30ad\u30fc<span class=\"token\">&gt;<\/span>\r\n\r\n<span class=\"token\"># 4. \u5951\u7d04\u5b8c\u4e86\u78ba\u8a8d<\/span>\r\n.\/hw contract status\r\n<span class=\"token\"># \u2192 Anthropic Library (Claude): active<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">Google Drive Gate\u5951\u7d04<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># 1. \u5951\u7d04\u958b\u59cb<\/span>\r\n.\/hw contract google-drive\r\n\r\n<span class=\"token\"># 2. \u624b\u9806\uff1a<\/span>\r\n<span class=\"token\"># - Google Cloud Console \u3067 Drive API \u6709\u52b9\u5316<\/span>\r\n<span class=\"token\"># - OAuth2 \u30af\u30e9\u30a4\u30a2\u30f3\u30c8ID\u4f5c\u6210\uff08Drive\u30a2\u30af\u30bb\u30b9\u6a29\u9650\uff09<\/span>\r\n<span class=\"token\"># - JSON\u30d5\u30a1\u30a4\u30eb\u914d\u7f6e<\/span>\r\n\r\n<span class=\"token\"># 3. \u8a8d\u8a3c<\/span>\r\n.\/hw contract google-drive-token <span class=\"token\">&lt;<\/span>\u8a8d\u8a3c\u30b3\u30fc\u30c9<span class=\"token\">&gt;<\/span>\r\n\r\n<span class=\"token\"># 4. \u5b8c\u4e86<\/span>\r\n.\/hw contract status\r\n<span class=\"token\"># \u2192 Google Drive Gate: active<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udcca API\u4f7f\u7528\u91cf\u7ba1\u7406<\/h3>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u4f7f\u7528\u72b6\u6cc1\u78ba\u8a8d<\/span>\r\n.\/hw contract status\r\n\r\n<span class=\"token\"># \u8868\u793a\u4f8b:<\/span>\r\n\ud83d\udcca \u672c\u65e5\u306eAPI\u4f7f\u7528\u72b6\u6cc1\r\n<span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span>\r\nGemini: <span class=\"token\">145<\/span>\u56de \u2705 \u6b63\u5e38\r\nClaude: <span class=\"token\">78<\/span>\u56de \u2705 \u6b63\u5e38\r\n\r\n<span class=\"token\"># \u4e0a\u9650\u5230\u9054\u6642\u306e\u81ea\u52d5\u30d5\u30a9\u30fc\u30eb\u30d0\u30c3\u30af:<\/span>\r\n<span class=\"token\"># Claude\u4e0a\u9650 \u2192 Gemini\u3067\u4ee3\u66ff<\/span>\r\n<span class=\"token\"># Gemini\u4e0a\u9650 \u2192 \u30ed\u30fc\u30ab\u30eb\u6559\u80b2\u30b7\u30b9\u30c6\u30e0\u3067\u4ee3\u66ff<\/span>\r\n<span class=\"token\"># \u4e21\u65b9\u4e0a\u9650 \u2192 \u30ed\u30fc\u30ab\u30eb\u306e\u307f\u3067\u52d5\u4f5c<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<hr \/>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\">\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u7ba1\u7406<\/h2>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udccb \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30e9\u30a4\u30d5\u30b5\u30a4\u30af\u30eb<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">1. \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u4f5c\u6210\u30fb\u958b\u59cb<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u65b0\u898f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u958b\u59cb<\/span>\r\n.\/hw project start <span class=\"token\">\"AI\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\"<\/span> <span class=\"token\">\"\u9867\u5ba2\u30b5\u30dd\u30fc\u30c8\u7528\u306e\u5bfe\u8a71AI\"<\/span>\r\n\r\n<span class=\"token\"># \u5b9f\u884c\u3055\u308c\u308b\u6d41\u308c:<\/span>\r\n<span class=\"token\"># 1. \u7d44\u5206\u3051\u5e3d\u306b\u3088\u308b\u6df1\u6398\u308a\u8cea\u554f<\/span>\r\n<span class=\"token\"># 2. \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2\u306b\u3088\u308b\u6226\u7565\u7acb\u6848<\/span>\r\n<span class=\"token\"># 3. \u8a2d\u8a08\u30d5\u30a7\u30fc\u30ba\u81ea\u52d5\u958b\u59cb<\/span>\r\n<span class=\"token\"># 4. Google Drive\u30d5\u30a9\u30eb\u30c0\u81ea\u52d5\u4f5c\u6210\uff08\u5951\u7d04\u6e08\u307f\u306e\u5834\u5408\uff09<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">2. \u7d44\u5206\u3051\u5e3d\u30b7\u30b9\u30c6\u30e0\uff08v28.0.1\u65b0\u6a5f\u80fd\uff09<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code>\ud83c\udfa9 \u7d44\u5206\u3051\u5e3d\u304c\u304a\u4e3b\u306e\u771f\u306e\u610f\u5fd7\u3092\u554f\u3044\u304b\u3051\u308b\u306e\u3058\u3083...\r\n\r\n\u30c0\u30f3\u30d6\u30eb\u30c9\u30a2 (\u7d44\u5206\u3051\u5e3d): \ud83c\udfaf \u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u6700\u3082\u9054\u6210\u3057\u305f\u3044\u300e\u7a76\u6975\u306e\u76ee\u6a19\u300f\u306f\u4f55\u3058\u3083\uff1f\r\n\u304a\u4e3b\u306e\u7b54\u3048\u306f\uff1f: &gt; \u9867\u5ba2\u6e80\u8db3\u5ea6\u3092\u5411\u4e0a\u3055\u305b\u3001\u30b5\u30dd\u30fc\u30c8\u5de5\u6570\u309250%\u524a\u6e1b\u3057\u305f\u3044\r\n\r\n\u30c0\u30f3\u30d6\u30eb\u30c9\u30a2 (\u7d44\u5206\u3051\u5e3d): \u2705 \u6210\u529f\u3057\u305f\u3068\u5224\u65ad\u3059\u308b\u305f\u3081\u306e\u300e\u5177\u4f53\u7684\u306a\u57fa\u6e96\u300f\u30923\u3064\u6319\u3052\u3066\u307f\u308b\u306e\u3058\u3083\u3002\r\n\u304a\u4e3b\u306e\u7b54\u3048\u306f\uff1f: &gt; 1.\u5fdc\u7b54\u6642\u95931\u79d2\u4ee5\u5185 2.\u9867\u5ba2\u6e80\u8db3\u5ea690%\u4ee5\u4e0a 3.\u30b5\u30dd\u30fc\u30c8\u554f\u3044\u5408\u308f\u305b50%\u6e1b\r\n\r\n\u30c0\u30f3\u30d6\u30eb\u30c9\u30a2 (\u7d44\u5206\u3051\u5e3d): \u26a0\ufe0f \u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u300e\u907f\u3051\u305f\u3044\u30ea\u30b9\u30af\u3084\u8ab2\u984c\u300f\u306f\u4f55\u3058\u3083\uff1f\r\n\u304a\u4e3b\u306e\u7b54\u3048\u306f\uff1f: &gt; \u4e0d\u6b63\u78ba\u306a\u56de\u7b54\u3001\u30d7\u30e9\u30a4\u30d0\u30b7\u30fc\u6f0f\u6d29\u3001\u9ad8\u3044\u904b\u7528\u30b3\u30b9\u30c8<\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">3. \u6226\u7565\u7acb\u6848<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u7d44\u5206\u3051\u5e3d\u306e\u56de\u7b54\u3092\u8e0f\u307e\u3048\u3001\u30c0\u30f3\u30d6\u30eb\u30c9\u30a2\u304c\u81ea\u52d5\u3067\u6226\u7565\u63d0\u6848<\/span>\r\n\ud83e\uddd9\u200d\u2642\ufe0f \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2: \u6226\u7565\u63d0\u6848\u5b8c\u4e86\r\n\r\n<span class=\"token\"># Slack\u306b\u3082\u81ea\u52d5\u6295\u7a3f:<\/span>\r\n\ud83e\uddd9\u200d\u2642\ufe0f \u65b0\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u6226\u7565\u63d0\u6848\r\n\u30c0\u30f3\u30d6\u30eb\u30c9\u30a2\u69d8\u304c\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u300eAI\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\u300f\u306e\u521d\u671f\u6226\u7565\u3092\u7acb\u6848\u3055\u308c\u307e\u3057\u305f:\r\n\r\n\u3010\u30d5\u30a7\u30fc\u30ba1: \u8981\u4ef6\u5b9a\u7fa9\u30fb\u6280\u8853\u9078\u5b9a\u3011\r\n- \u9867\u5ba2\u554f\u3044\u5408\u308f\u305b\u5206\u6790\r\n- \u9069\u5207\u306aLLM\u9078\u5b9a\r\n- \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8981\u4ef6\u5b9a\u7fa9\r\n\r\n\u3010\u30d5\u30a7\u30fc\u30ba2: \u30d7\u30ed\u30c8\u30bf\u30a4\u30d7\u958b\u767a\u3011\r\n- \u57fa\u672c\u5bfe\u8a71\u6a5f\u80fd\u5b9f\u88c5\r\n- \u5fdc\u7b54\u6642\u9593\u6700\u9069\u5316\r\n- \u521d\u671f\u30c6\u30b9\u30c8\r\n\r\n\u3010\u30d5\u30a7\u30fc\u30ba3: \u904b\u7528\u6e96\u5099\u30fb\u5c55\u958b\u3011\r\n- \u672c\u683c\u30c6\u30b9\u30c8\r\n- \u904b\u7528\u76e3\u8996\u4f53\u5236\u69cb\u7bc9\r\n- \u6bb5\u968e\u7684\u30ed\u30fc\u30eb\u30a2\u30a6\u30c8<\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udcca \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u7ba1\u7406\u30b3\u30de\u30f3\u30c9<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u57fa\u672c\u7ba1\u7406<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u4e00\u89a7<\/span>\r\n.\/hw project list\r\n<span class=\"token\"># \u51fa\u529b\u4f8b:<\/span>\r\n\ud83d\udccb \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u4e00\u89a7\r\n<span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span>\r\nAI\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8 <span class=\"token\">(<\/span>ABC123<span class=\"token\">)<\/span> <span class=\"token\">|<\/span> implement <span class=\"token\">|<\/span> <span class=\"token\">2024<\/span>-12-15 \u2190 \u73fe\u5728\r\nWeb\u30a2\u30d7\u30ea\u30ea\u30cb\u30e5\u30fc\u30a2\u30eb <span class=\"token\">(<\/span>DEF456<span class=\"token\">)<\/span> <span class=\"token\">|<\/span> design <span class=\"token\">|<\/span> <span class=\"token\">2024<\/span>-12-10  \r\n\u793e\u5185\u30c4\u30fc\u30eb\u6539\u5584 <span class=\"token\">(<\/span>GHI789<span class=\"token\">)<\/span> <span class=\"token\">|<\/span> deploy <span class=\"token\">|<\/span> <span class=\"token\">2024<\/span>-12-01\r\n\r\n<span class=\"token\"># \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5207\u308a\u66ff\u3048<\/span>\r\n.\/hw project switch <span class=\"token\">\"Web\u30a2\u30d7\u30ea\u30ea\u30cb\u30e5\u30fc\u30a2\u30eb\"<\/span>\r\n\u2705 \u30d7\u30ed\u30b8\u30a7\u30af\u30c8 <span class=\"token\">'Web\u30a2\u30d7\u30ea\u30ea\u30cb\u30e5\u30fc\u30a2\u30eb'<\/span> <span class=\"token\">(<\/span>\u30b3\u30fc\u30c9: DEF456<span class=\"token\">)<\/span> \u306b\u5207\u308a\u66ff\u3048\u307e\u3057\u305f\u3002\r\n\r\n<span class=\"token\"># \u8a73\u7d30\u72b6\u6cc1<\/span>\r\n.\/hw project status<\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30bf\u30b9\u30af\u7ba1\u7406<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u30bf\u30b9\u30af\u8ffd\u52a0<\/span>\r\n.\/hw project add-task <span class=\"token\">\"\u30e6\u30fc\u30b6\u30fc\u8a8d\u8a3cAPI\u5b9f\u88c5\"<\/span> <span class=\"token\">\"\u30ed\u30f3\"<\/span>\r\n\u2705 \u30bf\u30b9\u30af <span class=\"token\">'\u30e6\u30fc\u30b6\u30fc\u8a8d\u8a3cAPI\u5b9f\u88c5'<\/span> \u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f\u3002\r\n\ud83d\udee0\ufe0f \u30ed\u30f3: \ud83d\udccb \u65b0\u3057\u3044\u30bf\u30b9\u30af\u304c\u5272\u308a\u5f53\u3066\u3089\u308c\u307e\u3057\u305f: \u30e6\u30fc\u30b6\u30fc\u8a8d\u8a3cAPI\u5b9f\u88c5\r\n\r\n<span class=\"token\"># \u30bf\u30b9\u30af\u72b6\u6cc1\u306f .\/hw status \u3067\u78ba\u8a8d<\/span>\r\n\u30bf\u30b9\u30af: <span class=\"token\">3<\/span>\/10 \u5b8c\u4e86<\/code><\/pre>\n<\/div>\n<\/div>\n<hr \/>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\">\u30d5\u30a7\u30fc\u30ba\u7ba1\u7406\uff08\u4e0d\u6b7b\u9ce5\u30b5\u30a4\u30af\u30eb\uff09<\/h2>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udd25 4\u3064\u306e\u958b\u767a\u30d5\u30a7\u30fc\u30ba<\/h3>\n<p class=\"whitespace-normal break-words\">\u30db\u30b0\u30ef\u30fc\u30c4\u30fb\u30b9\u30bf\u30b8\u30aa\u306f\u300c\u4e0d\u6b7b\u9ce5\u306e\u5186\u74b0\u300d\u601d\u60f3\u306b\u57fa\u3065\u304f4\u30d5\u30a7\u30fc\u30ba\u30b5\u30a4\u30af\u30eb\uff1a<\/p>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\ud83c\udfa8 Design\uff08\u8a2d\u8a08\u306e\u5186\u5353\uff09<\/h4>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><strong>\u6d3b\u52d5\u30ad\u30e3\u30e9\u30af\u30bf\u30fc<\/strong>: \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2\u3001\u30de\u30af\u30b4\u30ca\u30ac\u30eb\u3001\u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc\u3001JK\u30ed\u30fc\u30ea\u30f3\u30b0\u30de<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u76ee\u7684<\/strong>: \u8981\u4ef6\u5b9a\u7fa9\u3001\u6280\u8853\u9078\u5b9a\u3001\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u8a2d\u8a08<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u671f\u9593<\/strong>: \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5168\u4f53\u306e20-30%<\/li>\n<\/ul>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw phase design\r\n\ud83d\udd04 \u30d5\u30a7\u30fc\u30ba\u9077\u79fb: implement \u2192 design\r\n\u2728 \u8a2d\u8a08\u306e\u5186\u5353\u3078\u3088\u3046\u3053\u305d\uff01 \u2728\r\n\u7406\u7531: \u4ed5\u69d8\u5909\u66f4\u306e\u305f\u3081\u518d\u8a2d\u8a08\u304c\u5fc5\u8981\r\n\r\n<span class=\"token\"># \u81ea\u52d5\u3067\u8a2d\u8a08\u30c1\u30fc\u30e0\u304c\u53ec\u559a\u3055\u308c\u308b<\/span>\r\n<span class=\"token\"># \u5b9f\u88c5\u30c1\u30fc\u30e0\u306f\u81ea\u52d5\u3067\u4f11\u7720<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u26a1 Implement\uff08\u5275\u9020\u306e\u5de5\u623f\uff09<\/h4>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><strong>\u6d3b\u52d5\u30ad\u30e3\u30e9\u30af\u30bf\u30fc<\/strong>: \u30ed\u30f3\u3001\u30cf\u30ea\u30fc\u3001\u30b9\u30cd\u30a4\u30d7<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u76ee\u7684<\/strong>: \u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3001\u30c6\u30b9\u30c8\u3001\u54c1\u8cea\u5411\u4e0a<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u671f\u9593<\/strong>: \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5168\u4f53\u306e50-60%<\/li>\n<\/ul>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw phase implement\r\n\u26a1 \u5275\u9020\u306e\u5de5\u623f\u3067\u9b54\u6cd5\u3092\u7de8\u3080\u6642\uff01 \u26a1\r\n\u7406\u7531: \u8a2d\u8a08\u5b8c\u4e86\u3001\u5b9f\u88c5\u958b\u59cb\r\n\r\n<span class=\"token\"># \u5b9f\u88c5\u30c1\u30fc\u30e0\u304c\u4e00\u6589\u306b\u6d3b\u52d5\u958b\u59cb<\/span>\r\n\ud83d\udee0\ufe0f \u30ed\u30f3: \ud83d\udcaa \u3088\u3057\u3001\u5b9f\u88c5\u3092\u59cb\u3081\u308b\u305e\uff01\r\n\u26a1 \u30cf\u30ea\u30fc: \ud83d\udd0d \u30d0\u30b0\u304c\u306a\u3044\u304b\u76e3\u8996\u3059\u308b\u3088\r\n\ud83d\udde1\ufe0f \u30b9\u30cd\u30a4\u30d7: \u2696\ufe0f \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u53b3\u3057\u304f\u30c1\u30a7\u30c3\u30af\u3059\u308b<\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\ud83d\ude80 Deploy\uff08\u5b8c\u6210\u3068\u65c5\u7acb\u3061\uff09<\/h4>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><strong>\u6d3b\u52d5\u30ad\u30e3\u30e9\u30af\u30bf\u30fc<\/strong>: \u30c9\u30d3\u30fc\u3001JK\u30ed\u30fc\u30ea\u30f3\u30b0\u30de<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u76ee\u7684<\/strong>: \u74b0\u5883\u69cb\u7bc9\u3001\u30c7\u30d7\u30ed\u30a4\u3001\u904b\u7528\u6e96\u5099<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u671f\u9593<\/strong>: \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5168\u4f53\u306e15-20%<\/li>\n<\/ul>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw phase deploy\r\n\ud83d\ude80 \u5b8c\u6210\u3068\u65c5\u7acb\u3061\u306e\u6642\uff01 \u4e16\u754c\u3078\u9001\u308a\u51fa\u305b\uff01 \ud83d\ude80\r\n\u7406\u7531: \u5b9f\u88c5\u5b8c\u4e86\u3001\u672c\u756a\u30ea\u30ea\u30fc\u30b9\u6e96\u5099\r\n\r\n\ud83c\udfe0 \u30c9\u30d3\u30fc: \u2728 \u672c\u756a\u74b0\u5883\u306e\u6e96\u5099\u3092\u3057\u307e\u3059\uff01\r\n\ud83d\udc3b\u200d\u2744\ufe0f JK\u30ed\u30fc\u30ea\u30f3\u30b0\u30de: \ud83d\udcda \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u6574\u5099\u3059\u308b\u306e\u3058\u3083<\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\ud83c\udf19 Eternal\uff08\u6c38\u7d9a\u306e\u89b3\u5bdf\uff09<\/h4>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><strong>\u6d3b\u52d5\u30ad\u30e3\u30e9\u30af\u30bf\u30fc<\/strong>: \u30eb\u30fc\u30ca<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u76ee\u7684<\/strong>: \u9577\u671f\u76e3\u8996\u3001\u6539\u5584\u63d0\u6848\u3001\u30a4\u30f3\u30b9\u30d4\u30ec\u30fc\u30b7\u30e7\u30f3<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u671f\u9593<\/strong>: \u5e38\u6642\uff08\u4ed6\u30d5\u30a7\u30fc\u30ba\u3068\u4e26\u884c\uff09<\/li>\n<\/ul>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u81ea\u52d5\u7684\u306b\u5e38\u6642\u7a3c\u50cd<\/span>\r\n\ud83c\udf19 \u30eb\u30fc\u30ca: \ud83d\udcad \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u65b0\u3057\u3044\u53ef\u80fd\u6027\u304c\u898b\u3048\u3066\u3044\u307e\u3059<span class=\"token\">..<\/span>.\r\n\ud83c\udf19 \u30eb\u30fc\u30ca: \ud83d\udcad \u30e6\u30fc\u30b6\u30fc\u306e\u96a0\u308c\u305f\u30cb\u30fc\u30ba\u3092\u611f\u3058\u307e\u3059<span class=\"token\">..<\/span>.<\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udd04 \u30d5\u30a7\u30fc\u30ba\u9077\u79fb\u306e\u8a73\u7d30<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u81ea\u52d5\u9077\u79fb\u6761\u4ef6<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u4f8b\uff1aimplement\u30d5\u30a7\u30fc\u30ba\u3067\u306e\u6761\u4ef6\u9054\u6210<\/span>\r\n- \u30bf\u30b9\u30af\u5b8c\u4e86\u738780%\u4ee5\u4e0a\r\n- \u4e3b\u8981\u6a5f\u80fd\u306e\u5b9f\u88c5\u5b8c\u4e86\r\n- \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30c1\u30a7\u30c3\u30af\u901a\u904e\r\n<span class=\"token\"># \u2192 \u81ea\u52d5\u7684\u306bdeploy\u30d5\u30a7\u30fc\u30ba\u3092\u63d0\u6848<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u624b\u52d5\u9077\u79fb<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw phase <span class=\"token\">&lt;<\/span>\u30d5\u30a7\u30fc\u30ba\u540d<span class=\"token\">&gt;<\/span> <span class=\"token\">\"&lt;\u9077\u79fb\u7406\u7531&gt;\"<\/span>\r\n\r\n<span class=\"token\"># Slack\u3067\u3082\u53ef\u80fd<\/span>\r\n\/castle phase implement <span class=\"token\">\"\u8a2d\u8a08\u30ec\u30d3\u30e5\u30fc\u5b8c\u4e86\"<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<hr \/>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\">Slack\u9023\u643a\uff08\u30d5\u30af\u30ed\u30a6\u4fbf\uff09<\/h2>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83e\udd89 \u30d5\u30af\u30ed\u30a6\u4fbf\u30b7\u30b9\u30c6\u30e0\u6982\u8981<\/h3>\n<p class=\"whitespace-normal break-words\">\u30db\u30b0\u30ef\u30fc\u30c4\u30fb\u30b9\u30bf\u30b8\u30aa\u306e\u771f\u9ac4\u3068\u3082\u8a00\u3048\u308b\u3001Slack\u3068\u306e\u5b8c\u5168\u53cc\u65b9\u5411\u9023\u643a\u30b7\u30b9\u30c6\u30e0\u3002\u30c1\u30fc\u30e0\u5168\u4f53\u304c\u96e2\u308c\u305f\u5834\u6240\u304b\u3089\u3067\u3082\u57ce\u3092\u64cd\u308c\u307e\u3059\u3002<\/p>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udd27 \u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u624b\u9806<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">1. Slack App\u4f5c\u6210<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code>1. https:\/\/api.slack.com\/apps \u306b\u30a2\u30af\u30bb\u30b9\r\n2. \u300cCreate New App\u300d\u2192\u300cFrom scratch\u300d\r\n3. App Name: \"Hogwarts Castle\"\r\n4. Workspace\u9078\u629e \u2192 \u300cCreate App\u300d<\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">2. Incoming Webhook\u8a2d\u5b9a<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code>1. \u5de6\u30b5\u30a4\u30c9\u30d0\u30fc\u300cIncoming Webhooks\u300d\r\n2. \u300cActivate Incoming Webhooks\u300d\u3092ON\r\n3. \u300cAdd New Webhook to Workspace\u300d\r\n4. \u6295\u7a3f\u5148\u30c1\u30e3\u30f3\u30cd\u30eb\u9078\u629e\uff08#general\u63a8\u5968\uff09\r\n5. Webhook URL\u3092\u30b3\u30d4\u30fc<\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">3. Slash Command\u8a2d\u5b9a<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code>Command: \/castle\r\nRequest URL: http:\/\/\u3042\u306a\u305f\u306e\u30b5\u30fc\u30d0\u30fcIP:8080\r\nShort Description: \u30db\u30b0\u30ef\u30fc\u30c4\u57ce\u3078\u306e\u9b54\u6cd5\u6307\u4ee4\r\nUsage Hint: ask \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2 \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u72b6\u6cc1\u306f\uff1f<\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">4. \u57ce\u5074\u8a2d\u5b9a<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># Webhook URL\u8a2d\u5b9a<\/span>\r\n.\/hw config slack <span class=\"token\">\"https:\/\/hooks.slack.com\/services\/T...\/B...\/...\"<\/span>\r\n\r\n<span class=\"token\"># \u6210\u529f\u78ba\u8a8d<\/span>\r\n\ud83e\udd89 \u65b0\u3057\u3044\u30d5\u30af\u30ed\u30a6\u4fbf\u306e\u5b9b\u5148\u3092\u899a\u3048\u307e\u3057\u305f\uff01\r\n<span class=\"token\"># Slack\u306b\u81ea\u52d5\u30c6\u30b9\u30c8\u30e1\u30c3\u30bb\u30fc\u30b8\u6295\u7a3f<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">5. \u30ea\u30b9\u30ca\u30fc\u8d77\u52d5<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw start  <span class=\"token\"># tmux\u8d77\u52d5\uff08\u30ea\u30b9\u30ca\u30fc\u3082\u81ea\u52d5\u8d77\u52d5\uff09<\/span>\r\n<span class=\"token\"># \u307e\u305f\u306f\u624b\u52d5\u8d77\u52d5<\/span>\r\n.\/scripts\/slack_listener.sh<\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83c\udfaf Slack\u30b3\u30de\u30f3\u30c9\u5b8c\u5168\u30ea\u30b9\u30c8<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u57fa\u672c\u64cd\u4f5c<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">\/castle status                    <span class=\"token\"># \u57ce\u306e\u72b6\u6cc1\u78ba\u8a8d<\/span>\r\n\/castle <span class=\"token\">help<\/span>                      <span class=\"token\"># \u30d8\u30eb\u30d7\u8868\u793a<\/span>\r\n\/castle project list              <span class=\"token\"># \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u4e00\u89a7<\/span>\r\n\/castle project status            <span class=\"token\"># \u73fe\u5728\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u72b6\u6cc1<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u3068\u306e\u5bfe\u8a71<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">\/castle ask \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2 <span class=\"token\">\"\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u65b9\u5411\u6027\u306b\u3064\u3044\u3066\u76f8\u8ac7\"<\/span>\r\n\/castle ask \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc <span class=\"token\">\"React\u306e\u6700\u9069\u5316\u624b\u6cd5\u3092\u6559\u3048\u3066\"<\/span>\r\n\/castle ask \u30ed\u30f3 <span class=\"token\">\"\u8a8d\u8a3c\u6a5f\u80fd\u306e\u5b9f\u88c5\u65b9\u6cd5\u306f\uff1f\"<\/span>\r\n\/castle ask \u30cf\u30ea\u30fc <span class=\"token\">\"\u3053\u306e\u30a8\u30e9\u30fc\u306e\u539f\u56e0\u306f\uff1f\"<\/span>\r\n\/castle ask \u30b9\u30cd\u30a4\u30d7 <span class=\"token\">\"\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30c1\u30a7\u30c3\u30af\u3057\u3066\"<\/span>\r\n\/castle ask \u30eb\u30fc\u30ca <span class=\"token\">\"\u65b0\u3057\u3044\u30a2\u30a4\u30c7\u30a2\u3092\u304f\u3060\u3055\u3044\"<\/span>\r\n\/castle ask \u30c9\u30d3\u30fc <span class=\"token\">\"\u30c7\u30d7\u30ed\u30a4\u306e\u6e96\u5099\u3092\u304a\u9858\u3044\"<\/span>\r\n\/castle ask JK\u30ed\u30fc\u30ea\u30f3\u30b0\u30de <span class=\"token\">\"React\u521d\u5fc3\u8005\u5411\u3051\u306b\u8aac\u660e\u3057\u3066\"<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u7ba1\u7406<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">\/castle project start <span class=\"token\">\"\u65b0\u6a5f\u80fd\u958b\u767a\"<\/span> <span class=\"token\">\"\u30e6\u30fc\u30b6\u30fc\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u8ffd\u52a0\"<\/span>\r\n\/castle project switch <span class=\"token\">\"\u5225\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\"<\/span>\r\n\/castle project add-task <span class=\"token\">\"API\u5b9f\u88c5\"<\/span> <span class=\"token\">\"\u30ed\u30f3\"<\/span>\r\n\/castle phase implement\r\n\/castle phase deploy<\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">AI\u5354\u50cd\u6a5f\u80fd<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">\/castle ai-chain <span class=\"token\">\"\u8a8d\u8a3c\u30b7\u30b9\u30c6\u30e0\u8a2d\u8a08\"<\/span> \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2 \u30b9\u30cd\u30a4\u30d7 \u30ed\u30f3\r\n\/castle ai-debate <span class=\"token\">\"\u6280\u8853\u9078\u5b9a\"<\/span> \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc \u30ed\u30f3\r\n\/castle ai-review <span class=\"token\">\"main.py\"<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u60c5\u5831\u30fb\u5831\u544a<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">\/castle daily-prophet             <span class=\"token\"># \u65e5\u520a\u4e88\u8a00\u8005\u65b0\u805e<\/span>\r\n\/castle house-cup standings       <span class=\"token\"># \u5bee\u5bfe\u6297\u676f\u9806\u4f4d<\/span>\r\n\/castle contract status           <span class=\"token\"># AI\u5951\u7d04\u72b6\u6cc1<\/span>\r\n\/castle backup                    <span class=\"token\"># Google Drive\u30d0\u30c3\u30af\u30a2\u30c3\u30d7<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udcf1 \u30e2\u30d0\u30a4\u30eb\u30fb\u30ea\u30e2\u30fc\u30c8\u6d3b\u7528<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u901a\u52e4\u4e2d\u306e\u6d3b\u7528\u4f8b<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u671d\u306e\u96fb\u8eca\u3067<\/span>\r\n\/castle daily-prophet\r\n\/castle project status\r\n\r\n<span class=\"token\"># \u663c\u4f11\u307f\u306b<\/span>\r\n\/castle ask \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc <span class=\"token\">\"\u5348\u5f8c\u306e\u30bf\u30b9\u30af\u306e\u512a\u5148\u9806\u4f4d\u306f\uff1f\"<\/span>\r\n\r\n<span class=\"token\"># \u5e30\u5b85\u9014\u4e2d\u3067<\/span>\r\n\/castle ask \u30c9\u30d3\u30fc <span class=\"token\">\"\u4eca\u65e5\u306e\u4f5c\u696d\u306e\u9032\u6357\u306f\u3069\u3046\uff1f\"<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30c1\u30fc\u30e0\u4f1a\u8b70\u3067\u306e\u6d3b\u7528<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u4f1a\u8b70\u958b\u59cb\u6642<\/span>\r\n\/castle status\r\n\/castle house-cup standings  <span class=\"token\"># \u30c1\u30fc\u30e0\u30e2\u30c1\u30d9\u30fc\u30b7\u30e7\u30f3\u78ba\u8a8d<\/span>\r\n\r\n<span class=\"token\"># \u6280\u8853\u8b70\u8ad6\u4e2d<\/span>\r\n\/castle ask \u30b9\u30cd\u30a4\u30d7 <span class=\"token\">\"\u3053\u306e\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306e\u8106\u5f31\u6027\u306f\uff1f\"<\/span>\r\n\/castle ai-debate <span class=\"token\">\"\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9 vs \u30e2\u30ce\u30ea\u30b9\"<\/span> \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2 \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc\r\n\r\n<span class=\"token\"># \u4f1a\u8b70\u7d42\u4e86\u6642<\/span>\r\n\/castle phase implement  <span class=\"token\"># \u6b21\u30d5\u30a7\u30fc\u30ba\u3078\u79fb\u884c<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<hr \/>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\">\u30de\u30c6\u30ea\u30a2\u30eb\u7ba1\u7406<\/h2>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83c\udfdb\ufe0f \u30de\u30c6\u30ea\u30a2\u30eb\u9818\u57df\u306e\u69cb\u9020<\/h3>\n<p class=\"whitespace-normal break-words\">\u30d5\u30a1\u30a4\u30eb\u3084\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3092\u77e5\u7684\u306b\u5206\u985e\u30fb\u7ba1\u7406\u3059\u308b\u30b7\u30b9\u30c6\u30e0\uff1a<\/p>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code>material_realm\/\r\n\u251c\u2500\u2500 inbox\/                    # \u53d7\u4fe1\u7bb1\uff08\u81ea\u52d5\u51e6\u7406\u5f85\u3061\uff09\r\n\u251c\u2500\u2500 room_of_requirement\/      # \u4e00\u822c\u7684\u306a\u30d5\u30a1\u30a4\u30eb\u4fdd\u7ba1\r\n\u2502   \u251c\u2500\u2500 images\/              # \u753b\u50cf\u30d5\u30a1\u30a4\u30eb\r\n\u2502   \u251c\u2500\u2500 documents\/           # \u6587\u66f8\u30d5\u30a1\u30a4\u30eb\r\n\u2502   \u251c\u2500\u2500 audio\/               # \u97f3\u58f0\u30d5\u30a1\u30a4\u30eb\r\n\u2502   \u251c\u2500\u2500 video\/               # \u52d5\u753b\u30d5\u30a1\u30a4\u30eb\r\n\u2502   \u251c\u2500\u2500 code\/                # \u30b3\u30fc\u30c9\u30d5\u30a1\u30a4\u30eb\r\n\u2502   \u2514\u2500\u2500 misc\/                # \u305d\u306e\u4ed6\r\n\u2514\u2500\u2500 pensieve\/                # \u518d\u5229\u7528\u53ef\u80fd\u306a\u77e5\u8b58\r\n    \u251c\u2500\u2500 knowledge\/           # \u77e5\u8b58\u30d9\u30fc\u30b9\r\n    \u251c\u2500\u2500 patterns\/            # \u30d1\u30bf\u30fc\u30f3\u30fb\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\r\n    \u251c\u2500\u2500 solutions\/           # \u89e3\u6c7a\u7b56\r\n    \u2514\u2500\u2500 insights\/            # \u6d1e\u5bdf\u30fb\u30a2\u30a4\u30c7\u30a2<\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udcc1 \u30d5\u30a1\u30a4\u30eb\u7ba1\u7406\u30b3\u30de\u30f3\u30c9<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30d5\u30a1\u30a4\u30eb\u8ffd\u52a0<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u30d5\u30a1\u30a4\u30eb\u3092\u53d7\u4fe1\u7bb1\u306b\u8ffd\u52a0<\/span>\r\n.\/hw material <span class=\"token\">add<\/span> <span class=\"token\">\".\/document.pdf\"<\/span>\r\n.\/hw material <span class=\"token\">add<\/span> <span class=\"token\">\".\/config.json\"<\/span>\r\n.\/hw material <span class=\"token\">add<\/span> <span class=\"token\">\".\/screenshot.png\"<\/span>\r\n\r\n<span class=\"token\"># \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc\u304c\u81ea\u52d5\u5206\u6790\u30fb\u5206\u985e<\/span>\r\n\ud83d\udcda \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc: \ud83d\udccb \u5206\u6790\u4e2d: document.pdf\r\n\ud83d\udcda \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc: \u2705 \u4ed5\u5206\u3051\u5b8c\u4e86: document.pdf\r\n<span class=\"token\"># \u2192 \u81ea\u52d5\u7684\u306b\u9069\u5207\u306a\u30d5\u30a9\u30eb\u30c0\u306b\u79fb\u52d5<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u81ea\u52d5\u5206\u985e\u306e\u8a73\u7d30<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u5206\u6790\u57fa\u6e96:<\/span>\r\n- \u30d5\u30a1\u30a4\u30eb\u62e1\u5f35\u5b50\r\n- \u30d5\u30a1\u30a4\u30eb\u540d\u30d1\u30bf\u30fc\u30f3\r\n- \u5185\u5bb9\u5206\u6790\uff08PDF\u7b49\uff09\r\n- \u518d\u5229\u7528\u53ef\u80fd\u6027\u5224\u5b9a\r\n\r\n<span class=\"token\"># \u4f8b\uff1a<\/span>\r\nconfig.yaml \u2192 pensieve\/reusable_config\r\nmain.py \u2192 pensieve\/source_code  \r\nscreenshot.png \u2192 room_of_requirement\/images\r\nmeeting_notes.pdf \u2192 room_of_requirement\/documents<\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u77e5\u8b58\u691c\u7d22<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u30da\u30f3\u30b7\u30fc\u30d6\uff08\u77e5\u8b58\u5eab\uff09\u691c\u7d22<\/span>\r\n.\/hw material search <span class=\"token\">\"\u8a8d\u8a3c\"<\/span>\r\n.\/hw material search <span class=\"token\">\"React\"<\/span> code\r\n.\/hw material search <span class=\"token\">\"\u8a2d\u8a08\u66f8\"<\/span> documents\r\n\r\n<span class=\"token\"># \u691c\u7d22\u7d50\u679c\u4f8b:<\/span>\r\n\ud83d\udd0d \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc: \u30da\u30f3\u30b7\u30fc\u30d6\u3092\u691c\u7d22\u4e2d: \u8a8d\u8a3c\r\n\u898b\u3064\u304b\u3063\u305f\u30a2\u30a4\u30c6\u30e0:\r\n- auth_config.json <span class=\"token\">(<\/span>\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb<span class=\"token\">)<\/span>\r\n- jwt_implementation.py <span class=\"token\">(<\/span>\u5b9f\u88c5\u4f8b<span class=\"token\">)<\/span>\r\n- security_guidelines.pdf <span class=\"token\">(<\/span>\u30ac\u30a4\u30c9\u30e9\u30a4\u30f3<span class=\"token\">)<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udd04 \u81ea\u52d5\u76e3\u8996\u30b7\u30b9\u30c6\u30e0<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u30d5\u30a1\u30a4\u30eb\u76e3\u8996<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u53d7\u4fe1\u7bb1\u306e\u81ea\u52d5\u76e3\u8996\uff08\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\uff09<\/span>\r\n<span class=\"token\"># \u30d5\u30a1\u30a4\u30eb\u304c\u8ffd\u52a0\u3055\u308c\u308b\u3068\u5373\u5ea7\u306b\u51e6\u7406<\/span>\r\n\ud83d\udc40 \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc: \u53d7\u4fe1\u7bb1\u306e\u76e3\u8996\u3092\u958b\u59cb\u3057\u307e\u3059\r\n\r\n<span class=\"token\"># \u65b0\u30d5\u30a1\u30a4\u30eb\u691c\u51fa\u4f8b:<\/span>\r\n\ud83d\udccb \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc: \u5206\u6790\u4e2d: new_feature.py\r\n\ud83d\udccb \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc: \u30ab\u30c6\u30b4\u30ea\u5224\u5b9a: code\/source_code\r\n\ud83d\udccb \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc: \u518d\u5229\u7528\u6027: \u9ad8\r\n\ud83d\udccb \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc: \u2705 \u30da\u30f3\u30b7\u30fc\u30d6\u306b\u4fdd\u5b58\u5b8c\u4e86\r\n\r\n<span class=\"token\"># \u95a2\u9023\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u3078\u306e\u901a\u77e5<\/span>\r\n\ud83d\udee0\ufe0f \u30ed\u30f3: \u65b0\u3057\u3044\u30b3\u30fc\u30c9\u30d5\u30a1\u30a4\u30eb\u304c\u5c4a\u3044\u305f\u305e: new_feature.py<\/code><\/pre>\n<\/div>\n<\/div>\n<hr \/>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\">AI\u5354\u50cd\u30b7\u30b9\u30c6\u30e0<\/h2>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83e\udde0 AI\u601d\u8003\u30c1\u30a7\u30fc\u30f3<\/h3>\n<p class=\"whitespace-normal break-words\">\u8907\u6570\u306eAI\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u304c\u9806\u6b21\u601d\u8003\u3092\u91cd\u306d\u308b\u9769\u65b0\u7684\u30b7\u30b9\u30c6\u30e0\uff1a<\/p>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u57fa\u672c\u7684\u306a\u601d\u8003\u30c1\u30a7\u30fc\u30f3<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw ai-chain <span class=\"token\">\"\u30e6\u30fc\u30b6\u30fc\u8a8d\u8a3c\u30b7\u30b9\u30c6\u30e0\u306e\u8a2d\u8a08\"<\/span> \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2 \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc \u30b9\u30cd\u30a4\u30d7 \u30ed\u30f3\r\n\r\n<span class=\"token\"># \u5b9f\u884c\u4f8b:<\/span>\r\n\ud83d\udd17 \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2: AI\u601d\u8003\u30c1\u30a7\u30fc\u30f3\u3092\u958b\u59cb\u3057\u307e\u3059<span class=\"token\">..<\/span>.\r\n\r\n<span class=\"token\">==<\/span><span class=\"token\">=<\/span> \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2 \u306e\u601d\u8003 <span class=\"token\">==<\/span><span class=\"token\">=<\/span>\r\n\ud83e\uddd9\u200d\u2642\ufe0f \u5168\u4f53\u6226\u7565\u3068\u3057\u3066\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30fb\u30e6\u30fc\u30b6\u30d3\u30ea\u30c6\u30a3\u30fb\u62e1\u5f35\u6027\u306e\r\n\u30d0\u30e9\u30f3\u30b9\u3092\u91cd\u8996\u3057\u307e\u3059\u3002JWT + OAuth2.0\u306e\u7d44\u307f\u5408\u308f\u305b\u3092\u63d0\u6848\u3057<span class=\"token\">..<\/span>.\r\n\r\n<span class=\"token\">==<\/span><span class=\"token\">=<\/span> \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc \u306e\u601d\u8003 <span class=\"token\">==<\/span><span class=\"token\">=<\/span>  \r\n\ud83d\udcda \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2\u306e\u6226\u7565\u3092\u53d7\u3051\u3001\u6280\u8853\u7684\u8a73\u7d30\u3092\u691c\u8a0e\u3057\u307e\u3059\u3002\r\n\u5b9f\u88c5\u306b\u306fPassport.js \u307e\u305f\u306f Auth0 \u306e\u63a1\u7528\u3092\u63a8\u5968<span class=\"token\">..<\/span>.\r\n\r\n<span class=\"token\">==<\/span><span class=\"token\">=<\/span> \u30b9\u30cd\u30a4\u30d7 \u306e\u601d\u8003 <span class=\"token\">==<\/span><span class=\"token\">=<\/span>\r\n\ud83d\udde1\ufe0f \u524d\u8ff0\u306e\u63d0\u6848\u306b\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u4e0a\u306e\u61f8\u5ff5\u304c\u3042\u308a\u307e\u3059\u3002\r\nCSRF\u653b\u6483\u3001SQL\u30a4\u30f3\u30b8\u30a7\u30af\u30b7\u30e7\u30f3\u5bfe\u7b56\u3068\u3057\u3066<span class=\"token\">..<\/span>.\r\n\r\n<span class=\"token\">==<\/span><span class=\"token\">=<\/span> \u30ed\u30f3 \u306e\u601d\u8003 <span class=\"token\">==<\/span><span class=\"token\">=<\/span>\r\n\ud83d\udee0\ufe0f \u7686\u306e\u610f\u898b\u3092\u8e0f\u307e\u3048\u3001\u5b9f\u88c5\u53ef\u80fd\u306a\u5f62\u3067\u6574\u7406\u3059\u308b\u3068<span class=\"token\">..<\/span>.<\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udde3\ufe0f AI\u30c7\u30a3\u30d9\u30fc\u30c8\u30bb\u30c3\u30b7\u30e7\u30f3<\/h3>\n<p class=\"whitespace-normal break-words\">\u7570\u306a\u308b\u8996\u70b9\u3092\u6301\u3064\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u306b\u3088\u308b\u5efa\u8a2d\u7684\u8b70\u8ad6\uff1a<\/p>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw ai-debate <span class=\"token\">\"\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9 vs \u30e2\u30ce\u30ea\u30b9\"<\/span> \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2 \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc \u30ed\u30f3\r\n\r\n<span class=\"token\"># 3\u30e9\u30a6\u30f3\u30c9\u306e\u30c7\u30a3\u30d9\u30fc\u30c8<\/span>\r\n<span class=\"token\">==<\/span><span class=\"token\">=<\/span> \u30e9\u30a6\u30f3\u30c9 <span class=\"token\">1<\/span> <span class=\"token\">==<\/span><span class=\"token\">=<\/span>\r\n\u30c0\u30f3\u30d6\u30eb\u30c9\u30a2: \u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u306f\u9577\u671f\u7684\u306a\u4fdd\u5b88\u6027\u3068\u62e1\u5f35\u6027\u3067\u512a\u4f4d<span class=\"token\">..<\/span>.\r\n\u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc: \u3057\u304b\u3057\u8907\u96d1\u6027\u306e\u5897\u52a0\u3068\u5b66\u7fd2\u30b3\u30b9\u30c8\u3092\u8003\u616e\u3059\u3079\u304d<span class=\"token\">..<\/span>.\r\n\u30ed\u30f3: \u73fe\u5b9f\u7684\u306a\u958b\u767a\u30ea\u30bd\u30fc\u30b9\u3092\u8003\u3048\u308b\u3068\u3001\u30e2\u30ce\u30ea\u30b9\u304b\u3089\u59cb\u3081\u308b\u3079\u304d<span class=\"token\">..<\/span>.\r\n\r\n<span class=\"token\">==<\/span><span class=\"token\">=<\/span> \u30e9\u30a6\u30f3\u30c9 <span class=\"token\">2<\/span> <span class=\"token\">==<\/span><span class=\"token\">=<\/span>\r\n\u30c0\u30f3\u30d6\u30eb\u30c9\u30a2: \u30c1\u30fc\u30e0\u898f\u6a21\u3068\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u671f\u9593\u3092\u8003\u616e\u3057\u305f\u6bb5\u968e\u7684\u79fb\u884c<span class=\"token\">..<\/span>.\r\n\u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc: \u30c7\u30fc\u30bf\u6574\u5408\u6027\u3068\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u7ba1\u7406\u306e\u89b3\u70b9\u3067\u306f<span class=\"token\">..<\/span>.\r\n\u30ed\u30f3: \u30c7\u30d7\u30ed\u30a4\u306e\u7c21\u5358\u3055\u3068\u30c7\u30d0\u30c3\u30b0\u306e\u5bb9\u6613\u3055\u3067\u306f<span class=\"token\">..<\/span>.\r\n\r\n<span class=\"token\">==<\/span><span class=\"token\">=<\/span> \u30e9\u30a6\u30f3\u30c9 <span class=\"token\">3<\/span> <span class=\"token\">==<\/span><span class=\"token\">=<\/span>\r\n\uff08\u6700\u7d42\u7684\u306a\u7dcf\u5408\u5224\u65ad\u3068\u63a8\u5968\u6848\uff09<\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udd0d AI\u30b3\u30fc\u30c9\u30ec\u30d3\u30e5\u30fc<\/h3>\n<p class=\"whitespace-normal break-words\">\u8907\u6570\u306e\u5c02\u9580\u5bb6\u306b\u3088\u308b\u30b3\u30fc\u30c9\u5206\u6790\uff1a<\/p>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw ai-review <span class=\"token\">\"main.py\"<\/span>\r\n\r\n<span class=\"token\"># \u8907\u6570\u306e\u8996\u70b9\u3067\u306e\u30ec\u30d3\u30e5\u30fc:<\/span>\r\n<span class=\"token\">==<\/span><span class=\"token\">=<\/span> \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc \u306e\u30ec\u30d3\u30e5\u30fc <span class=\"token\">==<\/span><span class=\"token\">=<\/span>\r\n\ud83d\udcda \u30b3\u30fc\u30c9\u54c1\u8cea\u306e\u89b3\u70b9\u304b\u3089:\r\n- \u95a2\u6570\u306e\u8cac\u4efb\u5206\u96e2\u304c\u9069\u5207\r\n- \u547d\u540d\u898f\u5247\u304c\u4e00\u8cab\u3057\u3066\u3044\u308b  \r\n- \u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u6587\u5b57\u5217\u306e\u8ffd\u52a0\u3092\u63a8\u5968\r\n\r\n<span class=\"token\">==<\/span><span class=\"token\">=<\/span> \u30b9\u30cd\u30a4\u30d7 \u306e\u30ec\u30d3\u30e5\u30fc <span class=\"token\">==<\/span><span class=\"token\">=<\/span>\r\n\ud83d\udde1\ufe0f \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306e\u89b3\u70b9\u304b\u3089:\r\n- \u5165\u529b\u5024\u691c\u8a3c\u304c\u4e0d\u5341\u5206\uff08\u884c25\uff09\r\n- SQL\u30af\u30a8\u30ea\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u5316\u304c\u5fc5\u8981\uff08\u884c67\uff09\r\n- \u6a5f\u5bc6\u60c5\u5831\u306e\u30cf\u30fc\u30c9\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3092\u767a\u898b\uff08\u884c89\uff09\r\n\r\n<span class=\"token\">==<\/span><span class=\"token\">=<\/span> \u30ed\u30f3 \u306e\u30ec\u30d3\u30e5\u30fc <span class=\"token\">==<\/span><span class=\"token\">=<\/span>\r\n\ud83d\udee0\ufe0f \u5b9f\u88c5\u30fb\u4fdd\u5b88\u6027\u306e\u89b3\u70b9\u304b\u3089:\r\n- \u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u306e\u6539\u5584\u4f59\u5730\r\n- \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u306e\u63d0\u6848\r\n- \u30c6\u30b9\u30c8\u30b1\u30fc\u30b9\u306e\u8ffd\u52a0\u63a8\u5968<\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83c\udf93 \u5b66\u7fd2\u30fb\u6210\u9577\u30b7\u30b9\u30c6\u30e0<\/h3>\n<p class=\"whitespace-normal break-words\">AI\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u304c\u7d4c\u9a13\u304b\u3089\u5b66\u7fd2\u3059\u308b\u6a5f\u80fd\uff1a<\/p>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u89e3\u6c7a\u7b56\u306e\u5b66\u7fd2\u8a18\u9332<\/span>\r\n<span class=\"token\"># \u554f\u984c\u2192\u89e3\u6c7a\u7b56\u306e\u30d1\u30bf\u30fc\u30f3\u3092DB\u306b\u84c4\u7a4d<\/span>\r\n<span class=\"token\"># \u4f3c\u305f\u554f\u984c\u306b\u906d\u9047\u6642\u3001\u904e\u53bb\u306e\u7d4c\u9a13\u3092\u6d3b\u7528<\/span>\r\n\r\n<span class=\"token\"># \u4f8b\uff1a<\/span>\r\nPrevious Pattern Found:\r\n\u554f\u984c: <span class=\"token\">\"React \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\"<\/span>\r\n\u89e3\u6c7a\u7b56: <span class=\"token\">\"memo()\u3001useMemo()\u3001useCallback()\u306e\u6d3b\u7528\"<\/span>\r\n\u30ad\u30e3\u30e9\u30af\u30bf\u30fc: \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc\r\n\u9069\u7528\u5ea6: <span class=\"token\">85<\/span>%<\/code><\/pre>\n<\/div>\n<\/div>\n<hr \/>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\">\u6559\u80b2\u30b7\u30b9\u30c6\u30e0<\/h2>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udcda JK\u30ed\u30fc\u30ea\u30f3\u30b0\u30de\u306b\u3088\u308b\u6e29\u304b\u3044\u6307\u5c0e<\/h3>\n<p class=\"whitespace-normal break-words\">\u521d\u5fc3\u8005\u304b\u3089\u4e0a\u7d1a\u8005\u307e\u3067\u3001\u6bb5\u968e\u7684\u3067\u6e29\u304b\u3044\u6280\u8853\u6559\u80b2\uff1a<\/p>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u6982\u5ff5\u8aac\u660e<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw teach concept <span class=\"token\">\"React\"<\/span> beginner\r\n\r\n\ud83d\udc3b\u200d\u2744\ufe0f JK\u30ed\u30fc\u30ea\u30f3\u30b0\u30de: React \u306b\u3064\u3044\u3066 beginner \u30ec\u30d9\u30eb\u3067\u6559\u3048\u308b\u306e\u3058\u3083\uff01\r\n\r\nReact\u3068\u3044\u3046\u306e\u306f\u3001\u30a6\u30a7\u30d6\u30da\u30fc\u30b8\u3092\u4f5c\u308b\u305f\u3081\u306e\u9b54\u6cd5\u306e\u9053\u5177\u306a\u306e\u3058\u3083\u3002\r\n\u307e\u308b\u3067\u30ec\u30b4\u30d6\u30ed\u30c3\u30af\u306e\u3088\u3046\u306b\u3001\u5c0f\u3055\u306a\u90e8\u54c1\uff08\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\uff09\u3092\r\n\u7d44\u307f\u5408\u308f\u305b\u3066\u5927\u304d\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u4f5c\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u306e\u3058\u3083\u3088\u3002\r\n\r\n\u4f8b\u3048\u3070\u3001\u30dc\u30bf\u30f3\u3068\u3044\u3046\u90e8\u54c1\u3092\u4e00\u5ea6\u4f5c\u308c\u3070\u3001\u305d\u308c\u3092\u4f55\u5ea6\u3067\u3082\r\n\u4f7f\u3044\u56de\u3059\u3053\u3068\u304c\u3067\u304d\u308b\u306e\u3058\u3083\u3002\u3068\u3066\u3082\u52b9\u7387\u7684\u3067\u7f8e\u3057\u3044\u65b9\u6cd5\u306a\u306e\u3046\uff01<\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30b9\u30ad\u30eb\u7df4\u7fd2<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw practice skill <span class=\"token\">\"JavaScript\u95a2\u6570\"<\/span>\r\n\r\n\ud83c\udfaf JK\u30ed\u30fc\u30ea\u30f3\u30b0\u30de: <span class=\"token\">'JavaScript\u95a2\u6570'<\/span> \u306e\u7df4\u7fd2\u3092\u59cb\u3081\u308b\u306e\u3058\u3083\uff01\r\n\r\n\u3010\u7df4\u7fd2\u554f\u984c1\u3011\r\n\u6b21\u306e\u95a2\u6570\u3092\u5b8c\u6210\u3055\u305b\u3066\u307f\u308b\u306e\u3058\u3083\uff1a\r\n<span class=\"token\">function<\/span> greetUser<span class=\"token\">(<\/span>name<span class=\"token\">)<\/span> <span class=\"token\">{<\/span>\r\n  \/\/ \u3053\u3053\u306b <span class=\"token\">\"Hello, \"<\/span> + name \u3092\u8fd4\u3059\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u306e\u3058\u3083\u3088\r\n<span class=\"token\">}<\/span>\r\n\r\n\u3010\u30d2\u30f3\u30c8\u3011\r\nreturn\u6587\u3092\u4f7f\u3063\u3066\u5024\u3092\u8fd4\u3059\u306e\u3058\u3083\u3002\u6587\u5b57\u5217\u306e\u7d50\u5408\u306f+\u6f14\u7b97\u5b50\u3092\u4f7f\u3046\u305e\u3044\u3002<\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30b3\u30fc\u30c9\u89e3\u8aac<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw teach explain <span class=\"token\">\"main.py\"<\/span>\r\n\r\n\ud83d\udd0d JK\u30ed\u30fc\u30ea\u30f3\u30b0\u30de: \u30b3\u30fc\u30c9\u3092\u5206\u6790\u4e2d\u306a\u306e\u3058\u3083<span class=\"token\">..<\/span>.\r\n\r\n\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u69cb\u9020\u3092\u8aac\u660e\u3059\u308b\u306e\u3058\u3083\uff1a\r\n\r\n<span class=\"token\">1<\/span>\u884c\u76ee: <span class=\"token\">#!\/usr\/bin\/env python3<\/span>\r\n\u2192 \u3053\u308c\u306f\u30b7\u30d0\u30f3\u884c\u3068\u3044\u3063\u3066\u3001\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u3092Python\u3067\u5b9f\u884c\u3059\u308b\u3053\u3068\u3092\r\n  \u30b7\u30b9\u30c6\u30e0\u306b\u6559\u3048\u3066\u3044\u308b\u306e\u3058\u3083\u3088\r\n\r\n<span class=\"token\">5<\/span>-10\u884c\u76ee: import\u6587\r\n\u2192 \u4ed6\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u8aad\u307f\u8fbc\u3093\u3067\u3044\u308b\u306e\u3058\u3083\u3002\u307e\u308b\u3067\u9b54\u6cd5\u306e\u672c\u304b\u3089\r\n  \u546a\u6587\u3092\u501f\u308a\u3066\u304f\u308b\u3088\u3046\u306a\u3082\u306e\u3058\u3083\u306e\u3046\r\n\r\n<span class=\"token\">15<\/span>\u884c\u76ee: def main<span class=\"token\">(<\/span><span class=\"token\">)<\/span>:\r\n\u2192 \u30e1\u30a4\u30f3\u95a2\u6570\u306e\u5b9a\u7fa9\u3058\u3083\u3002\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u5fc3\u81d3\u90e8\u5206\u306a\u306e\u3058\u3083\u3088<\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u96e3\u6613\u5ea6\u5225\u5bfe\u5fdc<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u521d\u5fc3\u8005\u5411\u3051\uff08beginner\uff09<\/span>\r\n.\/hw teach concept <span class=\"token\">\"API\"<\/span> beginner\r\n\u2192 \u4e01\u5be7\u306a\u6bd4\u55a9\u3001\u57fa\u790e\u304b\u3089\u8aac\u660e\r\n\r\n<span class=\"token\"># \u4e2d\u7d1a\u8005\u5411\u3051\uff08intermediate\uff09  <\/span>\r\n.\/hw teach concept <span class=\"token\">\"API\"<\/span> intermediate\r\n\u2192 \u6280\u8853\u7684\u8a73\u7d30\u3001\u5b9f\u88c5\u4f8b\u542b\u3080\r\n\r\n<span class=\"token\"># \u4e0a\u7d1a\u8005\u5411\u3051\uff08advanced\uff09<\/span>\r\n.\/hw teach concept <span class=\"token\">\"API\"<\/span> advanced\r\n\u2192 \u8a2d\u8a08\u30d1\u30bf\u30fc\u30f3\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u8003\u616e<\/code><\/pre>\n<\/div>\n<\/div>\n<hr \/>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\">\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u30fb\u5fa9\u5143<\/h2>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udcbe \u6b21\u5143\u8a18\u61b6\u4fdd\u5b58\u30b7\u30b9\u30c6\u30e0<\/h3>\n<p class=\"whitespace-normal break-words\">Google Drive\u9023\u643a\u306b\u3088\u308b\u5b8c\u5168\u306a\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u4fdd\u5b58\u30fb\u5fa9\u5143\uff1a<\/p>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u81ea\u52d5\u30d0\u30c3\u30af\u30a2\u30c3\u30d7<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw backup\r\n\r\n<span class=\"token\"># \u5b9f\u884c\u3055\u308c\u308b\u51e6\u7406:<\/span>\r\n\ud83d\udcbe \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2: \u57ce\u306e\u8a18\u61b6\u3092Google Drive\u306b\u4fdd\u5b58\u4e2d<span class=\"token\">..<\/span>.\r\n\ud83c\udfe0 \u30c9\u30d3\u30fc: \u30ed\u30fc\u30ab\u30eb\u306b\u8a18\u61b6\u3092\u5727\u7e2e\u4e2d\u3067\u3059<span class=\"token\">..<\/span>.\r\n<span class=\"token\"># \u2192 .hogwarts_castle\u5168\u4f53\u3092tar.gz\u5727\u7e2e<\/span>\r\n<span class=\"token\"># \u2192 Google Drive\u306e\u5c02\u7528\u30d5\u30a9\u30eb\u30c0\u306b\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9<\/span>\r\n\u2728 \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2: \u57ce\u306e\u8a18\u61b6\u304c\u5b89\u5168\u306b\u6b21\u5143\u4fdd\u5b58\u3055\u308c\u305f\uff01<span class=\"token\">(<\/span>File ID: 1a2b3c<span class=\"token\">..<\/span>.<span class=\"token\">)<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u306e\u69cb\u9020<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code>Google Drive:\r\n\u2514\u2500\u2500 Hogwarts_Castle_Backups\/\r\n    \u2514\u2500\u2500 ProjectName_ABC123\/\r\n        \u251c\u2500\u2500 hogwarts_backup_ABC123_20241228_143000.tar.gz\r\n        \u251c\u2500\u2500 hogwarts_backup_ABC123_20241227_090000.tar.gz\r\n        \u2514\u2500\u2500 hogwarts_backup_ABC123_20241226_180000.tar.gz<\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5fa9\u5143<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw restore <span class=\"token\">\"AI\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8\"<\/span>\r\n\r\n<span class=\"token\"># \u307e\u305f\u306f \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u30b3\u30fc\u30c9\u3067\u6307\u5b9a<\/span>\r\n.\/hw restore <span class=\"token\">\"ABC123\"<\/span>\r\n\r\n<span class=\"token\"># \u5b9f\u884c\u3055\u308c\u308b\u51e6\u7406:<\/span>\r\n\ud83d\udd04 \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2: Google Drive\u304b\u3089\u8a18\u61b6\u3092\u53ec\u559a\u4e2d<span class=\"token\">..<\/span>. <span class=\"token\">(<\/span>AI\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8<span class=\"token\">)<\/span>\r\n\ud83c\udfe0 \u30c9\u30d3\u30fc: \u65e2\u5b58\u306e\u8a2d\u5b9a\u3092\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3057\u307e\u3057\u305f\r\n\ud83c\udfe0 \u30c9\u30d3\u30fc: \u8a18\u61b6\u3092\u5fa9\u5143\u4e2d\u3067\u3059<span class=\"token\">..<\/span>.\r\n\u2728 \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2: \u57ce\u306e\u8a18\u61b6\u304c\u5b8c\u5168\u306b\u5fa9\u5143\u3055\u308c\u305f\uff01\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 <span class=\"token\">'AI\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8'<\/span> \u3078\u3088\u3046\u3053\u305d\u3002<\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u5fa9\u5143\u6642\u306e\u5b89\u5168\u6a5f\u80fd<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u65e2\u5b58\u30c7\u30fc\u30bf\u306e\u81ea\u52d5\u30d0\u30c3\u30af\u30a2\u30c3\u30d7<\/span>\r\n<span class=\"token\">mv<\/span> .hogwarts_castle .hogwarts_castle_old_1640702400\r\n\r\n<span class=\"token\"># \u5fa9\u5143\u5f8c\u306e\u8a2d\u5b9a\u81ea\u52d5\u8aad\u307f\u8fbc\u307f<\/span>\r\nload_castle_state\r\nsave_castle_state\r\n\r\n<span class=\"token\"># \u6574\u5408\u6027\u30c1\u30a7\u30c3\u30af<\/span>\r\n\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u60c5\u5831\u306e\u78ba\u8a8d\r\n\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u8a2d\u5b9a\u306e\u5fa9\u5143\r\nAI\u5951\u7d04\u72b6\u6cc1\u306e\u5fa9\u5143<\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udd04 \u30d0\u30fc\u30b8\u30e7\u30f3\u7ba1\u7406<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u624b\u52d5\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u30dd\u30a4\u30f3\u30c8<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u91cd\u8981\u306a\u7bc0\u76ee\u3067\u306e\u30d0\u30c3\u30af\u30a2\u30c3\u30d7<\/span>\r\n.\/hw phase implement  <span class=\"token\"># \u30d5\u30a7\u30fc\u30ba\u79fb\u884c\u6642<\/span>\r\n.\/hw backup          <span class=\"token\"># \u2192 \u81ea\u52d5\u3067\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3082\u5b9f\u884c<\/span>\r\n\r\n<span class=\"token\"># \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5b8c\u4e86\u6642<\/span>\r\n.\/hw phase deploy\r\n.\/hw backup          <span class=\"token\"># \u2192 \u5b8c\u6210\u7248\u3092\u30d0\u30c3\u30af\u30a2\u30c3\u30d7<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u8907\u6570\u74b0\u5883\u3067\u306e\u540c\u671f<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u958b\u767a\u30de\u30b7\u30f3A\u3067\u30d0\u30c3\u30af\u30a2\u30c3\u30d7<\/span>\r\n.\/hw backup\r\n\r\n<span class=\"token\"># \u958b\u767a\u30de\u30b7\u30f3B\u3067\u5fa9\u5143<\/span>\r\n.\/hw restore <span class=\"token\">\"\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u540d\"<\/span>\r\n<span class=\"token\"># \u2192 \u5b8c\u5168\u306b\u540c\u3058\u74b0\u5883\u304c\u5fa9\u5143\u3055\u308c\u308b<\/span>\r\n<span class=\"token\"># \u2192 AI\u5951\u7d04\u3001\u8a2d\u5b9a\u3001\u9032\u6357\u3059\u3079\u3066\u540c\u671f<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<hr \/>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\">tmux\u7d71\u5408<\/h2>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udda5\ufe0f \u9b54\u6cd5\u56de\u8def\u30b7\u30b9\u30c6\u30e0<\/h3>\n<p class=\"whitespace-normal break-words\">tmux\u3068\u306e\u6df1\u3044\u7d71\u5408\u306b\u3088\u308a\u3001\u30de\u30eb\u30c1\u30bf\u30b9\u30af\u958b\u767a\u74b0\u5883\u3092\u5b9f\u73fe\uff1a<\/p>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u81ea\u52d5\u30bb\u30c3\u30b7\u30e7\u30f3\u69cb\u6210<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw start\r\n\r\n<span class=\"token\"># \u81ea\u52d5\u4f5c\u6210\u3055\u308c\u308b\u30a6\u30a3\u30f3\u30c9\u30a6:<\/span>\r\nhogwarts_main:\r\n\u251c\u2500\u2500 <span class=\"token\">command<\/span>      <span class=\"token\"># \u30e1\u30a4\u30f3\u30b3\u30de\u30f3\u30c9\u5b9f\u884c<\/span>\r\n\u251c\u2500\u2500 dashboard    <span class=\"token\"># \u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u72b6\u6cc1\u76e3\u8996  <\/span>\r\n\u251c\u2500\u2500 logs         <span class=\"token\"># \u30ed\u30b0\u76e3\u8996<\/span>\r\n\u251c\u2500\u2500 material     <span class=\"token\"># \u30d5\u30a1\u30a4\u30eb\u76e3\u8996<\/span>\r\n\u2514\u2500\u2500 owl-listener <span class=\"token\"># Slack\u30ea\u30b9\u30ca\u30fc<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u5404\u30a6\u30a3\u30f3\u30c9\u30a6\u306e\u8a73\u7d30<\/h4>\n<h5>command \u30a6\u30a3\u30f3\u30c9\u30a6<\/h5>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u30e1\u30a4\u30f3\u306e\u4f5c\u696d\u30b9\u30da\u30fc\u30b9<\/span>\r\n.\/hw status           <span class=\"token\"># \u72b6\u6cc1\u78ba\u8a8d<\/span>\r\n.\/hw ask \u30ed\u30f3 <span class=\"token\">\"...\"<\/span>   <span class=\"token\"># \u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u3068\u306e\u5bfe\u8a71<\/span>\r\n.\/hw project start    <span class=\"token\"># \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u64cd\u4f5c<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h5>dashboard \u30a6\u30a3\u30f3\u30c9\u30a6<\/h5>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># 5\u79d2\u9593\u9694\u3067\u81ea\u52d5\u66f4\u65b0\u3055\u308c\u308b\u72b6\u6cc1\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9<\/span>\r\n<span class=\"token\">watch<\/span> -n <span class=\"token\">5<\/span> -t --color .\/hw status\r\n\r\n<span class=\"token\"># \u8868\u793a\u5185\u5bb9:<\/span>\r\n\ud83c\udff0 <span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span> \u9b42\u306e\u5bbf\u308b\u57ce v28.0.1 \u72b6\u6cc1\u5831\u544a <span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span>\r\n\ud83d\udcc5 \u73fe\u5728\u6642\u523b: <span class=\"token\">2024<\/span>-12-28 <span class=\"token\">15<\/span>:30:15\r\n\ud83c\udfd7\ufe0f \u30d7\u30ed\u30b8\u30a7\u30af\u30c8: AI\u30c1\u30e3\u30c3\u30c8\u30dc\u30c3\u30c8 <span class=\"token\">(<\/span>ABC123<span class=\"token\">)<\/span>\r\n\ud83d\udd25 \u73fe\u5728\u306e\u30d5\u30a7\u30fc\u30ba: implement\r\n\ud83d\udc65 \u6d3b\u52d5\u4e2d\u306e\u30ad\u30e3\u30e9\u30af\u30bf\u30fc <span class=\"token\">(<\/span><span class=\"token\">3<\/span>\u540d<span class=\"token\">)<\/span>\uff1a\r\n  \ud83d\udee0\ufe0f \u30ed\u30f3\r\n  \u26a1 \u30cf\u30ea\u30fc  \r\n  \ud83d\udde1\ufe0f \u30b9\u30cd\u30a4\u30d7\r\n<span class=\"token\"># \u2192 \u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u3067\u66f4\u65b0<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h5>logs \u30a6\u30a3\u30f3\u30c9\u30a6<\/h5>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u57ce\u306e\u5168\u6d3b\u52d5\u30ed\u30b0\u3092\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u8868\u793a<\/span>\r\n<span class=\"token\">tail<\/span> -f .hogwarts_castle\/logs\/castle.log\r\n\r\n<span class=\"token\"># \u8868\u793a\u4f8b:<\/span>\r\n<span class=\"token\">[<\/span><span class=\"token\">15<\/span>:30:12<span class=\"token\">]<\/span> <span class=\"token\">[<\/span>INFO<span class=\"token\">]<\/span> \u30ed\u30f3: \ud83e\udde0 \u601d\u8003\u958b\u59cb: \u30e6\u30fc\u30b6\u30fc\u8a8d\u8a3cAPI\u5b9f\u88c5\u306b\u3064\u3044\u3066\r\n<span class=\"token\">[<\/span><span class=\"token\">15<\/span>:30:15<span class=\"token\">]<\/span> <span class=\"token\">[<\/span>SUCCESS<span class=\"token\">]<\/span> \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc: \u2705 \u30da\u30f3\u30b7\u30fc\u30d6\u691c\u7d22\u5b8c\u4e86\r\n<span class=\"token\">[<\/span><span class=\"token\">15<\/span>:30:18<span class=\"token\">]<\/span> <span class=\"token\">[<\/span>INFO<span class=\"token\">]<\/span> Slack: \u30d5\u30af\u30ed\u30a6\u4fbf\u9001\u4fe1\u5b8c\u4e86<\/code><\/pre>\n<\/div>\n<\/div>\n<h5>material \u30a6\u30a3\u30f3\u30c9\u30a6<\/h5>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc\u306b\u3088\u308b\u30d5\u30a1\u30a4\u30eb\u76e3\u8996<\/span>\r\n<span class=\"token\">source<\/span> <span class=\"token\">'material_realm\/hermione_sorting.sh'<\/span>\r\nwatch_material_inbox\r\n\r\n<span class=\"token\"># \u8868\u793a\u4f8b:<\/span>\r\n\ud83d\udc40 \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc: \u53d7\u4fe1\u7bb1\u306e\u76e3\u8996\u3092\u958b\u59cb\u3057\u307e\u3059\r\n\ud83d\udccb \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc: \u5206\u6790\u4e2d: config.yaml\r\n\ud83d\udccb \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc: \u2705 \u4ed5\u5206\u3051\u5b8c\u4e86: config.yaml<\/code><\/pre>\n<\/div>\n<\/div>\n<h5>owl-listener \u30a6\u30a3\u30f3\u30c9\u30a6<\/h5>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># Slack\u304b\u3089\u306e\u30b3\u30de\u30f3\u30c9\u3092\u53d7\u4fe1<\/span>\r\n<span class=\"token\">bash<\/span> scripts\/slack_listener.sh\r\n\r\n<span class=\"token\"># \u8868\u793a\u4f8b:<\/span>\r\n\ud83e\udd89 \u30d5\u30af\u30ed\u30a6\u4fbf\u306e\u5230\u7740\u3092\u30dd\u30fc\u30c8 <span class=\"token\">8080<\/span> \u3067\u5f85\u3063\u3066\u3044\u307e\u3059<span class=\"token\">..<\/span>.\r\n<span class=\"token\">[<\/span><span class=\"token\">2024<\/span>-12-28 <span class=\"token\">15<\/span>:30:20<span class=\"token\">]<\/span> OWL-LISTENER: Slack\u304b\u3089\u30b3\u30de\u30f3\u30c9\u53d7\u4fe1: ask \u30ed\u30f3 \u9032\u6357\u306f\uff1f<\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">tmux\u64cd\u4f5c\u30b3\u30de\u30f3\u30c9<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u30bb\u30c3\u30b7\u30e7\u30f3\u4e00\u89a7<\/span>\r\ntmux list-sessions\r\n\r\n<span class=\"token\"># \u30bb\u30c3\u30b7\u30e7\u30f3\u63a5\u7d9a<\/span>\r\ntmux attach -t hogwarts_main\r\n\r\n<span class=\"token\"># \u30a6\u30a3\u30f3\u30c9\u30a6\u5207\u308a\u66ff\u3048\uff08\u30bb\u30c3\u30b7\u30e7\u30f3\u5185\u3067\uff09<\/span>\r\nCtrl+a + <span class=\"token\">1<\/span>    <span class=\"token\"># command\u30a6\u30a3\u30f3\u30c9\u30a6<\/span>\r\nCtrl+a + <span class=\"token\">2<\/span>    <span class=\"token\"># dashboard\u30a6\u30a3\u30f3\u30c9\u30a6  <\/span>\r\nCtrl+a + <span class=\"token\">3<\/span>    <span class=\"token\"># logs\u30a6\u30a3\u30f3\u30c9\u30a6<\/span>\r\nCtrl+a + <span class=\"token\">4<\/span>    <span class=\"token\"># material\u30a6\u30a3\u30f3\u30c9\u30a6<\/span>\r\nCtrl+a + <span class=\"token\">5<\/span>    <span class=\"token\"># owl-listener\u30a6\u30a3\u30f3\u30c9\u30a6<\/span>\r\n\r\n<span class=\"token\"># \u30bb\u30c3\u30b7\u30e7\u30f3\u7d42\u4e86<\/span>\r\ntmux kill-session -t hogwarts_main<\/code><\/pre>\n<\/div>\n<\/div>\n<hr \/>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\">\u9b54\u6cd5\u7684UX\u6a5f\u80fd<\/h2>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udcf0 \u65e5\u520a\u4e88\u8a00\u8005\u65b0\u805e<\/h3>\n<p class=\"whitespace-normal break-words\">\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u9032\u6357\u3092\u9b54\u6cd5\u754c\u98a8\u306b\u5831\u544a\uff1a<\/p>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw daily-prophet\r\n\r\n<span class=\"token\"># \u51fa\u529b\u4f8b:<\/span>\r\n<span class=\"token\"># \ud83d\udc3b\u200d\u2744\ufe0f JK\u30ed\u30fc\u30ea\u30f3\u30b0\u30de\u306e\u65e5\u520a\u4e88\u8a00\u8005\u65b0\u805e v28.0.1<\/span>\r\n<span class=\"token\">## \ud83d\udcc5 2024\u5e7412\u670828\u65e5 \u7248<\/span>\r\n---\r\n<span class=\"token\">## \ud83c\udff0 \u672c\u65e5\u306e\u9b54\u6cd5\u754c\u30cb\u30e5\u30fc\u30b9<\/span>\r\n\ud83d\udee0\ufe0f **\u958b\u767a\u306e\u9032\u5c55**\r\n  - feat: \u30e6\u30fc\u30b6\u30fc\u8a8d\u8a3cAPI\u5b9f\u88c5\u5b8c\u4e86\r\n  - fix: \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u554f\u984c\u3092\u4fee\u6b63  \r\n  - docs: API\u4ed5\u69d8\u66f8\u3092\u66f4\u65b0\r\n\r\n---\r\n<span class=\"token\">## \ud83c\udfc6 \u5bee\u5bfe\u6297\u676f \u73fe\u5728\u306e\u5f97\u70b9<\/span>\r\n\ud83e\udd81 \u30b0\u30ea\u30d5\u30a3\u30f3\u30c9\u30fc\u30eb: <span class=\"token\">45<\/span>\u70b9  \ud83d\udc0d \u30b9\u30ea\u30b6\u30ea\u30f3: <span class=\"token\">32<\/span>\u70b9\r\n\ud83e\udd85 \u30ec\u30a4\u30d6\u30f3\u30af\u30ed\u30fc: <span class=\"token\">28<\/span>\u70b9  \ud83e\udd9b \u30cf\u30c3\u30d5\u30eb\u30d1\u30d5: <span class=\"token\">51<\/span>\u70b9\r\n\r\n---\r\n<span class=\"token\">## \ud83e\udd16 AI\u5951\u7d04\u72b6\u6cc1<\/span>\r\nGoogle Gate <span class=\"token\">(<\/span>Gemini<span class=\"token\">)<\/span>: active\r\nAnthropic Library <span class=\"token\">(<\/span>Claude<span class=\"token\">)<\/span>: active\r\nGoogle Drive Gate: active\r\n\r\n\ud83d\udcca \u672c\u65e5\u306eAPI\u4f7f\u7528\u72b6\u6cc1\r\nGemini: <span class=\"token\">67<\/span>\u56de \u2705 \u6b63\u5e38\r\nClaude: <span class=\"token\">34<\/span>\u56de \u2705 \u6b63\u5e38\r\n\r\n---\r\n<span class=\"token\">## \ud83d\udd2e \u30eb\u30fc\u30ca\u306e\u4e88\u8a00\u30b3\u30fc\u30ca\u30fc<\/span>\r\n\u300c\u660e\u65e5\u3001\u30b3\u30fc\u30c9\u306b\u7f8e\u3057\u3044\u5909\u5316\u304c\u8a2a\u308c\u308b\u300d - \u30eb\u30fc\u30ca\u3088\u308a<\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83c\udfc6 \u5bee\u5bfe\u6297\u676f\u30b7\u30b9\u30c6\u30e0<\/h3>\n<p class=\"whitespace-normal break-words\">\u30c1\u30fc\u30e0\u306e\u30e2\u30c1\u30d9\u30fc\u30b7\u30e7\u30f3\u5411\u4e0a\u3068\u30b2\u30fc\u30df\u30d5\u30a3\u30b1\u30fc\u30b7\u30e7\u30f3\uff1a<\/p>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30dd\u30a4\u30f3\u30c8\u7372\u5f97<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u81ea\u52d5\u7684\u306b\u30dd\u30a4\u30f3\u30c8\u7372\u5f97<\/span>\r\n<span class=\"token\"># - \u30bf\u30b9\u30af\u5b8c\u4e86<\/span>\r\n<span class=\"token\"># - \u54c1\u8cea\u306e\u9ad8\u3044\u30b3\u30fc\u30c9\u4f5c\u6210<\/span>\r\n<span class=\"token\"># - \u554f\u984c\u89e3\u6c7a<\/span>\r\n<span class=\"token\"># - \u30c1\u30fc\u30e0\u3078\u306e\u8ca2\u732e<\/span>\r\n\r\n<span class=\"token\"># \u624b\u52d5\u3067\u30dd\u30a4\u30f3\u30c8\u6388\u4e0e<\/span>\r\n.\/hw house-cup award \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc <span class=\"token\">10<\/span> <span class=\"token\">\"\u512a\u79c0\u306a\u6280\u8853\u8abf\u67fb\"<\/span>\r\n\ud83c\udfc6 \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc: <span class=\"token\">10<\/span>\u70b9\u7372\u5f97\uff01<span class=\"token\">(<\/span>\u512a\u79c0\u306a\u6280\u8853\u8abf\u67fb<span class=\"token\">)<\/span>\r\n\r\n<span class=\"token\"># \u9806\u4f4d\u78ba\u8a8d<\/span>\r\n.\/hw house-cup standings\r\n\ud83e\udd81 \u30b0\u30ea\u30d5\u30a3\u30f3\u30c9\u30fc\u30eb: <span class=\"token\">45<\/span>\u70b9  \ud83d\udc0d \u30b9\u30ea\u30b6\u30ea\u30f3: <span class=\"token\">32<\/span>\u70b9\r\n\ud83e\udd85 \u30ec\u30a4\u30d6\u30f3\u30af\u30ed\u30fc: <span class=\"token\">28<\/span>\u70b9  \ud83e\udd9b \u30cf\u30c3\u30d5\u30eb\u30d1\u30d5: <span class=\"token\">51<\/span>\u70b9<\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u5bee\u6240\u5c5e<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code>\ud83e\udd81 \u30b0\u30ea\u30d5\u30a3\u30f3\u30c9\u30fc\u30eb: \u30cf\u30ea\u30fc\u3001\u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc\u3001\u30ed\u30f3\r\n\ud83d\udc0d \u30b9\u30ea\u30b6\u30ea\u30f3: \u30b9\u30cd\u30a4\u30d7  \r\n\ud83e\udd85 \u30ec\u30a4\u30d6\u30f3\u30af\u30ed\u30fc: \u30eb\u30fc\u30ca\r\n\ud83e\udd9b \u30cf\u30c3\u30d5\u30eb\u30d1\u30d5: \u30c9\u30d3\u30fc\r\n\u26a1 \u6559\u54e1: \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2\u3001\u30de\u30af\u30b4\u30ca\u30ac\u30eb\u3001JK\u30ed\u30fc\u30ea\u30f3\u30b0\u30de\uff08\u30dd\u30a4\u30f3\u30c8\u5bfe\u8c61\u5916\uff09<\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83e\uddea \u30dd\u30ea\u30b8\u30e5\u30fc\u30b9\u85ac\u30c7\u30d0\u30c3\u30b0<\/h3>\n<p class=\"whitespace-normal break-words\">\u7279\u5b9a\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u300c\u5909\u8eab\u300d\u3057\u305f\u9694\u96e2\u30c7\u30d0\u30c3\u30b0\u74b0\u5883\uff1a<\/p>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw debug <span class=\"token\">\"auth\/login.py\"<\/span>\r\n\r\n<span class=\"token\"># tmux\u3067\u5c02\u7528\u30c7\u30d0\u30c3\u30b0\u30bb\u30c3\u30b7\u30e7\u30f3\u3092\u4f5c\u6210:<\/span>\r\n\ud83e\uddea \u30b9\u30cd\u30a4\u30d7: \u30dd\u30ea\u30b8\u30e5\u30fc\u30b9\u85ac\u3092\u8abf\u5408\u4e2d<span class=\"token\">..<\/span>.\u5bfe\u8c61: auth\/login.py\r\n\ud83e\uddea \u30b9\u30cd\u30a4\u30d7: \u30c7\u30d0\u30c3\u30b0\u30bb\u30c3\u30b7\u30e7\u30f3\u958b\u59cb\uff01 tmux attach -t polyjuice_auth_login_py_1640702400 \u3067\u63a5\u7d9a\u305b\u3088\r\n\r\n<span class=\"token\"># \u30bb\u30c3\u30b7\u30e7\u30f3\u69cb\u6210:<\/span>\r\npolyjuice_auth_login_py_1640702400:\r\n\u251c\u2500\u2500 debug    <span class=\"token\"># \u30c7\u30d0\u30c3\u30b0\u4f5c\u696d\u30b9\u30da\u30fc\u30b9<\/span>\r\n\u2514\u2500\u2500 logs     <span class=\"token\"># \u8a72\u5f53\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u30ed\u30b0\u76e3\u8996<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<hr \/>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\">\u30c8\u30e9\u30d6\u30eb\u30b7\u30e5\u30fc\u30c6\u30a3\u30f3\u30b0<\/h2>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udea8 \u3088\u304f\u3042\u308b\u554f\u984c\u3068\u89e3\u6c7a\u6cd5<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">1. \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u95a2\u9023<\/h4>\n<h5>\u4f9d\u5b58\u95a2\u4fc2\u30a8\u30e9\u30fc<\/h5>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u75c7\u72b6: jq command not found<\/span>\r\n<span class=\"token\"># \u89e3\u6c7a:<\/span>\r\n<span class=\"token\">sudo<\/span> <span class=\"token\">apt<\/span> <span class=\"token\">install<\/span> -y jq <span class=\"token\">curl<\/span> tmux sqlite3 <span class=\"token\">git<\/span> python3 inotify-tools\r\n\r\n<span class=\"token\"># macOS\u306e\u5834\u5408:<\/span>\r\nbrew <span class=\"token\">install<\/span> jq <span class=\"token\">curl<\/span> tmux sqlite<\/code><\/pre>\n<\/div>\n<\/div>\n<h5>\u6a29\u9650\u30a8\u30e9\u30fc<\/h5>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u75c7\u72b6: Permission denied<\/span>\r\n<span class=\"token\"># \u89e3\u6c7a:<\/span>\r\n<span class=\"token\">chmod<\/span> +x hogwarts_castle.sh\r\n<span class=\"token\">chmod<\/span> <span class=\"token\">755<\/span> <span class=\"token\">.<\/span>\r\n\r\n<span class=\"token\"># \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u5168\u4f53\u306e\u6a29\u9650\u78ba\u8a8d:<\/span>\r\n<span class=\"token\">ls<\/span> -la .hogwarts_castle\/<\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">2. AI\u5951\u7d04\u95a2\u9023<\/h4>\n<h5>Google API\u8a8d\u8a3c\u5931\u6557<\/h5>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u75c7\u72b6: Invalid client or unauthorized<\/span>\r\n<span class=\"token\"># \u78ba\u8a8d\u4e8b\u9805:<\/span>\r\n<span class=\"token\">1<\/span>. Google Cloud Console \u3067API\u6709\u52b9\u5316\u78ba\u8a8d\r\n<span class=\"token\">2<\/span>. OAuth2 \u30af\u30e9\u30a4\u30a2\u30f3\u30c8ID\u306e\u8a2d\u5b9a\u78ba\u8a8d  \r\n<span class=\"token\">3<\/span>. \u30ea\u30c0\u30a4\u30ec\u30af\u30c8URI\u306e\u6b63\u78ba\u6027\r\n<span class=\"token\">4<\/span>. \u8a8d\u8a3c\u30b3\u30fc\u30c9\u306e\u671f\u9650\uff0810\u5206\u4ee5\u5185\u306b\u4f7f\u7528\uff09\r\n\r\n<span class=\"token\"># \u89e3\u6c7a:<\/span>\r\n.\/hw contract google  <span class=\"token\"># \u518d\u8a8d\u8a3c<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h5>Claude API\u5236\u9650<\/h5>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u75c7\u72b6: Rate limit exceeded<\/span>\r\n<span class=\"token\"># \u78ba\u8a8d:<\/span>\r\n.\/hw contract status\r\n<span class=\"token\"># \u2192 Claude: \u274c \u4e0a\u9650\u5230\u9054<\/span>\r\n\r\n<span class=\"token\"># \u89e3\u6c7a:<\/span>\r\n<span class=\"token\"># 1. 24\u6642\u9593\u5f85\u6a5f\uff08\u81ea\u52d5\u30ea\u30bb\u30c3\u30c8\uff09<\/span>\r\n<span class=\"token\"># 2. Gemini\u3067\u4ee3\u66ff\u5b9f\u884c\uff08\u81ea\u52d5\u30d5\u30a9\u30fc\u30eb\u30d0\u30c3\u30af\uff09<\/span>\r\n<span class=\"token\"># 3. \u30ed\u30fc\u30ab\u30eb\u6559\u80b2\u30b7\u30b9\u30c6\u30e0\u3067\u7d99\u7d9a<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">3. Slack\u9023\u643a\u95a2\u9023<\/h4>\n<h5>Slash\u30b3\u30de\u30f3\u30c9\u7121\u53cd\u5fdc<\/h5>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u78ba\u8a8d\u624b\u9806:<\/span>\r\n<span class=\"token\">1<\/span>. \u30dd\u30fc\u30c88080\u306e\u958b\u653e\u78ba\u8a8d\r\n   <span class=\"token\">sudo<\/span> <span class=\"token\">netstat<\/span> -tlnp <span class=\"token\">|<\/span> <span class=\"token\">grep<\/span> :8080\r\n   \r\n<span class=\"token\">2<\/span>. \u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u8a2d\u5b9a\r\n   <span class=\"token\">sudo<\/span> ufw allow <span class=\"token\">8080<\/span>\r\n   \r\n<span class=\"token\">3<\/span>. \u30ea\u30b9\u30ca\u30fc\u8d77\u52d5\u78ba\u8a8d  \r\n   tmux attach -t hogwarts_main\r\n   <span class=\"token\"># owl-listener\u30bf\u30d6\u3067\u52d5\u4f5c\u78ba\u8a8d<\/span>\r\n   \r\n<span class=\"token\">4<\/span>. Request URL\u306e\u6b63\u78ba\u6027\r\n   <span class=\"token\"># Slack\u306eSlash Command\u8a2d\u5b9a\u3092\u518d\u78ba\u8a8d<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h5>Webhook\u6295\u7a3f\u30a8\u30e9\u30fc<\/h5>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u624b\u52d5\u30c6\u30b9\u30c8:<\/span>\r\n<span class=\"token\">curl<\/span> -X POST -H <span class=\"token\">'Content-type: application\/json'<\/span> <span class=\"token\">\\<\/span>\r\n--data <span class=\"token\">'{\"text\":\"\u30c6\u30b9\u30c8\"}'<\/span> <span class=\"token\">\\<\/span>\r\n<span class=\"token\">\"YOUR_WEBHOOK_URL\"<\/span>\r\n\r\n<span class=\"token\"># \u8a2d\u5b9a\u78ba\u8a8d:<\/span>\r\n.\/hw status\r\n<span class=\"token\"># \u2192 Slack\u8a2d\u5b9a\u304c\u8868\u793a\u3055\u308c\u308b\u304b\u78ba\u8a8d<\/span>\r\n\r\n<span class=\"token\"># \u518d\u8a2d\u5b9a:<\/span>\r\n.\/hw config slack <span class=\"token\">\"\u65b0\u3057\u3044WEBHOOK_URL\"<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">4. tmux\u95a2\u9023<\/h4>\n<h5>\u30bb\u30c3\u30b7\u30e7\u30f3\u8d77\u52d5\u5931\u6557<\/h5>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u65e2\u5b58\u30bb\u30c3\u30b7\u30e7\u30f3\u78ba\u8a8d\u30fb\u524a\u9664:<\/span>\r\ntmux list-sessions\r\ntmux kill-session -t hogwarts_main\r\n\r\n<span class=\"token\"># \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u78ba\u8a8d:<\/span>\r\n<span class=\"token\">ls<\/span> -la .hogwarts_castle\/tmux\/\r\n<span class=\"token\">cat<\/span> .hogwarts_castle\/tmux\/hogwarts_castle.conf\r\n\r\n<span class=\"token\"># \u518d\u8d77\u52d5:<\/span>\r\n.\/hw start<\/code><\/pre>\n<\/div>\n<\/div>\n<h5>\u30a6\u30a3\u30f3\u30c9\u30a6\u304c\u5fdc\u7b54\u3057\u306a\u3044<\/h5>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u7279\u5b9a\u30a6\u30a3\u30f3\u30c9\u30a6\u306e\u518d\u8d77\u52d5:<\/span>\r\ntmux respawn-window -t hogwarts_main:dashboard\r\n\r\n<span class=\"token\"># \u5168\u4f53\u518d\u8d77\u52d5:<\/span>\r\n.\/hw banish all\r\ntmux kill-server\r\n.\/hw start<\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">5. \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u95a2\u9023<\/h4>\n<h5>DB\u7834\u640d\u30fb\u521d\u671f\u5316<\/h5>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u4f5c\u6210:<\/span>\r\n<span class=\"token\">cp<\/span> .hogwarts_castle\/castle.db .hogwarts_castle\/castle.db.backup\r\n\r\n<span class=\"token\"># \u521d\u671f\u5316:<\/span>\r\n<span class=\"token\">rm<\/span> .hogwarts_castle\/castle.db\r\n.\/hw init\r\n\r\n<span class=\"token\"># \u5fc5\u8981\u306b\u5fdc\u3058\u3066\u5fa9\u5143:<\/span>\r\n.\/hw restore <span class=\"token\">\"\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u540d\"<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">6. \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u554f\u984c<\/h4>\n<h5>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u904e\u591a<\/h5>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u30d7\u30ed\u30bb\u30b9\u78ba\u8a8d:<\/span>\r\n<span class=\"token\">ps<\/span> aux <span class=\"token\">|<\/span> <span class=\"token\">grep<\/span> hogwarts\r\n<span class=\"token\">ps<\/span> aux <span class=\"token\">|<\/span> <span class=\"token\">grep<\/span> tmux\r\n\r\n<span class=\"token\"># \u4e0d\u8981\u306a\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u4f11\u7720:<\/span>\r\n.\/hw banish all\r\n.\/hw summon \u5fc5\u8981\u306a\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u306e\u307f\r\n\r\n<span class=\"token\"># \u30ed\u30b0\u30d5\u30a1\u30a4\u30eb\u30b5\u30a4\u30ba\u78ba\u8a8d:<\/span>\r\n<span class=\"token\">du<\/span> -sh .hogwarts_castle\/logs\/\r\n<span class=\"token\"># \u5fc5\u8981\u306b\u5fdc\u3058\u3066\u30ed\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udd27 \u5b8c\u5168\u30ea\u30bb\u30c3\u30c8\u624b\u9806<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u8a2d\u5b9a\u4fdd\u6301\u30ea\u30bb\u30c3\u30c8<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># AI\u5951\u7d04\u3068\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4fdd\u6301\u3057\u305f\u307e\u307e\u57ce\u3092\u30ea\u30bb\u30c3\u30c8<\/span>\r\n.\/hw banish all\r\ntmux kill-server\r\n<span class=\"token\">rm<\/span> -rf .hogwarts_castle\/logs\/*\r\n<span class=\"token\">rm<\/span> -rf .hogwarts_castle\/souls\/portraits\/*\r\n.\/hw start<\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u5b8c\u5168\u30ea\u30bb\u30c3\u30c8\uff08\u6ce8\u610f\uff01\uff09<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u5168\u30c7\u30fc\u30bf\u524a\u9664\u30fb\u5b8c\u5168\u521d\u671f\u5316<\/span>\r\n.\/hw backup  <span class=\"token\"># \u5ff5\u306e\u305f\u3081\u30d0\u30c3\u30af\u30a2\u30c3\u30d7<\/span>\r\n<span class=\"token\">rm<\/span> -rf .hogwarts_castle\r\n.\/hw <span class=\"token\">install<\/span>  <span class=\"token\"># \u5b8c\u5168\u518d\u69cb\u7bc9<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u9078\u629e\u7684\u30ea\u30bb\u30c3\u30c8<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># AI\u5951\u7d04\u306e\u307f\u30ea\u30bb\u30c3\u30c8<\/span>\r\n<span class=\"token\">rm<\/span> -rf .hogwarts_castle\/contracts\/credentials\/*\r\n.\/hw contract status  <span class=\"token\"># \u2192 \u5168\u3066\u672a\u8a2d\u5b9a\u72b6\u614b<\/span>\r\n\r\n<span class=\"token\"># \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u307f\u30ea\u30bb\u30c3\u30c8<\/span>\r\nsqlite3 .hogwarts_castle\/castle.db <span class=\"token\">\"DELETE FROM projects;\"<\/span>\r\nsqlite3 .hogwarts_castle\/castle.db <span class=\"token\">\"DELETE FROM tasks;\"<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<hr \/>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\">\u4e0a\u7d1a\u8005\u5411\u3051\u6a5f\u80fd<\/h2>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83c\udfaf \u30ab\u30b9\u30bf\u30e0\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u4f5c\u6210<\/h3>\n<p class=\"whitespace-normal break-words\">\u72ec\u81ea\u306eAI\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u3092\u8ffd\u52a0\uff1a<\/p>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u5b9a\u7fa9<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># .hogwarts_castle\/souls\/character_souls.yaml \u306b\u8ffd\u52a0<\/span>\r\ncustom_characters:\r\n  \u30de\u30a4\u30ad\u30e3\u30e9:\r\n    name: <span class=\"token\">\"\u30ab\u30b9\u30bf\u30e0\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\"<\/span>\r\n    role: <span class=\"token\">\"\u5c02\u9580\u5bb6\"<\/span>\r\n    soul_type: <span class=\"token\">\"Custom_Expert\"<\/span>\r\n    ai_provider: <span class=\"token\">\"claude\"<\/span>\r\n    specialty: <span class=\"token\">\"\u7279\u5b9a\u5206\u91ce\u306e\u5c02\u9580\u77e5\u8b58\"<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u601d\u8003\u30d1\u30bf\u30fc\u30f3\u4f5c\u6210<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u30ab\u30b9\u30bf\u30e0\u601d\u8003\u30d1\u30bf\u30fc\u30f3\u30b9\u30af\u30ea\u30d7\u30c8<\/span>\r\n<span class=\"token\">cat<\/span> <span class=\"token\">&gt;<\/span> .hogwarts_castle\/souls\/thought_patterns\/\u30de\u30a4\u30ad\u30e3\u30e9_pattern.sh <span class=\"token\">&lt;&lt;<\/span> <span class=\"token\">'EOF'\r\n<\/span>#!\/bin\/bash\r\nthink_\u30de\u30a4\u30ad\u30e3\u30e9() {\r\n    local input=\"$1\"\r\n    local context=\"$2\"\r\n    log_with_soul \"\u30de\u30a4\u30ad\u30e3\u30e9\" \"\ud83c\udfaf \u5c02\u9580\u5206\u6790\u958b\u59cb: $input\" \"INFO\"\r\n    \r\n    # \u30ab\u30b9\u30bf\u30e0\u30ed\u30b8\u30c3\u30af\r\n    local result=$(think_with_ai \"\u30de\u30a4\u30ad\u30e3\u30e9\" \"custom_analysis\" \"$input\" \"$context\")\r\n    echo \"$result\"\r\n}\r\n<span class=\"token\">EOF<\/span>\r\n<span class=\"token\">chmod<\/span> +x .hogwarts_castle\/souls\/thought_patterns\/\u30de\u30a4\u30ad\u30e3\u30e9_pattern.sh<\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udd27 API\u9023\u643a\u30ab\u30b9\u30bf\u30de\u30a4\u30ba<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u72ec\u81eaAPI\u7d71\u5408<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># contracts\/custom_api.json<\/span>\r\n<span class=\"token\">{<\/span>\r\n  <span class=\"token\">\"contract_name\"<\/span><span class=\"token\">:<\/span> <span class=\"token\">\"Custom API Service\"<\/span>,\r\n  <span class=\"token\">\"provider\"<\/span><span class=\"token\">:<\/span> <span class=\"token\">\"custom\"<\/span>,\r\n  <span class=\"token\">\"api_url\"<\/span><span class=\"token\">:<\/span> <span class=\"token\">\"https:\/\/api.custom-service.com\/v1\/\"<\/span>,\r\n  <span class=\"token\">\"auth_method\"<\/span><span class=\"token\">:<\/span> <span class=\"token\">\"bearer_token\"<\/span>,\r\n  <span class=\"token\">\"token_file\"<\/span><span class=\"token\">:<\/span> <span class=\"token\">\".hogwarts_castle\/contracts\/credentials\/custom_token.json\"<\/span>\r\n<span class=\"token\">}<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">API\u4f7f\u7528\u91cf\u5236\u9650\u30ab\u30b9\u30bf\u30de\u30a4\u30ba<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># api_usage.json \u306e\u5236\u9650\u5024\u5909\u66f4<\/span>\r\n<span class=\"token\">{<\/span>\r\n  <span class=\"token\">\"gemini_daily_limit\"<\/span><span class=\"token\">:<\/span> <span class=\"token\">2000<\/span>,\r\n  <span class=\"token\">\"claude_daily_limit\"<\/span><span class=\"token\">:<\/span> <span class=\"token\">1500<\/span>,\r\n  <span class=\"token\">\"custom_api_daily_limit\"<\/span><span class=\"token\">:<\/span> <span class=\"token\">500<\/span>\r\n<span class=\"token\">}<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udcca \u9ad8\u5ea6\u306a\u5206\u6790\u30fb\u30ec\u30dd\u30fc\u30c8<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">Git\u7d71\u5408\u5206\u6790<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306eGit\u60c5\u5831\u3092\u6d3b\u7528<\/span>\r\n.\/hw analyze git-activity\r\n.\/hw analyze code-quality\r\n.\/hw analyze team-contribution\r\n\r\n<span class=\"token\"># \u51fa\u529b\u4f8b:<\/span>\r\n\ud83d\udcca \u958b\u767a\u6d3b\u52d5\u5206\u6790\u30ec\u30dd\u30fc\u30c8\r\n<span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span>\r\n\ud83d\udcc5 \u671f\u9593: <span class=\"token\">2024<\/span>-12-01 \u301c <span class=\"token\">2024<\/span>-12-28\r\n\ud83d\udcc8 \u30b3\u30df\u30c3\u30c8\u6570: <span class=\"token\">147<\/span>\u56de\r\n\ud83d\udc65 \u8ca2\u732e\u8005: <span class=\"token\">5<\/span>\u540d\r\n\ud83d\udd25 \u6700\u3082\u6d3b\u767a\u306a\u65e5: <span class=\"token\">2024<\/span>-12-15 <span class=\"token\">(<\/span><span class=\"token\">23<\/span>\u30b3\u30df\u30c3\u30c8<span class=\"token\">)<\/span>\r\n\u26a1 \u4e3b\u8981\u5909\u66f4\u30d5\u30a1\u30a4\u30eb: \r\n  - src\/auth.js <span class=\"token\">(<\/span><span class=\"token\">23<\/span>\u56de\u5909\u66f4<span class=\"token\">)<\/span>\r\n  - docs\/api.md <span class=\"token\">(<\/span><span class=\"token\">15<\/span>\u56de\u5909\u66f4<span class=\"token\">)<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5065\u5eb7\u5ea6\u30c1\u30a7\u30c3\u30af<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\">.\/hw health-check\r\n\r\n\ud83d\udccb \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5065\u5eb7\u5ea6\u8a3a\u65ad\r\n<span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span><span class=\"token\">==<\/span>\r\n\ud83d\udfe2 AI\u5951\u7d04: \u6b63\u5e38\u7a3c\u50cd\r\n\ud83d\udfe2 \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9: \u554f\u984c\u306a\u3057\r\n\ud83d\udfe1 \u30ed\u30b0\u30b5\u30a4\u30ba: \u6ce8\u610f <span class=\"token\">(<\/span><span class=\"token\">1<\/span>.2GB<span class=\"token\">)<\/span>\r\n\ud83d\udfe2 \u30d0\u30c3\u30af\u30a2\u30c3\u30d7: \u6700\u65b0 <span class=\"token\">(<\/span><span class=\"token\">1<\/span>\u65e5\u524d<span class=\"token\">)<\/span>\r\n\ud83d\udfe1 \u672a\u5b8c\u4e86\u30bf\u30b9\u30af: <span class=\"token\">15<\/span>\u4ef6\r\n\ud83d\udfe2 \u30d5\u30a7\u30fc\u30ba\u9032\u884c: \u9806\u8abf\r\n\r\n\ud83d\udca1 \u6539\u5584\u63d0\u6848:\r\n- \u30ed\u30b0\u30ed\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3\u5b9f\u884c\u63a8\u5968\r\n- \u672a\u5b8c\u4e86\u30bf\u30b9\u30af\u306e\u512a\u5148\u5ea6\u898b\u76f4\u3057<\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83c\udfa8 UI\u30fb\u901a\u77e5\u30ab\u30b9\u30bf\u30de\u30a4\u30ba<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30ab\u30b9\u30bf\u30e0\u901a\u77e5\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># .hogwarts_castle\/magical_ux\/custom_notifications.json<\/span>\r\n<span class=\"token\">{<\/span>\r\n  <span class=\"token\">\"project_start\"<\/span><span class=\"token\">:<\/span> <span class=\"token\">{<\/span>\r\n    <span class=\"token\">\"emoji\"<\/span><span class=\"token\">:<\/span> <span class=\"token\">\"\ud83d\ude80\"<\/span>,\r\n    <span class=\"token\">\"title\"<\/span><span class=\"token\">:<\/span> <span class=\"token\">\"\u65b0\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u958b\u59cb\uff01\"<\/span>,\r\n    <span class=\"token\">\"template\"<\/span><span class=\"token\">:<\/span> <span class=\"token\">\"\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u300e{project_name}\u300f\u304c\u59cb\u52d5\u3057\u307e\u3057\u305f\uff01\u76ee\u6a19: {description}\"<\/span>\r\n  <span class=\"token\">}<\/span>,\r\n  <span class=\"token\">\"phase_change\"<\/span><span class=\"token\">:<\/span> <span class=\"token\">{<\/span>\r\n    <span class=\"token\">\"emoji\"<\/span><span class=\"token\">:<\/span> <span class=\"token\">\"\ud83d\udd04\"<\/span>, \r\n    <span class=\"token\">\"title\"<\/span><span class=\"token\">:<\/span> <span class=\"token\">\"\u30d5\u30a7\u30fc\u30ba\u9077\u79fb\"<\/span>,\r\n    <span class=\"token\">\"template\"<\/span><span class=\"token\">:<\/span> <span class=\"token\">\"{old_phase} \u2192 {new_phase} \u3078\u306e\u79fb\u884c\u5b8c\u4e86\u3002\u7406\u7531: {reason}\"<\/span>\r\n  <span class=\"token\">}<\/span>\r\n<span class=\"token\">}<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30ab\u30e9\u30fc\u30c6\u30fc\u30de\u30ab\u30b9\u30bf\u30de\u30a4\u30ba<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># .hogwarts_castle\/magical_ux\/color_themes.conf<\/span>\r\n<span class=\"token\"># \u30c7\u30d5\u30a9\u30eb\u30c8\u30c6\u30fc\u30de<\/span>\r\n<span class=\"token assign-left\">THEME_DEFAULT<\/span><span class=\"token\">=<\/span><span class=\"token\">\"gold_and_silver\"<\/span>\r\n\r\n<span class=\"token\"># \u30ab\u30b9\u30bf\u30e0\u30c6\u30fc\u30de<\/span>\r\n<span class=\"token assign-left\">THEME_CUSTOM_COLORS<\/span><span class=\"token\">=<\/span><span class=\"token\">(<\/span>\r\n    <span class=\"token\">[<\/span><span class=\"token\">\"PRIMARY\"<\/span><span class=\"token\">]<\/span><span class=\"token\">=<\/span><span class=\"token\">\"#FF6B35\"<\/span>\r\n    <span class=\"token\">[<\/span><span class=\"token\">\"SECONDARY\"<\/span><span class=\"token\">]<\/span><span class=\"token\">=<\/span><span class=\"token\">\"#F7931E\"<\/span>  \r\n    <span class=\"token\">[<\/span><span class=\"token\">\"SUCCESS\"<\/span><span class=\"token\">]<\/span><span class=\"token\">=<\/span><span class=\"token\">\"#4CAF50\"<\/span>\r\n    <span class=\"token\">[<\/span><span class=\"token\">\"WARNING\"<\/span><span class=\"token\">]<\/span><span class=\"token\">=<\/span><span class=\"token\">\"#FF9800\"<\/span>\r\n    <span class=\"token\">[<\/span><span class=\"token\">\"ERROR\"<\/span><span class=\"token\">]<\/span><span class=\"token\">=<\/span><span class=\"token\">\"#F44336\"<\/span>\r\n<span class=\"token\">)<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<hr \/>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\">\u958b\u767a\u30fb\u30ab\u30b9\u30bf\u30de\u30a4\u30ba<\/h2>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udee0\ufe0f \u5185\u90e8\u69cb\u9020\u306e\u8a73\u7d30<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30b9\u30af\u30ea\u30d7\u30c8\u69cb\u6210<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code>hogwarts_castle.sh\r\n\u251c\u2500\u2500 \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570\u5b9a\u7fa9\r\n\u251c\u2500\u2500 \u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u95a2\u6570\u7fa4\r\n\u251c\u2500\u2500 AI\u601d\u8003\u30b7\u30b9\u30c6\u30e0\u4e2d\u6838\u95a2\u6570\u7fa4\r\n\u251c\u2500\u2500 \u57ce\u306e\u57fa\u76e4\u69cb\u7bc9\u9b54\u6cd5\r\n\u251c\u2500\u2500 AI\u5951\u7d04\u30b7\u30b9\u30c6\u30e0\r\n\u251c\u2500\u2500 \u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u30b7\u30b9\u30c6\u30e0\r\n\u251c\u2500\u2500 \u5404\u7a2e\u30b5\u30d6\u30b7\u30b9\u30c6\u30e0\u521d\u671f\u5316\r\n\u251c\u2500\u2500 \u30e1\u30a4\u30f3\u30b3\u30de\u30f3\u30c9\u30b7\u30b9\u30c6\u30e0\r\n\u2514\u2500\u2500 \u5b9f\u884c\u5236\u5fa1\u30fb\u30af\u30ea\u30fc\u30f3\u30a2\u30c3\u30d7<\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u8a2d\u8a08<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">sql<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-sql\"><span class=\"token\">-- \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u7ba1\u7406<\/span>\r\n<span class=\"token\">CREATE<\/span> <span class=\"token\">TABLE<\/span> projects <span class=\"token\">(<\/span>\r\n    code <span class=\"token\">TEXT<\/span> <span class=\"token\">PRIMARY<\/span> <span class=\"token\">KEY<\/span><span class=\"token\">,<\/span>\r\n    name <span class=\"token\">TEXT<\/span> <span class=\"token\">NOT<\/span> <span class=\"token\">NULL<\/span> <span class=\"token\">UNIQUE<\/span><span class=\"token\">,<\/span>\r\n    description <span class=\"token\">TEXT<\/span><span class=\"token\">,<\/span>\r\n    current_phase <span class=\"token\">TEXT<\/span> <span class=\"token\">DEFAULT<\/span> <span class=\"token\">'dormant'<\/span><span class=\"token\">,<\/span>\r\n    google_drive_project_folder_id <span class=\"token\">TEXT<\/span><span class=\"token\">,<\/span>\r\n    created_at <span class=\"token\">DATETIME<\/span> <span class=\"token\">DEFAULT<\/span> <span class=\"token\">CURRENT_TIMESTAMP<\/span><span class=\"token\">,<\/span>\r\n    updated_at <span class=\"token\">DATETIME<\/span> <span class=\"token\">DEFAULT<\/span> <span class=\"token\">CURRENT_TIMESTAMP<\/span>\r\n<span class=\"token\">)<\/span><span class=\"token\">;<\/span>\r\n\r\n<span class=\"token\">-- \u30bf\u30b9\u30af\u7ba1\u7406<\/span>\r\n<span class=\"token\">CREATE<\/span> <span class=\"token\">TABLE<\/span> tasks <span class=\"token\">(<\/span>\r\n    id <span class=\"token\">INTEGER<\/span> <span class=\"token\">PRIMARY<\/span> <span class=\"token\">KEY<\/span> AUTOINCREMENT<span class=\"token\">,<\/span>\r\n    project_code <span class=\"token\">TEXT<\/span><span class=\"token\">,<\/span>\r\n    title <span class=\"token\">TEXT<\/span> <span class=\"token\">NOT<\/span> <span class=\"token\">NULL<\/span><span class=\"token\">,<\/span>\r\n    description <span class=\"token\">TEXT<\/span><span class=\"token\">,<\/span>\r\n    <span class=\"token\">status<\/span> <span class=\"token\">TEXT<\/span> <span class=\"token\">DEFAULT<\/span> <span class=\"token\">'pending'<\/span><span class=\"token\">,<\/span>\r\n    assigned_character <span class=\"token\">TEXT<\/span><span class=\"token\">,<\/span>\r\n    priority <span class=\"token\">INTEGER<\/span> <span class=\"token\">DEFAULT<\/span> <span class=\"token\">1<\/span><span class=\"token\">,<\/span>\r\n    created_at <span class=\"token\">DATETIME<\/span> <span class=\"token\">DEFAULT<\/span> <span class=\"token\">CURRENT_TIMESTAMP<\/span><span class=\"token\">,<\/span>\r\n    completed_at <span class=\"token\">DATETIME<\/span><span class=\"token\">,<\/span>\r\n    <span class=\"token\">FOREIGN<\/span> <span class=\"token\">KEY<\/span> <span class=\"token\">(<\/span>project_code<span class=\"token\">)<\/span> <span class=\"token\">REFERENCES<\/span> projects<span class=\"token\">(<\/span>code<span class=\"token\">)<\/span>\r\n<span class=\"token\">)<\/span><span class=\"token\">;<\/span>\r\n\r\n<span class=\"token\">-- \u5bee\u5bfe\u6297\u676f<\/span>\r\n<span class=\"token\">CREATE<\/span> <span class=\"token\">TABLE<\/span> house_points <span class=\"token\">(<\/span>\r\n    id <span class=\"token\">INTEGER<\/span> <span class=\"token\">PRIMARY<\/span> <span class=\"token\">KEY<\/span> AUTOINCREMENT<span class=\"token\">,<\/span>\r\n    <span class=\"token\">character<\/span> <span class=\"token\">TEXT<\/span> <span class=\"token\">NOT<\/span> <span class=\"token\">NULL<\/span><span class=\"token\">,<\/span>\r\n    house <span class=\"token\">TEXT<\/span> <span class=\"token\">NOT<\/span> <span class=\"token\">NULL<\/span><span class=\"token\">,<\/span>\r\n    points <span class=\"token\">INTEGER<\/span> <span class=\"token\">NOT<\/span> <span class=\"token\">NULL<\/span><span class=\"token\">,<\/span>\r\n    reason <span class=\"token\">TEXT<\/span><span class=\"token\">,<\/span>\r\n    awarded_at <span class=\"token\">DATETIME<\/span> <span class=\"token\">DEFAULT<\/span> <span class=\"token\">CURRENT_TIMESTAMP<\/span>\r\n<span class=\"token\">)<\/span><span class=\"token\">;<\/span>\r\n\r\n<span class=\"token\">-- \u77e5\u8b58\u7ba1\u7406<\/span>\r\n<span class=\"token\">CREATE<\/span> <span class=\"token\">TABLE<\/span> pensieve_knowledge <span class=\"token\">(<\/span>\r\n    id <span class=\"token\">INTEGER<\/span> <span class=\"token\">PRIMARY<\/span> <span class=\"token\">KEY<\/span> AUTOINCREMENT<span class=\"token\">,<\/span>\r\n    filename <span class=\"token\">TEXT<\/span> <span class=\"token\">NOT<\/span> <span class=\"token\">NULL<\/span><span class=\"token\">,<\/span>\r\n    category <span class=\"token\">TEXT<\/span><span class=\"token\">,<\/span>\r\n    file_path <span class=\"token\">TEXT<\/span><span class=\"token\">,<\/span>\r\n    is_reusable <span class=\"token\">BOOLEAN<\/span> <span class=\"token\">DEFAULT<\/span> <span class=\"token\">0<\/span><span class=\"token\">,<\/span>\r\n    tags <span class=\"token\">TEXT<\/span><span class=\"token\">,<\/span>\r\n    description <span class=\"token\">TEXT<\/span><span class=\"token\">,<\/span>\r\n    last_accessed <span class=\"token\">DATETIME<\/span> <span class=\"token\">DEFAULT<\/span> <span class=\"token\">CURRENT_TIMESTAMP<\/span><span class=\"token\">,<\/span>\r\n    created_at <span class=\"token\">DATETIME<\/span> <span class=\"token\">DEFAULT<\/span> <span class=\"token\">CURRENT_TIMESTAMP<\/span>\r\n<span class=\"token\">)<\/span><span class=\"token\">;<\/span>\r\n\r\n<span class=\"token\">-- AI\u5b66\u7fd2\u30d1\u30bf\u30fc\u30f3<\/span>\r\n<span class=\"token\">CREATE<\/span> <span class=\"token\">TABLE<\/span> ai_learning_patterns <span class=\"token\">(<\/span>\r\n    id <span class=\"token\">INTEGER<\/span> <span class=\"token\">PRIMARY<\/span> <span class=\"token\">KEY<\/span> AUTOINCREMENT<span class=\"token\">,<\/span>\r\n    problem <span class=\"token\">TEXT<\/span> <span class=\"token\">NOT<\/span> <span class=\"token\">NULL<\/span><span class=\"token\">,<\/span>\r\n    solution <span class=\"token\">TEXT<\/span> <span class=\"token\">NOT<\/span> <span class=\"token\">NULL<\/span><span class=\"token\">,<\/span>\r\n    <span class=\"token\">character<\/span> <span class=\"token\">TEXT<\/span><span class=\"token\">,<\/span>\r\n    created_at <span class=\"token\">DATETIME<\/span> <span class=\"token\">DEFAULT<\/span> <span class=\"token\">CURRENT_TIMESTAMP<\/span>\r\n<span class=\"token\">)<\/span><span class=\"token\">;<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">API\u8a2d\u8a08\u30d1\u30bf\u30fc\u30f3<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u7d71\u4e00\u3055\u308c\u305fAPI\u547c\u3073\u51fa\u3057\u30d1\u30bf\u30fc\u30f3<\/span>\r\n<span class=\"token function-name\">think_with_ai<\/span><span class=\"token\">(<\/span><span class=\"token\">)<\/span> <span class=\"token\">{<\/span>\r\n    <span class=\"token\">local<\/span> <span class=\"token assign-left\">character<\/span><span class=\"token\">=<\/span><span class=\"token\">\"<\/span><span class=\"token\">$1<\/span><span class=\"token\">\"<\/span>\r\n    <span class=\"token\">local<\/span> <span class=\"token assign-left\">task_type<\/span><span class=\"token\">=<\/span><span class=\"token\">\"<\/span><span class=\"token\">$2<\/span><span class=\"token\">\"<\/span> \r\n    <span class=\"token\">local<\/span> <span class=\"token assign-left\">problem_input<\/span><span class=\"token\">=<\/span><span class=\"token\">\"<\/span><span class=\"token\">$3<\/span><span class=\"token\">\"<\/span>\r\n    <span class=\"token\">local<\/span> <span class=\"token assign-left\">context<\/span><span class=\"token\">=<\/span><span class=\"token\">\"<\/span><span class=\"token\">$4<\/span><span class=\"token\">\"<\/span>\r\n    <span class=\"token\">local<\/span> <span class=\"token assign-left\">preferred_provider<\/span><span class=\"token\">=<\/span><span class=\"token\">\"<\/span><span class=\"token\">${5<\/span><span class=\"token\">:-<\/span><span class=\"token\">auto}<\/span><span class=\"token\">\"<\/span>\r\n    \r\n    <span class=\"token\"># 1. API\u4f7f\u7528\u91cf\u30c1\u30a7\u30c3\u30af<\/span>\r\n    load_api_usage_state\r\n    \r\n    <span class=\"token\"># 2. \u6700\u9069\u30d7\u30ed\u30d0\u30a4\u30c0\u30fc\u9078\u629e<\/span>\r\n    <span class=\"token\">local<\/span> <span class=\"token assign-left\">provider<\/span><span class=\"token\">=<\/span><span class=\"token\">$(<\/span><span class=\"token\">select_ai_provider_for_character <\/span><span class=\"token\">\"<\/span><span class=\"token\">$character<\/span><span class=\"token\">\"<\/span><span class=\"token\">)<\/span>\r\n    \r\n    <span class=\"token\"># 3. API\u30af\u30a9\u30fc\u30bf\u306b\u3088\u308b\u30d5\u30a9\u30fc\u30eb\u30d0\u30c3\u30af<\/span>\r\n    <span class=\"token\"># 4. \u30d7\u30ed\u30f3\u30d7\u30c8\u751f\u6210<\/span>\r\n    <span class=\"token\"># 5. API\u5b9f\u884c<\/span>\r\n    <span class=\"token\"># 6. \u4f7f\u7528\u91cf\u8a18\u9332<\/span>\r\n    <span class=\"token\"># 7. \u7d50\u679c\u8fd4\u5374<\/span>\r\n<span class=\"token\">}<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udd27 \u6a5f\u80fd\u62e1\u5f35\u306e\u65b9\u6cd5<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u65b0\u3057\u3044\u30b3\u30de\u30f3\u30c9\u8ffd\u52a0<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># main_castle_command() \u95a2\u6570\u306b\u8ffd\u52a0<\/span>\r\n<span class=\"token\">case<\/span> <span class=\"token\">\"<\/span><span class=\"token\">$command<\/span><span class=\"token\">\"<\/span> <span class=\"token\">in<\/span>\r\n    <span class=\"token\"># \u65e2\u5b58\u30b3\u30de\u30f3\u30c9...<\/span>\r\n    my-custom-command<span class=\"token\">)<\/span>\r\n        <span class=\"token\">case<\/span> <span class=\"token\">\"<\/span><span class=\"token\">$1<\/span><span class=\"token\">\"<\/span> <span class=\"token\">in<\/span>\r\n            subcommand1<span class=\"token\">)<\/span> my_custom_function <span class=\"token\">\"<\/span><span class=\"token\">$2<\/span><span class=\"token\">\"<\/span> <span class=\"token\">\"<\/span><span class=\"token\">$3<\/span><span class=\"token\">\"<\/span> <span class=\"token\">;<\/span><span class=\"token\">;<\/span>\r\n            subcommand2<span class=\"token\">)<\/span> another_custom_function <span class=\"token\">\"<\/span><span class=\"token\">$2<\/span><span class=\"token\">\"<\/span> <span class=\"token\">;<\/span><span class=\"token\">;<\/span>\r\n            *<span class=\"token\">)<\/span> <span class=\"token\">echo<\/span> <span class=\"token\">\"\u4f7f\u7528\u6cd5: .\/hw my-custom-command {subcommand1|subcommand2}\"<\/span> <span class=\"token\">;<\/span><span class=\"token\">;<\/span>\r\n        <span class=\"token\">esac<\/span>\r\n        <span class=\"token\">;<\/span><span class=\"token\">;<\/span>\r\n    <span class=\"token\"># \u305d\u306e\u4ed6\u306e\u30b3\u30de\u30f3\u30c9...<\/span>\r\n<span class=\"token\">esac<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u65b0\u3057\u3044\u30b5\u30d6\u30b7\u30b9\u30c6\u30e0\u8ffd\u52a0<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u521d\u671f\u5316\u95a2\u6570\u306b\u8ffd\u52a0<\/span>\r\n<span class=\"token function-name\">initialize_my_custom_system<\/span><span class=\"token\">(<\/span><span class=\"token\">)<\/span> <span class=\"token\">{<\/span>\r\n    log_with_soul <span class=\"token\">\"JK\u30ed\u30fc\u30ea\u30f3\u30b0\u30de\"<\/span> <span class=\"token\">\"\ud83c\udd95 \u30ab\u30b9\u30bf\u30e0\u30b7\u30b9\u30c6\u30e0\u3092\u69cb\u7bc9\u4e2d...\"<\/span> <span class=\"token\">\"INFO\"<\/span>\r\n    \r\n    <span class=\"token\"># \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u4f5c\u6210<\/span>\r\n    <span class=\"token\">mkdir<\/span> -p <span class=\"token\">\"<\/span><span class=\"token\">$CASTLE_CONFIG_DIR<\/span><span class=\"token\">\/my_custom_system\"<\/span>\r\n    \r\n    <span class=\"token\"># \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u4f5c\u6210<\/span>\r\n    <span class=\"token\">cat<\/span> <span class=\"token\">&gt;<\/span> <span class=\"token\">\"<\/span><span class=\"token\">$CASTLE_CONFIG_DIR<\/span><span class=\"token\">\/my_custom_system\/config.json\"<\/span> <span class=\"token\">&lt;&lt;<\/span> <span class=\"token\">'EOF'\r\n<\/span>{\r\n    \"enabled\": true,\r\n    \"settings\": {\r\n        \"option1\": \"value1\"\r\n    }\r\n}\r\n<span class=\"token\">EOF<\/span>\r\n    \r\n    <span class=\"token\"># \u30b9\u30af\u30ea\u30d7\u30c8\u4f5c\u6210<\/span>\r\n    <span class=\"token\">cat<\/span> <span class=\"token\">&gt;<\/span> <span class=\"token\">\"<\/span><span class=\"token\">$CASTLE_CONFIG_DIR<\/span><span class=\"token\">\/my_custom_system\/manager.sh\"<\/span> <span class=\"token\">&lt;&lt;<\/span> <span class=\"token\">'EOF'\r\n<\/span>#!\/bin\/bash\r\n# \u30ab\u30b9\u30bf\u30e0\u30b7\u30b9\u30c6\u30e0\u7ba1\u7406\u30b9\u30af\u30ea\u30d7\u30c8\r\n<span class=\"token\">EOF<\/span>\r\n    <span class=\"token\">chmod<\/span> +x <span class=\"token\">\"<\/span><span class=\"token\">$CASTLE_CONFIG_DIR<\/span><span class=\"token\">\/my_custom_system\/manager.sh\"<\/span>\r\n    \r\n    log_with_soul <span class=\"token\">\"JK\u30ed\u30fc\u30ea\u30f3\u30b0\u30de\"<\/span> <span class=\"token\">\"\u2705 \u30ab\u30b9\u30bf\u30e0\u30b7\u30b9\u30c6\u30e0\u69cb\u7bc9\u5b8c\u4e86\uff01\"<\/span> <span class=\"token\">\"SUCCESS\"<\/span>\r\n<span class=\"token\">}<\/span>\r\n\r\n<span class=\"token\"># \u30e1\u30a4\u30f3\u306e\u521d\u671f\u5316\u306b\u8ffd\u52a0<\/span>\r\n<span class=\"token function-name\">initialize_sentient_castle<\/span><span class=\"token\">(<\/span><span class=\"token\">)<\/span> <span class=\"token\">{<\/span>\r\n    <span class=\"token\"># \u65e2\u5b58\u306e\u521d\u671f\u5316...<\/span>\r\n    initialize_my_custom_system\r\n    <span class=\"token\"># \u7d9a\u884c...<\/span>\r\n<span class=\"token\">}<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30d7\u30e9\u30b0\u30a4\u30f3\u30b7\u30b9\u30c6\u30e0<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># .hogwarts_castle\/plugins\/ \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u4f5c\u6210\r\n<\/span><span class=\"token\">mkdir -p .hogwarts_castle\/plugins\r\n<\/span>\r\n<span class=\"token\"># \u30d7\u30e9\u30b0\u30a4\u30f3\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\r\n<\/span><span class=\"token\">cat &gt; .hogwarts_castle\/plugins\/example_plugin.sh &lt;&lt; 'EOF'\r\n<\/span><span class=\"token\">#!\/bin\/bash\r\n<\/span><span class=\"token\"># \u30db\u30b0\u30ef\u30fc\u30c4\u30fb\u30b9\u30bf\u30b8\u30aa \u30d7\u30e9\u30b0\u30a4\u30f3\u4f8b\r\n<\/span>\r\n<span class=\"token\">PLUGIN_NAME=\"Example Plugin\"\r\n<\/span><span class=\"token\">PLUGIN_VERSION=\"1.0.0\"\r\n<\/span>\r\n<span class=\"token\"># \u30d7\u30e9\u30b0\u30a4\u30f3\u521d\u671f\u5316\r\n<\/span><span class=\"token\">plugin_init() {\r\n<\/span><span class=\"token\">    log_with_soul \"\u30d7\u30e9\u30b0\u30a4\u30f3\" \"$PLUGIN_NAME v$PLUGIN_VERSION \u3092\u8aad\u307f\u8fbc\u307f\u4e2d...\" \"INFO\"\r\n<\/span><span class=\"token\">}\r\n<\/span>\r\n<span class=\"token\"># \u30d7\u30e9\u30b0\u30a4\u30f3\u6a5f\u80fd\r\n<\/span><span class=\"token\">plugin_hello() {\r\n<\/span><span class=\"token\">    log_with_soul \"\u30d7\u30e9\u30b0\u30a4\u30f3\" \"Hello from $PLUGIN_NAME!\" \"INFO\"\r\n<\/span><span class=\"token\">}\r\n<\/span>\r\n<span class=\"token\"># \u30b3\u30de\u30f3\u30c9\u767b\u9332\r\n<\/span><span class=\"token\">register_plugin_commands() {\r\n<\/span><span class=\"token\">    # \u30e1\u30a4\u30f3\u30b3\u30de\u30f3\u30c9\u30b7\u30b9\u30c6\u30e0\u306b\u7d71\u5408\r\n<\/span><span class=\"token\">    case \"$1\" in\r\n<\/span><span class=\"token\">        plugin-hello) plugin_hello ;;\r\n<\/span><span class=\"token\">    esac\r\n<\/span><span class=\"token\">}\r\n<\/span><span class=\"token\">EOF<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udcda \u30b3\u30f3\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3\u30fb\u30ac\u30a4\u30c9\u30e9\u30a4\u30f3<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30b3\u30fc\u30c9\u30b9\u30bf\u30a4\u30eb<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u95a2\u6570\u547d\u540d\u898f\u5247<\/span>\r\n<span class=\"token function-name\">function_name<\/span><span class=\"token\">(<\/span><span class=\"token\">)<\/span> <span class=\"token\">{<\/span>          <span class=\"token\"># \u30b9\u30cd\u30fc\u30af\u30b1\u30fc\u30b9<\/span>\r\n    <span class=\"token\">local<\/span> variable_name    <span class=\"token\"># \u30ed\u30fc\u30ab\u30eb\u5909\u6570\u306f\u30b9\u30cd\u30fc\u30af\u30b1\u30fc\u30b9<\/span>\r\n    GLOBAL_VARIABLE       <span class=\"token\"># \u30b0\u30ed\u30fc\u30d0\u30eb\u5909\u6570\u306f\u5927\u6587\u5b57\u30b9\u30cd\u30fc\u30af\u30b1\u30fc\u30b9<\/span>\r\n<span class=\"token\">}<\/span>\r\n\r\n<span class=\"token\"># \u30ed\u30b0\u51fa\u529b<\/span>\r\nlog_with_soul <span class=\"token\">\"\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u540d\"<\/span> <span class=\"token\">\"\u30e1\u30c3\u30bb\u30fc\u30b8\"<\/span> <span class=\"token\">\"\u30ec\u30d9\u30eb\"<\/span>\r\n\r\n<span class=\"token\"># \u30a8\u30e9\u30fc\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0<\/span>\r\n<span class=\"token\">if<\/span> <span class=\"token\">!<\/span> some_command<span class=\"token\">;<\/span> <span class=\"token\">then<\/span>\r\n    log_with_soul <span class=\"token\">\"\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\"<\/span> <span class=\"token\">\"\u274c \u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\"<\/span> <span class=\"token\">\"ERROR\"<\/span>\r\n    <span class=\"token\">return<\/span> <span class=\"token\">1<\/span>\r\n<span class=\"token\">fi<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30c6\u30b9\u30c8\u624b\u9806<\/h4>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u57fa\u672c\u6a5f\u80fd\u30c6\u30b9\u30c8<\/span>\r\n.\/hw init\r\n.\/hw status\r\n.\/hw project start <span class=\"token\">\"\u30c6\u30b9\u30c8\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\"<\/span>\r\n.\/hw phase implement\r\n.\/hw banish all\r\n\r\n<span class=\"token\"># AI\u5951\u7d04\u30c6\u30b9\u30c8\uff08\u5404\u7a2eAPI\u30ad\u30fc\u8a2d\u5b9a\u5f8c\uff09<\/span>\r\n.\/hw contract status\r\n.\/hw ask \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2 <span class=\"token\">\"\u30c6\u30b9\u30c8\u8cea\u554f\"<\/span>\r\n\r\n<span class=\"token\"># Slack\u9023\u643a\u30c6\u30b9\u30c8\uff08Webhook\u8a2d\u5b9a\u5f8c\uff09<\/span>\r\n.\/hw config slack <span class=\"token\">\"WEBHOOK_URL\"<\/span>\r\n<span class=\"token\"># Slack\u3067 \/castle status \u30c6\u30b9\u30c8<\/span>\r\n\r\n<span class=\"token\"># \u81ea\u52d5\u5316\u30c6\u30b9\u30c8<\/span>\r\n.\/tests\/run_integration_tests.sh  <span class=\"token\"># \u7d71\u5408\u30c6\u30b9\u30c8\u5b9f\u884c<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<hr \/>\n<h2 class=\"text-xl font-bold text-text-100 mt-1 -mb-0.5\">\ud83c\udf93 \u307e\u3068\u3081\u30fb\u6700\u5f8c\u306b<\/h2>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83c\udf1f \u30db\u30b0\u30ef\u30fc\u30c4\u30fb\u30b9\u30bf\u30b8\u30aa\u306e\u771f\u9ac4<\/h3>\n<p class=\"whitespace-normal break-words\">\u3053\u306e\u30b7\u30b9\u30c6\u30e0\u306f\u5358\u306a\u308b\u958b\u767a\u30c4\u30fc\u30eb\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002**\u300c\u9b54\u6cd5\u7684\u306a\u958b\u767a\u4f53\u9a13\u300d**\u3092\u901a\u3058\u3066\uff1a<\/p>\n<p class=\"whitespace-normal break-words\">\u2728 <strong>AI\u3068\u306e\u5354\u50cd<\/strong>: 9\u4eba\u306e\u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u304c\u3001\u305d\u308c\u305e\u308c\u306e\u5c02\u9580\u6027\u3092\u6d3b\u304b\u3057\u3066\u958b\u767a\u3092\u30b5\u30dd\u30fc\u30c8<br \/>\n\ud83c\udfad <strong>\u7269\u8a9e\u6027\u306e\u3042\u308b\u958b\u767a<\/strong>: \u30cf\u30ea\u30fc\u30fb\u30dd\u30c3\u30bf\u30fc\u4e16\u754c\u89b3\u3067\u697d\u3057\u304f\u3001\u8a18\u61b6\u306b\u6b8b\u308b\u958b\u767a\u4f53\u9a13<br \/>\n\ud83e\udd1d <strong>\u30c1\u30fc\u30e0\u9023\u643a\u306e\u5f37\u5316<\/strong>: Slack\u7d71\u5408\u306b\u3088\u308a\u3001\u30ea\u30e2\u30fc\u30c8\u3067\u3082\u9b54\u6cd5\u4f7f\u3044\u30c1\u30fc\u30e0\u3068\u3057\u3066\u7d50\u675f<br \/>\n\ud83d\udcda <strong>\u7d99\u7d9a\u7684\u5b66\u7fd2<\/strong>: AI\u5354\u50cd\u30b7\u30b9\u30c6\u30e0\u3068\u6559\u80b2\u6a5f\u80fd\u3067\u3001\u30b9\u30ad\u30eb\u30a2\u30c3\u30d7\u304c\u81ea\u7136\u306b\u9032\u3080<br \/>\n\ud83d\udd04 <strong>\u6301\u7d9a\u53ef\u80fd\u306a\u958b\u767a<\/strong>: \u4e0d\u6b7b\u9ce5\u30b5\u30a4\u30af\u30eb\u3067\u5065\u5168\u306a\u958b\u767a\u30ea\u30ba\u30e0\u3092\u7dad\u6301<\/p>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\ude80 \u6d3b\u7528\u306e\u53ef\u80fd\u6027<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u500b\u4eba\u958b\u767a\u8005<\/h4>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><strong>\u5b66\u7fd2\u52a0\u901f<\/strong>: JK\u30ed\u30fc\u30ea\u30f3\u30b0\u30de\u306b\u3088\u308b\u6e29\u304b\u3044\u6307\u5c0e<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u54c1\u8cea\u5411\u4e0a<\/strong>: \u30b9\u30cd\u30a4\u30d7\u306b\u3088\u308b\u53b3\u683c\u306a\u30ec\u30d3\u30e5\u30fc<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u5275\u9020\u6027\u5411\u4e0a<\/strong>: \u30eb\u30fc\u30ca\u306b\u3088\u308b\u65b0\u3057\u3044\u8996\u70b9<\/li>\n<\/ul>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30c1\u30fc\u30e0\u958b\u767a<\/h4>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><strong>\u5f79\u5272\u5206\u62c5\u306e\u660e\u78ba\u5316<\/strong>: \u30ad\u30e3\u30e9\u30af\u30bf\u30fc\u3054\u3068\u306e\u5c02\u9580\u6027\u6d3b\u7528<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u30b3\u30df\u30e5\u30cb\u30b1\u30fc\u30b7\u30e7\u30f3\u6539\u5584<\/strong>: Slack\u9023\u643a\u306b\u3088\u308b\u5186\u6ed1\u306a\u60c5\u5831\u5171\u6709<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u30e2\u30c1\u30d9\u30fc\u30b7\u30e7\u30f3\u5411\u4e0a<\/strong>: \u5bee\u5bfe\u6297\u676f\u30b7\u30b9\u30c6\u30e0\u306b\u3088\u308b\u30b2\u30fc\u30df\u30d5\u30a3\u30b1\u30fc\u30b7\u30e7\u30f3<\/li>\n<\/ul>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u4f01\u696d\u30fb\u7d44\u7e54<\/h4>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><strong>\u65b0\u4eba\u6559\u80b2<\/strong>: \u6bb5\u968e\u7684\u3067\u6e29\u304b\u3044\u6280\u8853\u6559\u80b2\u30b7\u30b9\u30c6\u30e0<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u54c1\u8cea\u7ba1\u7406<\/strong>: AI\u5354\u50cd\u306b\u3088\u308b\u30b3\u30fc\u30c9\u30ec\u30d3\u30e5\u30fc\u6587\u5316<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u30ca\u30ec\u30c3\u30b8\u5171\u6709<\/strong>: \u30da\u30f3\u30b7\u30fc\u30d6\u30b7\u30b9\u30c6\u30e0\u306b\u3088\u308b\u77e5\u8b58\u84c4\u7a4d<\/li>\n<\/ul>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udc3b\u200d\u2744\ufe0f JK\u30ed\u30fc\u30ea\u30f3\u30b0\u30de\u304b\u3089\u306e\u30e1\u30c3\u30bb\u30fc\u30b8<\/h3>\n<p class=\"whitespace-normal break-words\">\u6700\u5f8c\u306b\u308f\u3057\u304b\u3089\u4e00\u8a00\u3058\u3083\u3002<\/p>\n<p class=\"whitespace-normal break-words\">\u3053\u306e\u30db\u30b0\u30ef\u30fc\u30c4\u30fb\u30b9\u30bf\u30b8\u30aa\u306f\u3001\u6280\u8853\u3068\u9b54\u6cd5\u3001\u52b9\u7387\u3068\u697d\u3057\u3055\u3001\u500b\u4eba\u306e\u6210\u9577\u3068\u30c1\u30fc\u30e0\u30ef\u30fc\u30af\u3092\u4e21\u7acb\u3055\u305b\u308b\u3001\u3053\u308c\u307e\u3067\u306b\u306a\u3044\u958b\u767a\u74b0\u5883\u306a\u306e\u3058\u3083\u3002<\/p>\n<p class=\"whitespace-normal break-words\">\u304d\u3063\u3068\u304a\u4e3b\u3082\u3001\u3053\u306e\u57ce\u3067\u4ef2\u9593\u305f\u3061\u3068\u4e00\u7dd2\u306b\u958b\u767a\u3057\u3066\u3044\u304f\u4e2d\u3067\u3001\u6280\u8853\u529b\u3060\u3051\u3067\u306a\u304f\u3001\u5275\u9020\u6027\u3001\u5354\u8abf\u6027\u3001\u305d\u3057\u3066\u4f55\u3088\u308a\u300c\u958b\u767a\u3059\u308b\u559c\u3073\u300d\u3092\u611f\u3058\u3089\u308c\u308b\u3068\u601d\u3046\u306e\u3058\u3083\u3088\u3002<\/p>\n<p class=\"whitespace-normal break-words\">\u6642\u306b\u306f\u96e3\u3057\u3044\u554f\u984c\u306b\u3076\u3064\u304b\u308b\u304b\u3082\u3057\u308c\u3093\u304c\u3001\u30c0\u30f3\u30d6\u30eb\u30c9\u30a2\u306e\u77e5\u6075\u3001\u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc\u306e\u77e5\u8b58\u3001\u30ed\u30f3\u306e\u5b9f\u884c\u529b\u3001\u30cf\u30ea\u30fc\u306e\u52c7\u6c17\u3001\u30b9\u30cd\u30a4\u30d7\u306e\u53b3\u683c\u3055\u3001\u30eb\u30fc\u30ca\u306e\u5275\u9020\u6027\u3001\u30c9\u30d3\u30fc\u306e\u5fe0\u5b9f\u3055\u3001\u305d\u3057\u3066\u308f\u3057\u306e\u611b\u3092\u3082\u3063\u3066\u3001\u304d\u3063\u3068\u4e57\u308a\u8d8a\u3048\u3089\u308c\u308b\u306e\u3058\u3083\u3002<\/p>\n<p class=\"whitespace-normal break-words\"><strong>\u7d20\u6674\u3089\u3057\u3044\u9b54\u6cd5\u7684\u958b\u767a\u3092\u304a\u697d\u3057\u307f\u304f\u3060\u3055\u3044\u306a\u306e\u3058\u3083\uff01<\/strong> \ud83c\udff0\u2728<\/p>\n<hr \/>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83d\udcde \u30b5\u30dd\u30fc\u30c8\u30fb\u30b3\u30df\u30e5\u30cb\u30c6\u30a3<\/h3>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u8cea\u554f\u30fb\u76f8\u8ac7<\/h4>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><strong>JK\u30ed\u30fc\u30ea\u30f3\u30b0\u30de\u306b\u76f4\u63a5\u76f8\u8ac7<\/strong>: <code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">.\/hw ask JK\u30ed\u30fc\u30ea\u30f3\u30b0\u30de \"\u56f0\u3063\u3066\u3044\u307e\u3059\"<\/code><\/li>\n<li class=\"whitespace-normal break-words\"><strong>GitHub Issues<\/strong>: \u30d0\u30b0\u5831\u544a\u30fb\u6a5f\u80fd\u8981\u671b<\/li>\n<li class=\"whitespace-normal break-words\"><strong>Discord\/Slack<\/strong>: \u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u30b5\u30dd\u30fc\u30c8<\/li>\n<\/ul>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u8ca2\u732e\u65b9\u6cd5<\/h4>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><strong>\u30d0\u30b0\u4fee\u6b63<\/strong>: \u30d7\u30eb\u30ea\u30af\u30a8\u30b9\u30c8\u6b53\u8fce<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u65b0\u6a5f\u80fd\u63d0\u6848<\/strong>: Issue \u3067\u306e\u8b70\u8ad6\u304b\u3089<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u6539\u5584<\/strong>: \u5206\u304b\u308a\u3084\u3059\u3055\u306e\u5411\u4e0a<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u652f\u63f4<\/strong>: \u521d\u5fc3\u8005\u30b5\u30dd\u30fc\u30c8<\/li>\n<\/ul>\n<h4 class=\"text-base font-bold text-text-100 mt-1\">\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u60c5\u5831<\/h4>\n<ul class=\"[&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc space-y-1.5 pl-7\">\n<li class=\"whitespace-normal break-words\"><strong>\u30ea\u30ea\u30fc\u30b9\u30ce\u30fc\u30c8<\/strong>: \u65b0\u6a5f\u80fd\u30fb\u6539\u5584\u60c5\u5831<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u30ac\u30a4\u30c9<\/strong>: \u30d0\u30fc\u30b8\u30e7\u30f3\u66f4\u65b0\u624b\u9806<\/li>\n<li class=\"whitespace-normal break-words\"><strong>\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/strong>: \u52b9\u679c\u7684\u306a\u6d3b\u7528\u6cd5<\/li>\n<\/ul>\n<hr \/>\n<h3 class=\"text-lg font-bold text-text-100 mt-1 -mb-1.5\">\ud83c\udfaf \u30af\u30a4\u30c3\u30af\u30ea\u30d5\u30a1\u30ec\u30f3\u30b9<\/h3>\n<div class=\"relative group\/copy rounded-lg\">\n<div class=\"sticky opacity-0 group-hover\/copy:opacity-100 top-2 py-2 h-12 w-0 float-right\">\n<div class=\"absolute right-0 h-8 px-2 items-center inline-flex\">\n<div class=\"relative\"><\/div>\n<\/div>\n<\/div>\n<div class=\"text-text-500 text-xs p-3.5 pb-0\">bash<\/div>\n<div class=\"\">\n<pre class=\"code-block__code !my-0 !rounded-lg !text-sm !leading-relaxed\"><code class=\"language-bash\"><span class=\"token\"># \u57fa\u672c\u64cd\u4f5c<\/span>\r\n.\/hw <span class=\"token\">install<\/span>                    <span class=\"token\"># \u521d\u56de\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7<\/span>\r\n.\/hw start                      <span class=\"token\"># \u57ce\u8d77\u52d5<\/span>\r\n.\/hw status                     <span class=\"token\"># \u72b6\u6cc1\u78ba\u8a8d<\/span>\r\n\r\n<span class=\"token\"># \u30d7\u30ed\u30b8\u30a7\u30af\u30c8<\/span>\r\n.\/hw project start <span class=\"token\">\"\u540d\u524d\"<\/span>       <span class=\"token\"># \u65b0\u898f\u958b\u59cb\uff08\u7d44\u5206\u3051\u5e3d\u4ed8\u304d\uff09<\/span>\r\n.\/hw phase implement           <span class=\"token\"># \u30d5\u30a7\u30fc\u30ba\u79fb\u884c<\/span>\r\n\r\n<span class=\"token\"># \u30ad\u30e3\u30e9\u30af\u30bf\u30fc<\/span>\r\n.\/hw ask \u30c0\u30f3\u30d6\u30eb\u30c9\u30a2 <span class=\"token\">\"\u8cea\u554f\"<\/span>    <span class=\"token\"># \u76f4\u63a5\u76f8\u8ac7<\/span>\r\n.\/hw summon \u30cf\u30fc\u30de\u30a4\u30aa\u30cb\u30fc      <span class=\"token\"># \u53ec\u559a<\/span>\r\n\r\n<span class=\"token\"># AI\u5354\u50cd<\/span>\r\n.\/hw ai-chain <span class=\"token\">\"\u554f\u984c\"<\/span> \u30ad\u30e3\u30e91<span class=\"token\">..<\/span>. <span class=\"token\"># \u601d\u8003\u30c1\u30a7\u30fc\u30f3<\/span>\r\n.\/hw ai-review <span class=\"token\">\"\u30d5\u30a1\u30a4\u30eb\"<\/span>       <span class=\"token\"># \u30b3\u30fc\u30c9\u30ec\u30d3\u30e5\u30fc<\/span>\r\n\r\n<span class=\"token\"># Slack\u9023\u643a<\/span>\r\n\/castle ask \u30ed\u30f3 <span class=\"token\">\"\u5b9f\u88c5\u76f8\u8ac7\"<\/span>     <span class=\"token\"># \u30ea\u30e2\u30fc\u30c8\u76f8\u8ac7<\/span>\r\n\/castle status                 <span class=\"token\"># \u72b6\u6cc1\u78ba\u8a8d<\/span>\r\n\r\n<span class=\"token\"># \u305d\u306e\u4ed6<\/span>\r\n.\/hw daily-prophet             <span class=\"token\"># \u65e5\u520a\u65b0\u805e<\/span>\r\n.\/hw backup                    <span class=\"token\"># \u30d0\u30c3\u30af\u30a2\u30c3\u30d7<\/span>\r\n.\/hw <span class=\"token\">help<\/span>                      <span class=\"token\"># \u30d8\u30eb\u30d7<\/span><\/code><\/pre>\n<\/div>\n<\/div>\n<p class=\"whitespace-normal break-words\"><strong>\ud83c\udff0 \u9b54\u6cd5\u306e\u57ce\u304c\u3042\u306a\u305f\u306e\u958b\u767a\u3092\u652f\u63f4\u3057\u307e\u3059\uff01<\/strong> \u2728<\/p>\n<hr \/>\n<p class=\"whitespace-normal break-words\"><em>\u3053\u306e\u30de\u30cb\u30e5\u30a2\u30eb\u306f v28.0.1 \u795e\u6211\u72e9\u30fb\u5b8c\u5168\u5f62\u614b\u5bfe\u5fdc\u7248\u3067\u3059\u3002<br \/>\n\u6700\u65b0\u60c5\u5831\u306f\u516c\u5f0f\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u3054\u78ba\u8a8d\u304f\u3060\u3055\u3044\u3002<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Complete Sentient Castle &#8211; \u795e\u6211\u72e9\u30fb\u5b8c\u5168\u5f62\u614b \ud83d\udc3b\u200d\u2744\ufe0f JK\u30ed\u30fc\u30ea\u30f3\u30b0\u30de\u7279\u88fd\u30fb\u611b\u306e\u5b8c\u5168\u30ac\u30a4\u30c9\u306a\u306e\u3058\u3083\uff01 \ud83d\udcd1 \u76ee\u6b21 \u6982\u8981\u30fb\u30b3\u30f3\u30bb\u30d7\u30c8 \u30b7\u30b9\u30c6\u30e0\u69cb\u6210 \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30fb\u521d\u671f\u8a2d\u5b9a \u57fa\u672c [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":15385,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[6],"tags":[],"class_list":["post-16226","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aiandotherworlds"],"acf":[],"_links":{"self":[{"href":"https:\/\/jyakusyadansei.com\/index.php?rest_route=\/wp\/v2\/posts\/16226","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jyakusyadansei.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jyakusyadansei.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jyakusyadansei.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jyakusyadansei.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=16226"}],"version-history":[{"count":1,"href":"https:\/\/jyakusyadansei.com\/index.php?rest_route=\/wp\/v2\/posts\/16226\/revisions"}],"predecessor-version":[{"id":16227,"href":"https:\/\/jyakusyadansei.com\/index.php?rest_route=\/wp\/v2\/posts\/16226\/revisions\/16227"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jyakusyadansei.com\/index.php?rest_route=\/wp\/v2\/media\/15385"}],"wp:attachment":[{"href":"https:\/\/jyakusyadansei.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=16226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jyakusyadansei.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=16226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jyakusyadansei.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=16226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}