å·»ē©ćę¢ć
149ä»¶ć®å·»ē©
ćććć¤/UIå¤ę“ćåæ ć2ꮵę¤čؼćć¦ććå®äŗå ±å
ć³ć¼ćć»ćććć¤ć»cronć»envć»UIå¤ę“å¾ć«ćććøććÆå±¤(Nodeåē¾)ćØćć©ć¦ć¶å±¤(Playwright)ć®2ꮵć§assertę¤čؼććę¤čؼęøćæć ććå®äŗå ±åćććęé ććē»é¢ć§ē¢ŗčŖćć¦ćć®äøøęććē¦ę¢ć
ååē»åćē”ęē“ ę+社å ć¹ć©ć¤ćććéē£ćē®č¦ę¤čؼćć¦ECć«åę ćććć¤ćć©ć¤ć³
pptxåćč¾¼ćæåēć®ę½åŗćØOpenverse CC0ē“ ęåå¾ć®2ēµč·Æć§ååē»åćä½ć³ć¹ćčŖæéćć³ć³ćæćÆćć·ć¼ćć§1ęćć¤ę¤čؼćcurlé åå¼ę°ć»1ć2čŖćÆćØćŖēć®č½ćØćē©“č¾¼ćæ
GASć¦ć§ćć¢ććŖć®ē»é¢ćjsdomć§ę¤čؼćć ā åä½ćć¹ćć§ćÆåēēć«č¦ć¤ćććŖćē»é¢ćć°ćęć¾ćć
GASć®ē»é¢JSćÆćć©ć¦ć¶ē”ćć§ćÆę¤čؼć§ćććåä½ćć¹ćå Øpassć»APIę£åøøć»ćć¼ćæę£åøøć®ć¾ć¾äø»č¦å°ē·ćę»ć¬ćIndex/Style/Scriptćé£ēµćć¦jsdomć§å®č”ććå®ćć¼ćæćęµćć¦č¦ē“ ć®ęē”ćØććæć³ć®ę“»ę§ć¾ć§čŖåå¤å®ćććć¼ćć¹ć®ä½ćę¹ć
čŖåä¾”ę ¼é äæ”ć®ćęÆę£ęøćæććčŖ¤čŖććŖćę¤čؼęé
é äæ”ēŖćØę¤čؼēŖć®å¤å“ćÆčŖ°ćęøććčŖ°ćč¦ćŖććććę§å¤ć売ćē¶ćć¦ćę§é ēć«čµ¤ććŖććŖććēŖå¹ ć®ē®åŗć»ēŖå¤ć®čŖćæę»ćć»č¤åååć®ę£č§£ć®ä½ćę¹ć»ę¢å®å¤ć®ę ¹ę²»ć¾ć§ćęé åććć
ē”äŗŗćøć§ćć®ę²é»ćć失ęćØå¹ęę¤čؼć®čŖåå¤å®
å®ęćøć§ćć1č”ććć°ćę®ććć¹ććććććäŗę ć®ę¤ē„ćØćęä¹ åÆ¾ēć®å¹ęę¤čؼććøć§ćčŖčŗ«ć«å¤å®ćććåćWindows Interactive ćæć¹ćÆćē”äŗŗåčµ·åć§ęØć¦ćććē½ ćę¤čؼćå£ćč¦åęć®ęÆę£ćå Øåå²ć®ęéå½č£ ćć¹ćć¾ć§ć
稼åäøć®ę¢åGASććåÆä½ēØćčµ·ćććć«ę¤čؼćć¦ććę¬ēŖåę ćć
å®ęå®č”äøć®Apps Scriptć«ä»ę§å¤ę“ćå „ććęé ćć”ć¼ć«éäæ”ćŖć©ć®åÆä½ēØćčµ·ćććć«å®ćć¼ćæć§ććøććÆćę¤čؼććclasp pushå¾ć«pullć§ēŖåććć¾ć§ćę©ę¢°å¤å®ć§éćććclasp loginć®čŖåÆURLćę»ć¬ē½ ćpullć®ę”å¼µåéćć§å·®åć¼ććčŖ¤čŖććē½ ć¤ćć
ć³ć¼ćććäŗå®ę¤čؼęøćæććć„ć¢ć«ćä½ćꮵéåććć¤ćć©ć¤ć³
ę½åŗāę¤čؼāčŖč 層é©åæāęä½ēµ±äøćå„ć¢ćć«ć»å„ćć§ććÆć«åé¢ćććć«ć·ćć¼ć·ć§ć³ćØćć¬ć¼ć¹ćć«ćć¼åćé²ććŖććå®ä¾”ć«ććć„ć¢ć«ćēęććęé
ę©č½ćå°éćććēøä¹ćć®ę¤čؼćę»ć¬ ā ęŖę¤čؼć®ć¼ććē»é¢ććčæ½ćåŗć
å±éŗćŖę©č½ćå¾ććå°éćććØćåććć©ć°ć«ć¶ćäøćć£ć¦ććę¤čؼå¦ēćéé£ćć§ę»ć«ććć¼ć«ćÆęŖę¤čؼć®ć¼ććć確čŖććēµęć¼ććć®é”ć§åŗćē¶ćććå®ä¾ć§ćÆ1é±éć12ä»¶ć¶ćć®åć®č¦å ±ćåŗćć¦ććććć©ć°åē §ć®ä»åćę¹ćęŖē¢ŗčŖć空éåć§č”Øē¾ććŖćęć”ę¹ćåå ćć±ćć®åčØćäøå¤ę”ä»¶ć«ććę°ćę¹ć0/1/2 ć®ēµäŗć³ć¼ćčØčØćäæ®ę£åå¾ćę¬ēŖćć¼ćæć§äø¦ć¹ćę¤čؼęé ćå§č²å®č£ ć®åćå „ćåŗęŗć¾ć§ć
å§č²ććå®č£ ććę¬ēŖć§čµ·åćććē°å¢ćć§åćå „ćę¤čؼćć
AIć«å®č£ ćå§č²ćććØćć¹ććÆē·ć§čæććććććÆå§č²å ć®ē°å¢ć§ć®ē·ć§ćććŖććWSLćØćć¤ćć£ććŖć©å®č”ē°å¢ć2ć¤ćććØēę¹ć§ć ćéćć³ć¼ććēć¾ććę¬ēŖćøé ē·ććę„ććéćć«å¤±ęćććę¬ēŖć®čµ·åēµč·Æć§åćå „ćę¤čؼććåćØćē°å¢å·®ć§ę»ć¬å®ēŖ3ć¤ćē “å£ēćć¼ć«ć®čæ½å ć²ć¼ć4ć¤ć
ę¤čؼććć®ć«ä½ćę¤čؼćć¦ććŖćć£ć ā å®ęå®č”ć®åę ć3層ć§exit codeå¤å®ćć
cronććććć®åę 確čŖć空ęÆććć2ć¤ć®åļ¼exit 0ć ćč¦ćļ¼ćć¼ć«ćę¢å®ćć©ć³ćć«ē”ćļ¼ćØćAå®č”ć»Bćć¼ćæć»Cå®č”Øē¤ŗć1ę¬ć«ē¹ćć§ę©ę¢°å¤å®ććć¹ć±ć«ćć³ćåÆ¾ē §ćå „ćć¦å„č¦å ć®ę··å „ćę¤ē„ććć
ć«ć¼ć«å¼·å¶ hook ćę¬ēŖć§å£ćć3ć¤ć®åćØę¤čؼę¹ę³
AIć«éēØć«ć¼ć«ćå®ććć hook ćä½ć£ćå¾ć«åæ ćčµ·ććå£ćę¹(éØåäøč“ć®čŖ¤ēć»čŖćēÆå²ć®ćć°ć»åęć§ę¶ćć)ćØćå„ē“ćć¹ć5ć±ć¼ć¹+é åøē¢ŗčŖć®å
å¤éØé£ęŗć®å¤ćå éØćć£ć¼ć«ćć§ę¤čؼćć¦čŖ¤čØŗććŖćęé
ćć£ćć«é£ęŗć»åØåŗ«/ä¾”ę ¼åęć§ćéć£ćå¤ćå¤ć«ć©ćåŗć¦ćććććå éØAPIć®ćć£ć¼ć«ćć§ē¢ŗčŖćććØčŖ¤čØŗććć擾ēå¤/åčå¤ć®ę··åććć£ćć«åä½ć®äæę°ćć¬ć¹ćć³ć¹ć®ē”čØåćęØć¦ćØćć3ć¤ć®ē½ ćØćę¶č²»č åććØć³ććć¤ć³ćāå Øä»¶ēŖåāćć©ć¦ć¶å®ęē»ćØććę½°ćę¹ć
ę稿ć®åÆ©ę»ćć„ć¼ććäæ”é ¼ęøćæć ćčŖåå ¬éćć§ęćčØčØļ¼ćŖććć¾ćē©“ć¤ćļ¼
審ę»ćć„ć¼ć«ę稿ćęŗć¾ć£ćć¾ć¾åćććåé”ććäæ”é ¼ęøćæę稿ć ćå³å ¬éććå½¢ć§ę½°ćę示ęøćē”ę¤čؼć®ćć¼ēŗč”ćäæ”é ¼å¤å®ć«ä½æććØē¬¬äøč ćčŖē¤¾ć”ć¼ć«ćéØććē©“ćØććµć¼ćć¬ć¹ć§éēå ¬éę£ć«å®č”ęå ¬éćč¶³ćę¹ę³ćę¤čؼ10é ē®ć¾ć§å«ćć
č¤ę°PCć»č¤ę°AIćøčØå®ćØē§åæå¤ćé ćä»ēµćæć®ä½ćę¹ļ¼éćć«å£ćć7ć¤ć®åļ¼
AIćØć¼ćøć§ć³ććč¤ę°å°éēØććęć®é åøē³»(ć«ć¼ć«ć»hookć»ć¹ćÆćŖććć»APIćć¼)ććä¾å¤ććØć©ć¼ćåŗććē”čØć§ę»ć¬7ć¤ć®åćØę½°ćę¹ćsymlinkå¤å®ć»åå¾å¤±ęć®å·»ćę·»ćć»asyncå process.exitć»čØå®JSONć®BOMć»ē§åæå¤ć®ęé ć»éå°ęØ©éć»éµćć¼ćć¼ć·ć§ć³ć§å Øå°ę»äŗ”ćę¤čؼęé 6ć¤č¾¼ćæć
ć¹ćć¬ććć·ć¼ćć®ććæć³UIćč¤ę°äŗŗåęå©ēØć«čćććć(GASćøć§ććć„ć¼å)
ā¶ćć§ććÆć§å¦ēćčµ°ćć·ć¼ćUIćÆč¤ę°äŗŗćåęć«ä½æććØäŗē“ćé»ć£ć¦ę¶ććć1ę¼äø=1ćć„ć¼č”+対豔ććØć«ć·ć¼ćåé¢+claimćÆć¼ć«ć¼ć§ē“ćčØčØćØćscript lockć®å„Ŗćåćć»6åå¶éć»äø¦åę¤čؼć®č½ćØćē©“
ę¢åć¹ćć¬ććć·ć¼ććę£ę¬ć«ććę„åć¢ććŖć®åćććć³ć°ćå£ććŖćčØčØć«ćć
ē¾å “ć使ćē¶ććGoogleć¹ćć¬ććć·ć¼ććć¢ććŖććčŖćæęøććććØćć®å解決čØčØććććååŖå ļ¼åć¬ćæć¼fallbackćåååć®ę¤åŗćå®ććć診ęCLIćę¤čؼęé ć¾ć§ćå„ć®åć«ęøćč¾¼ćć§å°åø³ćå£ćäŗę ćé²ćć
Androidć¢ććŖć®éē„ććć¼ć«ć«PCćøåćč¾¼ćļ¼å ¬å¼APIé対åæć®ćć£ććåćļ¼
å ¬å¼APIćē”ććć£ćććµć¼ćć¹ć®ę稿ććAndroidéē„ēµē±ć§ęå PCć«éććę示ęøćēęåć«ććć®éē„ćę¬å½ć«ēŗēćććććADBć®éē„屄ę“ć§ę¤čؼććęé ćfail-closedćŖallowlistčØčØćåäŗŗåćę®ććŖć診ęćć°ćLLMč¦ē“ć®å£ćę¹ćØåƾēć¾ć§ćå«ćć
社å PCć®ćć©ć¦ć¶ę”å¼µć権éćć¼ć¹ć§ę£åøććć
ććć®ę”å¼µćå±ćŖććŖćļ¼ćć主観ć§ēµćććććå Øē¤¾ć®ę”å¼µć権éćć¼ć¹ć§ę£åøćććęé ćå¤å®åŗęŗćčŖćæåćå°ēØć¹ćć£ććę¢åē¹ę¤ēµč·Æćøć®ēøä¹ććåŖēćŖéē“ćå®POSTę¤čؼć¾ć§ć
č¤ę°ćć¼ćæęŗāCIć§ę„ꬔAIćµććŖć¼ēęāčŖä½PWAćøé äæ”ććä»ēµćæ
ęÆęćć¼ćæęŗć横ęćć¦LLMć«č¦ē“ć»åŖå é ä½ä»ććććēµęćčŖä½PWAććć·ć„ćć¼ćć«čŖå蔨示ćéćåå¾ćØLLMå¼ć³åŗććÆć·ć¼ćÆć¬ćććęć¤CIå“ćPWAćÆēµęJSONćingeståäæ”ććć ććCI空å¤ę°ć»ę¬ēŖćć«ćstaleć»dry-runę¤čؼć®ē½ ć¤ćć
åØåŗ«ćä¾”ę ¼ćę£ććć®ć«1ä»¶ć売ććŖććØćć®åćåćęé
空室ćććå¤äøććććć®ć«äŗē“ćå „ććŖćē¶ę ććå¤äøćć«čµ°ćåć«ę©ę¢°ēć«čØŗęććęé ć販売ćć®ćć®ćę¢ćć¦ććčØå®ć®ę“ćåŗććć»ćć販売ēØćŖć¹ćć£ć³ć°ćč¦ć¦ććć£ćć«é害ććØčŖ¤čØŗććē½ ćčØå®å¤ę“ć success ć§ćÆćŖćčŖćæę»ćć§ę¤čؼććä½ę³ć
ć¹ćć¬ććć·ć¼ćę„åć¢ććŖć«ē»é¢ćć£ććć£ä»ćäøå ·åå ±åćć©ć¼ć ćä»ćć(GAS)
GASć®OverGridImageć«getBlob()ćē”ćć·ć¼ćč²¼ä»ē»åćÆčŖććŖććHTMLćć¤ć¢ćć°ć§Ctrl+Vćåććę£ććčØčØć»čØé²åćć¤ć°ć¬ć¼ć·ć§ć³ć»read-backę¤čؼć»ē»åćęØć¦ćŖćå¾ēä»ćć¾ć§ć®å®č£ ę示ęø
čŖååęć·ć¹ćć ć®ćēŖććØćč¦å ±ććē£ę»ćć
å¤éØAPIćøå¤ćå®ęéäæ”ććć·ć¹ćć ć§ćéäæ”ēŖćØę¤čؼēŖć®ćŗć¬ćä½ććę§é ēć«ēµ¶åƾć«čµ¤ććŖććŖćé åććę½°ćęé ćēŖć®å®ęø¬ćēŖå¤ć®ęå¾ å¤ć®å°ćę¹ćę¢å®å¤ć®åēęćē®”ēę¹å¼å¤ę“ć«ä¼“ćč¦å ±ć®čŖ¤ēŗå ±ć¾ć§ć
fail-open ć®ć¬ć¼ćććåæ č¦ćŖå “é¢ć§ććå¹ććŖććć®ćčØčØę®µéć§ę½°ć
ęę¢ć»éč¤é²ę¢ć»ć¬ć¼ćå¶éć fail-open ć§ä½ć㨠unknown ć®ēÆå²ćåŗćåćććć¦ć¬ć¼ććåøøę open ć«ćŖććć¦ććććć¹ććÆē·ć®ć¾ć¾ę©č½ć ćę»ć¬åćunknown ćØćäøåØćØććē©ę„µēćŖčؼę ććåććę£åøć蔨ć3å¤å¤å®ććØć©ć¼ē²åŗ¦ć®åćę¹ćå®ćć¼ćæć§äø”å“ć観測ććę¤čؼęé ć¾ć§ć
ć¢ććŖå ćäøå ·åć»č¦ęćēŖå£ćå Øć¢ććŖćøęØęŗęč¼ćć
å©ēØč ććć®å “ć§äøå ·åć»č¦ęćéććēŖå£ććnpmä¾åć¼ćć»CSSéä¾åć»DBćŖćć§ćåćå½¢ć§1ć³ćć³ćå¾ä»ćććęé ćå ¬éćµć¤ćåćć®ęæ«ēØåƾēć2ꮵę¤čؼćé åøē©ćØćć¦å“©ćć¦ćÆćććŖćē¹ć¾ć§å«ćć
GASć®å¤éććććåæ ćå®čµ°ćććčØčØ(6åå¶éć»åéć»ä½ćē½®ć)
å®č”ęéäøéć®ććē°å¢ć§é·ęéććććę°øä¹ ć«å®čµ°ććŖć3ć¤ć®åå (ćŖć¹ćå¾ę¹ć®é£¢é¤ć»å „å1ä»¶ć®å¤ę“ć§å Øćć£ć³ćÆē “ę£ć»čŖåć®ēęē©ćåå „å)ćØćå°åø³ć«ććåŖå é /ćć£ć³ćÆåä½ćć£ć³ć¬ć¼ććŖć³ć/ēęē©é¤å¤ć§ć®ē“ćę¹ćéØå確å®ćØå¤±ęć«ć¦ć³ćæęéåććę¤čؼęé ć¤ćć
ChatGPTć«ę¬å½ć«LPćć¶ć¤ć³ćä½ććć¦ćć³ć¼ććøåæ å®ć«č½ćØćę示ęø
ćChatGPTć§ćć¶ć¤ć³ćć¦ććAIćØć¼ćøć§ć³ćć§å¤±ęćć4ć¤ć®ēå ćØåéæēćResponses APIć§ć¹ćÆć·ć§å „åļ¼å復ćć¦ć¢ććÆć¢ćććä½ććč¤ę°ē»åćÆ1ęć®ć³ć³ćæćÆćć·ć¼ćććåćåŗćć¦ćć³ćććēµ±äøćēęē»åćÆč”Øē¤ŗę ć®ēø¦ęØŖęÆć«åććć¦cropēćę°å¤assertćć¢ććÆć¢ććå ć®ę¶ē©ŗć®ę°å¤ćÆęØć¦ććPlaywrightć®ę¤čؼć³ć¼ćä»ćć
AIćØć¼ćøć§ć³ćć®ć»ćć·ć§ć³å¼ćē¶ććčŖååććļ¼éććā焨āéć ć®3ē¹ć»ććļ¼
é·ćä¼č©±ć§åč³ŖćØć³ć¹ććęŖåććåé”ććå¼ćē¶ć焨1ćć”ć¤ć«+ć¹ćć«2ę¬+ćććÆ2ę¬ć§č§£ę±ŗććęé ć焨ć®é®®åŗ¦ē¶ęćØéå§ęę”å ć ććčŖååććcommit/ć”ć¢ćŖęøćč¾¼ćæćÆäŗŗć®ę示ęä½ć«ę®ćčØčØćå®éć«čøćć č½ćØćē©“6ä»¶(ę¬ęčØåć§ć®čŖ¤ę½åŗ/äø¦č”ć»ćć·ć§ć³ć®ē„Øå„Ŗćåć/ćŖć»ććā åé¤/ę¤čؼę¹ę³ć®čŖ¤ć/BOMćØéåęćććÆć®ę²é»/åøøé§ććć»ć¹ć®ć³ć¼ćéåę )ćØććć®ę¤čؼęé ć¤ćć
ę¬ēŖć¹ćć¬ććć·ć¼ćć«ćę°ććć¬ć³ć¼ćć®åććććÆććå®å Øć«å¢ććå(GAS)
横並ć³1ć¬ć³ć¼ć=Nåć®ć·ć¼ćć«ćę¢åććććÆć®č¤č£½ć§ę°ććåććććÆćčŖåčæ½å ććåćę°å¼ć®ēøåƾåē §čæ½å¾ć»IMPORTRANGEć®ēµ¶åƾURLå·®ćęæćć»ę„ä»ć»ć«ć®read-backē §åć®ē½ ć»ę¬ēŖę¤čؼēØć®ę¤å»ć³ćć³ćć¾ć§ć
äø¦č”AIć»ćć·ć§ć³ćå ±ęćŖććøććŖć§äŗę ććŖćå
č¤ę°ć®AIćØć¼ćøć§ć³ććåćä½ę„ććŖć¼ćå ±ęććęć®äŗę é²ę¢ćØćé åøē©ććé åøåÆććØčØćåć®3層ę¤čؼļ¼ć³ć¼ćć»ē»é²ć»é åøļ¼ćęé åććMD
ęÆę©ćę¶åćć¦ćććć¤ććć®ććććåćå é Nä»¶ćććē“ćć¦ććć®ćč¦ęćć¦ē“ć
ę®ćæć¹ćÆäøč¦§ćē”äŗŗććććäøććę¶åććę§ęć§ćå®äŗć®ęøćę»ććęŖé ē·ć ćØęÆę©ććŖćå é Nä»¶ć ććåćć仄éć«ę°øä¹ ć«å°éććŖćććØć©ć¼ććć°ćåŗćŖććć¹ć±ćøć„ć¼ć©ć®3é ē®ć§ćę°čØå®ć®ååćÆćć¤ććć確å®ććęøćę»ćć®2ć¤ć®å£ćę¹ļ¼ę¢ē“¢ć¹ć³ć¼ćć®ćŗć¬ļ¼dead exportļ¼ćę¤ę»ććrunnerå“ć§ę©ę¢°ēć«ęøćę»ćé ē·ćØćå®ćć¼ćæć§ no-match 0 ć確čŖććę¤čؼęé ć¾ć§ć
GASć¢ććŖē¾¤ćøć®äøå ·åå ±åćć©ć¼ć 横å±é ā åć¢ććŖćåæåå ¬éććå ±éćć©ć¼ć 1ę¬ćøćŖć³ćÆćć
ę©å¾®ćć¼ćæćęć¤ć»ć¹ć³ć¼ćć触ććŖćć»ē»é¢ćē”ććć§ę¢ć¾ć横å±éćććć©ć¼ć ććć©ć”ć¼ćæåćć¦å ±é1ę¬ć«éē“ććę¹å¼ć§å ØéØćć°ććåØć®éøć³ę¹ć§äŗŗéć®ćÆćŖććÆć0åć«ććę¹ę³ćØćęååćć»å ¬éēÆå²ć®ę¤čؼ3ē¹ć¾ć§ć
SSGćµć¤ććøååćäøę¬ęå „ććCC0ē»åćå®å Øć«ä»ćć¦äøč¦§ć¾ć§åę ćććę示ęø
Next.js App Router + DB ć®ååć«ćæćć°ć«ć¹ćÆćŖććć§ååćć¾ćØćć¦čæ½å ććęé ćOpenverse CC0ē»åć®å®ēØēćŖåå¾ć»ē®č¦éøå„ćéćć/ä»ē¤¾ćć©ć³ćć®ęé¤ćććć¦ć詳瓰ćÆ200ćŖć®ć«äøč¦§ćå¤ććéēēęć®ē½ 㨠revalidate ć®ę£ććēŗē«ę¹ę³ćLayer1/Layer2 ć®ę¤čؼć¾ć§ć
ćäŗē“ćē”ćć®ć«å£²ććŖćåØåŗ«ćć3åå ć«åćåććļ¼ćć£ćć«ććć¼ćøć£éēØļ¼
空ćć¦ććć®ć«å£²ććŖć室ę„ććå®äŗē“ / ę示ēćŖå£²ćę¢ć / ćć©ćććć©ć¼ć ē±ę„ćć«åććęé ćäŗē“APIć®ćć¼ćøć³ć°č½ć”ć«ććå½é½ę§ćäŗē“ęøćæå®¤ę„ćåÆ¾ē §ć«åćę±ŗćęćmodifiedćć¼ć§ć®ęøćč¾¼ćæę¤čؼćå ¬éćć¼ćøē®č¦ć¾ć§ć
GitHub Actions ć®ćøć§ćå®č”ęéćå®ęø¬ćć¼ć¹ć§åćęé ęø
cron ćøć§ćć® Actions čŖ²éćå®ęø¬ććåćęé ćtiming/jobs API ć§ć®ć¹ćććå„čØęø¬ćēęéé«é »åŗ¦ć®ēµ±åćØé·ęéćøć§ćć®ćć«ćÆåć®ä½æćåććON CONFLICT ć®éč¤ćć¼ć§ćć£ć³ćÆćå Øč½ć”ććē½ ććć¼ćÆć³ćć±ććć®åęćć¼ć¹ććorder ē”ććć¼ćøć³ć°ć®åććć¼ććå¦ēę¬ č½ćć«ć¦ć³ćæć§ę©ę¢°ē §åććę¤čؼć¾ć§ć
社å åē°æć·ć¼ćććéøęå¼ć¹ćæććå „åćä½ć ā ć”ć¼ć«ććć©ć¦ć¶ć«åŗććŖć Next.js čØčØ
čŖčؼćŖćć®å ¬éę„åć¢ććŖć§ćęå „åć®ę°åćåē°æē±ę„ć®ćć«ćć¦ć³ć«ē½®ćęćć¤ć¤ćåäŗŗę å ±ććÆć©ć¤ć¢ć³ććøé ććŖćčØčØćØę¤čؼęé ćServer Component ć§ {id,name} ć ććęø”ćććµć¼ćć id ććę°åćØć”ć¼ć«ć解決ćććé äæ”ē©ćøć®ć”ć¼ć«ę··å „ć grep ć§å®ęø¬ććę¤čؼćØćå®éć«čøćć č½ćØćē©“7ä»¶ć¤ćć
éēØć«ć¼ć«ćAIć«å®ćććć宣čØå¼·å¶ć²ć¼ććhook
ä¾é ¼åé ę(UserPromptSubmit)ć«å²ćč¾¼ćæćåæēåé ć§1č”ć®å¤å®å®£čØćåŗćććććØć§ćå§č²ć»å¤éćććēć®éēØć«ć¼ć«ćå®å¹åćć hook ć®åćå®č£ ć³ć¼ćć»ē»é²ę¹ę³ć»ēŗē«/éēŗē«ć®ę¤čؼć³ćć³ćć»å®éć«čøćć č½ćØćē©“ć¤ćć
ćØć¼ćøć§ć³ćć®åŗåć³ć¹ććę£ććęø¬ćļ¼usageč¤č£½ć®äŗéčØäøćØthinkingć7å²ćØććē¾å®ļ¼
ä¼č©±ćć°JSONLććåŗåćć¼ćÆć³ćéčØććęć«åæ ćčøć2ć¤ć®ē½ ļ¼usagećć¬ć³ć¼ćććØć«č¤č£½ćć2.27åć«čØććļ¼thinkingćÆę¬ęćäæåćććęåć§ćÆęø¬ććŖćļ¼ćę¤čؼć³ć¼ćä»ćć§ę½°ććććććåč³Ŗćč½ćØććŖćåęøć¬ćć¼=ć¬ć¹ćć³ć¹ę°ć®åęøćå°ćęé ć
reCAPTCHA ć®ćććµć¤ćć AI ć«ä½åŗ¦ćčŖć¾ććļ¼ćć°ć¤ć³ēŖćć»ćć·ć§ć³ććåćé¢ćć¦åøøé§ććć
Playwright ć® launchPersistentContext ćÆč¦Ŗććć»ć¹ćę»ć¬ćØćć©ć¦ć¶ćę»ć¬ćććAI ćØć¼ćøć§ć³ćć®ć»ćć·ć§ć³ćå¤ćććć³ć«äŗŗć reCAPTCHA ćę¼ćē“ćććØć«ćŖććdetached čµ·åļ¼CDP ę„ē¶ććććć”ć¤ć«åŗå®ćØćć°ć¤ć³äæęćē®”ēč 権éć使ććŖććć°ćŖć³åøøé§ć®3層ć§č§£ę¶ććęé ćexit code å„ē“ćØćå®éć«å£ćć¦ē¢ŗćććę¤čؼęé ć¤ćć
ćććć¤ę“ę°ć®ćēéććę¬ēŖćć¼ćæćå£ć ā ę°ę§ć®ēćåęć«åćåęć§åŖēę§ćčØčØćć
ćµć¼ćć¬ć¹/GAS Web App ć§ćććć¤åęæćÆå³ęć§ćååēć§ććŖććåęæć®ēéć§ę°ę§ć®ēćę··åØććę§ēć®ęøćę»ććę°ēć®ē§»č”ććøććÆćē”ę”ä»¶å¤ęćć¦ćć¼ćæćå£ćåćØćåŖēę§ć®å®ē¾©ę”å¼µć»äæ®å¾©é¢ę°ć»åćåćęé ć»read-backę¤čؼć¾ć§ćć¾ćØććć
ć¹ćć¬ććć·ć¼ćć®ć·ć¼ćčæ½å ććæć³ć copyTo null ć§č½ć”ćåå ććć¼ćæć ćć§ē¹å®ćć
GASććæć³ć® Cannot read properties of null (reading 'copyTo') ćÆćć·ć¼ćåäøč¦§ćØå®ć·ć¼ćåć®ćŗć¬ćSheets API ć§å®åć»äøč¦§åć»ćć«ćć¦ć³ć®ćć¼ćæę¤čؼćēŖćåććć¦å£ććåē §ćå Øä»¶åŗććééæå ćć復å ć㦠read-back ę¤čؼććć¾ć§ć®ęé ćę«å°¾ć¹ćć¼ć¹äŗę ćØćć¤ć³ćåć¹ćÆćŖććć«å°éć§ććŖćå¶ē“ćå«ćć
č¤ę°PCćøčØå®ćć”ć¤ć«ćčŖåé åøććä»ēµćæć®čØčØćØč½ćØćē©“
APIćć¼ćéē„å ćå ØPCćøé ćē¶ććä»ēµćæć®ä½ćę¹ćę¢åćć”ć¤ć«ććććØę“ę°ćę°øä¹ ć«å±ććŖćē½ ćē§åÆćć¼ćć¼ć·ć§ć³ć§å Øå°ćććÆć¢ć¦ćććäŗę ćčØå®ć³ćć¼ć«ććPCčå„ć®ę··åććå®č£ ć³ć¼ććØę¤čؼęé ć¤ćć§ę½°ćć
ć»ćć·ć§ć³ćéćććꬔć®ć»ćć·ć§ć³ćčŖåććåéććććć«ććļ¼2ć¤ć®å±ćę¹ćØććć®éēļ¼
ćØć¼ćøć§ć³ćCLIć®å¤ććę°ć»ćć·ć§ć³åćÆēŗē«ć§ććŖćććć®å¶ē“äøć§åććć window / inline ć®2ę¹å¼ćę“čµ°ćę¢ććę”ä»¶ćå®ęø¬ć§čøćć ē½ ćØę¤čؼé ē®ć¾ć§ć®å®č£ ę示ęøć
ćć°ćŖć³ććć ćć§IDEćéćAIćØć¼ćøć§ć³ććčµ°ćåŗćē¶ę ćä½ćļ¼Windows/VS Codeļ¼
ęÆęćæć¼ććć«ćéćć¦ćØć¼ćøć§ć³ćCLIćęć¤ęéćć¼ćć«ćććfolderOpenćæć¹ćÆ+ć¹ćæć¼ćć¢ćć.lnkć®ę§ęć«å ććē“ ē“ć«ä½ććØåæ ćčøć3ć¤ć®ććØć©ć¼ćåŗććć«ä½ćčµ·ććŖćć失ęļ¼8.3ēēø®åććÆć¼ćÆć¹ćć¼ć¹å¤å®ćå£ć/ćµć³ććććÆć¹äøćÆexit 0ćčæćć®ć«GUIćčµ·åććŖć/Restricted ModećčŖåćæć¹ćÆćē”čØć§ę¢ććļ¼ćØćććć»ć¹ć®ē„å ć§ęå¦ćå¤å®ććę¤čؼę³ć¾ć§ć
č¤ę°LLMćććć¤ćć®ćć©ć¼ć«ćććÆé£éć«ę°ććå®č”č ćå®å Øć«čæ½å ćć
å®ćLLMććé ć«č©¦ććć©ć¼ć«ćććÆé£éćøćę°ćććć¤ććå®ęø¬(ęåē/åä¾”/å°éę§)ć«ććØć„ćę£ććä½ē½®ć«å·®ćč¾¼ćæćäø¦č”ē·Øéć§éćć«ę¶ććŖćććé åå Øä½ćpinććååø°ćć¹ććØ4ꮵéć®å®čµ°ę¤čؼć¾ć§éćęé ć
ćć£ćć«ććć¼ćøć£ä¾”ę ¼čŖååļ¼éäæ”ęåćäæ”ććå ØéØå±ć®å®å£²å¤ćčŖćæę»ć
宿ę³ę½čØć®ä¾”ę ¼čŖåę“ę°ć§ćéäæ”ęåćć°ćē·ćŖć®ć«äøéØć®éØå±ć®å£²å¤ćä½ć¶ęćå¤ćć£ć¦ććŖććäŗę ćé²ćę¤čؼć®ä½ćę¹ćé£åä¾”ę ¼ć»å®å¹ä¾”ę ¼ćć©ć”ć¼ćæć»å対åæć®3ć¤ć®ē½ ć¤ćć
CLIćć©ććććMCPćµć¼ććäøęµć®ē”ęę ēµäŗć§ę»ćć ćRESTē“å©ććøåÆćć
å¤éØAIć®CLIćåććć»ć¹ć§čµ·åććMCPćµć¼ććčŖčؼēµäŗć»ę§ć¢ćć«åŗå®ć»ę©č½å„ć®ę åćć§ę»ć¬ćåå ć4層ć§åćåćććć¼ć«åćå¤ććć«å®č”éØć ćRESTćøē½®ćęććęé ćØćę„ē¶ē·ć»ćć¹ćē·ć§ćÆč¶³ććŖćę¤čؼę¹ę³ć
AIć®čØę¶ć¤ć³ćććÆć¹ćčŖćæč¾¼ćæäøéć§é»ć£ć¦åćććåé”ć®ę¤åŗćØęä¹ åÆ¾ē
MEMORY.md åć®ē“¢å¼ćÆćµć¤ćŗäøéć§ē”čØć«åćęØć¦ćććććć¤ćć§ęø¬ćāäøč”č¦ē“ćę¬ęćøē§»éā種å„ćć¬ćć£ććÆć¹ć®äŗéęć”ćå¤ćāå„å®č£ ć§äøå¤ę”ä»¶ćę¤čؼćć¾ć§ć®ęé ćę大ć®ē½ ćććć©ć«ććć©ć³ćć«å „ććā åćć·ć³ć§åććć®ę½°ćę¹ä»ćć
å®ęćæć¹ćÆćéēŗććŖć¼ćē“ę„å©ćć¦å¤ćć³ć¼ćć§åćē¶ććć®ćę¤åŗćć¦ē“ć
ęÆę©åćć¦ćććÆćć®ććććę°åć³ćććåć®ć³ć¼ćć§čµ°ććēµęćÆęÆåexit 0ćå°ēØćÆćć¼ć³+åęć©ćććøå¼µćęæćć失ęę³Øå „ćØęéåøÆć²ć¼ćć®ē½ ć¾ć§å«ćć¦ę¤čؼććęé ć
åøøé§ćøć§ććä½ę„ććŖć¼ć® HEAD ć«ä¾åćććŖćļ¼åŗå® worktree ļ¼ åŗåå åé¢ļ¼
ęÆęčµ°ććøć§ćć Cannot find module ć§č½ć”ćć®ćÆćå®č”å “ęćäŗŗćå„ć»ćć·ć§ć³ć®ä½ę„ććŖć¼ć§ćHEAD ćåćććććøć§ćå°ēØ worktree ć§ć³ć¼ććåŗå®ććęęē©ć ć --out-root ć§å ±ęćŖććøčæćčØčØćØćēµäŗć³ć¼ćć§åć5ꮵéć®ę¤čؼęé ć
ę±ććä½ę„ććŖć¼ćććć¬ćć„ć¼ęøćæć®ēć ćććę¬ēŖć«åŗćļ¼git worktree + Vercelļ¼
ęŖć³ćććå·®åć ććć»originćØćŗć¬ććć¼ć«ć«ććčŖ¤ć£ćēćę¬ēŖć«åŗćäŗę ććdetached worktree + .vercelć³ćć¼ + ę¬ēŖURLćøć®å®ęē»ę¤čؼć§å”ćęé
č¤ę°PCć®AIćØć¼ćøć§ć³ćć«ć«ć¼ć«å¤ę“ć確å®ć«å±ćć ā å±ććć¤ćććę½°ć4ć¤ć®å®ęø¬
å ±ęćŖććøććŖēµē±ć§AIć®ć«ć¼ć«ćé ćę§ęć§ćpullć ćčŖå/pushćęåć»éå¼ććé»ć£ć¦å¹ćć»CDNćå¤ćēćčæćć»dry-runćäæč·ćć©ć³ććęććŖććć®4ć¤ć®ē½ ćØę½°ćę¹ćę¤čؼćÆé åøēµč·Æćć®ćć®ć§č”ćć
čŖåčµ·åććCLIćØć¼ćøć§ć³ććååććć³ććć§åŗć¾ćåé”ćę½°ć
ē”äŗŗć§čµ·åćć Claude Code ēć® TUI ćććć¼ćéøęćććć©ć«ćäæ”é ¼ćć®ååććć³ććć§ē”čØć®ć¾ć¾ę¢ć¾ćåé”ć®ęä¹ åÆ¾ēćtheme ć settings.json ć«ē½®ćēē±ļ¼å„ćć”ć¤ć«ć«ęøććØę¶ććļ¼ćäæ”é ¼ć²ć¼ććäŗŗć®åęä»ćć§éćåćć¹ćÆćŖć¼ć³ć·ć§ććć§å „åå¾ ć”å°éć¾ć§ē®č¦ććę¤čؼęé ćå¹ććŖćę¤čؼę¹ę³3ć¤ć
Windowsć®å®ęćæć¹ćÆććé»ćć³ćć³ćć¦ć£ć³ćć¦ćę¶ć
ć¹ć±ćøć„ć¼ć«ćæć¹ćÆćēŗē«ć®ćć³ć«åŗćć³ć³ć½ć¼ć«ēŖććē®”ēč 権éćŖćć»ćć°ćØēµäŗć³ć¼ććäæć£ćć¾ć¾ę¶ćęé ćwscript.exeēµē±ć®äøē¶VBSćę¤čؼęé ćé©ēØćć¦ćććøć§ćć®č¦ę„µććč½ćØćē©“ć®äøč¦§ć¾ć§ć
ćµć¼ćć¬ć¹ć«čŖčؼä»ćć®é äæ”APIćä½ććØćć®2ć¤ć®č½ćØćē©“ļ¼éēé äæ”ć§čŖčؼćē”ęå³ļ¼200ćŖć®ć«0ä»¶ļ¼
ćŖćē“äøć«ē½®ćććć¤ćć¼ććčŖčؼćŖćć§é äæ”ććčŖčؼćē”ęå³ć«ćŖćē½ ćØćčŖä½probeć®POSTćØå®ćÆć©ć¤ć¢ć³ćć®GETććŗć¬ć¦200ćŖć®ć«é ē½®0ä»¶ć«ćŖćē½ ćapi/_åē½®ć®å®ęø¬č”Øćē“ ć®URLć404ć§ē¢ŗčŖććę¤čؼć«ć¼ććå®ćÆć©ć¤ć¢ć³ććimportćć¦åćåćä»¶ę°ć§å¤å®ććå®äŗę”ä»¶ć¾ć§ć
Claude Code ć® hook ććē»é²ęøćæćŖć®ć«ęÆåę»ć¬ćć®ćę½°ć
Windows ćć¹ć®ćććÆć¹ć©ćć·ć„ē “ęć§ hook ć MODULE_NOT_FOUND ć§ę»ć¬ćJSON ćØć㦠validć»čŖå·±ē¹ę¤ćååć®éØåäøč“ć»å¤±ęćć¦ćä¼č©±ćē¶ććć®3層ćććęććć®ć§ę¾ē½®ććććå Øhookć®ćć¹å®åØć exit code ć§ę©ę¢°å¤å®ććę¤čؼć¹ćÆćŖćććØćå¤å±¤ćØć¹ć±ć¼ććčøć¾ćŖć修復ć¹ćÆćŖććć
並走ććAIć»ćć·ć§ć³ćåćē®ēćäŗéēęććäŗę ćę¢ćć
č¤ę°ć®AIć³ć¼ćć£ć³ć°ć»ćć·ć§ć³ćåęć«čµ°ććććØćåćå¼ćē¶ććčŖćć§åććć”ć¤ć«ćęøćę½°ććć¬ć¼ćå¶éć®ććAPIć®ćÆć¬ćøćććé£ćåć£ć¦äø”ę¹ć429ć«ćŖććēęåć®ę¤ē„3ē¹ć»ććļ¼mtimeļ¼å®č”äøććć»ć¹ļ¼git statusļ¼ćØćč”ēŖęć«å®č£ ćč²ćåŗęŗćč²ć£ćå“ćä»äøććć¹ćä»äŗćę¤čؼćć¼ć«ć«åæ ćč¦ć4ē¹ļ¼åęÆć»ēŖć®ęåć»exit codeć»ćć¼ćøćć£ćć·ć„ļ¼ć
ćē“ććć®ć«ē“ććŖććā åćē»é¢ć«ęøćč¾¼ćēµč·Æć2ę¬ććć®ćč¦č½ćØć
å©ēØč ć®äøå ·åćē“ććć®ć«ē“ććŖćęć®å®ēŖåå ćåć蔨示ć«ęøćč¾¼ćć³ć¼ććč¤ę°ććēę¹ććē“ćć¦ććŖććć¬ć¤ć¢ć¦ćēę°ćēę¹ć®ēµč·Æć ććč¦ć¦ćććčØé²ć®ęå¦ć確čŖćććå„ć®å “ęćč¦ćććØę”å ćććć®3é”åćØćåŗå®ęčØććć®éå¼ćć»å ±ęćć«ćć¼ćøć®éē“ć»å®ćć¼ćæčŖćæę»ćć§ć®ę¤čؼęé ć
Google Meet čŖååå &åē»é äæ”Bot éēŗę示ęø
ęå®ććęå»ć« Google Meet ćøčŖååå ććåē»ćåēććŖććē»é¢å ±ęćć Bot ććClaude Code ć«äøēŗć§ä½ćććéēŗę示 MDćęä¼ć®å®ä¾åē»é äæ”ć»ć¦ć§ććć¼ć®čŖåę¾éć«ć
č«ę±ęøPDFāä¼čØCSV čŖåå¤ęćć¤ćć©ć¤ć³MD
ć”ć¼ć«ę·»ä»ććć©ć«ćęč¾¼ćæć®č«ę±ęøPDFććéé”ć»ę„ä»ć»åå¼å ćę½åŗććä¼čØć½ććåč¾¼ēØCSVć«å¤ęćććć¤ćć©ć¤ć³ć AI ć«ä½ćććę示ęøćClaude API ć®ę§é åę½åŗććć³ććč¾¼ćæć
Next.js + Supabase + Vercel ē«ć”äøćå®å ØčŖååMD
ę°č¦Webćµć¼ćć¹ć®ē«ć”äøć (GCP/GitHub/Vercel/Supabase ć®ćććøć§ćÆćä½ęćē°å¢å¤ę°ćę¬ēŖćććć¤) ć AI ć«äøę°é貫ć§ććććę示ęøćäŗŗéć®ä½ę„ćÆćć°ć¤ć³1åć ćć
GASå®å ØčŖååćć³ć㬠ā Driveć³ćć³ććć„ć¼ę¹å¼
Google Apps Script ć®ćęÆåćØćć£ćæć§ā¶å®č”ććę ¹ēµ¶ćDrive ēµē±ć®ć³ćć³ććć„ć¼ć§ćåå1ćÆćŖććÆä»„é㯠AI ććć¹ć¦ć® GAS é¢ę°ććŖć¢ć¼ćå®č”ć§ććććć«ćŖććć³ćć¬ć¼ćę示ęøć
AIć«ę示ęøćć¼ć±ćććčŖååē §ćććēµäŗęć«čŖååŗåćććMD
éēŗä¾é ¼ćåććē¬éć«ćć¼ć±ććć®å®ęęøćæę示ęøćę¤ē“¢ćć¦AIć«čŖć¾ććć»ćć·ć§ć³ēµäŗęć«ćÆę±ēØćć¦ćć¦ćčŖååŗåćććä»ēµćæć®ä½ćę¹ćå Øå°é åøć»ē§åÆę å ±ć¹ćć£ć³ć»å®éć«čøćć é åøćć°3ć¤ć®åéæč¾¼ćæć
ćÆć©ć¦ćå„ē“ćØćććøć§ćÆćęåØć1ęć®ć¹ćć¬ććć·ć¼ćå°åø³ć«čŖåéē“ćć
č¤ę°PCć»č¤ę°ćÆć©ć¦ćć®ćć©ć®ć¢ć«ć¦ć³ćć®ć»ć©ćć«ććć»ä½ć®ćććøć§ćÆććåćććŖććććåPCćØäøå¤®ćčŖåć§ęøćč¾¼ć3ćæćć®å°åø³ć§č§£ę¶ćććęÆęćę å ±ćå®å Øć«ę±ć許åÆćŖć¹ćčØčØćØćå®č£ äøć«åæ ćčøććęåććć®ć«ē©ŗćć®ē½ 4ć¤(CLIćstderrć«č”Øćåŗć/Windowsć®.cmdć·ć /GASć®ćć”ć¤ć«č©ä¾”é /ćÆć©ć¤ć¢ć³ćtimeoutā ęŖé)ć¾ć§å«ćć
äŗŗéć®ęå „åå°åø³ćå£ććć«čŖåę“ę°ćć ā GAS Web App upsert čØčØ
åPC/åę ē¹ć®ē¹ę¤ēµęććäŗŗéćęéēØćć¦ććć¹ćć¬ććć·ć¼ćå°åø³ćøčŖååę ćććęå „ååćØć³ć”ć³ćć絶対ć«å£ććŖćēŖåčØčØććæć/åć®č§£ę±ŗćäø¦č”POST対ēćé åøć·ć¼ćÆć¬ććć®č½ćØćē©“ć¾ć§ć
AIéēØć«ć¼ć«ćę©ę¢°ēć«å®ććć hook čØčØ ā ć«ć¼ć«ęćå®ćććŖćę¬å½ć®ēē±
ćć¼ć ć§AIćØć¼ćøć§ć³ćć使ććØéēØć«ć¼ć«ćåæ ćå®ćććŖććŖććēå ćÆćčŖćć§ććŖććć§ćÆćŖć hook ććć®ćć·ć³ć§ē»é²ććć¦ććŖć/å§č²å ćę²é»ćć¦å£ćć¦ććććØćē¦ę¢=å®č”åęå¦ć»čŖå°=ä¾é ¼ęć®å ·ä½ć³ćć³ćę³Øå „ć»ę äæ=ć»ćć·ć§ć³éå§ęć®čŖå·±äæ®å¾©ć®3層ćę示ä¾å¤ć®ēå½ćć¼ćÆć³ćwarnāblockć®ę®µéęę ¼ćBOM/ćµć³ććććÆć¹/timeout ćŖć©å¤±ęćę²é»ććē½ ćØćē°å¢ä¾åć§č½ć”ćŖććć¹ćć®ä½ćę¹ć¾ć§ćå®ęø¬ćć¼ć¹ć§ć¾ćØććå°å „ęé ć
ććć®PCć«ććē“ććŖćé害ććAIć«čŖåć§ę°ä»ććć¦ēęććć
ē¹å®ć®1å°ć«ćććŖććøććŖćē”ćę©č½ćÆćäæ®ę£ęé ćęøćć¦ćčŖ°ć«ćå®č”ćććę¾ē½®ććććSessionStart hook ć§å½č©²PCć®AIć ćć«ę示ćåŗććå®äŗå¾ćÆę示ęøćøē¶ę ćęøćę»ćć¦åå®č£ äŗę ćé²ćåćčµ°ę»ć®ęéäŗē®ćØć»ćć·ć§ć³č·Øćć®åéćć”ć¼ć«äøč“ć ćć®čŖåęæčŖććŖććć¾ćććēē±ćØē½²åćć¼ę¹å¼ćē¶ę åćåććAPIćéµć®čŖåé åøćno-opéē„ć®ęę¢ć¾ć§ćå®éć«94ä»¶ć®ę»ēćč§£ę¶ććå®ä¾ć«åŗć„ćęé ć
LINEćŖć¼ćć³ćć£ććć®ę稿ćčŖåć®PCć«åćč¾¼ćļ¼ćć¼ćÆå±„ę“ćØćÆć¹ćć¼ćę¹å¼ļ¼
LINEć®ćŖć¼ćć³ćć£ćć㯠API ćéē„転éćå”ćć£ć¦ćććåÆäøéćććć¼ćÆå±„ę“ćØćÆć¹ćć¼ććć PWA ć® Web Share Target ć§åćć¦å Øęćčē©ććęé ćå”ćć£ć¦ććēµč·Æć®å®ęø¬ēµęćå®ćć”ć¤ć«ć®ę£ē¢ŗćŖćć©ć¼ććććå Øä»¶ååč¾¼ć«čććåŖēčØčØć失ęę¤ä½ć®äæåć¾ć§å«ćć
ć¦ć¼ć¶ć¼ę稿ć®åÆ©ę»ćē”äŗŗåćć ā ę©åÆćÆę±ŗå®ēå¤å®ć»éč¤ćÆć°ć«ć¼ćć§1ę¬ć«åÆćć
ę稿ćć„ć¼ćäŗŗęęæčŖć§ę»ēćććµć¼ćć¹ććęÆę„1åć®ē”äŗŗćććć§åćå®č£ ęé ćę©åÆćÆę£č¦č”Øē¾ć§ę±ŗå®ēć«č½ćØććéč¤ćÆåč£åŗćć ćę©ę¢°ļ¼LLMć«ćÆåäø»é”å¤å®ćØē¶²ē¾ é ē®ć®ę½åŗć ććććć¦ę®ć1ę¬ćÆć³ć¼ćć§ę±ŗććććć¢åä½ć§ę±ŗćććØę®ććå“ćå„ć®ēµć§å“äøćććē½ ćå“äøć®äæåå ćē”ćčØčØćć¹ćć¢é害ć空ćć¼ćæć«åćć¦äŗéå ¬éćęć fail-openćčŖ¤ę¤åŗć§å ØéØå“äøć«ćŖć4ććæć¼ć³ć¾ć§ć
ć¹ćć¬ććć·ć¼ćć®ćāå°ćć§åćć¦ććę„åć®ę»ēćę¤ē„ćć¦Discordć§ē£äæćć
č«ę±ęøēŗč”ć»å „é確čŖć»ęøé”ååćŖć©ćē¾å “ćć·ć¼ćć«āćęć£ć¦ē®”ēćć¦ććę„åć®é ććčŖåę¤ē„ććę å½č ćøDMć»č²¬ä»»č ćć£ć³ćć«ćøäøč¦§ćęµćä»ēµćæćéē“ć·ć¼ććå®ćÆåęćć¦ććŖćē½ ćę¢åå¤éåęć«ēøä¹ććć¦APIć³ć¼ć«ćå¢ćććŖćę¹ę³ćå°ćć¼ćµć®4å¤čØčØćꮵéćē“åć«ćććØäø»ē®ēćé ććč½ćØćē©“ćåę„ćć©ćć対ēćéč·č ćøć®čŖ¤éäæ”é²ę¢ć¾ć§ćę¬ēŖęå „ć§čøćć ē½ ćå ØéØåé²ć
å ¬å¼APIć®ē”ćé²é³ćµć¼ćć¹ććå„SaaSćøé³å£°ćčŖååćč¾¼ćæććę示ęø
é²é³ćÆć©ć¦ćć®é³å£°ćęåčµ·ććSaaSćøē”äŗŗć§ęµćę§ęćē½²åä»ćURLćHEADć§403ć«ćŖć/URLé·å¶é/jobIdćčæć£ć¦ćåćč¾¼ć¾ććŖćććØććē”čØć®å¤±ęć®ę½°ćę¹ćØćå¤ęćć¹ćć¬ć¼ćøćč¦ććŖćäøē¶ćććć·ć®åć
DBåćµć¤ćććäøč¦§ć ćä¼å”éå®ć»åå„ćć¼ćøćÆę®ććć«åćęæććę示ęøļ¼Next.js App Routerļ¼
čŖē¤¾DBć§é客ćć¦ćććµć¤ććē«¶åć®ćŖć¹ćęćåćć«ę°ć„ććęć®ę¹äæ®ęé ćååćäø¦ć¶ćć«ćÆćŖäøč¦§ć ććä¼å”éå®ć«ććåå„ćć¼ćøćÆtitle/H1ćØCTAćę®ććItemList JSON-LDćsitemapć®ę¼ććforce-dynamicåć®ć³ć¹ćåÆä½ēØćLayer1(HTML)+Layer2(Playwrightå®ęē»)ć®åćå „ććć¹ćć¾ć§å«ćć
Windowså®ęćæć¹ćÆćåćē§ć«čµ·åćććØēę¹ćē”é³ę»ććļ¼é ćć©ć³ćć¼ć®å ±ęćć°ćØcmd >> ęä»ļ¼
result=1ć»ćć°0č”ć§ę»ć¬å®ęćæć¹ćÆć®ēå ććé ćć©ć³ćć¼ćå Øćæć¹ćÆć®ćć°ć1ćć”ć¤ć«ć«ęµć cmd ć® >> ćęä»ć§éćććØć ć£ćä»¶ćåē¾ęé ć»åćåćć»ćć°ååé¢ćØčØē½®å ć®čŖå·±ę“ę°ć»åäøē§čµ·åćć¹ćć¾ć§
ē”äŗŗć§Google Meetć«å®ęčŖååå ćé³å£°ä»ćé äæ”
Playwright + Chrome čµ·åćć©ć° --auto-select-tab-capture-source-by-title ć§å ±ęććć«ć¼ćåŗćććæć(é³å£°č¾¼ćæ)ćčŖåéøęććå®ęć« Google Meet ćøē”äŗŗåå ćć¦åē»é äæ”ććä»ēµćæćć³ć³ćććŖć³ć¢ć¼ćčŖåćć©ć¼ć«ćććÆć»OOM対ē(preload=metadata)ć»åØå®¤ć¦ć©ććććć°ć»ćæć¹ćÆē»é²ć®ęååćåéæć¾ć§å®éēØćć¦ćć¦č¾¼ćæć
GAS+ć¹ćć¬ććć·ć¼ćć§ę°å¤ć»ę„ä»ćéćć«å£ćć3ć¤ć®ē½ ćØåéæē
ć»ć«ć®č”Øē¤ŗå½¢å¼ćØćæć¤ć ć¾ć¼ć³ć«čµ·å ćć¦ćä¾å¤ćåŗććć«ćć¼ćæćå£ćć3ććæć¼ć³(TZäøäøč“/ęååć®ę„ä»čŖåå¤ę/åę”å¼µęć®ęøå¼å¼ćē¶ć)ć®åéæēćØäæ®å¾©ęé ćåä½ćć¹ćć§ćÆę¤åŗć§ććŖć層ć®ćć°ćę©ęēŗč¦ććććć®3ååć¤ćć
Drivećć©ć«ćć®č³ęćäøøććØLLMć«čŖć¾ććļ¼å¤éćć¤ćøć§ć¹ć+åéåÆč½ćććļ¼
ę”ä»¶ćć©ć«ćć®PDF/ć¹ć©ć¤ć/Office/åēćå ØéØAIć«čŖć¾ććčØčØćOfficeå½¢å¼ćÆē“ę„čŖććŖćć®ć§Driveå¤ęćęććē“ę·»ä»+å¤éćć¤ćøć§ć¹ćć®äŗå±¤ć1å®č”1ćć£ć³ćÆć®éØåäæåć§åéććć£ć³ć¬ć¼ććŖć³ćć§čŖ²éćę¢ćććčŖåć®ēęē©ćčŖćæē“ććŖććć¾ć§å®ęø¬ćć¼ć¹ć§čØčæ°ć
ē”äŗŗćććć®ćé»ć£ć空ęÆćććēŗč¦ćć¦ę¢ććļ¼åŖēåč¾¼ć®čØčØļ¼
å®ęćććććØć©ć¼ćåŗććŖćć¾ć¾ęÆååćä»äŗćććē“ćć¦ććē¶ę ć®ę¤åŗę³ć»å øåēćŖēå ļ¼åč¾¼ęøćæéåćå®ä½ć®åäøć«ć©ć ć§ęć¤ļ¼ć»å°åø³ć«ććäæ®ę£ć»ęć”åćä»ćå試č”ć»CIčŖ²éć§ć®å¹ęå®ęø¬ć¾ć§ć
Google Drive ć®ćć©ć«ćę“ēćčŖååćå£ćć権éäŗę ćåŗććć«ćć
ę£ććć£ć Drive ćēä»ććåć«ē¢ŗčŖćć¹ćććØććć©ć«ćē§»å㯠ID äøå¤ćŖć®ć§å®å Øć ććå ±ęćć©ć«ććøē§»ććØęØ©éćé»ć£ć¦åŗćććē°”ęAPIćÆęØ©éćéå°å ±åććē¶ęæęØ©éćÆåćć©ć«ćććåé¤ć§ććŖććäŗéåćčµ·ććååę¤ē“¢ć®č¦åćę¹ćØć権éåé¤ć¹ćÆćŖććć®å®å Øę©ę§ćåēŗęŗć®ę½°ćę¹ć¾ć§ć
freeeä¼čØAPI åå¼å čŖåé£ęŗć¬ć¤ć(OAuth/ćć¼ćÆć³ćć¼ćć¼ć·ć§ć³/DRY-RUN)
Next.js+Supabaseć¢ććŖććfreeeć®OAuthę„ē¶ć»refresh_tokenćć¼ćć¼ć·ć§ć³åƾåæć»åå¼å ć®čŖåē“ä»ć/ę°č¦ä½ęćDRY-RUNå®å Øć«å®č£ ććęé
é åøćććć¼ć«ćę¢å端ę«ć«ć ćå±ććŖćé害ć®čØŗęćØåēŗé²ę¢
å ØPCćøé ć£ćhook/ć¹ćÆćŖććććę°č¦ē«Æę«ć§ćÆåćć®ć«ę¢å端ę«ć«ć ćę°øä¹ ć«å±ććŖććåēµć³ćć¼ć»ę”å¼µåćē”č¦ććéč¤å¤å®ć»ē”čØreturn ć®3éå„ć§ććć¹ććÆå Øgreenć»čŖå·±čØŗęćNG 0ć®ć¾ć¾ę°ć„ććŖććå®éć«čøćć§ē“ćć診ęęé ćØćåēŗćę¢ćććć¹ćčØčØ(ę¢å端ę«ćć£ćÆć¹ćć£/ćć§ććÆćŖć¹ćē¶²ē¾ ę§ć®ę©ę¢°ē §å/ę éę³Øå „)ć
ē”äŗŗAIć»ćć·ć§ć³ć®ćććÆć°ć©ć¦ć³ćå§č²ćéćć«ę®ŗćććäŗę ćę½°ć
ćććć¬ć¹ć§čµ·åććAIćØć¼ćøć§ć³ćććććÆć°ć©ć¦ć³ćå§č²ććåććć»ć¹ćÆććæć¼ć³ēµäŗć§ kill ćććć®ć«č¦ŖćÆ exit 0 ćčæććę©ę¢°ēć« deny ćććććÆćéē„ć®ä½ćę¹ć対åæäøćć©ć°ć®ę»ćåæććWindows製worktreećLinuxå“ćć解決ć§ććŖćē½ ć¾ć§ćå«ćęä¹ åÆ¾ēć
GAS ę°č¦ē«ć”äøćęØęŗęé (clasp+ć³ćć³ććć„ć¼)
clasp ćØčŖä½ć³ćć³ććć„ć¼ć§ćrun-function å°éć® Workspace ē°å¢ć§ć AI ćć GAS ćē¶ē¶å®č”ć§ććę°č¦ćććøć§ćÆćē«ć”äøćęé ćäŗŗéć®ä½ę„㯠setupOnce ć®1ćÆćŖććÆć®ćæćććÆć¤ććŖć¹ćå®č”ć»äø¦čµ°é²ę¢ć»ę©åÆå¤ć®ē½®ćå “ćč¦å®ć
GitHub Actions ć®čŖ²éåćå®ęø¬ćć¼ć¹ć§åć
Actions ć®č«ę±ćęØęø¬ć§ćŖćå®ęø¬ććåćęé ććøć§ćåä½ć®ååćäøććØććčŖ²éę§é ćć¹ćććå„ć«ęéćå²ć API ć®å©ćę¹ćēęéé«é »åŗ¦ćÆēµ±åć»é·ęé㯠per-row å¾å¾©ć®äøę¬åćØććęć”åććäø¦ååŗ¦ćäøćć¦ćå¹ććŖćć±ć¼ć¹ć®č¦åćę¹ćććć¦ćé ćć¹ććććå®ćÆåććć¼ćæćęÆåå¦ēćē“ćć¦ććę¬ é„ćć®č¦ć¤ćę¹ć¾ć§ćę¬ēŖć®å¤éćøć§ććå®ęø¬ē®ēć§åå®č”ćć¦éč¤ć¬ć³ć¼ćć大éēęćć失ęä¾ćØććć®å·»ćę»ćć®ä½ę³ćå«ćć
AIć¢ćć«ć®čŖ²éåŗåćå®ęø¬ć§ē¢ŗå®ććć«ć¼ć«ćę©ę¢°ć«å¼·å¶ććć
ććć®ć¢ćć«ćÆå®é”å ćå¾éčŖ²éćććęØęø¬ć§ę±ŗćććØå¤ćććęÆåŗć¬ćć¼ćć§ē¢ŗå®ćććęé ćØć確å®ēµęćåäøć®čØå®ęŗ+3層ć®ćććÆć§å¼·å¶ććåćå®ćć¢ćć«ćå®ćÆé«ćļ¼ćć£ćć·ć„ęøćč¾¼ćæļ¼ć®č¦ć¤ćę¹ćå«ćć
AIćØć¼ćøć§ć³ćć®ćå§č²ēććę£ććęø¬ćęęØčØčØ
ē£ē£AIćå®č£ ćå®ććØć¼ćøć§ć³ććøęø”ćć¦ććććęÆę„čŖåčØęø¬ććęęØć®ä½ćę¹ććć¼ćÆć³ęÆć飽åćć/åęÆć landed č”ć«ćććØ100%ć«č²¼ćä»ć/ē·Øéćć¼ć«ć ćę°ćććØéåćć«åćć¤ććć®3失ęćØåƾēć»å¢åćć£ćć·ć„ć§ć®é«éåć¾ć§
ē”äŗŗå®č”ćøć§ćććåććć®ć«ä½ćę®ććŖćććę½°ćčØčØ
cron/ćæć¹ćÆć¹ć±ćøć„ć¼ć©ććAIćØć¼ćøć§ć³ććé·ęéå¦ēćē”äŗŗć§čµ°ćććéć®2大äŗę ļ¼ćæć¤ć ć¢ć¦ćkillć§åŗåćäøøććØę¶ććļ¼å®č”ćććć³ć¼ćććć®ē¬éć®HEADć§ę±ŗć¾ćļ¼ćę§é ēć«ę½°ćå®č£ ę示ęøćéꬔé²ęćć”ć¤ć«ć»å¾ ę©ęéć®äøéć»ä½ęęå»ććć®å®č”ID復å ć»åŗå®worktreećøć®pinć»å®čµ°åć ćć®å¾ēä»ćć¾ć§ććć¹ć観ē¹ćØå®äŗę”ä»¶ä»ćć
ćå¤ć空ććØęå®ććåć«å®č”Øē¤ŗććć©ć¦ć¶ć§čŖćæę»ć
API/DBć®å¤ć§ćÆćŖćå®éć«ē»é¢ć«åŗć¦ććē¶ę ćčŖćæę»ćć¦ććęå®ććęé ćå¤ę“ć®ęē”ćåćććä¾”ę ¼ć»åØåŗ«ć»ę²č¼ęćŖć©å¤éØé²åŗē¶ę ć®čŖæę»ć»å ±åć«ä½æćę±ēØć¹ćÆćŖććä»ćć
ć¹ćć¬ććć·ć¼ćć®č”åé¤ćDBćøå®å Øć«åęććļ¼č”UUIDę¹å¼ļ¼
ć·ć¼ćććč”ćę¶ćććDBć®ć¬ć³ć¼ććē”å¹åććåęććå®åØć¬ć³ć¼ććčŖ¤åé¤ććć«ä½ćęé ćå 容ćććć失ęććēē±ćč”UUIDćØäŗę®µē¢ŗčŖć8ć¤ć®å®å Øć¬ć¼ććęøćę»ććUUIDćč¤č£½ć»äøęøććć¦ę¬ č½å¤å®ćććęććå®ęø¬ć®å¤±ęććæć¼ć³ćØę¤åŗć³ć¼ćć¾ć§ć
é«é”ć¢ćć«ć§čµ°ćē¶ćć¦ććć»ćć·ć§ć³ć hook ć«čŖå·±ę¤åŗćććļ¼Claude Codeļ¼
ć»ćć·ć§ć³å ć§ /model éøęććé«é”ć¢ćć«ćÆę¢å®ć¢ćć«čØå®ć§ć PreToolUse ć§ćę¢ć¾ććŖććhook stdin ć® transcript_path ć§čŖć»ćć·ć§ć³ć®ć¢ćć«ćčŖćæćęÆćæć¼ć³č¦åćę³Øå „ććåćå ØčŖćæē¦ę¢ć»async exitć»realpath čµ·åå¤å®ć»BOM ć®č½ćØćē©“ćØćéčØå“ć«ēŗēå ć»ćć·ć§ć³IDćč¼ććę¹äæ®ć¾ć§ć
Claude Code ć®ć»ćć·ć§ć³äøč¦§ććéćććčŖåć§ę¶ćććććć«ćć
C:/Program Files/Git/clear ćÆåé¤ć³ćć³ćć§ćÆćŖććhook + éććå°åø³ + åøøé§ć¦ć©ććć£ć¼ć§ćć»ćć·ć§ć³ćéćććäøč¦§ććčŖåééæļ¼åé¤ćć moveļ¼ććå®č£ ęé ćØćäø¦č”ćæćć»åēµć³ćć¼é åøć®č½ćØćē©“
GitHub Actions ć®čŖ²éåćå®ęø¬ćć¦åćęé ļ¼cron ēµ±åćć¤ćØććļ¼
GHA ćÆćøć§ćććØć«ååä½ć§åćäøćčŖ²éćććććę°ē§Ćé«é »åŗ¦ć® cron ćęćå²é«ć«ćŖćć/timing API ć§å ØćÆć¼ćÆććć¼ć®čŖ²éåćå®ęø¬ććcron å¼ćå®å Øäøč“ćććÆć¼ćÆććć¼ć®ć¹ććććøēµ±åćć¦é »åŗ¦ćå¦ēćå¤ććć«åćęé ćschedule ćÆå¤§éć«éå¼ćććććåć²ć¼ćć§ć®éå¼ććęē«ććŖćććØćēµ±åćććØåć¹ćććć®å¤±ęć§å¾ē¶ć silent skip ćććććØćäŗē®äøéć§ćøć§ćęŖčµ·åć«ćŖć£ćęć®č¦åćę¹ć¾ć§å«ćć
LLMēµē±ć®ćć¼ćæåćč¾¼ćæćę±ŗå®č«åćć ā ćć£ćć·ć„ćéćć«åćć¤ćć®ćę¢ćć
AIć«APIēµęćJSONćøč»¢čØćććę§ęćÆćę¬ č½ćØå¹»ćåęć«ä½ćä»¶ę°ć®čŖå·±ē³åć§ćÆę¤åŗć§ććŖćććµć¼ćć¹ć¢ć«ć¦ć³ć+ćć”ć¤ć³å Øä½ć®å§ä»»ć§ä¾åć¼ćć®ę±ŗå®č«ć¹ćÆćŖććć«ē½®ćęććęé ćØćčŖćæåćå“ć§ććć¼ćæē”ćććØć該å½ē”ćććåŗå„ććć¬ć¼ćć¾ć§ć
AIćØć¼ćøć§ć³ćć®å§č²ēćå®ęø¬ćć¦ę大ć®ę¼ćå£ćå”ć
é«ä¾”ćŖē£ē£ć¢ćć«ćčŖåć§ä½ę„ćę±ćč¾¼ćåé”ććć«ć¼ć«čæ½å ć§ćŖćåŗåćć¼ćÆć³ć®å®ęø¬ć§ē“ćęé ćęØč«ćć¼ćÆć³ć®čŖ¤åø°å±ć»ęęØć®éć¤ć³ć»ć³ćć£ćć»å¼·å¶å±¤ć®ęę ¼ć®ē©“ćØćć3ć¤ć®å øååå ćØććć¤ćććéå®ć®ę®µéå°å „ć¾ć§ć
ć¹ćć¬ććć·ć¼ćå®č”ććć«ć®ēµęć»ć«ćåæ ććÆćŖććÆåÆč½ć«ćć(GAS)
GASć§ć·ć¼ććęä½ććć«ć«ććęćēęē©ćŖć³ćÆćć»ć«ć«åŗćå„ć·ć¼ććę¢ććć¦ćć¾ćåé”ć®ę½°ćę¹ćURLćć¼ć®ē·ćŖćåéć»RichTextć§č¤ę°ćŖć³ćÆć»éå»åć®åćę»ćć»åę§ēÆć§ę¶ććē½ ć»å Øčµ°ę»ć§6åå¶éć«å½ćć£ć¦ććŖć¬ćę»ć¬ē½ ć¾ć§ć
ē”äŗŗå®č”ć API ćä¹±ęććŖćčØčØ ā 失ęęć”åćć¬ć¼ćå®č£ ęé
cron/ć¹ć±ćøć„ć¼ć«ććŖć¬ć¼ć§ęä¹ ēć«å¤±ęććć¬ć³ć¼ććē”éćŖćć©ć¤ćććę§é ćå”ććć§ććÆćŖć¹ććØå®č£ ććæć¼ć³ć失ęć«ć¦ć³ćæćÆč©¦č”ć®åć«äæåćåŖēćŖćŖć½ć¼ć¹ēęć復帰ć³ćć³ćć®ēØęć¾ć§ćAPIä¹±ęć«ććć¢ć«ć¦ć³ćåēµć®äŗé²ć
AIć«å£ćććŖććå¤ęćć®ä½ćę¹(äøå¤ę”ä»¶ćØćŖćć©ć¤é¾å¤)
AIć«å§ēø®ć»ē§»č”ć»ę“ēćä»»ćććØćę示ć©ććåććć®ć«ę å ±ćę¶ććććIDć ććassertćć¦ćæć¤ćć«ćØčŖ¬ęćę¶ććå®ä¾ćØćäŗŗéćčŖćå Øćć£ć¼ć«ćć«äøå¤ę”ä»¶ćęććęøćę¹ććććć¦ćNå失ęć§ęć”åććć試č”ć¬ć¼ćå¤ę“ć§1ę©ć§ēŗåćć失ęćØćē°ćŖćę„ę°ć§ę°ććå®č£ ć
äŗē“ćć¼ćæćććä¾”ę ¼ćé«ćććć®ćććå¤å®ććęé ļ¼ćŖć¼ććæć¤ć ć»ćć¼ć¹ę²ē·ļ¼
å ć®äŗē“ćčćęć«ę¶ęø¬ć§å¤äøćććććŖć¼ććæć¤ć å„ć®å®å¢åä¾”ć»éå»ć®åćNę„åć®ćć¼ć¹ć»ęē¤ŗä¾”ę ¼ć®å®č”Øē¤ŗćēŖćåććć¦å¤ćć¦ććåøÆć1ć¤ć«ēµćęé ćåØåŗ«ć®ē©“ć®č¦ć¤ćę¹ć¤ćć
GAS éēŗć®ēµ¶åƾć«ć¼ć«(claspēµ±äøć»ćć„ć¼ć»read-back)
.gs/appsscript.json/.clasp.json ćē·ØéćććØčŖåé©ēØććć GAS éēŗć«ć¼ć«éćclasp push ēµ±äøćć³ćć³ććć„ć¼ę¹å¼ćęøćč¾¼ćæå¾ć® read-back verifyćsilent ignore 対ēćpush å¾ćććŖć¬ć¼ćę§ć³ć¼ćć§åćē½ ć¾ć§ćč¦å®ć
éå ¬éć»preview API ćēøęć«ććåć«ćę¬å½ć«ä½æććććć確å®ććęé
limited preview ć®ę°ę©č½ć«čŖååćč³ććåć«ćå ¬éćć£ć¹ć«ććŖē §åć»403/404ć®åÆ¾ē §å®éØć«ćććć¹ćå®åØå¤å®ć»ē®”ēē»é¢ć®é ē®ęē”確čŖć§ćå°éåÆč½ćććäøę¬”ć½ć¼ć¹ć§ē¢ŗå®ćć9ęé ćAIćęØęø¬ć§preview APIćęé ććć®ćé²ćéčŖć³ć¼ćęø”ććå®åØå¤å®ć¤ćé²å¾”å®č£ ć宣čØćØå®č£ ć®čå„åē §åć¾ć§å«ćć
ćć¼ćć³ć¼ćć®ćććććć¦ć³enumćčØå®ć§ē·Øéć§ććDBćć¹ćæć«ē§»č”ćć
UIć«é åć§ććæęøćļ¼DB CHECKć§åŗå®ćććéøęč¢ććå©ēØč ćčØå®ē»é¢ććčæ½å /ē·Øéć§ćććć¹ćæćć¼ćć«ć«äøę¬åććęé ćvalue-keyedåå²ćå£ććŖćč½ćØćē©“ć¤ć
ć¢ććŖå ćć£ć¼ććććÆā責任č DMāIssueāčŖåäæ®ę£PRā1ćæććęæčŖ
社å ć¢ććŖć®äøå ·åå ±åćć責任č ć®åå„DMć«å±ććIssueć«ćć¦å¤éć«äæ®ę£PRć¾ć§čŖåć§ä½ććęæčŖćÆę¢åć®PRē»é¢ć®Mergeććæć³1ćæććć§ęøć¾ććčØčØćéē„å ćäøē¶1ē®ęć«éē“ćć¦ćć¼ćÆć³ę”ę£ćé²ććę¢čŖćÆéē„ć®ćŖć¢ćÆć·ć§ć³ć§ęć”ćēµµęåć§čŖåć®éē„ćę¾ćē”éć«ć¼ććęć¤ć
å¤äøććå ćåćććć RevPAR ć§å¤å®ććļ¼å®æę³ć»OTAéēØļ¼
稼åēć ćč¦ććØå¤äøćć®č©ä¾”ćåæ ćå¤ććäŗē“ęē“°ć ććć RevPAR ćåŗććå幓å“ć®ć¤ćć³ćę±ęćå¤ććshift-share ć§ćć£ćć«ę§ęå¤åćØčŖåä¾”å¤åćåé¢ćć¦ćå¤äøććå ćåćććć exit code ć§ę©ę¢°å¤å®ććęé ć
MCP stdio ćµć¼ćć Windows ć§ćę„ē¶ęøćæćć®ć¾ć¾ę»ćć§ććć®ćč¦ęć
MCPćµć¼ćäøč¦§ćē·ć§ććć¼ć«å¼ć³åŗćć ć spawn ENOENT ć§ę»ć¬ę éć®3層ę§é ćØćinitialize/tools-list/tools-call ć層ććØć«å®ęø¬ćć¦čؼęććęé ćnpxå½¢å¼ćä½ćååć ćć®ę„ē¶ćæć¤ć ć¢ć¦ććčØå®ć¹ćć¼ćē§»č”ć«ććéććŖčŖčؼē”å¹åćčŖå修復ć³ć¼ććéµć空ęåć§ę½°ćē½ ćå«ćć
č¤ę°LLMćććć¤ćć®ē”ęę åććę¤ē„ćć¦čŖåć§ę¬”åč£ćøå·®ćęæćć
å®ćLLMćøå¦ēćéććę§ęćÆē”ęę ćåćććØé»ć£ć¦č½ć”ćčØé²ćę®ććäøēŖé«ćć¢ćć«ćøéęµććć402ćÆå³ę¬”åč£/429ć®ćæćŖćć©ć¤ćØććåé”ćčŖ²éćć¼ć«ćč·Øćåč£åć失ęćę®ćå°åø³ć1ććć1č”ć®ćć°ć¾ć§ć®å®č£ ęé ćé£éć®é ēŖćå®ęø¬ć§ę±ŗććę¹ę³ļ¼åä¾”ęå®ā å®å¹ęå®/ćć³ć飽å/ę£č¦č”Øē¾ę”ē¹ćäøä½ć¢ćć«ćč½ćØćē½ ļ¼ćåé²ć
å„ē°å¢ć§ä½ćććęŖćć¼ćøPRććē¾č”ć³ć¼ććøå®å Øć«ē§»ę¤ććć
ę¾ē½®ćććęŖćć¼ćøPRćÆćē«¶åććććčØå®ć®č»øćäŗéć«ćŖćććęęøć®åęćå¤ććć»ććå±éŗćAIć« cherry-pick ććććčØčØć ćåćåŗćć¦ē¾č”ć®čŖå½ćøēµ±åćē“ćććęé ęøćå®č£ ćAIćøå§č²ććęć«ćć¹ćåę ¼ć®ććć«ę¢åć®čØčØå¤ęćå£ćććå®ä¾ćØććć®åćå „ćć¬ćć„ć¼ęé ć¤ćć
č«ę±ęøć»é åęøććå„ć·ć¼ćć«1č”å „ććć ććć§ä½ć GAS 帳焨ćć³ćć¬
ć¹ćć¬ććć·ć¼ć㫠帳焨/ćć¼ćæ/čØå® ć®3ć·ć¼ććēµćæćå „å1č”ć§å°å·ēØåø³ē„Øćå®ęććę§ęćGASć§ä½ććć»ć«å¤ć®čŖćæę»ćć§ćÆę¤åŗć§ććŖćå°å·ęć®ęååćććPDFęøćåŗćć®ē®č¦ć§ę½°ćć¾ć§ćå«ćć
å¤éć®ē”äŗŗAIćØć¼ćøć§ć³ććććććéćć«å Øę» ćććć®ćę¢ććļ¼č¦³ęø¬ćæć¹ćÆć®ē«ć¦ę¹ļ¼
å¤éćććć§AIćØć¼ćøć§ć³ććē”äŗŗå®č”ćććØć失ęćć®ćć®ćčŖ°ć«ćå±ććŖćć観測ć»åćåćć»čŖå·±äæ®å¾©ć»å ±åćå„ćæć¹ćÆćØćć¦ē«ć¦ćęé ćØćå®ęø¬ć§čøćć 4ć¤ć®éććŖå Øę» ēµč·Æļ¼spawnć®åęthrowļ¼å é ććććÆććčŖć¾ćŖććć¼ćµļ¼ć³ć³ć½ć¼ć«ć®ćØć³ć³ć¼ćć£ć³ć°ļ¼ć¹ćŖć¼ćć§ęŖēŗē«ļ¼ć®å”ćę¹ć
ę£ćć°ć£ćę„åć·ć¼ććććēŗę³Øćåæćććę©ę¢°ēć«ę¤ē„ććéē“蔨ćä½ć(GAS)
ę”ä»¶ććØć«åćććć¹ćć¬ććć·ć¼ććØå¤éØć¹ćć¬ć¼ćøćēŖćåćććć蔨ć«ććććć¼ćæćē”ććććć¼ćæćÆććć蔨ć«ē”ććć®åę¹åć§ęććåŗććåååćč¤ę°ćć/ćć³ćć¬ćć©ć«ćć空/6åå¶é/ććŖć¬ć¼äøéćŖć©ćå®ęø¬ć§čøćć ē½ ćØåéæēć¤ćć
é åøććhookćWindowsć§éćć«ę»ć¬ć®ćå”ć ā process.exit 㨠top-level await
AIćØć¼ćøć§ć³ćć®hookććåŗåćÆę£ććć®ć«åę ćććŖććå½¢ć§ē”å¹åćććēå ćØćććććÆć¼ćÆć«ä¾åććŖćååø°ćć¹ćć»å¤ē°ćć¹ćć®å
ä½ę„ććŖć¼ćę±ćć端ę«ć«ć ćé åøćå±ććŖć ā ćć©ć¼ć«ćććÆć®čŖå®¶äøęÆć¾ć§å«ćć¦å”ć
č¤ę°ē«Æę«ćøgit pullć§ćć¼ć«ćé ćéēØć§ćéēŗē«Æę«ć«ć ćé åøćę°øä¹ ć«å±ććŖćé害ććć©ć¼ć«ćććÆć®ēŗåę”ä»¶ć»äŗŗć®ä½ę„ć®äæč·ć»čŖåć®åŗåćäŗŗć®ē·ØéćØčŖ¤čŖćć¦åēµććäŗę¬”äøå ·åć»čŖå·±äæ®å¾©ć®å¾Ŗē°ć»å®ęćæć¹ćÆć®åē §å ććć¾ć§ćå®éć«čøćć§ē“ććęé ćØćć§ććÆćŖć¹ćć
社å ćć£ć¼ććććÆćęÆę„AIć®ä½ę„ćć„ć¼ćøčŖååćč¾¼ćæććļ¼å®å Øć²ć¼ćä»ćļ¼
ćć©ć¼ć ć«ęŗć¾ćäøå ·åć»č¦ęćčŖčؼä»ćAPIć§ęÆę„åå¾ććAIćØć¼ćøć§ć³ćć®ä½ę„ćć„ć¼ćøåŖēć«ē©ććē”äŗŗå®č”ćę¬ēŖć³ć¼ććåęć«ęøćęććŖćććć®å®å Øć²ć¼ććØććć®ååø°ćć¹ćć®ęćę¹ć¾ć§ć
å Øäøēå ¬éć«ćŖć£ć¦ććå ±ęćć©ć¤ćč³ęććę„åćę¢ććć«ē· ćć
AIć«čŖć¾ććććå ¬éććć¾ć¾ę¾ē½®ćććDrivećć©ć«ćććčŖ°ćē· ćåŗććć«å®å Øć«éććęé ćęŖčŖčؼcurlć§å ¬éćå®čؼāę£č¦å ±ęćå ć«ä»äøāanyoneć ćåé¤āå”ćć£ćććØćØę„åćēćć¦ććććØćäø”ę¹å®ęø¬ććåć権éäøč¦§APIćäøå®å ØćØććē½ ć¤ćć
HMACéµé åøćµć¼ćć®ē· ćåŗćäŗę ćé²ćčØčØļ¼č¤ę°ē§åÆļ¼ä½æćęØć¦enrollćć¼ćÆć³ļ¼å¤±ęć®čŖå·±éå ±ļ¼
å ±ęē§åÆć§čØå®ćć”ć¤ć«ćé ćę§ęćÆćē§åÆććć¼ćć¼ć·ć§ć³ććē¬éć«ęŖåé ć®ē«Æę«ćę°øä¹ ć«ē· ćåŗććč¤ę°ē§åÆć®åęåä»ć»ä½æćęØć¦enrollćć¼ćÆć³ć»å¤±ęć端ę«čŖčŗ«ćéå ±ććčØčØćØćå®ēµč·Æe2ećć¹ćć®ęøćę¹ć¾ć§ć
AIćØć¼ćøć§ć³ćććå„ć®ć³ć¼ćć£ć³ć°CLIćøå®å Øć«å§č²ććMD ā äøø1ę„hangćę¢ćć
ē£ē£AIććå®č£ å½¹ć®ć³ć¼ćć£ć³ć°CLIćøBashēµē±ć§å§č²ćććØćć®å¼ć³åŗćę¹ćargvć§ę示ćęø”ććØć·ć§ć«ććććÆćÆć©ć¼ććå®č”ćć¦ä»ę§ćę¶ććTTYä»ćčµ·åćÆstdinå¾ ć”ć§ē”éhangćććå®ęø¬1ę„hangć®ę»å 3ć¤ćØććććÆć§ę©ę¢°ēć«ę¤åŗććåć»ååø°ćć¹ćć®ęøćę¹ć¾ć§ć
ćć°ć¤ć³ć§ććŖćGitHubć¢ć«ć¦ć³ćć«ēøćććéēŗććę¢ććć«åćøé²ćć
ćć¹ćÆć¼ćäøęć»2FAć§å „ććŖćGitHubć¢ć«ć¦ć³ćć®PATć«workflowć¹ć³ć¼ććē”ćććÆć¼ćÆććć¼ćpushć§ććŖćč©°ćæć®č§£ćę¹ć復ę§ć«čµ°ćåć«ę½°ćć¹ć5ć¤ć®ēµč·Æļ¼ęå ć¢ć«ć¦ć³ćć®ć¹ć³ć¼ć確čŖļ¼ä¾åć確čŖćć¦ē½®ćęćļ¼ć³ćććauthorććē»é²ć”ć¼ć«ē¹å®ļ¼ęå¾ ć®APIå諾ć§Webćć°ć¤ć³åéæļ¼secretsē»é²ćÆrepo+adminć§č¶³ććåę ļ¼ćęé åć
ć³ć¼ćć£ć³ć°ćØć¼ćøć§ć³ćę¬ä½ććå®ćäŗęćććÆćØć³ććć§čµ°ććć
ćØć¼ćøć§ć³ćCLIć®ę„ē¶å ćäŗęćØć³ććć¤ć³ććøå·®ćęæćć¦å®č”ć³ć¹ććäøććęé ćenvćåććć»ć¹ć«ć ćę³Øå „ććåćć«ćæćć°å¤ć¢ćć«ć§ēŖć誤仮å®ćććē½ ććØć¤ćŖć¢ć¹ę¢å®ć®ē½ ćå„ē“ć¢ć«ć¦ć³ćć®å®ęø¬å¤å®ćć«ć¼ćå Øę» ęć®ę±ŗęøåćåćć¾ć§ć
AIćØć¼ćøć§ć³ćć®å§č²ēćäøćććŖćęć®čØŗęćØęÆę£ ā å§č²ć®ęŗåćØä½æćęØć¦ć¹ćÆćŖćććåé¢ćć
ē£ē£AIļ¼å®č£ AIć®ä½å¶ć§å§č²ēćåę»ććåå ćÆč¦å¾ć®äøå¾¹åŗć§ćÆćŖćčØęø¬ćØå¼·å¶å±¤ć®čØčØćć¹ćć·ć§ć«å®č”ć®äøčŗ«ćåé”ććå§č²ć®ęŗå(ä»ę§ęøå·ē)ćØä½æćęØć¦ć¹ćÆćŖćććåé¢ćć¦ć²ć¼ććęćē“ć診ęęé ććć¢ććć„ć”ć³ćåŗåćčŖć®åŗå®ć»ęŖåé”ćć±ćę¾ē½®ć»ęęØćę£ććč”åćē½°ććę§é ćć®3ć¤ć®č½ćØćē©“ć¤ćć
å ±ęć«ć¼ć«ćŖćć®ćä½ćē“ćäŗę ććę¢ćć ā AI ć«ē“ćććåć®3ć³ćć³ć
č¤ę°PCć§å ±ęćć AI ēØć«ć¼ć«/ćć¼ć«ć®ćŖććøććŖć§ććć¼ć«ć«ć³ćć¼ćå¤ćććć«ę¢ć«ćć¼ćøęøćæć®äæ®ę£ć AI ćä½ćē“ćäŗę ćé²ććgh pr list --state all / main ć®å®ē©ćØ diff / čŖä½ććåęćć®3ęé ćØć«ć¼ć«ęé¢ć
ę©åÆåćå«ćå ±ęć¹ćć¬ććć·ć¼ćć«AIćå®å Øć«ęøćč¾¼ć¾ććå
ćć¹ćÆć¼ććęęøćć”ć¢ćØåå± ććē®”ē蔨ć«ćAIć«ę¬ęćčŖć¾ććć«čŖåę“ę°ćććå®č£ åć許åÆćŖć¹ćęøč¾¼ć»č¦åŗćč”ć®čŖåę¤åŗć»č”ć優ććŖćēŖåć»åé ć·ć£ććć«ć®ęµåƾēćć¹ćć»å®ęå®č”ć®å¼ę°åŗå®ć¾ć§ć
C:/Program Files/Git/clear ć§ć»ćć·ć§ć³äøč¦§ćę±ććåé”ćę ¹ēµ¶ćć
AIć³ć¼ćć£ć³ć°CLIć® /clear ćÆå±„ę“åé¤ć§ćÆćŖćę®éŖøć»ćć·ć§ć³ćå¢ććć空ć»ćć·ć§ć³ć®čŖåééæ(ē¶äŗćÆåÆ¾č±”å„)ć»clearå°ēØhookć§ć®åÆč¦åć»ę°č¦ä¼č©±ć·ć§ć¼ćć«ććć®3ē¹ć§ę©ę¢°ēć«ę½°ćęé
ćććć¤ęøćæć®ę¬ēŖć git ććę°ćććććøć§ćÆćććå£ććć«č§¦ć
git é£ęŗćē”ć CLI ććē“ę„ćććć¤ććć¦ććę¬ēŖćÆćclone ć㦠deploy ćććØę¬ēŖć«ć ćććę©č½ćę¶ććć触ćåć«ę¬ēŖć½ć¼ć¹ć API ć§ååć㦠git ćØēŖćåćććå¤å®ćØęé ćē§åÆćć”ć¤ć«ć®ę··å „対åæćę¢åčŖčؼć³ć¼ćć«č§¦ććŖćå¤ęåŗęŗć¾ć§ć
ćå®ćAIćøå§č²ćććć®å¼·å¶ćØå§č²å ć®ę åććéćŖććØAIćÆä½ćęøććŖććŖć
å®č£ ćå„AIćøå§č²ćććč¦å¾ććććÆć§å¼·å¶ćć¦ćććØćå§č²å ć使ēØäøéć«éććę„ć«ćå§č²ćē“ę„ē·ØéćäøåÆćć®ććććććÆćčµ·ćććč§£é¤ę”ä»¶ćäø»ēµč·ÆćØćć©ć¼ć«ćććÆć®äø”ę¹ę»äŗ”ęć®ćæć«éå®ććčØčØćØć復帰ęå»ćć¼ćµć»ē¶ę ćć”ć¤ć«éé¢ć®č½ćØćē©“ć
ćć£ćØ skipped ć ć£ć CI ćøć§ććęćčµ·ććć¦ē·ć«ćć
CI ćé·ęé赤ć㨠needs: ć®å¾ę®µćøć§ć㯠skipped ć®ć¾ć¾ę¬ é„ćé ćććéå»å®č”ć®ē¢ŗčŖę¹ę³ćććć±ć¼ćøććć¼ćøć£ć®äŗéęå®ć»éēććŖć¬ć³ćć¼ć® DB ę„ē¶ć»Playwright ć® webServer ęŖčµ·åćØććå øå4ꮵććCI ćć¼ć«ć«åē¾ć§å¾å¾©ćęøćććŖććé ć«ę½°ćęé ęøć
Googleć¦ć¼ć¶ć¼ćć¼ćæćčŖčؼćŖććć¼ć«ć«ć¢ććŖć«åŗć ā GASāå ¬éHTTPSę©ęø”ć
čŖä½ććć·ć„ć«Googlećæć¹ćÆ/ć«ć¬ć³ćć¼ēććć¢ććŖć«OAuthćęćććGASāå ¬éHTTPS ingestćøPOSTāćć¼ć«ć«ćć£ćć·ć„āWidgetć§č”Øē¤ŗćWeb Appå ¬é/clasp run/SAäøč¦ćfunnelå®ćć¼ć確čŖć»ē§åÆć®ē½®ćå “ć»basePathć»ę¬ēŖåćć«ćēć®å®ęø¬ćććć©ććä»ć
ęååćć§å®å ćę±ŗć¾ććŖć1ä»¶ććć„ć¼ćę°øä¹ ć«č©°ć¾ćććć®ćē“ć
čŖåå¦ēćć„ć¼ć§å®å 解決ć«å¤±ęććć¢ć¤ćć ćÆć失ęćć§ćÆćŖććć¹ććććć«ćŖććexit 0 ć®ć¾ć¾ęÆę©ćŖćć©ć¤ććē¶ćććč©°ć¾ćć®ę¤åŗćåććęååććå ććć¹ććåå®ććęē“ē §åćå£ćć«ćć第2ćć¼ćøć®čرåÆćŖć¹ćåćć©ć¼ć«ćććÆćććć¦ć対豔å¤ć«ćććåŗå£ć¾ć§ćå®ä¾ć§éćć
AIć®åŗåćę¢ććć²ć¼ćhookćčŖ¤ēććęć®ē“ćę¹
ććć¹ććććć§åæēćę¢ććhookćÆåæ ćčŖ¤ēćććēå ć®ē¹å®(Markdown蔨ć1ććććÆć«ćŖć/å¼ēØćå®ē©ćØę°ćć/ęŗććććć®ćŖćč¦ę±)ćććęå°ć®ä¾å¤ć®åćę¹ćéå°ę¤ē„ć«å¤ććŖććć¹ććé åøå ć¾ć§č¦ćå®äŗå¤å®ć¾ć§ć
ęę”ćć„ć¼ćęŗć¾ćć ćć®ć“ćē®±ć«ććŖć ā å¤éć®čŖåććŖć¢ć¼ćø
AIćåŗććęę”ćęŗććä»ēµćæć ćä½ććØåæ ćč ććWebę¤ē“¢ć§č£åććå®ćLLMćverdict/adoptćčæććdone/rejected/TODO起焨ć¾ć§ē”äŗŗć§åćčØčØćunclearćÆęØć¦ćNåć§ęć”åćč¦åćē”ęę ćē¼ććŖćę¢å®å¤ćPowerShellć®BOM/ęååćć®ē½ ć¾ć§ć
č¤ę°LLMćęÆč¼ćć¦å®ćę¹ćøęµćęćåč³Ŗć²ć¼ććåć¤ćć«ććŖćä½ćę¹
ćæć¹ćÆēØ®å„ććØć«å®ćLLMćøęÆćåććå¤ęćęÆććęåēć®å®ęø¬ćÆćę¾ć£ć¦ćććØåæ ć愽観å“ćøå£ćććęåēć®åęÆćę”ē¹ęøćæä»¶ę°ć«ćććØå®čµ°ć§ććŖććććć¤ćć»ć©é«å¾ē¹ć«č¦ććē½ ćčØęø¬äøč½ć®č¶³åććå Øę» ććčØåć®éé¢ćē”ęę ćę²é»ć§å£ććććØć2åčØęø¬ććŖććØå¤ęć§ććŖćććØćå®éēØć§3ćććć¤ććéå¤§å ±åććć¦ććäŗä¾ć®äøč¬åć
AIćØć¼ćøć§ć³ććēŖē¶ę»ććęć®åćåć ā ć¢ććŖć®ćć°ćOSć®č³ęŗęÆęøć
exit 3221226505 ć®åå ćć¤ćć³ććć°ćØć³ćććēć§5åć§ē¢ŗå®ćććęé ćØćē“ćę¹ćéćØć³ćøćć¢ć«1ćÆćŖććÆć§ęø”ćå
google.script.run ć® null ć undefined ć«ćŖćē½ ā ę¬ēŖć ćåŗć NaN 蔨示ć®čŖåę¤åŗ
GASć¦ć§ćć¢ććŖć§ćµć¼ćå“ć® null ććć©ć¦ć¶ć§ undefined ć«ćŖćć=== null ć®åå²ćē“ éćć㦠NaN ć蔨示ććććåä½ćć¹ćć§ćJSON fixtureć§ćåē¾ććŖćēē±ćØćnull ćč½ćØćć fixture ć§ęćē“ćć¦čŖåę¤åŗććę¹ę³ć
å 容ć§č”ćē¹å®ććęøćę»ćććććę„ććę°øä¹ ć«äøč“ććŖććŖć
ć¹ćć¬ććć·ć¼ććę£ę¬ć«ććę„åć¢ććŖć§ćē»é²ć§ććć®ć«åę ćććŖćććčµ·ććå øåćę£č¦åć®trimćØsliceć®é åŗć§äæåå¤ć®å¾å¾©ćéåŖēć«ćŖććå Øč”čµ°ę»ć§0ä»¶ćććć«ćŖććę¬ēŖćć°ććć®čæ½ćę¹ćććć·ć„ćå¤ććć«ē“ćę¹ę³ćéč¤č”äŗę ćé²ćåŗå®å¤ćć¹ćć¾ć§ć
ę¬ēŖå ±ęć¹ćć¬ććć·ć¼ććå£ććäøę¬ę“ę°ććå(GAS)
č¤ę°äŗŗć使ć£ć¦ććę¬ēŖć·ć¼ćć«åƾććAIćę å½č åć®äøę¬ē½®ęćčŖ¤ē»é²č”ć®åé¤ćå®å Øć«č”ćććć®čØčØćdryRunāē §åćć¼ä»ćé©ēØāē¬ē«read-backć®3ꮵćØćGASć®ć³ć¼ćéå½¢ć»å®éć«čøćć č½ćØćē©“ć¤ćć
ę¾ē½®ććć open PR ćå®å Øć«ę£åøćććļ¼ćć¼ćøćććØéč”ćć PR ć®č¦ęćę¹ļ¼
CI ćē·ć§ććå¾ććč¦ćććēµč«ćå«ć PR ććć¼ćøćććØä»ę§ćå·»ćę»ćć使ćęØć¦ worktree ć§ę®å·®åć¼ćå¤å®ć»é³č åŗ¦ć®ę°å¤åć»éč”ę¤ē„ćč”ćććć¼ćø/ćÆćć¼ćŗćę©ę¢°ēć«ęÆćåććęé ćread-back ćØćÆćć¼ćŗę ¹ę ć³ć”ć³ćć®ćć³ćć¬ä»ćć
GASć®ęéäø»å°ććŖć¬ć¼ććććć¤ēć«åŗå®ćććē½ ā ćęåććć®ć«ä½ćčµ·ććŖććć®åćåć
clasp push ćć¦ćęéäø»å°ććŖć¬ć¼ćÆę§ćć¼ćøć§ć³ć®ć³ć¼ććå®č”ćē¶ććććØć©ć¼ćåŗćę»ćå¤ćOKćŖććåå ćē¹å®ć§ććŖććę°é¢ę°ććć¼ćć§å®č”äøć®ć³ć¼ćć確å®ćććclasp deploy -i ć§URLćå¤ććć«ē“ćęé ć
å„ć·ć¼ćć®åēŖå·ćč ć£ć¦å„ć¬ć³ć¼ćć®å¤ćčæćäŗę ć®ē“ćę¹ļ¼ååē §åļ¼ę„ä»ćæć¤ćć¬ć¼ćÆļ¼
äæåććåēŖå·ćÆåć®ęæå „åé¤ć§å Øä»¶ćŗć¬ććå£ććä»¶ę°ć®ęø¬ćę¹ćNFKCę£č¦åćØęé·åŖå ć®ååē §åćåååćęéć§å²ććæć¤ćć¬ć¼ćÆć確å®ć§ććŖćęćÆē©ŗćčæćčØčØćē“é¢ę°åćØćć¹ćć±ć¼ć¹ć¾ć§ć
å ±ęć³ćć³ććć„ć¼ć®č½ćØćē©“ćØäæ®ę£ććæć¼ć³ļ¼AIćå®č”ćęćććć„ć¼ļ¼
AIćØć¼ćøć§ć³ććććÆć©ć¦ćé¢ę°ććŖć¢ć¼ćå®č”ćććć³ćć³ććć„ć¼ę¹å¼ććå®éć«éēØćć¦åćć¦é²č¦ćć5ć¤ć®ę¬ é„ļ¼å®č”ååé¤ć§ć³ćć³ććę¶ę» ļ¼ēµęćŖććęŖå®č”ćØčŖ¤å¤å®ļ¼ęä»ćććÆćå¶å¾”ć飢ććććļ¼äø¦č”ćØć¼ćøć§ć³ćć®äŗéå®č”ļ¼å®č”ęéäøéć§ęÆåå Øęļ¼ćØććć®äæ®ę£ć³ć¼ććØćć§ććÆćŖć¹ćć
ę°MBć®ććć„ć”ć³ć群ććåæ č¦ćŖčØčæ°ć ćåćåŗć ā åå²å§č²ļ¼éčŖē §åć®å
社å Wikięøćåŗććććć„ć¢ć«ć®ęļ¼ę°MBļ¼ćē£ē£ć¢ćć«ć®ęčć«č¼ććć«čŖćęé ć1ćć”ć¤ć«1ćµććØć¼ćøć§ć³ćć§äø¦åę½åŗććå„ćØć¼ćøć§ć³ćć§åęćøå·®ćę»ćć¦éčŖē §åćććčŖćæåćAPIć®éććŖę«å°¾åćć»å Øęę¤ē“¢ć®åććć¼ćć»ćę§ēć蔨čØć®č½ćØćć»åŗå øć®åø°å±ćć¹ćØćć4ć¤ć®ē½ ćØććććę¤åŗććććć³ććć®åć¤ćć
審ę»å¾ ć”ćć„ć¼ć«åćäø»é”ćē©ćæäøććć®ććåŗćåćć«ę¢ćć
åćäøćAPIćē”ćę稿å ć«ćäø¦č”ć»ćć·ć§ć³ćåćäø»é”ćéč¤ę稿ććć®ćę稿ē“åć®ćććå¤ć²ć¼ćć§ę¢ććććććå¤ćÆåć§ē½®ććę¢åćć°ć®åēć§ę±ŗććęé ć¾ć§å«ćć
AIć»ćć·ć§ć³ć®å¼ćē¶ććäæ”ēØćććēęåć«å®ć·ć¹ćć ćčŖćæę»ć
ę°øē¶ć”ć¢ćŖļ¼å¼ćē¶ććć”ć¤ć«ć§AIćØć¼ćøć§ć³ććč·Øć»ćć·ć§ć³éēØćććØćå®äŗęøćæć®ä½ę„ćä½ćē“ććäŗę ćčµ·ćććēęåć®exit codeå¤å®ć»å¤ćēµč«ć®ęć”ę¶ćć»ćććÆäæęč ć®čØčØć»é対話ęć®ęæčŖå¢ēć®4ć¤ć®åć
ć·ć¼ć対åæęøćæćć§ććÆļ¼ęéč¶ éDiscordå¬äæ
ć¹ćć¬ććć·ć¼ćć«ćć§ććÆćććÆć¹åćč¶³ććäøå®ęéēµć£ć¦ććć§ććÆćå „ććŖćč”ćę¤ē„ćć¦ę å½č å„ć«Discordć§čŖåå¬äæććććæć¼ć³ćę¢åć®å®ęcronć«ēøä¹ćććē¶ę ē®”ēćŖćć§ē¹°ćčæćå¬äæćå®ē¾ć§ćććå°å „ęć®ę¢åč”äøę¬å¦ēćØćæć¤ć ć¾ć¼ć³å¤ęć®č½ćØćē©“ćå«ćć
ćć°ć¤ć³åæ é ć®ē¤¾å ćć¼ćøļ¼Google Sites/社å Wikiļ¼ćAIć«čŖåć§čŖć¾ćć
APIćē”ćéåøøć®HTTPåå¾ć§ćÆ302ć§ćć°ć¤ć³ē»é¢ć«é£ć¶ē¤¾å ćć¼ćøććPlaywrightć®ę°øē¶ćććć”ć¤ć«1ę¬ć§AIćØć¼ćøć§ć³ććčŖååå¾ć§ććććć«ćććå®ęø¬ć§čøćć Windowsåŗęć®č“å½ćć°4ä»¶ćØåéæēć¤ćć
AIćØć¼ćøć§ć³ćć® skill/tool ćč¤ę°PCćøé åøććęć®ē½ ćØåéæē
skillć»å ±éćć¼ć«ćč¤ę°PCćøčŖåé åøććéēØć§åæ ćčøć3ć¤ć®ē½ ļ¼é åøē©ćÆgit repoć§ćŖćļ¼åęć¹ćÆćŖććčŖä½ćå¤ćļ¼skillćÆć»ćć·ć§ć³éå§ęćć¼ćļ¼ćØćä¾åćååø°åå¾ćććć¼ćć¹ćć©ććęé ć
Vercelē¬čŖćć”ć¤ć³ę„ē¶+証ęęøēŗč”å¾ ć”čŖå·±č§£ę±ŗMD
å¤éØć¬ćøć¹ćć©ć®DNSćVercelć«ē¹ćęé ćØćHTTPSć ćē¹ćććŖćęć«vercel certs issueć§ęåēŗč”ćć¦ę°ååć®å¾ ć”ćę°åē§ć«ēēø®ćć診ęććć¼
PWA ćććć¤å³åę ā Service Worker čŖå reload ć¬ć·ć
PWA ć®ć¹ććå“ć§ę°ēćåę ćććŖćåé”ććSW ć® VERSION+postMessage+updateViaCache=none+ēćæć°č”Øē¤ŗ ć®3ē¹ć»ććć§ććććć¤å³ć»å ØtabčŖå reloadćć«å¤ććå®å Øć¬ć·ććNext.js/Vite/Vanilla å ±é
AEO/GEO ę½ēć®å ā AIę¤ē“¢ć§čŖē¤¾ćęØč¦ć»å¼ēØććććććć
ChatGPT/Perplexity/AI Overviewć§čŖē¤¾ćå¼ēØćććē¶ę ćä½ćå®č”ęé ćJSON-LD/llms.txt/robotsć®ćŖć³ćć¼ćøćęÆč¼ć”ćć£ć¢ę²č¼ćę稿ć”ćć£ć¢āYahoo!ćć„ć¼ć¹āåęčŖēŗćWikidata/Wikipediaćęꬔē”ęć®å¹ęęø¬å®ćč½ćØćē©“ć¾ć§ć
ć¹ćć¬ććć·ć¼ćéčØę„åćNext.js+Supabaseć¢ććŖćøę®µéē§»č”ććčØčØę示ęø
éēØäøć®Sheetsę„åćę¢ććć«Webć¢ććŖ(DBę£)ćøę®µéē§»č”ćåę¹ååęć®ćØć³ć¼ć«ć¼ćę ¹ēµ¶ć»ē§»č”6ååć»ć³ć¼ćå č”/ć¹ćć¼ćå¾čæ½ććŖćŖć¼ć¹ć»ćć¬ć¼ć¹ćć«ćåć®ę°“å¢ćé²ę¢ć»worktreeéé¢ć¾ć§å®ę¦ē„č¦ćååć
å¶ę„ć¹ć©ć¤ćč³ęćHTMLā16:9 PDFć§éē£ļ¼åēę“åćć¤ćć©ć¤ć³
HTMLć§ć¹ć©ć¤ćčØčØāPlaywrightć§16:9 PDFåāå®åēćØAIē»åćę··åØćImageMagickē”ćć§Drive/Google Photosåå¾ć»HEICå¤ęć»EXIFå転ē¼ćč¾¼ćæēø®å°ć»ćć“canvasć¢ć¶ć¤ćÆć»gpt-image-1ēęć»Drive URLäøå¤ę“ę°ć¾ć§ćåŗå®pxčØčØęć®@pageäøč“(ćććæć¼éćŖć)ć®ē½ ćåé²ć
ć0ä»¶ć ć£ćććē”ē½Ŗć®čؼę ć«ććŖć ā ćć°čŖæę»ć®čØęø¬åØćåÆ¾ē §ē¾¤ć§ę¤å®ćć
ē£ę»ćć°ćęä½ćć°ć§ć該å½0ä»¶ććåŗććØććććććčµ·ćć¦ććŖćć£ćććØå ±åćć¦ćć¾ćäŗę ć®é²ćę¹ćåÆ¾ē §ē¾¤ćčŖæę»ēŖć§ćÆćŖććć°ć®å Øęéć§ę°ćććę„ęćÆåćę±ŗćć¦čŖććå¤å®äøč½ćēµäŗć³ć¼ć2ć«åćććć®3ē¹ćęé ćØę示ęć¤ćć§ē¤ŗćć
Google Sheets API 2大č½ćØćē©“ļ¼appendåćŗć¬/QUERY ORDER BY silent failļ¼
ćć£ć«ćæęå¹ć·ć¼ććøć®values.append()ćåćŗć¬ććē½ ćØćQUERY()ć®ORDER BYćåę··åØåć§å Øč”silent失ęććē½ ćććććć®åéæē
ćååć§ćć©ć«ććę¢ćć¦ē”ććć°ä½ććå¦ēćčŖåć®éč¤ćę“ćæē¶ććåé”ćę½°ć
čŖååćäæåćććć”ć¤ć«ćē¾å “ć®ćć©ć«ćć«å „ćććåćååć®ćć©ć«ćć2ć¤ćććē¶ę ć«ćŖććēå ćÆę¢ē“¢ć®ę·±ćć§ćčµ·ē¹ć§ććŖćććććć§å³return ććé åŗććåč£ćå ØéØéćć¦ć¹ć³ć¢ć§éøć¶å½¢ćøē“ćęé ćØćåēŗćēøććć¹ćć®ęøćę¹ćć¾ćØććę示ęøć