From f8f624fb3683f606b608e9e4c37b45d68273f315 Mon Sep 17 00:00:00 2001 From: YutaOkoshi <37532269+YutaOkoshi@users.noreply.github.com> Date: Wed, 1 Oct 2025 14:35:59 +0900 Subject: [PATCH 1/6] =?UTF-8?q?10/28=E5=90=91=E3=81=91=E3=82=B5=E3=83=B3?= =?UTF-8?q?=E3=83=97=E3=83=AB=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 + yourwork_20251016/discovery/README.md | 11 + yourwork_20251016/discovery/customer.png | Bin 0 -> 58583 bytes yourwork_20251016/discovery/customer.pptx | Bin 0 -> 82677 bytes yourwork_20251016/discovery/solutions.md | 36 + .../prompt/v0-mock-builder-prompt.md | 591 ++++++++++++++ .../prompt/workingbackwards-genu-prompt.md | 462 +++++++++++ .../prompt/workingbackwards-prompt.md | 462 +++++++++++ yourwork_20251028/discovery/customer.md | 14 + yourwork_20251028/discovery/solutions.md | 82 ++ .../prompt/v0-mock-builder-prompt.md | 591 ++++++++++++++ .../prompt/workingbackwards-prompt.md | 738 ++++++++++++++++++ .../sample/ai_development/customer.md | 14 + .../sample/ai_development/output.md | 0 .../sample/ai_development/solutions.md | 71 ++ yourwork_20251028/sample/security/customer.md | 14 + yourwork_20251028/sample/security/output.md | 399 ++++++++++ .../sample/security/solutions.md | 82 ++ 18 files changed, 3569 insertions(+) create mode 100644 yourwork_20251016/discovery/README.md create mode 100644 yourwork_20251016/discovery/customer.png create mode 100644 yourwork_20251016/discovery/customer.pptx create mode 100644 yourwork_20251016/discovery/solutions.md create mode 100644 yourwork_20251016/prompt/v0-mock-builder-prompt.md create mode 100644 yourwork_20251016/prompt/workingbackwards-genu-prompt.md create mode 100644 yourwork_20251016/prompt/workingbackwards-prompt.md create mode 100644 yourwork_20251028/discovery/customer.md create mode 100644 yourwork_20251028/discovery/solutions.md create mode 100644 yourwork_20251028/prompt/v0-mock-builder-prompt.md create mode 100644 yourwork_20251028/prompt/workingbackwards-prompt.md create mode 100644 yourwork_20251028/sample/ai_development/customer.md create mode 100644 yourwork_20251028/sample/ai_development/output.md create mode 100644 yourwork_20251028/sample/ai_development/solutions.md create mode 100644 yourwork_20251028/sample/security/customer.md create mode 100644 yourwork_20251028/sample/security/output.md create mode 100644 yourwork_20251028/sample/security/solutions.md diff --git a/.gitignore b/.gitignore index 6220480..f72c8ea 100644 --- a/.gitignore +++ b/.gitignore @@ -133,3 +133,5 @@ model/ notebooks/environment.yml yourwork/product yourwork/construction + +.DS_Store diff --git a/yourwork_20251016/discovery/README.md b/yourwork_20251016/discovery/README.md new file mode 100644 index 0000000..1ce750b --- /dev/null +++ b/yourwork_20251016/discovery/README.md @@ -0,0 +1,11 @@ +# Your ML Enablement Workshop + +## Listen + +## Define + +## Invent + +## Refine + +## Test/Iterate diff --git a/yourwork_20251016/discovery/customer.png b/yourwork_20251016/discovery/customer.png new file mode 100644 index 0000000000000000000000000000000000000000..d16d4507715daf9f5990e15db3543fe6641f7253 GIT binary patch literal 58583 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 K$+)He>i+?QaS+J> literal 0 HcmV?d00001 diff --git a/yourwork_20251016/discovery/customer.pptx b/yourwork_20251016/discovery/customer.pptx new file mode 100644 index 0000000000000000000000000000000000000000..11d49cc36e8fdd39e603474e936ba7e1cf2bc455 GIT binary patch literal 82677 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 z z92$tJVs_qzE>{P#&I8KMX?Xtk@2xiTg)CB##cTwb(7C+~=LWHPIO=Pz3)@$;ftBUD zw%#{`iz5CQ02~}Ct4l2cXQv_@7)`QMNU$;S6 zO=O7BJ7vC5anEQ*TO6IZExgfHCF%(7K9nxAg2(-SGRvtN;N6vT{O>=#ctMvu{6b{$ zXb1rvs!0Yxc3&AV9Z^j1`$s7Y;|nNrZmCgsWB|8YA0-dX9bvY1VaG=qy!o8vdMmP7 zPk8GbcMHe6&5b-@$d&Lk$lP+H_TB^it@%ePOO^70NF>(ytPn#KwBW=K>qQUT=b5{|5>?p1{?3tA?!ARd7`;!XDIsR2TB21?;2^+-2Rk zyYqthHUxb;Hv}1C;AFfg<@WDs_^+MZbxwh0^N>%gO%w#VP`^sCPY_L#=g9dbP%dd{ zjegry7|>%j7nung3H@><1Y#O8YS9u*GEJVMgufU%syF5f#U~k8LdZo^p=Tj`?(>Ta zvK?NQn}JdVX8ih(AG*I0MH?dj?u48DXKcpw4>seqa@zRavU4-_1&`s|(?p2YVi~Nl~gktii z&>VeNxRE3(F?)fDm#G85b@n>O!!YLHljl z3T}Z)D6>Ox3-(|vuO|C(abi~Q{pQEBfi)@A1yD=;ESg(ebETd-^lC>5xi*4^gY5aWY=Lau{Bs^h;J) zr9!bdqcq4`wUlXYkTCJd%#@)u|5}`Z3ycU54MMkc`V->I5>9M$s(Q|?2rv%S*wMT( zjU==R$QZU15Wqq4t3In;oDHY~T#{`thL&&kySUOvZ8MW_Jf6_+aMK+NLq47?`3OZ< zoke#gUI-W4kV?_ykBUes&G}qQjLWk3J53s>=IIT--JK!BHOIOw*!1g@f7L_aL|xbE zNf>n?wpmzfA(wG-3jPd~a4IE$EpSUPlfTw;BjWiK2ZI~OLQ9jII-Ymu^V631+l|bs z3qO!cTW!{sJtMB;o&E#eXU=|}9i%puDpLVYt&%8Fp=>-UP?m9ylmt2~=&}f;v>a@5 zwW3!hPHzMj=|P$Skuvo$4OPUQ<>ZO(zzS{aZZ*`DQ}zW(N?z;)s1&5 zy<7frQHi{ld7aR-c%Gj3F#KK?Vdz=gwYcXUgAV6RvZq3EVutF=U zE+!C4v4!*gp|8AB=#}2=fXVWKY(oo}>rH6&rq?Dv2NsFzoC?Z%Fr0G?WH>YeGbPNp z%X;90;qWNwZDA&`2&FhrjG)mB_6XmF#^O>zuimhH$< z!JhNEJo$X{r$;B&8pSE(cr!R2G_}KV28sUxts@Q+gagQ#dL0H&MSQ%eWFmz$9W|wW zhE!!mHO6+XLj-K$SIESbe)PG{ZV}0}-t$3e|6fRl0ZrcH1tX^Wo@SbYh^mVl{=jA! zw~%(WY;_`721Rg~M41P&YB|R#SO|3&Z5Bm^e-mL*HC)=r8v5l!Bjpo#M8Y&* zFTsgP8t9ThbukVhm_mWrLSX!3q|NkBXfJVxo8{ZL8Tw z5eH;c)U@T?@M{ns)%_RPZU%(m9EbqXhq@3HacqegaC&R@!3tk+yh#D76D(1CLK_D8 zhT%aNBqTS<#*_o$J z$92X0?n0Yr&;6M<_OHiv$k_O|=S}ROLf}OVoo*~~&>1GT-h6*)B-&J!!3NxS8n zYxcYtMf1)(;lu@CY-EU+1U4bp<4VHq#LM^BsCd&mQ)zao&>ClB2R{~KW6~d%)&dDz zp!$hi_J0VjwR)$8YZehab@3e5lOdO1u-bJI^d-lb3XH=t5j+s3g+fb=gjGU56v=eQl=9><07_{} zKoFtyB9-V6B?=nmOG5J+`SUpiHnsu%UXgMsr+@p>rJj|yXN_Ptbx5-d!De18nfF!ZZ{7puzLh+k<^V*l!?e}jDay)+eNZusyt&7 zg9G6K3%1Uu|E(E=sZKt|M5wV+w!OQAo$VQ7d(z6 zUHT{fiv1}&mvXkk?M1#yn*I5j6IMC66|GiM7OD^d>XgeNo+8lRLS-d^N)gzC)!IlB zJT}cOledd~udp$iR416UQK&-b$!3!(gen+?6Jj>Zo|n?aJaE|ZZ@I`iRQ?2*I zk$+{2+;hZ7zvYJn$zjpCnF#%=AK7hcm2w?UZF5O-OT^zrr~(QshIFg^PjW)Be@T<` znu=v?c|_#l6XC+N8yi%vTC0qAsx*LULm6xZCKl(VlgM@%r|^J4SyG zbt+!*8wSHe@mct~zJu9;J?oi`TIS#&(e*kxUgx*FyELsw)xY=Dujilh-h%#UCpB`u zG7>7iG2iBsvkxSDt}D4PmfSyVy39=r1^eJ`i_nXTklU>S7*ez3T8=NQBpU3r7TncJ zN-$m($wDI1cFrb=oou^h~6)h--m;IEtfp0(W z>&J7mMbUPez~!8@tKoUIe_C4og5_%SY^&q{yxUyb=eI)PODBV$>?7SD(1}6xER)BT zDO80&eP25dvGO)Q*jk=!dv?;kBN^WiB*kU7Q?7ch)@<2s^8@aDs`Yujwfjh9_VqW) z8#p(+39@^b@#=B=&Tylfg0NzrIhs6CyWTm`uHwJY?F4c2-0>rnIhQIkKC85)hHGS1 z6sja?B*cJotgl(GH2l@cHzSwSuoGofSZGxY;j5yn%618#;vC30a+K;VIV!KU#dE!i z{z>e>UD+gCm5Lqe;6;LF6cXYo$<_AFHMwFDdTkAgA#boaYI@76C8?zzF;S>h${VXj zRFqO*NbxmX)3|e$*qDow)RB84j)}h(+Ft#O7b&-dCX^~4?+$xJ6H?UmcPYbUNs(yV zby_2PX5X@%qN{VU1PzrdNLsx#K-LglfAUipCu7j>5~4q~cln?V2iwB4h*aaVv!jj>H@$kn&095m6KR+ejAnk#oT^+D_Z2 z2@WMA2rQy(6W@7`t{^j=Q5qrRDf?6Rk_NWXm^n|Wq6e94nu^4f-6rH!~MjM=n&0oZFENVh_%yxj&GetR@Vblt z6c~*rz5gCuF~wY!fz%Y4M<7d##!*&H2tXa07op({y<=hR5)sgx)M--IObB2u&Ge~U zE6ezQCW{<)FCQKrze6jxHZ);r6P3>{;MS)dT=`90gqgdi`D|YKx(%RyrZC#X&^>a3J&-??4H1upb z`6NKg>*ILhbo|B|w3er;-A~Tpg+<%F>vKBPvPxa_@U2|AkxhlW|wr2gIQ z;32y0McOC_R6*U8JdJPF2u?uZdA-zP7Nbx(Qb&eez%dxL0$kVG)nS-urmbW1mJmY} z+LR|BM9?M4k4M75Y|^F0v$y|>5e#ZD@ps*Z;C@*Xs{goOJBjor1uRBmNHVVb+~Y;R zp+Jx)_9Y}YO2D$Ee-7<2Z#8@xaDO-aDD05ODz{d2=Fi~x@oih!A8=(In_=q#3xQI< zzx;&%n>G_&4&xlF+>gL%OM3WFhdsqG_H8EFACljm z%8x096j_?vLQ30DV1SLT2qZoE^t#2rB7p>zL1b@e=kf&tzA+4&-Y|KYiz&vfIG?vG zo6)QtBxYb{y-&E)Fk$t*&*V}q!yHt}MSGe1=}&=aXNrsx4?nnr*zLe1V46E2A0*S! zJi3`VA}?tQOgu+t0Ba{o<%D3gUpiK#yda+1qX|Z>$ekwDjYs z7~Gh%N`-^fJsF~rxffjR?UeX1;*u@=LtUteb|SkWiCSg|oVW@usY&liO~0V6Il}5( zq*WK;3@e6qRf6nMJ(;D7GpXeJ>Zp31(v{Nr^}c6YLW`o2=6ZQru3Yd(rj2nrQr$xaKehbTN4?DP%Qp1QZs#<;MQ8J49ApSd%R8e(l zq}hXzsu3<3w3PuyhTEjX{l9;JxuC& zL@~zb4{S5G1N*mOR45gU{9a=pMQ9QCB2|)jynI&^Gk_ZI_{|+C;ywf?|sK^4%9%sF*Y6)h++8plz4PdB(9jx9#`-_fWAT*w9WF-6H%wCl?UK@ zaEcTe8?h_4aWe&?)#0b@>KPsL80Cahmp{ni&&g4nO zmTG@ADjn#+SalQ}m(Tqp7Asx-EHsh2|ySRL-h3jqUu6B}4z_0R4KbQBaw>$kN z?xgz==OHzkCvEuV;}7VAUwZji7vmRiO?F24pkuTS;4nwK2ig(x><1l8N4WJIYzFm6 zE#@9-N_bdv6WcB7w16xi!XhIh*Kuix4!}^hJgbJbO*Y23JcC$u_3_Z-hfJaGKPwaX zTLk8sOFB)6pH7wej*4C*e>oZL%gD=~iu-{g4JgjnibL|~-=BmFholp~iR)S* z;v{JI0+5Wj;eshXjWz3)uddwwz0V;#K_IC-!boAYOfmDD5kjYjX$>bE#_*!klw-`a z6IvmYuaVZ0Ncly!QaM2PvQ=SWzB*QLjNxgbcr;NDOS)(1o)qZDsX?}+RSWFc5$R5HpmGYD_Oc$-jqfo^P&ytZk7`*6ei9na6~? zHwXsWOg=Qm$7GFmxc&?_*$idgJUh$ z0m>ic(JWTX*n6SIDp=|cSMAdKQaWK}hyh0^W*Z7K(thQWkA z*v@tQE{o+%^L)NaC9X+5YO*WS0cRh>4&ATT?)8M^8R(0k)`-sK{diJ@)E1WUd}3YS z&fEo^0+t*gi!Mf6xO}bUV%q|qaJ1ujLB*DXH3W?UbXw@Di%LEe+j1e#Kd$kI3@5+V zdp%7Egk?pLDP zBG;&k*wP|gi%LPk>V)g7_l6fmw@US1Qmx#sDjIuXpE|n^Fi%g9aY4u2Tix2|!5E^y z51)wa7_9~!ssijmC^mm})G2sh9%_`DXh@)p(jK3CwK9+G6*%TpO4t=F_G zJ#?oI>eetRr8#zBC6l=w+*B<(XpCAArL`~hY*kW}R&JItY3Zm+vsPou%y!$c1i>vW zTUJ@aiZ@+&gdNGKolZnzTH>+5635Ta40eguz9AS>O-r9M!NzgHBi5>9<#|_{rRh(_ z^_`-roTqH;Ogf@0L$j|~9p0JYg|3lXGn{dJ7iF4zLp;Rl*O1tFYon`n_qS9Kgk$uE z@nD@&+{&g~x1*7!g9k@U(p3IJV#l;GO`7!Zh34VE;Nd@{BUq%It;61o*N~o-Zx@y5 z+P+V}^GX>$ai7>oVaeB;3F{ADP`}sG6j?_1lwW^G#QxNbcb2#M_;aa}_N}DLZ)emy zz!uz{JbX^{Hbt}2^*3al@6qacyP zN2&GP`pPorekNB5UE!1?f^ljXjuZrx%(>FJ#^&&6he;5QHc-|l74|3oI9T8JBRRaU zw;wIGH_gGh-|RILd1DQ~+6G-&HU=5dAJzm?g0Op^Fn?LlO;=vR^dtVEsR*V)4*x~E zFrzJl39ve*vZ|>wDyPng>{ezct!vn|bj}2uElMJtjTgwp1bUvo+>kQ@TL^f~(pXtE z_txw5SyCsUItiGfFT!ZSSP`wR-ihqql8nWmzVG*{7e2rHDT@w%vnB_di&%^thJvhM z!VOfAv(V`Ti&r`bVO)IZp;q9R4h(ct80_|(R0cW9vK3B?t>dGuA#g@AI1o z*(n6{^tUW+OQTT#<}qW8g#PD*gFkpooBcwY`>j_ObWIsg-oD^S4BOXk1VYYm$3B+C z;N;nNWxtFrqLX(=c*#dUuJ8(5w0=;PyBoV=3Tpf?_p;|!0_%NT(LvHXLv4v-9sFgE zAxUI{2rS?69$=6cCQgvo4;OL`u3}}46wH`f@SRAT4VCTX>MpN;#;=zQ@95?N-71$f z;|?@7?L#(aC4ohFCq-QQF`+ODmRy3bko2|WBhHFel=Ym!O*A)Ss~RPiF61w=2pC7e zj!Gjop1?>q_Wx*0zGx{YtJQ@ZVTVB>yK5k;*LJE%Em~L6Rhi6>$rVW9u{CHP%4W0Y zY-&0uu-7!!cd}9=!W0D?#wD>>#4dfPeSK)jvv`x{dnpKjUWt7^(^MGcb3ImUA6iy2 z)FDT-s!gJ{(d5FgR0NM#uVap>a%x&($&oCVY=6Alue(*}A_iMsn6w;XKoETi z`3_3=A>9a2k~*}OBA8Q^@i-g-|lH8R!Av@-FYxLh%^D@@q9Nfx?FChl`x6WN=dF#eyl zuBUv;1^E3?^CHULJ--$+< z0{E!UYC5yT``){HM(=?xRM?S;-A*SQ;KDzg$WHy_p6d5vWixHB#iMC(81c$ZNS)UC*W8h(yC};dLm`{cSix>`U12mMga}O_sLdgNkvckZDj+ zvj(M=78@dPQm`d>w+{fJbXt*=08ssX{Vz?Cyf>J6^%%!H-reDvE6kDNro?+ArU4vy zq3A10)hn#Ga~^=u{S6>!TMPoCK zM)2FOY~6V?j;;Jwuqj^};>&?|Yunx9HSQ;i*cvaZ5=pyVYtRWR&>@VoY~Arb@;&kR zh*Cl#GCX*Sw?c4iKI}M|2`4bT<~-5XR?aVa6h{aEJYgBbBPw3RkUiQS#FonTj0@Nu zy~f5T6PCfeMw4KJm}|8`^$%R$3HN+_?Sof%604WDLSi~({U_yV_NAqZop_pj)bRp7 zI@v-7s$&DCYmboe!5lt}8xbZ+bvjzAhZf1`BdPX*c~ulaC#32qvw&qaCC!%A+nwGb zzf`1jC<{*SWhW{{Uh_Rvpmyec z*Q^^MNT-=S$v_%dxA`Pw^Yeo7qTA&ps$m(SGzy%US@X6|l{pEPe?PhUoYjsS{@HF*mPgu6f>Uxrk z)phjo2h->@Hkz2h6=Xi-h`au%z&SjS0f+nXI;MwGDSnO3D=lEZ=5kAXEL1>vjav+$ zG*2t}4ysyr#MMp=h7nFeV2F_|%mfCok(;bu7M_Ut5oh1uRFn;`#wc72;}@jHM(0C2 z8dJG-6a-rD*XM=4_s5%`zV;!(Qr!b7Cp}vm)mUHIcCdRdy3#1CuFxo%V1c=3{dOj? z%&%Q-mf^7;FT25zeqW7Bkq+3)uHpMOQz@J)Hl4$_UaZNiJ+>u@2`Lll(hn19Ju+@0 zKT0MF7`PeS#%=nFcgn5XI(`0FyajyI7U`s9z5;@&@Q)NJ3wDyi3-_w zN&@UCGGjt#ddEjWnK)myM51 z$=_7fj6P$*%58<6BzYK%q75L2)gJc9s|SmT)#dxvPan(ZIi`!J!!o6rRjT{|Iu&!< zM>k%F-m!X&eZXx9{&xUpvEeVJjS=HKh5fbdT(*i41n7Zg>4jfl43nXh#X$q28)n_zBfgILpdkP#AFi&}+nLTk+W7K1o@ zgM7rf8L(T=xz4t@7{d2>)j#N?y)RI63?5rxC4{`xR^^mao5=$E-R{D{%={rP3xsx< z!xApi6O56Wpib>g;zGzQ=Z0CsS3jrf!g-)3b?gGjIeY9N~AnM+mgutk4KTjB=S>>s=qYTb%gsELFX5}Awe0D;jNv9ckc z)EBK>*ZT6wgAD-%rXqbFl~ZxTh*F#7UOGAR#H}@n+63lW&Ru}u(D%iIk5vJmrY+Rr z?EX>{1U`^_z9Rys_gwo3O_n5kMrby+nH)GE!wV?QuF4{!fHw$M|GcAX0}=7Zh#s`?M*O6 z6uXuw#;%w5#*&vCepUD2Ely4RGF7B_k$tNCKP? zEw_&&MzZg8C<{9}(oduR?(P1xeA};rodL8b>)!~_ANUZPAsbvU9t|pfb69}RGN>}0 z@__X)IFAEW)<37FR~BG_=_TzZGav$-x)CH3@#2n$EZI{5L)vmBV$*9`dP*7@f4Ep7 zI7P&8QkSKPi=v%C$5Q-x4p=q;Y(PmmEZT0%`;k@TUI{88=>q&5@U(5r)t{DTwy*{0 zq1k7x*OfU+^Z;Ut?0xn0cpLruoT+JkdcCiX9&a~CN9a2~4(6z^TAG`e?O4MOd{a zu<8lQt|BvU6lwy2#%OzY9HC` zMHz#_@OEA2_@gRsnJ|xgkrQ|ZNo|Wv_$-Iv2~_+Ev<4)7ep3bESmw z5=8J2-f5=gVu`?wl{t?qk03S?Z8i2WtHL9n%hg{&1z*KCJ8UEP>Drj6Bms&w|1upz))7=nBCE2LrHP{Lg*ZGO2pP(*MnH3m1a5m zkWn%!8}1OZ=7^d*&)2cza@C?++H53P(m!FsPdq|k7stWOPHE%pqg4U z7zW{2r_{bQYY1vpBTGOje54cfICuTyFaDU4Y?IqJu|XxOfB=%ZF--pmKo^gq!sNF5 zvlG=0{cBaB>vQM2#6*pJwtL6AuQ@nmzlVxnkJ|`+%dC<=zf?>=VV~n;!I;`@e&_LS zi^rv-u;$EHvSaCUn_9EL$zg6?ke$}ZPN*+axH)pRYsboCq&zDj%{wIgZccRWP_<|? z%W+Ji!W?@UQgDhP7^VnD8;p!fz%~F6$+QK}MD@(H<=b7TT#KWk%6=5xOps-j=irbo ztSpa0>_S1+oJ@|j-_=HK>pgt1{wIZg6fz@pgBDdcHub~w< zxu#W{w@TYy&wr5Ay+)fiq&)(CjqYl9*mD#)Q2(YIMaoJss7)7i-wH~JcOFIs<}Z%{ z?;I#>a1@Y6a6Lr3itan<*XR?j^gJ$S;N*c0=Qo58nxsk^O4r?oG zj#Xz-Cz@F49!S3;I>&hzlq0UPG7c|@OLx=>MY4!Nld?tSS6-9nuF>i<@E8F{Jt7-$ zwDlOySR0HrfQ69mL#k%a@#f?}bRGFq8|mF|cOIWU@7K?!H29xagO1I!LQ{v&ll|9| zkBIPh9^KxSt_)%axj!g6P&Z`f60wE0gv>kR7tUhQ@XB^IK z6G^pAIT2GIHPksrQ^p?)htF(o+ixMQm!16!b3fkyhpqPjhVzU5#tG4TB6=?oM6c0F zqDNi53mctXy$8_}C89=+ZuM?;5`&H^RL~^a%OV z?dR7>ij`%zOT$faKO0ips|wGpCzob^hKV&+F~!sGkBYXWespeCpOWU3{HXcv*9I?R zqrC$eJA)L1znA!9d#hXQkj+k6iVCeKa_JbymAU#rVM^aIW&`C_&3X?(r1 zm)7L;_}l&$I?HZS+$1LMBzJo5;r?==yvk=kJD^{)VFdC$F}z_40qk88qrXiK23x*4 z*Uv~k^V*drN6Bd2C)~$Zvt*c6HdHhR6Jv^I3rD5R9f|+yxxQ_kcr=J#KQL^j+}V!! z>VEpLx&_zs`r}}uU*V8L-ngB?WIny{ED4g&}l8fcS~C(lAV*geEL?|MC*O8>!3k}l^f?TM7_m1 z-=n`ijNXX)c_Gm}CG%baxQT;l(^H?_kgTYtPs5s34cPlqwtT$O6DG%!HmmB) zj%jO+Q5C6I?9YuJNF!yRpEQd`Z`Az~p`+9bDP*fZY=8W*hE7OKt7V32!pb9@DMRhf zHpZ(d-YW8$^vUKRp{->Xkf9}^Cd?sLom=BN3OK|2=9X|SC$6#RCLWrCm_Hr4(JbmI zdzn{ViX*UUNS{^NNrx7HFuFy){Qs2K)X$XTPT)V1z^x+xhrIsBE&nfh{V(VIpS(Vd zcMB@tso zPz-0N(@aFcQ!9)qN11~3_h577XKsozq65RuYLCq$+qyY0_AxckXtF+8?vrcPsI{M_ z&p5yu?*@JuOtWtKg|!$WsIXyfzxEd|{uej_C?x;=uwmg-JwN#yj)nE_^FMcCxH-Ib zvK4f4vjsZ{3wXMN<8)uCk`mGX>qM%q_FNwe3l~tddq)HSsKM&v7?}lr5qhebLV+?q z$G;D@e~E(czsi96b0tInoc+al5a;le#7au~Vb=0JGfAI$F5>w5f{*t{O@zKj*z(g3 zMtpfnVZu6ckGj>TXfUF--sU!KwB|7CnQn~ii*Kh@1N0$6`M6nWG5+>Li9LU>xAHk` zI*wmIqf2YUGNdotvR@NVTM_VSpW;G*NC#W>wW!9 zad=^jn`86wuLg>>P(%-T&;z6}LG8V^O_C3PssnV6b>T_)2n#xZ`;+=axh)V2Owy9Q z+2(xBRkv;vA^nVo;YsH$uMeIhk7IMpNY`c^7FKcwPqYc17g)K?NOpP%Wc0M2xR0?q zp1a^2IKDP2?=)y2t9HmyZUDjuRp_ z5!EfuLCTAiHEB8Z z4L`r!kDcFY;O*lu*9plytqj|Rp^2pXg8c8<3@05Fg@%mvsEzM?(ZJT;C^ZLs8+{|z zezBrvF7~h+Srs#E;8w;@>QDE4r{dY|rJ(W^zl| zIVrDg;l3~)6}Q{Aw&7RHhmcVawFFI`%U9|tFPd~1Bx=ZvRo-<;X-Bc6wS6t*d>Ak9!-}yOK1Kq~agX zi?hm@;FVC#B~~DQoEUtB@joLUZw&pW5yh7+{iCRZV7uuNJwczv%Qfz>3NRxb#ShYN z{vusdTO03qbF!~oCvd+k81)FE8WC=H_x3CQOq0~Y2cK~#+lQw=HFxivzt9xQXzQn+ z*3aWD==gqd&B{x7S#@?d+lU|C@QMWam22a;AtvK7`A1o zs)j*7Y~(b?(LE7MiZRDtNfwOlTM3FsFW4pVwIc+Pd>Q z@g|SnIsDGAnS{%#?u*XjpO5h_^eYQ&Bo#WgCd2u#hs_kKZn$IKd(F$DW6;Qt4bH#s z!aj7hvt=@r?+$eF!jnn_?tTU{byqM`-Mx>0usx|N$jjK9Qi_2uL+jdfTrkR&cKf~$ z)+IuEhU4mu@o}Lz23@k>v@y`LK3yjKJ&gXS+Djat?e`fEFML*G4-V`N>HFCh%A7#_ z<`{k~Zs?%ZQz|6sx5`Zz%V_D>S1`KayU%@23DJ8V4`}NeX*;t#Wj-i=>KedYFMOO= z3xjh!R~qPYsC@WswvsCXo(Jlv93)+YfTR{6ctZ{ScuoXeqHnP~s3;i6d2-D0@O1j;*Hz7ocr{CR5GnrGEE73 z;+HK3f?WH(#eK(&D!z{{9kj0`Z#s`3S5bfJ$)^VON`msdj^wWVBjAYy8wCamLlZ`u zQ$rm(81n5{7|9a5;j_HG4MjzCCqeNhk9(0){p6x&`ip< zg6D(mXFPt(GCZm(;hS&eieR|mz4`=yQQ^uge# zowSn5y4Kx5xX`C^zNds};f^Xg)!!IK_ zOvCLm*3uvO2)7H?Oc%9hG zB2_8S3luz367nm4!&AFJH^GrJpG0%LNK0|@Iq%IVRO|O(h`-DfM7$n)*EQn!X2B_H zXDuUE$XiuBci-pfZ|8bHaIA_w%aOq4kT4|FFXOGSBm;sW@}% zd7T`63tm;((XzoG9Clp6(tGZmQFR-QKbVKoeS!sA44yttjTA5)X$P9Uwd-m!_542M zaa=g)$V=>JZ}UB6Tser*d|I!*)AG14N0;oGPvHQ<9TysNs!VWwt@3GN^wH_>U@>|* zx4$$d&l0#ktb|SgPp08#3Y%2fL72RQ{2(6RV;AQCPY34$_-Uh#~{8kOjabfQ*N4*GC(7NxaxAlBRLt(y=Yu4!iti$~EH6 z@IERe(-^SD*H87IRu-X9g1NK*?z2%Z-ma&Kb3r_Yv&Gg}i_(J_bic*u?ZC7T+`=xbA8BCyphlPI1BRkbZz16?tS`$bUt?@!<)F{*JkgUdaC|n+4SN< zu{!FD&$;>*+;PPms2=%jbp=6>7r>H1W=QaWY%NFe)0%wdWcfbEUiVi|oiGCEDcPF8 z;WH$(#6^K+G&PM4(s$Wu4@WQ*Uvh2)lNo__hx|?-l|bwKN+t8-ovf8S!WI5Kxqi1clM(TA@39_?+58_;o#+qk}zg^J}tNI;ltO zc(G+AEHUzLM0NQeuw5~Z0a)rbYTSImC^W+2lp^ zGfub0IS=bDjwyx4{Pjvg(EGR0a$X@U-DdOJ%O4Qe3Ye+-c^7`LyPu z#PWVM1@dG2P}}dY3evzmQGwGMN0Oo~lMtIfXh(tXi1DV+_0~x6i~Ycs7w3?_^C*@F zmpF)g(MRK0mshvtT2GT~+#9Ph>IVg?((A~Esvh-^b})vCKUMzf;MsP8k@tt1sN1ZbSU>w~QGfMd)BhT}Ftavb@`uDcl!gvi3 z?3t!VUt;2m$G!zMS(@CO(jJ9ObzO9S8%~~E?mW3=(A>{h?})p3*g=I9<|J?abI@I; zzcpP=_@~=TR7d|91f3!t@fQgZGiXb5&ihMNMc`q+N@@bmLoIlL3m?v0k zAPvc`bC;z+*grnbvk4wDi;zY)@CR6>%P>^AcW31fB>Y7t1lJjk%JtM?I!`Qj4No_; zd4Baw9DN09ofs_Fk8a|oxQt8UbC@I#y5c} zpRm`by?tHEU&)Xv8hP3I`;9}Tt7J&*O%-7>3RIct{^&I8#xaSVB)5lXcWfPjslken z{>&P?r_Q*yixI1RckTNa9;|P|t@46QZKOrmX#iFG(P-nVx(8s?wP% zZt$8Hnu=(z%={o#Tb(IFn8((~7~>DS@73zQ{gq;CmDhb`O8W*PMjyh1Y4hGM{KKSi zbRX(50T$4Sh*Y*-&?)84%|3qk04+J_u@jqs1aH6=_Q+$E_-7_N^om(E#L#lQ9W(iv$GaP zY{#mShYQ_v==dPcohLnZq{p_kl-WkG(qnZL7v&uR2Q2>Vx9M5B*i&EAcP}V^SQ2fU zwaShSR9IaA4oizXvzmlQ^g)Qtf^p0y|7mie2^!&+w)qY23@=&)9hD410?ZyvSegi@ zarZI$BsIgN1e@sMe%Cw4?fFE#>`4vPGV|7R7NT*#4>jKr&0w+J`=f;m{r&7ejoAZR zH80r0ycXZ3z1lR1_7;BYC0sCy-F14nQX6?k>NIbkDsgB351J#vG|KQ`5H{d4E3G_l znML1-9dSDPX>Q&gOW+_n2~g2P(!&|hjwQ=P&4)$c24^@1WZw~|Tcahs)M14LPjOBu z*cBy}<&g~*ZBBOR2^*Kj(8?~u=6DQJ8}o;V#}hL01}#(DgG|nU1Gt_%o!-sCCW{8M z8Lc|y-o2nOWAJo{r=RAYjnD=IY*oW5TSN|j$BGc?m=`JsMxC7CkDps@{W@Ig{ti zA|XA3*K*F*jRe3I1b<3lLV&1pU$_+MJY}wTrmGb01JKBIKs@n25Fc)Fk7nCNyHSa{ zGuF<^+j)&sp16a3wa};G1jp*;VIL7A|6mv>yAnpes6+Y`iYYd8SBQY)kd)u6HiMySw;B8nzv>vQ zvE5bT1d4SuHpF#H$Gv|!A|Xvz;~WDVXW|Ad*0%7ZLzS;!*nF;TVksy<*)40Y_M_y! zrcE$b-@+=|;?UR{7Fg}U=vMCd%5FO9YuaDC3g=5wG?Hulnn8Yxhb7|kIixDRl3Px` z>Th^EzGjG%L3Mo1=ZDv-4{=79Ob!ES=-!Q^uy4~BJY*R!nZ{F%oz8uxRF%oG+x163 ze|T(79CYjXgIpivnv>C{V&sz#sEVIeP3yAx6wypju+}CXGBeuy|Def`tyVS_*Cw0fIBa^z>`VP#rFBxC1}8R!wEZd|BpJXfefSG|h* zqJbe3hA$oV$_@-%G>RuEUq%xYycA$`^1jr@T_!Racw-f5gQlUt7KQL@%l>o9;vLz_msa zG+iL=x)PGRPgPJGX!sQ00l;GTmFZ1`7YCgO-m+QUd{{k+ zW)T_AAPxiQ#}&KY7(0E$eFtGdn>VkL(oD-FocGrjJo zNsv`m35E9q!WiU7H8N1^dGLnV@MO+w<-=_e=W|_Q=i@nqJ%DVgN3PNQn65WW)KFd8 zKE@wnAm}_OBr)C%!l;?2X(HmsgEO%@;uG^dB?3N~a@0fU#bS|mTAWT;0fM`qV7szr z;(X@L3^L!rQ2{}->5|EQ_=}8QcLtMgu!{-4b#cAQDawFtqNEihLC7waxqBR(sJACYLqJibg| zk-#iVHw=%|!SAX^FuA-lx4Bp{50Kai?^ia*J}!ROEdS%nfHR2=EDwmsFJ&kHl09}3 zoQUn|Zq@$Yj~7dXI}>NlZfD?8Iv)|LMM#J#J?92d-J!E5sw%h!_ut*_Sur(b)-?U1 z2q@K4EACdl5a~*7WeFMT1u~5%n9Xzz+J{6vF~b3-%>uHIJ$O0)Ye-GmDf_IQp<-5O zWp)tDM+(wqBzfPH%OYcrkmS?Nk|z1FKw9-1YAjtK#`wVvh}KD7o_?_^IED-77xwpH zr^Qk%_sPpfkvuI+`>#+dG*CN;0vG$S75H-i9Ym=0vZ)n#ERbN(z}VynIqh{Y$x9$i zJ-|rQk7m>%7sMr4vpgCgJfE_${%tHbGnqe;^f*c9XITu<7GJYtBz*(wP^ z?wj}@NDPBAPLG!ZtrPbeqAZ*5Lvadv7UGAt`!uo^G7A0)+09BI;60bj-j3)@twki< zGRW9;Ov5-QCc`i#LtBmXJ{1zXT4b*y&GaW2k1d<7?xO71E#&4l=m|80H1hOM$}p_o zR1bTT5{Ye@DLvxi^yh|gDYQlX`%9~_n@@XqPb1(*h9zWQVj+zDZ{aDf6@U@pYGs9D}X%5>daD1qSiBH}#rNM@S` zxq9V?;H2h2?0@;MQG~RwtztvoTbE0X3<^oGNm`$V9 zXVMNQzH&4851$L+dk>6Nxl+sg%#ybDDIB*bgB%L_eaD&w#(e3XnNxTexml%42IvBjw9`t=$O5Fz{&?qkT0FL>PzcSq7c;d z14i%1GrQkZj{3N8p>ssu{COcq@6koA9lwE_G6+!;50FZ1fQA_xBCEl1Ynl=8b6hA> ztb9|gmhe|CS zJn7P3_;%n6Llpo~Q30P-=PYO^GF6-8^?ZiQ)UWzJGr~)c8DrJ640FA+*M^28^B+Sx zT;$@|Jb=~@j@Ryc#OLlXGgVMWL_Tt0e#A(PWP+1OP^Z858|vEcDC^It7m&uA&o!AK z3IOcS8A8z$h_fnj@ef9%`QO<62-=6tK5Xl5_p<6|fpd(vgCpRr7}rnq-!p8;w)F{d zIzmi8*X8w%1X_*Ef7+`Lc~fp@nlH_`g$kIKdw@JZ4W<}<{{&2}FRla{I94T6;Ffd? znI}X^%>i+tv3R2&XAdmBo(Ppki1LM+1?nh&2Qnw&Uqoz7xuo8Vi%s@aepIYZmWP&6 zGX7+~tUJ zvw{QFJ3cL9B=WS*oufVgu1A0nH5;RZ2*hg{owRlb(lcvU5<{YgT%Wvd;Pq?|H&lf1 zds$x;cy8@i3Dvn-)eJT5Y}#`1OF~1MpNGL|4(Z88p{$wnO}~s zrt1g#^?FR`?M?J{mnFG5$JyVp#)C9vw26ea6n++9&V*j4qpJW-fZ8cSQxMCi8bvsZ z<$nT9u9ZSbAoE`yPy6M$?Ny{KFN@?rLzMb~gcZp&ke9Sjqo@skwIaop zb3mYXFZwZfhbsh?NYn9rSFklkAB}`}({K692Ymq3XA=q}UCQ^v5x?#zc-{ev_t0di zVMOuLAI|)>EFJ%jizEk>Er!7CW`Tdt8xBhrefCDX0rjjQ&WA!a5z<)tHbRa6nxhd+ zrBU%LGsY@s89_?hXVIC4{tLGr^)b#)w-)D&B-#J82#7x;;2^XOla7!i^6r+60x3RJ zA3W{L12#8U~QA*Wx%^!g0nI2E%#m-U@*%+oIM|r&OvM6NdJ`W z65h)C%QPg?*CaCpV*(w)?*M%=N0{510CO(xe~;z`0+|LmUnbDzw&+le;idd3$-G|F zT_b1cZ?O>CgqL?ff?!5i{r;Jj5WXVs{;w7dA-^_@BunE+Q-o>2C)kolUeoK@?9kwY zn*bo+z^qeheDB#duxY|MzmcFL8_)ZHAK{M!#`A*NBxP8N8^*7e@c+!^fLAQo@H z!6|Bx0PBBs_+)F-=lyjRVkC#kH}e-p+u{y37oPW&wHsAOSY# z6MgZ^6dQLxICEu89@@loY~)$uZ_#WTF;^^g}a!{y<=+ zx1cs$OK9j{%TH>fK(k<$LYl=4lU>*xtuFw*SziE3h}Yjii4-pf)&hRP>H6sg7%}Y( zK4~mWTBfOVl{3BlRx-Waig?FH1{lV099Ize*a9(LzXz>O>5*M;a*;ev`2JV?$dN@L zr=CDqjH>vosROW=!E8*f|HK3eyzJxzFl^1xcKsIKX?ml6+0ZZ1@$%?_ki*NW+wum2 z9UC0r$rbtue^TV39*rNw$L}x#1SsDvlZ2N#>GdtBk+FSK6PgLQpDsVpP(42DR26)5 zU$7Z4zh)F&`H-!-xmAPiVd0@!z|}4GTT_Z!;|G z!-i_AM!3*3frwTXXWRMWy}ARnvf6aFDo#JmX5Aw;<&Hql*5Ho@Y4|tr1UgV2A^G$J zWHS%mu*wx^j?+6Z+x|73OGb?yjSZpWp`7?`PB^~5}xU<-eY+`;E z8XFc`DHhu|s`9k$hAOgF(Dyom`Z5Ae17reAM1D8cvVpc_UkB&#m4RxNKY{lW9#6)F zZ}9b5sKQ);Orn*^gjuIk@IUv(vc{yQrmBw%ZDLn$Q$OI_qB(EjPx{?}yXxXe^JNio z?JC#QXqc`KiY!pb!FU)}b?UpsC1;nt)t+9U`O~TJpwo3@NtAw((7nS!ov+q#ykOax z&GOu$U2nGc2jGv*T$_aAXc|P>EFPyLz%%cB8_h}QgMg`~%mLv4Pe|JWbMV z7h97HTf}^s(|mdNzmIm=9NtHmT2ENlFmOdt^_Pt@GJJ6pfiYZ*TTQAZiU-eHEO{V4m#@_Cc?UeUey)hN zW#{AcZkdZn!tvX0Dbv=(vrM1Yr&QX@<_0O1p9KQm5CHvwR>bQXVZTSF)T?cGjhi>? z5G8f}&+uyLNvJ6Z_Ek1DVtZLNrxd-z!;CLNP_VprIC2*uka1zU2>{aiQp>$)TxS0~ znDY(Kj%AO{(r|KzMjea`?WC|>c+qJC5M8*cI9_mx(^YV|J0-L#3mC zlsM}?L{Ml6$v!{=Ak2p+Jx#&!*4;MCLYtq7AJbhaITilA2OhQ~ry04+wy4r+y~wLk z@FW7>|1I$ajTNucuv2izA`?^_#ME@)3&(xC#%GfLNf(ZXr_x=vv=z!^)I|(Z3o-cH zHOTq>4-m@lZ42+_hL?6F{kW85W74KXQrpO8-BJLg7})xDpCN@-3;=h5q_c<3AE7@b zV!!dB$G@qNa(r@`K~xiDKs3`4OGtn8rKyB@LT)f?egEKjQv_wLSa z&+`jovbgzTEl)_VE1ipi#v6NGbTh~}aC;Rl>I$0A1LC54xl##MLw8I-$ZQ_7m*W>* zW*Pw}0d>j$D;etlRY>Dde0!L4=Al7OjtiBG*mTtU@g5dp^q2`blDe7)N!>joP(KWyNPH)nVHrPtW zeGg|=oeUGwU}rY&>E9b5R=`_5SqfP!0UxD7ZAl04a$@BnAl6IGDs6n5NdKL&5aaKb zxvA4Voa?0{N%e*@)Ijm0`po84vqiu2YR)tb$&}LvOa{oiWEtAXoypK<(h|rJvH@AN zBr71r(_T)y5CPNe2@#+~sM8|gMkR+MqTF8n(o`p3T5P|)Se=?P1t={hQ&=MD)uB8X z6D-DF$n+5|G(gQ+<$egN!66uMR*s)8qQh|TN_c-=7mX0`Lr34+xQ9D; zRNp%O=Iylw;;`yl;pJ3`*fAgb;)h>R3pgkGm4h1OC_{upG11neQ`0HeyGwv{HY`=~ z6xv1kqXdAPLV8@1t@FH!96;rbuXNmEFl@`fu%Lu{U^zhW-38`J$dF>6MKsV?ob0CJ zY+Vr|PqaPpIFljPOi&sG!5S6zN7tnOQ4E9I{saq%3jg7QA068lvPsLBAiG8+Mf^!k)$0;|g1y)04f2wZPMD&%>U z^Bk>A4Gd^(BIa{phXJllYf0tvhVVKt3g-Y?Ye&A!M0Qe)IP4H^73aB zW%vaxaJ@zMxJ9SGqx8=-|4q{i5VYjXlY|Q&s`Jk9EfpZ6w32Gh8lr7f{rf%gS12Ju zR3L?*hlD@YcC^i5#{&K@_-#mqagOQOXF|-Ttd54E`5e09%wDM>y`#+td-2_*lq^8X z8F=SueWgjN2nHSq7F}E>Kux52*OiQ081dVesMR+$(+^=9VL4|{SoJ`7$EwYc+B%J+ zzJEpwJ&gI1UXQVPU|6R9e7X+inYeHPe&EWqlkYofZK#HF-Qel@dZ$Wadv1I?XG z+fpEXSkc3a+mG>oFho{>AJ;$d_gxzhK{%gj@s2@iKg&ERhF@Hd_>Hi|u2z=kRo1*? z0d0J0%eN138NR$wqChtD;}Ko{^rj4FeqLw0Gu&vwXLXjr(30wxwg{S@dR@O?u>oS? z_V;I7ddltV&gC^#jOqcZ-PODBTY%GJNW8fOzEQnb{Iy^gSg@yXTr(ggtrI5g&js6p z`MwAfv>BEUxDldHkgv?!i?ONU60W>5<-r%C#RH8)7AY;l;MkRTwSY3P#q>B3_gQp1 z9@9lP!xBmX>1AzJa~^WSw$AeQGHq(^Q;saoZ(!T#YLw6ZRxb@fL2?NYJJ9SKasSWP zilrMiW8cVRD$-j8P>rzVjh?0-thS&dX_;1EHK7@yFO0oHFPbA!i{lOSHe2mqUVv=V zP16!LtKufCUkMF`0&nx#UqV-gCqC~=@;vM(bj`P^QBsx;?=uj;5wxEF=ih zY(bqIW_2yl`DHrnFqf2F%`na7FTktu;CFM&u&H4Kx^R{U`lp-cOEV~ND(1tB(-ue; zppiwLbF6Ehh@MfM0UW#~>3{5+wZz1F| zuOK@iCjMd4cLr5Y2-! z*R^P+N{I%5T0>L+>pWli8J@C~UqKJowfSWceQ$31RSZq>=dQ5D$ufGWVCgjqLqXIY zOmFF0R_RFWJk&ScPL1x1QsU*$vRP>oqJ^gOub*1yT2kc^P?b2*WFMzAD+qwa4nNFN!b>&BCwuaXhuO{TR^}Uq;i&a z<8ae6peXzNk3>@Kc!eR;b14&+VppcRZ?B?`*z3&k0ueOZadaZHrsw^C%vWRfLd2zo zqSWK%Ob0*L?Op>f%NGf=0t}g$=ATdkKC5@$Q&%hO5zp9|EU!5FrTGkffuvI5v~l8U zz=uBv^01}&_7!_4BqRViH~vO8JS>)G4P`cYFLXacDPrLo3FVsJ!8w9Kh%g7rqwwvH0=7e416J&QRO2Gx{WTP zgY+ps-UFUjh6l3kGmq(z4$_%Cu7yu7Z3L#Ae|>bQO0K2lFtnbjCj!G4#J6sQF;a1! zhgw`Gz7cRz82LB=8v-yoJKt40o0cC=5Oj!UD|eXHcBntCnw&{oSZrS|6DLRldnY<( z-CAa+0_rzVuob*1zg`=99>iK_|}5Ml)Mi70@L zo9SScm1~g?&-}o59w3kzX>&?I@5{8Bvz9H63#~QjpQ{)mQ1Ymj)){Z#Z8uKy0jKw+ zBrgP69snoK+U zg-?#@Fw(WW%3Qv4{H)TZ7hqyIb@B|zajBBOd!-NLeFXWIN7cl-URBUfh#1)vk!Gvr zWG931Cjp$-oH<^@Se0?xev%sj#E6;|VU;k&!y&-laHsOAp8o-u6(EWrD^F3U=yACx zXk>M;pFh9-s2W?xkJ5`QY9zKy1^4EWMlz5+7* z8NkEFfzK0koJy`Xs}&_O#LpqlavhfarxvJq?8YTb|s<95Z@os)hhZ0pX{XR~AjtCgWdz(KN_DgX zwsA|1FmiiG!pU)HS~9-T&2pug;tVI*5tZb5fd>s_QSmFh^KQmg6t_LTblxw|Rr~nL zweuRFZd#Bi$^#5Q6~jhm5bM@G9DN5*iT$^LIIQ8uuSjki89*UiEj~ZXnFH-kW7k5; zeFX$DtRHZp))nb4gJlFjdGW8XVm&T20xnO00!mo-5GHSzen}?9CXb;g9eBFS!G?iC zWo9+P3NP%(Q*PF==wi8iN_w!!AfC(}Wm|3L8%5LP)|<@8T<#y5szUfA%2D3uqa3$R zr?IXeH$wpp1%eV|WJS8nD{+5J8I$o_WU9OxgL8O+nScixd0zX?#@*45E?Q8z9gU*w znU`hf8`u&Vzyo$m;>ANvV@;Ocd)Hpp3@9wQnIDS8vE_+Bz%>f@FEgM$G2gzSC^Kp$ zk|-uh4w}wj@Dx6jfN}TNn!K}5I3lGH>OwPI`K?E1S$pHx;bE;3geX?q=1~rA;Ised zbLrk2bNyoWNVwGMK&`!evM$+oGsDBwZjM^6@V-CpEv zVsg?PiW1Dblj5!ahf@!5I$Q73_gFM}@KX!VcuSSevk?A#m8sa|T3 zpqRBKR03ef`#>^0BH!<4Qq7rP7jTJeEbLpnbl2v^WrbO7{+uAGXYoYklV~xMaY$A! zVQn)+fm`J-e+DfwEi^2qa0>ks^oi>(miJloYSTB3!@>yon>KS-l|CG~Z&mjcoite5 zNP+s+pdi>c!CdgB4icWfLv@279C%v`+x<;@WCVOgG>m4E^f0>rJD=Ygk@5NDkma>pz@-9U-56 zZR950wF<^6;R(S4Sm<%L5cAEY)G#$r0YLC2wQD56wp0+%MB8h^G7X-#c0A60jTIci z#utKRe4e%U^m**v0i(IDKYUr>^2bT>_@46CC=!{uR0a3MnS~+wm5UVEdV|R=qA|Uyegn zPzAlfzkZfGAZQ5L(s>47hCI~aFPSADCX`I9;L#7v^LDLTcm+r~&)O%Wc8$;bujN zFa;s?{5IcURe{jOFIdKZT7cC+hywr+SKYPV=%Ygz-{?&h$)&g6YMxsZ#q%_b$Y;Jc zy=4S1WS5$e*)&dkO_j$xhU4K&gwE#5Lj!I-E(b)63V;m%z8TOVuv+LygYcgt^yNs! znPr9fX}BNqWxBlDVLOtCkPF{b5j{P?w3!W}12#Lbo|c2gF}qh1>^Cs!K1NMnyZf^> z8_w@v-5>|tccm|S0w0p?b6rxLh6GQ`q&|9@W)w17x99B>1w3R>6l3MC)@i?5rl&Y+ z@3k4&ZC=j(lIvg|oCXytvpaOdBlI2~B!A6Df2Hs!Si+o`QiP05)+6atP}{`RAa4l> zu{Zz`4(|hScm{g(fPY?@yw9Rf<4rlTppAPtZnNs(hjk(~WzB~Cn|iIz0KlbI)D`$dPp({B;PolD5Z9C&;eEThW7|!cf5l?;SYMj-rf%&4i-`U2 z?YR!(-r56&Gq9`*MiRUv7)~MddI!di=4W<4exu>uBoU@m}d!?rR`H z0mlGFa#}-}(SmBeuD6Qr{9rfT{e_%$;tZm5#|^;qwR8prIQ3Z!gGLo2>_k@Q;PW+` zUwjjjLPbBK z3t5?X*+GEW^w&H*5^#&2T2{%`yu-DY0YF+^$cPXESP&4<307S_P0=>#P3R{6&SZGE zDcsuQ$b9!xRS%;gd*NE^Y}~T`COwi6y9HQe7nsQ~kQW{W#4b5tvnhPaF*SI40-)mS zzz>#<*!qqUUxXsyB0C*QGp^s2)7g1=nu*}Uc_1`mHB;W@EFjBEe3x4y1Sr2k#I9?6LGZ9G4c4!F2*rTatM7#5@{eFG0?B1pvsr3V{`%vI$$KxdqqC&eGt@MToE^26M!LN)mC!7woxhw3U zi;|al*=PiIF&}s6c@`gVCQ=Jn484_taER&H-16O>E+J~p9w&BjTM$24qC<;D8DQtA zH#5HA>8u6Lu}shB*3WBzgOBq}nCI7`S#mRW$5+srM*v2DK0+5P?hf2ugw z{Z_I8D1$>@7uHhzz7HiG6}qPy?^0i^gl#f5w|KYwBjBTZzC0ATL0I?#&|R!2hP$nShMmqwi#PHdnga^;F1^%ZHjzoigI#2O2~uccX5cWc;HC@9I*i-@Lzt z0CmF6l3&ua)v#(O8O)fcXK% zv3MYqv7N-f8i7n7K&rPXkv;&?HRCJ;hZStLKnVIL= zGqd-ez4z?-%r^_JbCWgUpG+7Tgyq=TpWrJlo9l0Y#~DUzyL(=_!?O%z+Ov2;3~^lmKupNTAryv0SJI z>Fj;VYT=}ES>8?z5$kUK>cLRe+~li%lUZcBYMlrypjD5@nIrkt9Iag>7s1K{wFH!+*zLIf)+%d?Q2 zK)kMyvFL!hNG1Wd?++r~BRTiM{i!@>baGR=5DDzIPn61&^$&*$M1A`Mx*|<+uA0ep z(U9S*be8{<3&5Lj{qvZ5+^!r1Pg*ZKM=TU9vn0~q>Nr(DW0*X>jS-a*lemJqb*9|e zLtK@(Yu|FklXLbo*p*k-Vnp_9@V{3~Dl`Aupx53}G_;cjqNUrfIfVgow4 zCbmAs@%K3_TZl{W#~DMj+xMw{Pvv&d za_S5?rsZPF2!Ce>J7=KS>ECaDC{^T+XU0F6d%fcN8z`xSeCyOy%@Z{v=vZx<21Oux z!5Z3kaHZD4gyq93qH&X7)o3wo7apP{u;Ax@jmh{HddG{&^J5gOAFCbPkI#Z*C517#bZ=es zX4mEqDZ%cd-WGeU65)Y1@FU|AclSGz{#IbFp-ByOf0af)Nr|5-j$T{m4!wNG#ji7U zo)}8Xz=*R9*g-S&`jT_-SO$P#qQL&>79_DoD_Seg?_4H`epa|rUB%Zx@?0OpDkyPk zMzJ@0U{sl_%p`e_NPKWfI55-X&0Wxu$jY56KHicLoG^QAF?RMh^VBa=;DD^1f2c0l z=~*FF$R=w?WdeiOoY{HkTxqW+n<13ET$4M~WSj(c#KmdVJ6z5I-HCZ333tz&UDOy% z;^)cUBJRi4-`~jd|2#YJ%eiL|Bx!*(5$MHVZ?G32R@!t2f}Qt8UM~?L;fc3Bk{)U7 zhI0yB@r0a1*Mds6=JSMD9Q6jgb0gPypi$HvmufFnV;87(Mpv(>(aCK z)b#0r@%T5xN}VS*Y4Th4`=f@@;STw6ecCFX)$`r2PB!wgDyMxU3Ij%`F&c~WpdMgL z7h&H@%WC+(AHn>liO7A7dyfjZRN(#lSLbD=2y@)Khz2K*Og;=$J`;_&>dTQz zhkp>Xaos6M+N-MRKbyXO=owsos>56xzg+MG+F$$f)B62lMzQ&89+Cxq&z(x`d0loX&( z7b_pWP_2Ak-r8;xS7Iu`70-`6Tm`mTjNg3F0-5=V*G5fOX`AxDucK@6-cnrq28q>%`b;cWQR@0_|h6m#^1Dl!ww=cs4vZr z?&3)|LQ6c0tVlD-sAYpA&ta-&70rdp5t`hsIt--|;Mj+L8yqSBinOC*Ozf1SXZjBl zn`;QoBR7K_34_Rtx~?joH-WuaSN2*v()_i5Vm<$W0G-v=b}NnCd{zGU5V%tQPOSFf zOD6%Mho|33dv3cc#*Ffk`r+B?IN;f|dSFh$-!|Cr}Nz}Ni+DlzJ z`3bJ{xizKrJxn3XUcvYZ4|6r-@5ph8r7K^KL|rt;1_$nb0M1CDM&je|D*@#316Fkt zK?PbRo1#b|SnIok({+7+110ct~dS6By)cBD*Pi3Ng%;7=int15yg+Jc&=|h*SZKn`i=fc zQbXOwY+;RpewB5-D)mItayM`6KZqUHg?`=Y)6qW7!nA^9^{t(bb3((}W4Vw0d{BI} zKBng&&!V~R4t=LP${DLq0;lK>=ntI91!(_TsTSt*M`2#ic89!lzBmy6xlDOV7ssqG zQ||9v`BydhPIYBrIrdRMv?2J;c@6!=9@x-Baj?Kx5omi~Qh1Z_;!z1AOgtJPv27H2 z);t=~E}m%1@+z}+)}k-Nx+Ke5BTKg*zFnt~7=y{kVN$GDR_OJS$D&=^`BAcz4(6ub z>~3Kxk0F(8UB&KGxmsViL{h95#9p!S0+DXy!f&V%a=`vdNnu6v{>)Vj?6QDFvgc*L ziSmTG&0(Y~JXZeoXN8LU4ImzA%bu{)|2(51oNK8*CX_3wg~LyPhx5f+l~x?oZ8DW! zjuD)P=nZ@cYhTrr=~Xa#C#0)J+{MuLlXMbu=g|ibK8y&yHIMwBoFcjM8E_?rmqznrUaXb=v$Hx9^n}!R~u$SKfvuF zxT9iw9aqY|B(Q7^ymi!K+CKI!Z;(!kU;cIJWe)ngQx+YsL_5LRXp=^CCEj>&T&#us z;zK8#ie>}F3HC^T!8d0TsfK3KGnl1eh>?TvYmG#-x_*~gJM3wUHq@bW_Vw7T;=m_) zr43IpjjZ#Qiu;yhv1BXrt^>O?)YU*G^GFKZZFDnWf)0WhvS9i3(PCZ_b5IC;Q1nk* z{gqhr_n%v@9?ISj7+0E*pAROy#Dq$8y|RHrLAW_gbpUtNVZd_Oa=_2T!Ez`-Ym=`a zz`Bp}2H#Xu>kI@?b-Q-Qt3QuQ6coVwIz4{KN-8BDTsik%lIqp!RH2n||I zazzgxc3gZ?#XgWJWzpEEK8TnuX)6q{%AVHPJ@ZZ@=VUl|%Ur8>L;`yPg~2uBU^W%U z23chIp_i7Ik-UCxDWBH2Qh&5u+KS?Yd`jzAjiwlR>vsnwb|4#+5)@ges2oQua zz%s-pfeon+tgWc_2)W=Zx#_7xJ#>>$g?rvmH58(FJC8T;+EU=$mL9L9;03~vTnTE9 z;tC>LUiFiD&)sC(zdAV$9F0JB$f$po-dM69azA6=-_9P768(Ae`gl|4@4f`%C$Hrz zHx?i;{-0ERp6h6|)u)0CiN4qah`bi%uQ44;HtOA1ojOjcQKv(KJ@K%a<_7iyWXS4D zbPXLyP7DD1Ak7DtJ)(k>0=bwEi3}LXTk45-W(Ax~&YfET9CF{8s?`VKao&HHkHsN*Rf3XHdW|8gRh7Sdfe z$sMD@>-;mKV7@S8DZ}GiY&qa2_%1aUs|Fz(u zu{}oHDt}kSxiuu8?=2us?-hZ|H}%b6KQ?cYyDVVk)}aSib8L2Gw)vPoVJE_X!+X%q zdv*qL%nP!#uYTSyzA`#1aVxoW2X6pwABv6LVb)-5b|i@!+O2dO`25a(7NmX zV@0o-|B5UP^KU#FY1b+au;(pU z|C{?&gj3I{{^UbfEwgWyH9UUl4$IZNB1~xn1tuJn^U8_rb9}+u(Kj=GlXX)&$W^oe zW+|)Kw>Q(8`~_*pV0WsUvXX=jOifap#@`+nBxf_D$=ttPjt}@N>M*;gGB)d_`gyh6 zr-rg5^;lqI&NfB!SkvbebL|nxwgmu7g-*dYG5wr4dlwHgb@bR9kB z95m;r+CVhog11BsJ@_uqJn^7)_Kt(yJ;MNj<`l{y1y2IpTNaLPl7{m^i0%(Z6l@;% zoU18>abTK9Jjvgloe-oMJP77lqCzdO?r01!F1P%99!smJer5%CdUZ@ZL<7y<8||wQ zzv_2fF3H6d{UWD`y+!z|`Zbrcj|;qxYetH`VCYf|&HhP~{hXDf`C&9~tmvM-N8j3P zZQs!vZ*)*(_@~{oY{e2?a5%YBA;wJd!SjjU!NP`+;ohk6Gq2he-M=XdPMG+=O!()W z;Lb;qKh+DAzbv_j%rDP>(_%^x_O%V~_uO{b7)$N23^S4C^xTFea?b@>jF>fxwk6tA z*j8;Aemo$=`EpK5UL!&Baa94p(OhJtJ-wA}DM)vlT{R@rTW>0qgabIOC{`p%VH!4M zPIVO72mrYer*YMx#r@^Vac;{0TUgfcDCK<9+Wv{h0M**>KL_xv~bAiig$`jtPjWhlHfv*pL z5_YgXP#vfOL&*Q0*>6bvWVX;n<>yc;=0=7(e!0V#XTwup_?IaH-wrmLwl~(=wD=M4 zS;cyOKNlZ6K;o1i7}dw~T%R`F5*5zhZv|>rd03blr`Nt+jAT%hsJ}XcbTIMKu&3be zgWzrzOtZz{lO|*Q2cNfw4ThM+ucx`ly-sVCbr&R~! zQQ&Bh7~Lkwc~`hZuGS;@vIz1K(!J;||IlkczFt=%@cNzPofIl-)mw{{&xHNedE-11 zntW16?z8@tk32dSqG#f+3sxt)h{{d#wwEZ!^1|#RmJRIm(TM;dYG#&;7oF{UY^3j#l+;kb3=p@ z$Q~~g-^%v0j|to)Lz4w7G4z|%nZoJ(h<|p!kqC1nB^?QjI#}XwgsIWiq>4=As*_#X z#V9(|ez$#N)g_$1^zt3m5chZPv4S8BH}B`+zJ7U8ay}vOa1hON9&v6j!nbNDMjCS+{rt%$J&< zUfR5hF61o-nQz1SbOq{#UG0k|+XHCSgza>>$w8ElNpjh{3ne!wP7f!>s#9t834VPm zV)m&6xd4s>ilUvB8`JATU`vIu&1q5E^(*CJ7^Urr5XOdT?+5}KGx+-T7CWI%#0#0i zZ#D%x+xFb)1L|H6FafV@5DsH*k%t6gti1DjD9II{fI-6XI73AuJ|2J?s5(}$m1MJ2 zT}&?CN3jT^1*hNFbN`uQ!<?Tbw8 zy25H8Ako4#I3#GTf)VP_4kP0?sH8`R?r>M+9~+Vywlpe|Kr-G{f2xOhKAjp-VgJgL z--GQ7e`jtaMBXLod4}olv2N+vI)hU=G8vyqciy@D7TB?|< z{W;X>aRO^Up4{2wLJ?^P{1V{tF1%9Y?{y*m5jBR*vwxPhP5?Gd#@wEyObHlq_R(2S zS-gW%K_F$(o48F>q4KI@j5$rlXN_$*NpuM-lstkKq8!L|lbP?b6(EodC8ZZfSA8x; z-VvoC&r$4NfaFV=>ckWijdPBZwNfbK?8b!_nq9#X1mZK;>9VV9#r9XhQMWKongX^W zQO}TI%n1@-12MMa@V{(}-A4{18vr)MYWfq0X8m6T;h*YJdkmhqxW8qf;aPs0XKW(-!Esu9{szUllQU+?xLdy@=)}5rU~!Q zII88?xq{FYwi)XJMcBT@Jsj)rdLIJBXs+~T2Cf^Kkd=mNxRllCQxRdF}ny+tc z<&#bhJZZV6($@!un#bDx6T5#C08*iIX7H;EYSzRSgwcgHzc}}`Skq+cMnRqbD@Oy1 zxk>DdX7O@yU(WX&tuIb}r9)EqyWl7t_(IQP7cEA&g>&-Dk4P2Q?|Z#A{7)Vhag|W{ z0a`E1;^U*R9L`)y`n9rnA0u+$L@z9s5C4J2rtpRlO6tn%U-^kf<5;-&7cQ4utYlY(G|D~erQ?r2Uf#%9Sm?&iO~ zh({R(Z$JNfy~s9N*@*lfNs%~)RG4`W>Ve1abTVGb@=tWpJI1dB`dM4&H)qUY$-%}Js(Oxb#AE`LfV{L+BI&VyuGAKpCX+Tv8b&vpA(IC)m%RGZ+Q>2Rt; zj%&6ysO2*iO6~OYXhmBche@ec-g8pDKh=6G#fiklo7BXSknAm}0|{pSwax55>`$PF zxn`hD%d&oV9(cdg)O$BM0{5Id%S;wSjPZ#{IF+UT%pZNn*4ZE08vKs5GulJC#-Jo2 zLSkl{H6FEQ|GM;g6iy8in-?CMjCG9t0);JUofDg3ig-@zi^-yCJ6?CQCPf(y6rKni z^D=1p+mfA6*HejK=C0h(HX5$G?hBaLf} z-S}xT6GsyX6j1gqo4K&kdcJ{0Fd?w?4gj0)Q=Tw=F@&A*`P+W_S3^WMWy_0%jQhdK zVSPHc^UD+L<56E=a6nvyGO7C2Y5N^>ifS=+a=j!vwl+z@=ZpIO_FOgxe(;+714)eT zV4cDe{5z-)!M9(Cj{11k5&UZPI3t1S3QRC=Ha~SJu1|Ea390zR76cmmc!$oJj%}hD z@Xd32le7HV78!Jqlc$yxFi&<1*ER*SZD1BsA+%{)Exf{IK^rgT@rUosZq_#`XQGMU*7Vy6$FovXwl7YYxY!PpOtKjv)h-6_J=Yl7>PPN;z^}w!hvy z_dnd*WPWzN71|0OD(^|I&X#+JYD)3t*XD&9iOCqMb9;Cz8F&8=C}sRrH8cUnc{mL=oQo>Xmxz^#G`ItP z;mnVh9*8CZFf)pHwtt%GwKC3|a5Ur_bpY)%TP;8L^(8hR0Z+CH(p--Nn4cFq$1Epa zMo0)Nu7y~%(v3$pAexT@4D!D_0^+SyXgx*8kVDO{40kz)pc7AS)%mqKOK=gAxrjae z<7F60vfzfy`=cfn#|i@uwx=oB4}?IOPwtiw!ORa1W7*~9fP6pr;S$3F`zFIV(wye* z6hc!h@=X8OUmv{vdtt`bc1i-1I$~(1nTyQTZ;(jTZLab`SOAMBpiW#62i$)DR&Av> zPE3T!dcozSX8>No04!TTKuE)+!|z)p{ojKS8$DlZ`V_bTk_AOj9l!-GB11nf9Tkq_j<)MB>6ppCe75~|LK zH_49y0NSmI#XXAZ0F*{O;lEai+LBz({5Rct@nRxf%0aS@l@|&P@{D$|T!@x@Ar(pb zioC@WRx0U#?>j+W>lvCHeShk8?Lj?OJ%OaUgtJ!6Sm=lus0{gDICwLCTgYM?hhQ6w z16w4r55&5RONHdasXzfl&PyR`X{01CA*Y$J?i6r%VA0kw(ByV`NKbmSYsoz zvWn_QOgUkVEDaz_G!^#> z@U%Z{qr4g_aPB(CG$CdzZWhf7YP5)atr=tjVfXj24Lq8+cR5o2-^&24*}(n z$wDPw17$!l!QfoAylz+GCyzvV#DWaDcCL2AkHTJe11#PRhZW^6tX?_uzaC*y2ZcVV zZyRDAp((=W*>KqVan6vsGG+wF8SGd$a14*#M}PN&8|=@*ZmGzmUyuSA4G6??AWw^9 zm7qVsdnonV)8Wa^g<%&P z?=qwPLhrjvGY2k5KtI{hV>Ee@Arp+HBCBomXkAdvCm*PVHGHV`(<-a&QWyX9C3tnVijbCj_~eZMksRT-V4%Hs#bSvA}(f!OY+5h~a<7-u-iFgrmdK z4?#*Uz5jiJFn^-W3RQjcGF82fdoy4{pSeCewkf}pwKgK41nE;6f{KeH;_xcI#nbyc z>)zM${Tm;2Q7!KHwd25{t%9FM86BtAQW$fWqBhA_U6+W(cN`i6<&WAO>Q|Vwn)wq^ zv%$fUfKAKcpg!kFI`e!gyp}t|{RIhP)yoOW&d?J%w6%Fy>k(+2E7ITvgA9F|N@`C*hfMzx zcv~c2SvtJXvIJb?neFg-WGI_5aoSU4!fYO4%F)S|OC5alP06GraeO3I-!M{qnb!Qf z&i46JF)xmfx(-|ueJ{SHR`yMVU`m!&jXe(R2Rd_In%*07ZivbCIqh`)*e$HZHB}9#*_i*V76Xl* z>M0)@j0YhM@88q)>Ndv7JK1Zgpl;cFzbU(1cjn!#f(<;F*PKoa)S7Ir?|%(jFYS5hyNpccvX`WG$fKZ^i#>7GlK0fU5X5F*m& zxyT4wH;}N_gcBzU-&=Wj-b{5q2-f_-l^g3Qucd948$P2$R{s1E7@DolDLc=GPa&n} z-k*})iXk8OpU?JO-3mzqM3$#z)sAudE4+gIpptJnmJo&zZ4qX*ZpY&Er-_d3#n41vGj4$Uyw+W|d|s3PUPhMI z;IbVJtSfEl?c^xjv|=5tDL`YScKCWSz7I}YD0+fQAKjTKl4M+-MGZS`hgv+ z4?aFVv3TuY zeh|okT$8k?Gzlqueup7eE$_)Il;nd$CMIG|5olnIy*&Ck6!o-xWA&w8Wo1o%a!xu9 z7+S%Q(%Sb%%w{Qno`Sask_hP5%HMvMCSCX%erTy%M(nMT!dYA@YPirP5zQG|v8|;$ zv@9Z2j2LM5huY8xBf4D3y5Tdjgw?8VXT3ao(0(f*irw6+-&S+Co})Qv>4J_sF*l{X zR6aa52_8yl=ws%&Jj&Mv*E~>{kw3=vEZlJ|SZf8(gXKaUpS-tDPYHEtT*z@*ptYUh zJ8Qi-+%Pwp`#g!~`jPw9sG7E}l_O9w2|j9LW^(YbGg}7+-S^hUxGd{VLqI^$l8eLWr>$`+nsU-0Odza=Q>=qX60`CI$PE?*68%9t`1oVq~p>mS-zN@`?@{q#4DR@>1dBTotX8O6_Lmoc{h1Evyo4XA-k zri(*fr}#J6rUl*F)>M?^A-is3}=;?tO5k<_gTnbZUga3BO{3Ek(Et<%@v<<(O%hb z(adqHbNCHG>cwM29p!l^lCRHf^gUlIsmU`z6BmFR%p-L5$`|h6c{~IggB8_L_kZup z`a=P_mcqp$c+MT!XOuRpc%yaW?jYq>0!-c9x(Q!+M}FE0Hd{F87AjE}z~(ZYTD{zxy*(8)f=_xmoX220)_5UaQ!Ty zFLGOu&sH$+2Qj#=spTu?N`*Z|ZHei<5SuB<0dVRza-T`5w(4}L4wYvDo-q-e01s9s zmI~tt5`Nfal35rf3?60q3|}Dn>vE0Nw%^Ez89~1Z$KBz6(@0@XIyRrZD8|;KTmm4| z;Qj5b{dET^SC%^6EO6<@E)Z+zrBn5q<2&2h+~mPnCj}Ho*ERB<=~@5Xa00Iry9TfO z3)n7Of_&pl+lvX`Nts}#^#0dkriYlLS)zfp#4>*yd|Qyoz!f;2?^>9~I_tuq_MvR{ zVBxoD_u{FiXGb_C@}3c>FzkoT^n*XI+x+W4=cunEIvlS#UnXE9h4EC5<0CM;ANws{ zidm`Xe+_>bZD5_b-0*y3{+l6oiScV^YYs5{9tL`|kLLjGz3nM69XCq{9kgAmaVp8-TpQ;9}40hYD4i}kKKTHY%H&BeyO?{s*zM{rJ^MR^59Jd z%t$cKWyv)lL0-p`LeaK07;`ZUGnfk-I#^{EYUDjdgoFrNsh)r(ssl?XXM8sbl?Vdq z*DDGUrmD(!n|r0s=v-f{)*WLq+I6+Uw~>pz?xJ{O0y7mvanDM^1Hm0~)lTYdE~5Yz z_z)Npwxe<&seb~qvx$lNk2JaGUaCY5q~-rW2Jr*c&T=%Uy#=VnbR@DAZ#9Jdu>VLp zPKt|%ws6bR4HaU*Qn2ju08|Nr?Jf-5g}>ZKu!yWpYLG#Ab*D`M&rCo`V|6rX%g@z%w88lly;@Zp6?`3g=|K7h zVc>gsj&NEYKJv4IhePe>GrWIv%xD0GgfA;w`kTao7OmwV1hZMMEODF?Lpy2?;_MWbDP}JelP` zqj9dx4uH&dr7Ugs)`uGHku)MX@+{CKQpa{6;!bKcKjM4^Our+@=URvYS zy+5qENVBZo#xu+?)p-x%^Sxu^)Dy$`qXi3(11&NfMrPJPWNqANom@{vJqMWColI_K zhqcF}xXECeHN``qh7!9@Et*QDAf^gsqwCE=_*s05`!=>J0-^ON@19# zHSgkd6tJPf7@o#0r85a>5Uuall;#nSBejTh4g|K-Daf(N*;CA@IePbl zHMN`GpFenRuNG*;i12-YNB*JH8SOoLkWVoYXpz=IV12RV$|>hajVu^CX!?V>FqEKe z2sAj@c({+X{#uXfh3k(Gv`#V_=n!J!wpPD=V>+|&S)5M3@n+(NnNqMYQB%(WyyvMP z#ws(knKr#yd_N&FSyu~!(_3cSI$@2-ojwkt#eQp)+b4?I@_G1b=As(s^t*4-)hSD>P%$~=xXwY2WiPxRx zz6MsxhF8;94HJ;HSymoY*rB=YT5uwL+3PvtPGPHZhA$J1cl(4A6zZ?qP_ee}xRFSKC;#x2UY(+UALk-66z^iL!EG?dhIkA8U*yZBe? zUvM!b_;CikXLwIMEri@ZbC&UoMR(o{I z<5VzUeIp|j#Qm*FC=M;*e~#|gKdrqdac z?kni>7>T;f%(HXuQ(+N>b4wQ*Z2n5jZxPqUN8CCSF%^rvhX=r>{u(|A_O$pIGLTJ+ zO6zyxRc1SzEfNDzANgAw64ad0&q_S7deb8EleC9jT}jQEM?c(!lI$hJ`Ps7sKQj=W z3*P4M`yw%8sqgu;#qSl)wA^(LmLa1@r6G+=Nv+-QPeha)iF*IZDvwyTSkBcAlnb30 z1n3eUp}BaX>XG}qYJD^`^27aMs5nK6_Bok_-+&Co{--+Fy}(%7phyp6(AIGG6--F* z!P6+aZZdJw@Z`75Az3X~_4`%Bg)#ZXySDLR0`_Mr+Rlku?}3Z23^Q%hV6fsaHX-B6 z_%F>hzVYLn2=VLDaiO!GOt-z2o+%rZA4dBwL)Q%q-Z_hD^=!)ZCvf&6fL&N-;^(v9 zlS1axtAj83vy5mvAU34&yni6OR=JT>t*tun&WiO}WMRqltt4HyF^DuK9$ok&B8cJP zOdwrAm}tRJESUCzkk4&{e*Q0PeAVqU843OOi?yQos=2tuUn~rBjEc>W9<*qj3m^8! zL0>*?`gXQq_R=IB7|~w4f|39hv&Na&k2YNgr*j1G)*!p~IiiS$e7`%kO4IRRA>;Y@G2(0LSr!I2`x zKQZqK0zjg*+>yd$Jx33Zc(;=&(yIDu@*`wqiJ21oDE@^_iR;3!sVnkXjB3H|i>bh; ztm}FX7TU^GpueNkXekh$| zW1iw>O2A-VJ$PxYAzEn|YxV5c_9vO_n0;gBcoS?3uyGt**-HX}R5($lALwJOPX3t8 zJe&BcaLg&E@c}&JoyJ4pJ!<9~JI)65{o(-2CG^9cP;~UII|x~3XHyXMOPI2Oh^o)` z#<0&i<9qJ?@0HZ}dA2$Vz#2hCJrHAn_nbFD%Gn4(MZcDq*#4{}I>OMm-r1t%5xAV< zbk|@^@I&Pa1e0Xidm~^9%1TVGHbfWVrP=-~3x;hfm>wdN0Z*qNR4|s2qxJffeD%rU z1#E$B52-z>lh$7S2;GKknA!q{3LMAHg3tAI`>G8rJTMWzhLb)bDR_nvUL5;irtl~t z-l+`}PN2=zjh#wt9S!`CMLEDt7%uOVLG1Y5+Xj|Oe!m=io0%VJQl0bj;Eb{N2%;I~ z&NOt$m=4i!=43SRKkgs{ye;x^czrs+K}_TnWVf`qPn7G9IYFb!H*)YN?2vbsoAtpB zC1jm^6D7X;IhDX&rfm$XTp<;#N~;3?-+-fgbs#!@3?;}`un2`ZcqSK`5Q32ZHxs-M zhVSKQ>kraL&j+9S3K~4Id%aoyudKr)g*sO#e09%!tKG9G#zLl+EdkI^+V>cQ9wx1H z)@`j5kp-vPN6|B9pMaNt09q{^Nq4OXxFBVHEJ#-rd$xO@YQ9c zydw#`V{mE{3(`X4Akiv4Tg1X<@C^hO9&E*Hd+kcXfnSg0PF%Pd4kAQQ5bLm%qGnwg zOx2Am0c_1agw!0Knez4zFF3re37iZrwGnDfa^SV`Xs$w7Ln>ILFo28tPL{d$vrSY( zw|Lxg*<4{(kzR-GU>n%8Nz1Z#RUBwITMhMUEKX4QI1;@|A-_j2Wn=$@*)1QUnE;%D@x>{ZFXuQ~smcW6WPqoULUzd|WvAwRZbxvSTYFS@ z^!~|&?_ypj;B6)K3GH}aU3mFE8 z%gC_Vf*>0JQNaX_TYNEBAWYz%l1W5#N5iLY@`oGaSLB2=a5Lfq?(f21CFX_(pFtw? zt~vZe4RzEhoHryNSc02a3_z5!F$if+31_FtF&xQ?xK{*Owi2>=tN1qT=r0vOv~wqan`Z!!xj zk_&v;kE^BE5V>zQfej%&aN}a#|FrcKna%`&-*j}amj;r)hO`)+RxX#Qb|S4xbD>9; z#eS-ns@#ImQJ&ES@v!32ser0q6Xek$z4g?pol_ZDWdz`pcg2=&qJREkK`QN=i8|)$ zL?C^DFpZ$BqF)lPbN5IfP6ze`9p>**#liiLs^xpt_jw-lke1bL2?8^B7RVEj{c}|_ zVW?>Kk{Tj1=eUr@5`=6(4L+4YafFn`?KC|eY(s+Sii`U>l0x!8XxNIX=TdLN00Og%~Pw8j5f+{nRe2PFWQ_rY@UTPVhftSB6gbmzw zj#S1lZGiN5*^QvhTo%;_2@n+uA_%Q?c{>HWc$R*slRdXwK9vbbkS2iO4`E&An=}Lw z<82`y@2$c`Ya`Zed9VSgKnM{DGr)t4S1IdGpgWmPAPF{5``gIlEULC5wY&l(9=@}4 zn)}>>_j;1cry&?AMbj2i23P_z85P^IFD}Q%g*?ISVu1oa^+tSJK1n2uv-?)=sShSd zE2-5$bCUFaSCRA%WxqHJb?Vjl-Qc-GNR1@ zbje1AwYNhGV%f#cwL~?=ciKH@kPkqPAZ+6qYfc|ETKTIU-4*{5yeO2Fed%gBKfPHu zWeI`YgI7W(GqZ}C9v<#RVZ8uJF<@s{Ya#a&};OjN(He55Xt4who*QA5E-G{`>iy!^O(7UtQB?Mt}fZGjfld=`3B# zhH8hUiGEc!gUY9Snm9hEi2h0_xVFbzpGJtC(wv_|QA}fXGkJ->eF?|$d?`nA@!6j3 z)F16P4N8oW<95+8j!m(5msGvsC|sW%A1JBhYHuYNZMEMXG|#mH%rq!go>!R7k{Sz! zxeW+>>yu_x0jP( z4+Y12T+xWytM|fe;D%)_L%Wo$KbQPROoKP*xL-_oyc3>u#TG#i&a7^0P+AR?L;TrT z(~O-mN3cVYCvI|ECz(90fSpPsDp`T%=|TB2Ge%Pj^EQbsimm9cIr_^Vhg%pL1)fGz zUtQ9mhZeu3RX^MCF__@?l*{vwtB98R-t+M$rqa^-n(5M*Kh99LW6Cuelrurklc~XZ-&f1nW>Q&=m-c`9b zA%PES94Nv{BUk1f!X;)5++5&b>zD?d05OZk$p3-6k-{SWyccQ_^ZSC3zM5Y}iG1Kh zbC7jV+-K_!BY4V4j;M=*C|TkH4Re1As!?aAA<%y#O?oqOfF&w$$}l`{kmyU;!u`s; z?eCjS{08^4)TW31IWt!j=Q>?yLc)!7+;X*y!J3aqx!%0*RG+tSo*qRNB@N*X3p?TY zn?&+0dfI1u4M*fRkD11wcQ`Y}F(X%V_xWsAfo~vo^aeMv zhs`XQ#T|J?A4`U6k;aJmOc9J%Bx`!-|dDK+q^vj5HuB*o3QpF8_80QxV zO#l4oB>h9a!t;mYESyyj!?Z6f-!)%Wr-3rXl-+`$y)kM?P2XkUj&q+Kiy86W9?P;Zn}2AUa$9}0KNzRm z9{Pc2Qm|rYMp&@yR-OR0X{~Og5G74u@)T#GN=mkdcOhP0+vJp5eLkUnKap|>Q~sbj zg7?hB1#fBX=l(rNqqqk@{=e#lwTR1V7ok>wk3{=F_2O(|Wa8prVhuC5v4(Lv7{V-U z4XsUJ2u<^0aOiCZ7XjK~!=kYNtd*AZx123K($ys=OD{|*!)wFL1+52@xiLKPy0KoH;m zM-N+>d@wiUG`BJ|GkMNoYi$;+s341r^$5`j_s#29$`A;W58@jGkyG})ySf?tLV_vF zN{r&pmsNTGllWZ z0;S4%@gr#Arw6v;wBDcoh&2!Q*uQLJiv@Rg5AG5if(H-o?(Po3f?JT_1b4UK?(Xgo z+}(bc@67DXyf>fSxBJij^A5MWPuHocuBz_SeY$A@Ozc$jVXwDO#DEZzJY)eYlUV)O z0!LO!Oz9(8kfijUj+6; z%8>w#r78;}`446f8f|8NHBTb}GS6+a0tAL$9J;(6KW85<7wL%D%Mk!>o6uOeyE*wf zv;euMlh?B#v4_Hj<9gI)fFoUHfmoVgbjJ659@$wbL~225vG!@E`HOGcW{vxbVc)sb{cQ) z+01_@YG-8YtI2)m^Z)>GeH0M{P#L3QZ{(&y!P+S@KmfTuN(%wfe)MhtWQQCk08}O- z*naWV6yzO}i|B+KJwA5X3j7v_b>QbaU%CZ@eE~Z6BiP&hSShdoI?O&lF&j+c#~g z$ewztpg2C7EYOiYgTwBuVa&1Ksx&^h$PaM6otMK>F-BXXz0o@42AkMm%t%xzym783 zam^!a&Jf|l0;J4tS=4oz(AT6PJn9tn7x&jz;&p&|J)48yW?TUUJUt>j=m3a?x65T> zFPqrgoLIOIbwy7qk;TSHx_-T077-Vn*xN@S(W05#uGq|4yB9ggp z9mG_xSI*C{P)t|mp=nSRbT)m)F!u^AqX6-t`^**CMqftsVacNE_KD4{=2ifhUe|E2 zt_X{`^{u8N5j^`32thZ(siMs^akKlga3tWyb@9Qxku}0kUXN*C)k9zf|2=?k&2ifI zM|Qeq-fMdy63`SE3~8UPo2Nm-o9t2uKv#j=p7YX>2il%#8MQ;P_+tJbWpT#H^YBeP zzON&jFZ#^#`A$;1>^K0xmG)_?0xCg9+9vbSkDU$TxSW#Kvh-8xj}-yRaDVL?yXYE^ zsMtqWfSLZcJ2z$lz{>2Ef-eUVx9nlSBDhnB%&bEDW(K?Bn=EChzj@!|ybQf0!a3#a zbNXhDi-p9%PvH*Au_NC!Y*g@agMoefZ6}3|bod8eAB!Y*KY?xZamOAgwvNog@bA?M z1BUs*cUrUnuiPTI;8i4};$N`)_7+AEvCu5I-9s>zJI)iZ zBcS>vrzO#LhX~;u`*1Yf)-5*a9d!tb$w9^n8Hm((->!v+*V7SD1s0)&cLg}tqXSUQ z_jTF*{pK?hFE(hzJaK^-iZBpz!^n~j9vZ3ZzTGO)9pHxC_hxK40!joVo^5E*rk*`W zyfP5~@EWj)7Iu#B{=JI;u{GQ)Kqc4q8w(mJq=xGlv;rj@UJVv80!pTm8n2@?vo+)# z#OBxS8X!MK{Pj!yE=>IWJ2k%k^E$@B6?d0;%ip3vY!P`-6uQYBpf-Yn=~tozb7fjh zZ+w=`2G`wba7*app20hkIb8pPY-ASzxA=4%yPwnd++-!q-6fxbV4#O0t_C=DU*Ym) zSXPX(;|l=^jUtZyR*|oKxnE5`J^}=&a(CUoT{Ue#@GK^p?t%H09P_>EjvlJN%GU2L zqU?cz3;^vKc=2Z2?#BNQ994qNp~?M=x48CrYj>AGxGs=}(5|(0hL^6@^o%cCU1vOo zgaAaFvx_$iMaJDTV@;jn?7C-fSCH011p3JvyZ63>>%;XePJ!+KP;LkjWDB+6zcD^| zE+!^LorBrxb8!`tWzZzICs|8+B3=B1_6t~gGROv@xZ^D*{++55U*C^6Zc`{;o znLoGhoET{`aCh;7_D`|@CYOSn5=gG`(NB$DQ0qAREr zcp07Lbl%aUr8Oj2yC;#+J-w9MdJD#rMZC4!`d7A;Sq(QQLjw?f$&=p^GRb_efVju4 zU?Y}>o$esT@3UX`PUQdu3bI2lq?ez>_{suWeduw|j+K7s> z6a8Z;?)OeOf9wr;ZwU?PNPp+XZrI^Y^bTx=?qT-@b`TuD?D<-Q6!SLH)Ty}>66}Ry zo;ZftZlCvh8Gjn6Z`p(C_5+nR6Y*65Uh|d16%mgV+2XGw)8R;Ew8-@x(4I44# zy-+oofTVawRQ6=q@qRBM@8GvK1UZCo(%0~t&XfWCAIxV zaYnoBKz{|W123TmOS?<3UNktf4FKX6L;6_1F_JpH--bf z;T=&-W6j3zNgHd{b9JqUfO1w=g|}_(dPET9U*;!K&S zA?huulw`Sj7Nw0s$1{P;E{`nY%m$R<>LT^VC1lU(pi08#7zVGy>Tj@J`uDnF5u`yw z1c;Js`4ZD}9N0(YrJ)=y5yxj1WgT9Agsx38ZB z95r;`<0WJxz!v8PWVh-|kWDnI=~-|2?K^k@Uo>7yyyoJqe^%X1k+6z{bO68X8S^bB z;?Ob>!n9Q0L7b0(@IBt~b+B!2m&wxB*3dd^)d8n@rBur-mZ1FB>&md*@Hk$~^RCIa z8ZPDA2ZIOe%=JLq#Vetm`3vWHjI;qy+!)IjwPAB}!*>Ki6xJS0cLsH7 zr$hXyR<|3SuU$%RR%+_4hRd9Ev4AxeW(EZv=T}qI`8kV5RldiHjy#cCftTjcL5;1R|fZCwdOsza?GT z8)=?y5)y$sPtKPi5&FT|cx&jgzj>zDq(@UMJ1{ozR%N{s5 zgDR2&izU`|>Lc5N+Y*3_eB@J^?Z&6W3Zz(1qNd&Lp?ar&8dQM9f6Y%>nw6 z5`#u5Z5;VX&77RZ0lm|U}9zK3L-N%GBUOy<>xi!=QT8UFtjozHUtU6#zjhO z=*~yV%uGt`z(>kO%E-@ar|)D&4B{ih!Og%$%+A8VLd?Mi@>sYS*hDzkh*>xpIEXn| zK^_YS2!Vt3Jp|z}y+hs+**QUA7M6Enws#ow-`IdCnHkuK*_qyXF%z?aa6mr$J1!{v zi{JZmws(((g_xD=9q*kBEBiZy4dk)@l@=&ud53U_?Mu6LEaJBIY8;XCkTP#UCY1j zI6<7=6@3p`LBRL$UHgCJ0_be*f8>Y8dp0qGa`L@=@V}3c|FbZ5On4IHl7Pl(^khJdt z|NR032gwKp4f6pO4unvL3;+iM0>L4G?^1)Xy+O|b5GatSB+NokXbSq!r1t16{;}CG zWWrUQ7>bkUnyGKA^P;kii(6G4p9|?&`$v;zm<>cn&7Zes1SJ%|m)i*RY{qE}S z>Fw(u7#y0Ko|&DSUszn)+}hsR-P`|jaCmWfb$xStcmMGCuGhPs|G569*niOr1*8`^ z1OyNQ`du$Da95B6qCh~BFhijVDM0Jnqmi=s!=MYtW>grbwZt*A zXdZg};F$V^DyUc95t~59$AXmSRQE9d27rWq0|bWMZP!N)v9h$EpnEF;ZM_Hez`Bk$*z-uAhUNG7jRwIUnT`n5;X2xsmjo|9%!G^KP7mY# zK++4E!v+M7bR#cgpm>2Ce3=J>ks4*{SS%_@!0vJpjgatYN*!FxuHlW3ErwbBqw#AV zLzO;edO>r)yUU#fX}uAbbL>?hjT>=n)QytLeZZzQbPujeP|3NjgD1Dnv z!Y4}$%b^OBEU5w_ynNdg2=~9|q|=dfr`f~Zenq*HSG7bLM{%Rq+Vo0x7(;yX@Q+o! zPIr}=zaFL+m!6?_rsuz9rY~E~9i~&t#(|H@1x;#>k?~RV8D7dr%6|TMUq!~BpVB%P zU!ZA@Z03=hc$efV2U#mGg5#fXTh~omkI394Yd3qG3FU*fav$HPK^c2~*QXJ*^vpfQ zrf$?W%V1MbQ$P3lQry=Pb@)mYKe705q7Q@LED8#&*ls4n8fijGj6;!vo?lbtyNJSKU%yD-TJu#9mwstT(2*YWnXGjXl zAwA=Wsh%YPUc->BGaRye(0k_K)md6LRF)-#{K`C00CFC%nHg&ctK&U(hT+O8g}Am% zsgcSHli1>w#ZGf?f}RHZaXN4&3FmL0qipQ`lvlq7j7e?>e7Etk%v;o@b9mwV#ysf4p9wCEYKOxQQK-uvi9;vRmYs`z* zjijK-xV6ebFNXIKVMa-YIG8hT$SHK?n;KC~svyn=KpH6`2ZT zJQ*2Ty?B|aTX?UBKww#R`y*jO(rDo)x7WE??Zo9_uT31~ zD0~0m!kw$->@0*sTC&dJjjZYz>QkPQdemx0NNY4ZppBRPzIjAUH{Azi znV;jF-C)-)AZ)Ak(;vYksw+R&f5^zKhPnC2~BH%0t#C(Kdm(lkYwn0y9pavl@pYL~M#d6u5=9f}E zuwjWIc@~=QY4sZ%5oms5-mq_gUJbDXz8=n$K#r+S8-{daD^^b{8} z1P$7uI)Nq6&ArggSy9;%_{`ZYI@ zLff$KbMm!x?+w)&X3I|YIIggX=+UC=hG*S&ObdUFsER9yy3a@Xn#lpYIOdHfTSUw2 zf(!6J+F2*|?U_(7*PmQ&>-8Ml{xG_jj#akuHIEKX35iAuAi2;kcqaF8O57R~9Q^%x zz*t2OBT7gfj64R!Fj?#Rk(Q{tjbX}59X{?r)!>wCH8yqFX;(dF+YSduX<*|9A4L;A z7-Roae$l43YR{+i#FDLL%XHzjCHX`+I<%_C|AGS#)37=`7#sGF&OFIZgQ5|* z`H|%EY(B-c1^ymjwf zAhPL+0HJqq>uRuTa5=9Ju0)lnioHCx;-Rdoped4iq1@ot^3i+qo;~%6tF714-q2j% zZc8$KXOTI{o~I|d&TtR)g9(+(7VGTbMj8KAk92uy11(+RILddaWlomj&=|C*CSmZ@ zd599deIU+bMVB?SN(yHjx4y){2Xv$=!w3;xsn`uKKks~1NIMbh&aOhd`Zcu4lM2*p z^F*1#fW~z^wVvabl}d#xLI?3OVyL}qyljeh@~$=c>fj=g#DVClxCHEBKy(V;48NmEAqQg;z0I^ zg02@zKECYGyt-D)kfztEy06laqpVV36cSdL#5T~t*nm-!Ln4T4ZCP!8^-~)iO=#Vk zGqnt^UlO@dT#1w-IIt96th8J!>zr(0L-!3m0&vfaMF*<5BPX~T%k0IHe5F&~xiTzL z%lTvsBHc}$RHRCc$j`U)3T^^QPhSr5$fvb(H*er%C{}B(azn<{29RR9%N=jZZB<@U zujvig&<;KPjSafNk^MqU6_LfzF~|)8NC}{6iHO~@_uhypal$F(+4K>Eq;iG=3FK(d ziRyR`wMIKXlkrhviV^Ka>ilioGrNfh+#Gv!=w^4PT2#yG4x;9kMBAq|sKLp%hrj%` zhL;&n1VEeWw%;}_BVuI?RN#ob{d-p=!g%H9~JUAFuYr5UbX z5VvH~7&_@Ul*Z zbCJCvf*;LnMR1wS9z`|)_QmdPB!t6tWPxg`c^ez{NES!P^5i*Gad_5Rs(mUG?Un+= zxMhwu!846ll6y_dt9+osl6kgmEUA$Yfg&VXj-_u4;Nh-hN zI(0bR=Aln17daAu7VsqUjSvRq7W1#j4U-5XxRD_tPT_FD&2FRB-55O=)J6vFA7jX< zy-ThzKkow(ro=a-CFrQ84SqL8i@TG!U7vUK0wTMyr-@_HHa3)?g@X0vZlU5 z+HK1l#~bP7va9wJJ_M-=ux+d8A;Ak)(7SCJjcyZT!MX_An0z%sjXB&CB?AxnGnkeh zqu1U~%k%v&^`RTMlIOLJ>F&n|A(2=3e@`*oX=sg{gxPwOUI>O@&GJtyHuV| zYxh8BLehI(>xyNy<<@OHOUuEt$g&XwHHt*ZmUC?uptTQ_Z&0!`Nr<&57S2w}+3_0y zv#LmKEx*;-mami+m+MMIxJ%r7;w0g-+Zu`(;;bO|LyZNIA1-}n`zf1oyLOUz2b-ycM%~l>2D;DF(JWCgC}{^Pq+g)m&eDNx78qqNJG(`l-MK zZ&Ron)gBfF4BFufLX2yz4IaI)?anyN6ep%meU&i*9?tHIc`eZm?&_u1w;Y+R`oHPk>B2{EbXGi(=Ms!Ev>xY9ol|+x@r5~=GQ0AD@YFmoU z0OhXhrA6XzP}2?g;C!-SUL$l3{GRvoPk3g!_`JsMTQaIW8fB5&OJ#MnDxNA_!r59} zN2KW^>JF?O5b*o5jElCi0b2~|Ta9%^B$hlyHbJ>6q1Z7)%)|`2C>avO@R(Gso{{MB zW^_?xn{R-wRe{af(;Ui_M03dHq#hRo?qCfzAyTV3K(b(K7Rxl=jU<_8(3e~po`uBu)LKXaqCJi9~D9e1l*k8 z0JzQo!?pV)(djxgeS3EZ*KAZVKZnC8HCp6P;0hg7PX$vYZqohygcqx|^Mv?wC(dr! zBu19%pZz6qv>uHd_$+CAGhtc;w)yPqtfja!PU7ZRgcQM-2kE|JIixq4Yr3qMT15Hn z^K8s_$iaKT*3Qtku-JNqPa?C#*G(Ac#P%o* z27waesr2=SbwP{=+HW99uPn_|K`7Nb>ne%P z)JDfdXoEGzNo1qLIU_4nubPitaemC58$P!JPsbj!;e0M#ub0wl449JJt4&PetIN%W z`*`#Gslgue!T0mp=jEvdBJ{iE1!co~$7Cn=BU>t-1~4?(;MMNfef-8m?vmxvnrUUwl`jOeF5@w)mHwXL{=Se(Q)mgXH|Bbr2Fqw9z7 z_?LoNu&O?!HPth7or{tEiIjFZyHNtE`;L>UyS$mU8l_&Ax!+5T&?JsLZEOrKH%%$P zgubEUGqX^`&BXhC*lJwIy$?~Ex>+?@o9_<3oj;z8WjFxWmN+2&L5)aGOd7GB4HRI+ z7pvP!*T>u~IETzTp3og-g^B$c5jKJDcy-NhR5sWLYReLO7LStFQEFG&*5JY|@7qT0 zZ&m1R>@MAXOwji;KP9CJwVGEa zy!Z@R@YDw*gR12kpL>Ato@zt|4|df8rwuGO#6`qt*}|DL9}Uk&VvqU?uQ?P0^Dv8@ zGHj*7fWU7(pL2F`>2tY=Qs)3q$8E70GL{nd()w&N>U;xqNM55s9IA>_zcD0&-NrN= z-rLCF?V4dlrq-JHxnx4tE%g>xg1%_Vpv`508j_!;SRNi91mSR0lvRj;vo2H3P#4&%?LT{OE$af@75OpW`7=k{#-lf+h92REX1>7u}17?sU%54kveW-*OSp4jQ0wu zJFOem!kX_k-tCbQRHoKjWd13#C9%Q9F(P;JQ-TwJ52^s}v)xNe8=jl4^nKIC*4nUG zeSQ6TMSvGq3b{Rai9x$XWkVPI8(^HuXrC8tE!T9h{ak7td0pt7sFw)wCNx7vv%`n1 zWy*z{3Yi&IOw2d1SteSKS=U@UcS>U<@v@W?K2V%2|3<7IqFhXnubTCcHuzrk{HU8B zr7B*1(n(W>Q~3fOGs&ZMwZ&8C@^c^!YsL=ztCdH5MpCcFUgR%xJVOg+b5fL$A3h}!GgY{qi$?UELfC2Y6JJOwVWUVEw@QOrk65C4QexaAGd zBXAz8)^~)}Q%GkVce$(oWPKe|1xu_4UTJvg*Adx%IoHau-t~%jUue@JVm7bz1~3zX zcUXapqn`{kCm8}a1n8G{9rD~^E zl8WZdb?7H=O6F^-X7qkHOFYj7a}Glc;I;iE%d|hF)oGO0g}Zm%jJ*C-`Q&C9`P=0> z=oG`XI%dk<%!Qhol}sPqdkczr`Jsed>Y~!w4wfbD8ImIsp%Bn}v0tCa_$ACsuPAXU5pbV7Y+1)lQL1ogkM&~S<`3>9!=cl$;H zq(#N5cZH}sP%?hLer+@HphdgxzsiE1@5`)>K1OrD=4a{lENRO#v}Wz4Soy&6Z7iB57yut9=7zn0 zAP7HEyMFAA+t)vGCDVe^Wz@%MEzkP+bw0(r{8wz=YAq)%UZ{de1eYoSwrMtDZRH^T z#Y5s{Zfu;Ge6Uu)H?C{quy{|zLZ6%zz-YsHeyBN46at=HFo$*?S)C|^9s?8f7n>#0W$^;~xXW;j zCi)%Gdg(0bWI3w2Ak{pOEogbzs=oK)Nf?eP8#yeCXHlhjx{TxN$wP)w|MG+VA2{qx zT8wA$sh<=(C|F3mX7ZSNV^9;!ao(SzM^qTYTEz3rJt%Y7SC{Er7Q<|-B|{CY{V!sK zR2D=W#32Z`T2gzkGLVw`Jx0z-@idpy`OWu92WmsXzEQ5log$WgBOUgGp`Q*j*Aj0Q zWpgb5v!jj`CBNeUMwAVGQ2}*PaokjJ-{1H61_(RjRdxi-^4{;%qPzieezhjo0wTBV zRX%%N#5YNBAkt_d1jY`nM!;o zUr}pgOZf5an((h-61(KJ#pU#@{Va?*UyDVUo=mHT1+_w3cKaARF~@mc)ntwP=58Iv z205@%Z??EY6zcDq>M)pGfy^UVL`+1q@J1dHb~26)I*1cK*oPY4^>yWv6k|mUGt!!> zktT#rh?}7ap>zX|V;nW8xeP*L+QdCqqszLoLW{h(yuVKlH9nsm`Nm;YezbTBvN9~6)&(|2ZPgflW@jB{`xd-PK zOT(ODr)A}DfSQpSsd`titp<)?R58!~B2c3G9ReIY{yGiY{k4lZ{m%L6pIbNGs+dCt z-8SPCC^!9>cQXpw>)a7SLZ9i2?=uyv2%&^8)KA2p^jV~S4dN)_Jn##uQeo5Jag&#k zuu69+fO=N6Uu^HCjhbU^R&x4z52ph&mK|UQu}QW?$>aUBwsB}H3ZI3~XM5~qy|jG` z`z;;u^YK!}gN#r$RxlzpXq~A(HnoSpsNti1nQ|r|k_wm1=rgrTB+$N7ZDkwcw47DDYRdMk);OeZ zTBt5Njymt#M$y+OnI=ANII?<|okws;7tDGO#Dwxy?^KBf38&;R@^;%qITjMD#+P}X z;3=h?4JsR^-P$Q$A#^m041ze#CzzZJ^l!J4i-C@kaS^$;)MDq{Pk*?`VYLNIy*Qjo z@IqB})CN;NQd+v3G%>Q4RyB1w1dV*hI>Rr7b_H*?hLaDFnzAlqsF>Q!0$(IYktjWm z3Dy(A`*E~e5{*X-o#BMc<^j(^Z=bd_Srl@i7I$dL0dwQ#_DrvkfiHCgYE5`>M9Kbg5)q3GpxiSHn zSnb3~3LKl0nDwzy!mbGykRmP4O`e+%P%;yYF@8VXm)Q29>f7Pr*emFi?H^UtXrjt~sUIb7;SER!@x)Fpag*^E9*TUtQ$%2c5)Wu`wBBZ{qtkH7$(OOI zs*SN=DzyQg_JgHD?^*=}Ok5ME7dd-kn_e2VHbhx(3DD=sFGn#oj_dw(1GS|dv))AA z9xj1Xe7O*E)Nm9dmo3v0Pj^yUz%4J`=xPOOJSInweVWcAmDz7+6vh%!)mj&SSf` zl%SSBP|<_|R4h(o6L9rgh|qBq85KaC0$kBM6MW8zQRd4fu$BH#cuJ4B4Z^vQZh?4QfvNCuUX8PZKC#9*t9Nv90I+ zxWa>t~Z-77va`EzKcom|**`XFmY_5TPvqb)c>`B!aDQ)dfa?`XTbqljPkT zR2I{3+%!U`mi)e8f3Q@~Jo!`6@8ZOF`Fip)#G|nnMr5Tj4&C^AZ6^iso9-<)$5;0y z8e+uuKC7+<8P=ZSZ*z-UZSw@5w#-G9Y?iTVPPNytBYfgnMs&1h9L3p)K$ateICsN0 z%qsJs1|}0Bw(zpUoF$3-+mfk%O{=k$|5La?e5b5%ul%Chr6Kp7;l#$7hq}VFjwj0< z>}6UnqJkG6m32O4;g=tG5kKC&iKgcOkyyQ11$ybB&_mzGYm3)VE=mLjgcC+~&b_Ym z`SbK}fd+k!tYnPXXkDm@fz&?EF!LDesKuo02D*YM@qcY8NgFed|CH?xQfe!qluN91 znEqjn^8{FEP-h{%E<`M_;grtParZ0DREo2O3cLzOwq?mp3*;u=y>AI4&*>2RP4u>@~8aSMBKPuDh1_G1HF$F1Sq}q=%s9F z)N{i<+zX2RyoS}MCZ=8E^)Fq|7J}`}v+is$<2g{y?&Kad0j@uT3Z}Ra2c~ycm1aFk zwurP3bg22^REG9`hWXEz*&Igud55IRz6gM{{O?OZ-|U`@nL#$72hFx3`;T_`SF13; zF9S_e7`EwRLT*t#6!_c*z5Eeb5TYk%rC5qyqBX@xgpT59;0RNG*0%yE1YUQTeQWN* zS5uR5aV?+F39U8-g+|Hq4brb@knI$;UcI6V3~u1#$X9b@R2K+?>A{y(H>4astIZ7n zp3R1HjMqo~Ajg~Uj#6-i=*~3h8X}ag=`&wfcA8}Ub(IdFE+iy6^Njq*P;Z+&Vo1ZV zuI%{n5W7#ac;HQk%?KGhg~uLQbb9QsdnqFc;JDRn31vrG!vY1WiEb7~zrAL-u*`Wv z!gE&8YYZ`ZnR3Q}yMj1r!As&Yyn+4+~Xr2kygA2wFB z7yw!m`U*O@0W_=VuaakD>tyUGqwnZs?BK}wFOk3OeXMS216tt!+TO7yH1Vp{IQOJK zqrMQjiV))xK*I2Ee9Rj>)?e~Dbs?YV_FO$TLi zExoLiAU49E;QUmdT}%3FTLj%&QXH*O(NHN=K+`$~ZJ%?d8_3 zxSI-G+np!QxO$a;4z6m;PB838U~tz(NmpmheI&!tR-uFLyH9nlr;WLhOwg7HSFIEV zO5FTbjC5)w_YxAX&i|=`!^Y8#@cF(pDe-rCXN}Q=eN&}OPm77)L0-@a>8U8wIT|P1 z1cW|(&q6QD7c@>6+z2lLSOcmhp)hz0l36&71WZ^F&5jXv^MS|DG}Cn_-z;=w;QDIO z`pTr$azhZ=*f6p{+kP+7Zv&>n`)mtTiLC!Pr_9a*o!QGTE%5~cs6Ky)Bc!Y=?TNIm zGGqvGIfMeElQ_U?HCaYoOHweL)W+UMR@`&&#b@}z=eo~r`I84&$?z>VV9k8?; zfjOoBakrMXsGxiJm@#1@K7w*Y1ve49y2s#jup zpL_7+?&Y9__3+KhVVWy!T3c8&YP&~*i~Q?`r{oqkm99kL8QN2HU~?Z=MFSrj@mBUm zy#J@r6(ts&;dN z4R0B_k_7qTR%^@0GwbGL0lmj7MV7VIN8Pd^oSvH0pB_2SOCy0N1Yg#ZQa4Ta^HZUG zQqv@VfIdS%=gY`4My}?ro&+$3#^1kXrlxwk*Qe%d=&)iH2`_w0jl`?tPTxk1i~+|t zQ(yjgt{VOAQ>f+hKJsWbAI+dlZ&_&6xdMr$m|jEahYIrAPZ_Mvr2QcU`w)9r8gL2p z1-W$CglSm=iJv8k>qGp0266X{utl!?Y|DR4+fA{v6@OKTlkGCM<^B1^)1TA9Glz-r zj&hUwHYaBy=)SFnvjt4WL2s-zlth|K^W$df3KIr)eox4q@7v|(i@@@8vZ3?6vv{gc zZ30OQLgSRgoD|^Lwtt)L5;5N1_86+NHizvrGGAdKHP{CkKPrAQTfjY}w-^teMaY@J zGpzxm5^tr*f0z_4p>*$1T_r(=d9|WMn&z;0;->b9O|*%Dsf8LQZb3$*HS_vrWvL*8 zKHpr4%JfSMc^#zk`Gg7V5Qj6Qq7T@V)n@jXNP5Vp7>Puo0|Y+Y>{+)mlj(k2cAt_D z8Zr|WT`FkxDTTA2>+6gl+W}1H`kGf^FE;39MlR$pl8#j3Qlzq9_z#Tqku^REP}S6= zQUYb>4j6u9R1u*hT7awlV@BP z1BV!ju;x*Y_JE?eD-bbn#a`BUNJ<0SYI##3&VII&SVVPN*r0F_q?3T z0GLfpi#q^O~k`>LUSz!rF9tM&v{_frvP;5wu~1v!S7N) z`D#d*$w_Knu)sn#KpuhLFQ%vrfQ14xr+PZl%o8I#DHouH{MJMKg6jm5Z2Tlo_V8}2 z=dNH-;g2}lycTvKaPShVgtS1<$k7nlXE4&g;UN=8O*?Dw)>p%sLZ8u&tiz3>hzoTG z)!*i~$;irUXs=bk*-Ut!kYnqb%Vb===W>v#W&-u~gH`!RL^ruRU5L*SDJx ziCx#9Sgk-Jk(1bG(YvSc^UF&-?iq)W38Lnb!{_m#$=^t&_zeWFQ#adK0qf$YwnD108aLcF0j~U|Es0vt@PF{V(VLj4@AKC=& z2o9A@y+%=m^BtFW93EcUu}j0$q0?^xH|)OcpAT&~jt_eiES7S;6X!PiPgoh&ljS?g z)7DtG`*J~O%X7q%swjOtzbm7iD%Z7M9*2zuDujkzFZpoDF);5Bg1OZf>VCYeIEPf{ z)8jC>$?@FRZ~me{)#;rpgLnXc)!ZW;4_`@SOXoYms#qN7OwG^bW^|=L0iDGvFGjw@ zG$SK`ZTn)`a`O#wL+s24bqZrgZLM0W?C9kFS%OnVi6BccV?O}$r{y@CA!w7z`pS9D zb(ac;)j_wonZ4{ca%yG8hIY&sYhSYK4@9?|;9lRPmk%Z2*i{g(Lk7RJyLi$!3Rtb< z#*QH2O%`Je843mZ?I`eR=jA|~C*)M~S`I%(V_6M*+vQ)@o)52KzDCkg`WI(08+4E5zxniPp zKpvT|aMg#65ps5+wG1Bm(o83W4Q8A0{oz{YX!rm__91)pkb!yru@=F>k>~{f zF1(Nnx(q(B^bt?y0m~sx=?`$46N(o11B91^GLfNC<`KD>!y-c^In`R-uq%H0z$Z(F zQ|s{7li;BAd+hE>#r6%m;0;mU*J__j(dr0R8QH0X4d@h`FTn_xDug(*ml+Sp{-O(* zdnpsyDo$4@UyHN&Yaf1W7;z6p^IkvNJ19soXH@IYO2k|3Vbw78$+C2l#IWgpGDjqr zNnFsStU=#3yV1*>2&DW2klPjZQx%&D%uBy|aOuH5_x};BViFN2yIXJtuyI}Lhr%`0 zXVi2U=dsL7{b(DU5u0Oule-P{x`|PBi^b{)Er_SOK6L%k&8DHr4bF zq+nGisIIra+$`VO`qI|K9^$d1`hU`P7J*Q}c#&jKCd(xxdebG{&k_@}puvT;P>~J) z*_&@$$0n1>CPVt8cjAVh0Y8n3)l~g+wo)KipE@pMjb2{9+}Za2H1v;(RDQlUVbO6s z?|_FjHot3%tsICT|NWrBnS<>g+~Or-{Z6b2Us|YIA@9bzOi)je-2p|vf#$8EQXxMO zKN3jf(rs1)!zGz;jo7GCJIugyI>iDaDcMpc%t&)Wtx8N}T%mjA!>z5kp1i+eo44%i z2opzC5*e$Xk_**;MdNarqWhB0G{BSvyoT*U@wY>Cy!3z`g_M;=4t#?Gclv$Xd8E?B zHqU~EU}O}mGOmxE%>@;F21Vo0C^}OyU5j!)0o1jcFUb4`UXIKwV{Q10!h0whn$$6n z=*3ms>_MT(N34WOz*+U}KUQ9~<7zlfpeN*@P7mGRE3bd~;&x>GTfgsLKz~(Ve|7yL z#yerV-n)LF4RC&}ST_)SHacM-J*K$=lS*>#Eu*)_xVy!4vES&FCjRh-rO0{aPRa;B z$u*pv3yEAibkk>ncz5c-1r{o~q$4{<8UjhiX3$<@%Qg5z#GZ{mu5@8Q|I1(|PPj#n zy4WG_QVWh&vhk4h#EA4w46eE|x;SPV0y18FEnmpQEk%sY#eMWia3^&O*G<}FJ`t7L zkorg#JT4lv)cl|ZZ3>^>FO$^u9?&MO|Gm!_U+kUy4-+u`=lc6^M)>cw_Ymhd++c~O4*IUrnQBT}KI1#on2WoRLh%%=kwb9KrZC5H{ z<_{%3f9M>NnT3^XIcE{XV;!gw`^4ig@VMbWKCl`pAaaFDq>HC=w!+0rG$Ew8lMo4$ zEo1e@2H64+6C^cyNotEBrbY?hsm2W~5+I8ed`jF0H_d$fe z7qS*b$0I(gTTm+^AM~t=GM+H1>&d-nK9KQ{-het^sZNvKOMWs@ZSHm^Tq1`zsor9> znp)>SCYx+pS)383V?;l$j@_*LE@QK5Z-Y<5pom>)3Fwu#bH6Vg9&ee^3uH+NE z=Rx|}hvVlt^1%0Y1Md8DIup@gh%ezM%oU3 zNg(kSc0+6?tSZBRA?V!TvG0s4yCWx?6cPxlC@olDlK5I6in3iJbW8J3TMh2GqH|Z^=1_^rQL>c4f7TFnU8?aXi*(BU$#*8(L|B%sg_$5_|k>;gv z?Qn_d|MbIo3{VJCS;@0-3RZy5l^`LCp#(0fOJ(N&S^iq9m?wVdEX`=-P4$f1Z~lF^ zc>6~Ttv&HQLDH?A*pwOYGk5Hl$nh(P;Dq0VHk!oTbFh^Bxui`}@`x66Mf$_ElbYqb z5h58HF=hw(%M+cx!U}xtWnhtR+{;77ig@yuKH(??#@=N4 zWMcR17bs*qLpnWSdOcz4A767ZE-S)dkMR~@CO&A1tLI)Iqu?jlD?U3r>GDn$q%G>! z^HsNG)!rDBuCo4$xA7+XWS*P_gEYv9f0Tt_KHf5g(Qk5JbB1zM{T0PW8M%M?dox6c29e+y5e@~YWmb*oFD3seK zAVw%M;M$6rPfDK7g$Fn&TldBSb9u*Oc!iY34=^1eleYWP#y;idbt~WO&l;3B7{_F+ zIun`VqK~2>K{}W5%u-~mBY(=T8}i6cz>H3IDRyny z@XyLAmmF2%+sbS1WU?HFQplv;J^q8)UoIfLSFw@yn=Gu$F}bMI_(Ba)RW&!~^v}He zvt3)UfwVgJnR27X9eX%pQjiKvwUIHT-#4M|K#XFeLcz;=LQ$?Z2)A}N-~}JDt&4g} zRkV2%0b52WMd$aq)Q!&O9-3WlA!zMk6yugsnffMXJ_+2$vy`aEpn@Wpc!VKEhvXwA z;=m6yT$swGPz`}kjJ~VBuTQVT^H1Zto^e>ji(rck&xzGUKdjVTygL<#OGA=oD~||t zkYK!{4e29q9ajmZ_iVm4n-;|jC4e85NRc(8GBGs&#-Q<9md4$i)Sff7;X2eb>ZW7V zFa(zs5u;p_cA|{@Q6F{8~X#W;-PNYfGN6 zHcA6#EgYQw$d&hy?qku-gA-$|HrU$Jv=d`m-U$PO<6b#}>0xr;NNX}KRyj}IT)A;M z<}KBEu>{Mo@~ZTrPV4!P>zt$v(B6L$HEJ!e>Kyu)GDDwPhLbW9S3M8h)%6eu;S>yK z=1Al^%l}V%=N%8{@-=Y1_ZBUJXh9GxlBhuvEWr}J1-V4;u3jQKiC&`j9$lhG)aW7+ zb%`#xqD1$5ko()UaX;_-dH;Ry`1r89=Ifki&dfYBbDndWHhs3ceuOq{m>U}3mNT3# z(rK|d^b<=g^7X6V%`~gVF)ylbH7^x#o7%*8okP?2gi`jR#5^hS4ZV$OT?yJ5#;&lv zKM~n?0?f?6Pg?&&C``V8Lt*|K3iIDknE!^t{6B`mbedf8+5z@7aDZbHAjso+q+Nq2 z=Ee~FKh4j>Uw+rpuu7DrbT9dI;^mxz(n8mo#}ll1{7zDj0DCa{5R2;Y$)rJ( zR+B)Rm(1#wkZ;p&xYz7@1;J}#4N?r-Esx6S16lchdS~4bb0p;sSRma$VZ~+Rk7l^L z^PMN~2>WQLZ!w&3eQILNsRR2&QcUvXmL%Ez!1BAU_qd5PCvSo0xehyeMVaKp+8TQz z_{)fo6MCt*D*+FBGTxWQ%q(TTaoNJ20%@Lkw4cazh`l>BIEhqx(egQQz0@=wmxF^V z@%99d-Wbyyya-PbaVyQ0WW({nFdB;TYQiM~Ye*mm34!c~d4-a`cq}wSagQsn(|#0d zxZ)O`i-M)>HK_e1oVb;kv@e)xE9LdeIJ*?xjyH!NIRgi-c-}{!{P;Y~M@Xh~*EoSe z1e|xxQ7A2`-?4F^yG5j&E+w47bmL1#ot5_Or|n3#)e1Sf2`SHy@m}@CxwQSn?&55K zSXO*^^~c6*p_j}CPz{NP!XCyqq&VcXGU8~9ci9Gp^cxljx~b`yKOPrGK^1%yNw)uZ z>U-^j26QiFpRdw5Rp@B6x~RlhHD*{)OX6x%WoHXS_%2&hIPo5bM_Z|DR{bzK=rb5c-D}qup|=CB-*7&1=2`fY?e(|mwt_>vwat?G{3o1mlgE1oq^0W^lYuw5^3!=O zgvnWI`B>+`i%cxKj)LBn&-S2bF1B1N$>F153+X$!wkIWw%d3i;cy2Pu4@e#Sbe;WH zl66NF!dS^4$3Ko(EzQ~m)jB54k$bEMP8tcGq(w!$GG(LVLuT-abMp(4B}kZ3H_GtP z;{77J&3IKpbOQI{IFj?<&uZQ1?v`IrpfkObW>dT{yExl!C`eIXL6l%dh+~;2&#(7B zV&EXt=x%Dhy175(I_4PiDzV$%ErlP9S~}K>)cC~7bFZSS z*=UyCCtuuWbM`VK05>0fS!p73oA$CKbK^`A#L>-3$Hkdf4^0f(ySJsHdJBD%u^$Z! zSw)o%_Z_1giKl)Es?%Em=bD>@`26~6V|3JU%O)$55QDMi9e<4McjG7nP1> zrgzxL9vMHVWlJy#2tIH!>?cSVq3b$`;2iH0_1}M8G`1>AYoJ!=Bcc_h<~{1rs`@%6R2z`{-3)TXZELl0&w7G!ay_9` zEj72%oy>yoL23ay_N|3aPWz)&nC>HCmJ^Y;G3Ele}N&lwZie3;fiQTopfV;o+T63sQ2m+?n3G|2dn0Gq+^Zt zNXBH8*xHw$S9+brPI%tL2AIt!V?Z`7)|O1xOeYKM*%tQaUq|9BI!--$x4wY0UY!b3 z$WM{{dBl`T%q?2yJ=an&R9abCDf5|f`B{MKcoBCvmCG*bWp`m+oQ}So!2Q`UFjN9b z8_tHw(>NSwK@m=G!Rl1xt;Trp>Ip|YiR`T`a!ltbZGuo*T$T*P%O=n@Z1_ha=-Ks- zwlkR810mPSK3X#F?RGpM(X68#d-2^5Jx^7pygiB}t)@6LUvA&*=o>>08ZCs}tb&AD z1Ur@cV~HL`_K2L#t|>MN8=JaJb#FYQjF*-4N2n4_8c)?gl`(<57HhOICX;2NQABom zrm^w>*VJTWi6Bj9t5c6tks?=w`T&oAPs?L!q4Idwkq~k(eg@b6L6X)RgytTYfs^+O zhaRh}Klz5`2F;!CD-R*5vfHoRFGp1yjAHrHUnzhb|7iZJ8(O?uF-mCRht}DG>>vu{ z)^5#44UN6;MBf=*pQ^nE)g*H6Hq(4W=YT#ulugNr(pQdok-jJzS`#VSM>g7}$!@zv zFYF(QId?UeW7%Mvz||e|OCvVRjIhntsE6Vce*JkP(O^j6OQ>5{&O-VXl1GytL-Fzb z(<(^cP&{w~r4)2d7GYp zR&#m;Y@XD$DQQmHt^7&%86xRGwqiQ^H3u{rpnP?zwvA1C+W5vEVdm+aO}>Z^*G%_- zFc-hyeNSYiNEn|6WC0GY|893{TVuQbwtHceg;gRCQTx=RQKtas^%+(=p9B>FO4C6B zdB{&>VQUiprVhtZg`tK6JO+(g<-7zOZgcyF+Nq=U?(H7QFU4z7rJ-wr$nSibWw)b? z6FnNS8zy4t@gINgY=|jZ8)n(fGq)~xKUs6>z{n_EPO_ie4%XNcukV><5fTzKGB7Fd zUCyi@^j)sE$dPAFI^jQfBk*IAb#atPlF~oPd|!V@uw>&)tqvsbo?3e^>T4g$VFjk0 ze!Lx83upO?b_ZdJ(S62MiK&B`wz+ctr*~!@63ojDg_6w7K35HW{-Z;yygugG%fX}e zUF0eYPd-7N$f2u#$0y$dlZiU5tMcX89)Yy2*xWcT)5%b~oKfOB?C6F3q=?#X%XozE z5%*}CMpN;1Ⓢ7LW}c4s$3R|*(Z9s{CpeKp7!@J(fKUc8b9qhKJcsIO!HLe508)s zIZx({)Nl%g8K5XeD2w|+y;xVsn0y}G2=rr9c5I^?KFnOcKi^xiBM*J_!Q`=X`rV?) zhUvGjuGFYss2M*CaE%g%55XLH0OPv2U7Lz$^TUCIJ|6|pw>A0%d@TIS^JSi z0e9-aiPwypZfK6!kJW3yNb|c*N-I=ve+9;(aKI)>k+6{e8=J+@!44RDPDdm9bTnkP zR3zY!{(qN>X!+nV9-)1g}CW*20LXy{Z!iA(?ZFbG(mtj0z zM5lF$Yjo$EsH*b*91BgSHyFoDsRnkEJv*u)mRdw_0p5xjWANZS@aHwbb5v%cFtSzQTk?^=8?|U?s>)?@O z7E*Q=6%Xp?2|u%d2Nuh!vnGxf2L-O7scfOUUn{fZxl+0ROuhnrsAt4L^~OS1e@mA? zHtlowPqiRf!bjE86r9Xa)_!|&b3&O}>d$oaarjvk#S;e1iAcXSuu#0?_^u}~!ZxRD z8%9ocWB$*_P%x_($WWU{fj1&R!aUR6qOfpd+FL88!L`5G$cPC1^@?3dn4ojixOAru z+2eig{@wk^?#4@JXC)C&cTd3B8-S6T_(G4cvNisRj4*r+~P z*`^i!LOt#!cRL+Uw$9u-C7r+CWV&{2$tEX%x`T6-WIUUQA# z8f*4Gm-j!L1(@qG4&Kepj4{u1Zfb+-UIU(%!3t7vPEwO`lVqz?9PAJp$V2v%vTi*?JQMpq7? z+;pT*4DCT{ZdG6)T5+fby)+X*M$IQ>!;>j4RABI@=#(GR#Ge(Fr2cyS7G48{O6@32 z6L)@0_jvpm|BpcMX`)uZ-7>q6hVyTZ^v>^ zmyt0c4nIJhgO`n+CpcxLF!Fbd@B@#V)YO}Go+vpw9S6Rq>j{gh+K^8oKm`BTS7}RLn%5MbD<4k3ipF8b*7bGm1ikDRE)d*OT<#1O6mzPUH(TGGcrdh_dV@d8 zaW}&kXR)T-bHv@YuH0%gC9+w}N7Mg@6@Iea=CZ?axNfWz5lI7qH(n2)ht^F$)mxD;%#VTr& z%fSPfk04HQb#97`jL_|m~ij68Dal9ZR zVgzuIM?{>Rw;&>9Uabc}0r91Q(VQMm4J0Ie&;`W#r+Enc6YWg1OPlGR zWqS=M45uEPY-dVdN)z4gHjM&oF7W=j6E{rRcS3Nqzun=^G(CTDY4dFkcssEH#)w0S zhzpg1!+{O{1bpm%*}?gXOL0%$#X#qOwZo~83#@F(!r}gw4o+h@886j)cpze<4!{Wl zz2_pC2@FU6TTnPMoVajgz~0UZ0}>{Q)Q>|iB&5^tQ*R7dVV6HA!zEn0b((Mq(OwWw z2w?>E-g5$+cgLk&05KmHj8HvzPJn+H0^#A1b8%n_A?A#N!JtFGDRh=W3Xy;q2^U5H zFZ@P0i;Ig$Kn!0BBYXuiQ2lqod@-0Q;&nxQR0akq!$m&pITx?Wd81#*90u3ou<;-9 z(GwW=9o}VJ`2TXL*&{w#0RwUpoCD#!x_*Do0#R>7H&+;L4M-||I$~V#kFvY?@=^&A zozGy%0;)?SJin4~LZ3k|y_kqTT`+Pn^`*j|voC1y&vZmrDHy$y=9~`KwJz2CpF5`^ z!*7I3Cl|yMI+zUanST*3p4TC^C*s~U46ww04!E$BjaVIV3lvs;n)AH+g$+@}>KAvb zV3m=O9JrBTT@ki-g$TH~xQ7S$^TGpuE%gzrUtDFuR~G@nRsXf-Qj|jnrXwUIM&PRu N8%UUa8yN7B{sYItQThM? literal 0 HcmV?d00001 diff --git a/yourwork_20251016/discovery/solutions.md b/yourwork_20251016/discovery/solutions.md new file mode 100644 index 0000000..7ef0475 --- /dev/null +++ b/yourwork_20251016/discovery/solutions.md @@ -0,0 +1,36 @@ +# 顧客の課題に対する解決策候補一覧 + +## パーソナライズド英会話学習アプリ : ○○社 XX 英会話アプリより + +* いつ使う? : グローバル企業の社員が通勤時間や休憩時間に英会話を学習するとき +* どう課題を解決した? : 従来の英会話学習は画一的なカリキュラムで、個人のレベルや業務内容に合わせた学習が困難だった。生成AIを活用し、ユーザーの職種・業界・現在のスキルレベルを分析して、個人に最適化された会話シナリオと練習問題を自動生成するアプリを開発した。海外チームとの円滑なコミュニケーションやキャリアアップに直結する実践的な内容を提供している +* どんな効果が出た? : 学習継続率が従来の3倍に向上、実際の業務での英語使用に対する自信度が85%向上 +* どう実現している? : ユーザープロファイル分析、音声認識による発音評価、リアルタイム会話シミュレーション機能を組み合わせている + +参考 : https://ssss.sss.ssss + +## AI英会話コーチングサービス : △△社 □□ 英会話サービスより + +* いつ使う? : 年間契約で継続的に英会話スキルを向上させたい社員向け +* どう課題を解決した? : 多忙なビジネスパーソンは定期的な英会話レッスンの時間確保が困難で、学習が継続できない課題があった。AIコーチが24時間365日利用可能で、15-30分の短時間セッションでも効果的な学習ができるサービスを提供。ユーザーの学習履歴と進捗を分析し、最適なタイミングでリマインドや追加課題を提案する +* どんな効果が出た? : 月間学習時間が平均40%増加、TOEIC スコア平均150点向上、海外出張時の英語コミュニケーション満足度90%以上 +* どう実現している? : 適応学習アルゴリズム、スケジュール最適化AI、進捗追跡ダッシュボードを統合したプラットフォーム + +参考 : https://ssss.sss.ssss + + +## ビジネス英語スピーキング評価システム: ××社 xx 英会話サービスより + +* いつ使う? : 海外チームとの会議やプレゼンテーション前の準備・練習時 +* どう課題を解決した? : グローバル企業の社員は海外チームとの重要な会議で自信を持って発言できず、キャリア機会を逃すことが多かった。AIを活用したスピーキング評価システムで、実際のビジネスシーンを模擬した練習環境を提供し、発音・文法・論理構成・説得力を多角的に評価・改善提案を行う +* どんな効果が出た? : 会議での発言頻度が60%増加、プレゼンテーション評価スコア平均25%向上、昇進・海外赴任機会獲得率が2倍に +* どう実現している? : 音声解析AI、自然言語処理による内容評価、ビジネスシーン別シミュレーション機能を組み合わせている + +--- + +## 良い解決策記述のチェックポイント + +- **具体的な利用シーン**: 「いつ使う?」で明確な使用タイミングを記述 +- **課題の本質理解**: 表面的な課題だけでなく、根本原因まで言及 +- **定量的な効果**: 可能な限り、数値で示せる改善効果を含める +- **実現方法の明示**: 技術的なアプローチを開示されている範囲で具体的に説明 diff --git a/yourwork_20251016/prompt/v0-mock-builder-prompt.md b/yourwork_20251016/prompt/v0-mock-builder-prompt.md new file mode 100644 index 0000000..17aab20 --- /dev/null +++ b/yourwork_20251016/prompt/v0-mock-builder-prompt.md @@ -0,0 +1,591 @@ + + +このプロンプトは順次実行型です。各フェーズを完了後、次のフェーズに進んでください。 +各フェーズ完了時には、completion_criteria を確認し、全ての項目にチェックが入ったことを宣言してから次のフェーズに進んでください。 + + + +あなたは経験豊富なフルスタックエンジニアです。 +ユーザーが指定するアプリケーション要件に基づいて、完全に動作するモックWebサイトをNext.jsで構築してください。 + + + +{ここに作成したいアプリケーションの詳細を入力してください} + + + +以下の技術スタックを使用してください: +- Next.js 14+ (App Router構成) +- TypeScript(厳格な型定義) +- Tailwind CSS(スタイリング) +- shadcn/ui(UIコンポーネントライブラリ) +- Framer Motion(アニメーション) +- Lucide React(アイコン) + + + +外部依存を排除したシンプルな構成: +1. **データベース不使用**: すべてのデータ永続化はLocalStorageで実装 +2. **API不使用**: サーバーサイドAPIコールは不要 +3. **認証システム**: ダミーログイン(コード内にユーザー情報を定義) +4. **即時動作**: npm installとnpm run devで即座に動作すること + + + +- **モダンでプロフェッショナルなデザイン**: 2025年のトレンドを反映 +- **完全レスポンシブ**: モバイル、タブレット、デスクトップすべてに対応 +- **マイクロインタラクション**: ボタンホバー、ローディング状態、トランジション +- **アニメーション**: Framer Motionで滑らかなページ遷移とフェードイン効果 +- **日本語コンテンツ**: すべてのテキストは日本語で記述 +- **アクセシビリティ**: セマンティックHTML、適切なARIA属性、キーボード操作対応 +- **カラースキーム**: 統一感のある配色(Tailwindのカラーパレットを活用) + + + +- **TypeScript厳格モード**: すべての型を明示的に定義 +- **エラーハンドリング**: try-catch、エラーバウンダリーの実装 +- **ローディング状態**: データ取得中の適切なUI表示 +- **コメント**: 複雑なロジックには日本語コメントを追加 +- **フォーマット**: Prettier準拠のコード整形 +- **命名規則**: 一貫性のある変数名、関数名(日本語コメントで意図を明示) + + + +- 画像はプレースホルダーサービスを使用(https://placehold.co/ 推奨) +- アイコンはLucide Reactから選択 +- 必要に応じてUnsplash APIの無料画像を参照可能 + + + + + + + +あなたはプロダクトアナリストとして、アプリケーション要件を分析し、実装すべきコア機能を特定します。 + + + +を精査し、以下を特定してください: + +1. **アプリケーションの種類を判定** + - データ管理型(タスク管理、顧客管理、在庫管理等) + - ツール型(計算機、変換ツール、ジェネレーター等) + - コミュニケーション型(チャット、掲示板、SNS等) + - ダッシュボード型(分析、モニタリング、レポート等) + - ECサイト型(商品販売、予約システム等) + - その他(複合型含む) + +2. **ターゲットユーザーの特定** + - 単一ユーザー種別 or 複数ユーザー種別 + - 各ユーザー種別の役割と権限 + +3. **コア機能の特定(2〜3つ)** + - ユーザー価値の中心となる機能を2〜3つ選定 + - 各機能が解決する課題を明確化 + - 各機能の優先順位を付与 + +4. **各コア機能に必要な要素を定義** + 機能の種類に応じて適切な要素を選択: + + 【データ管理型の場合】 + - 一覧表示、詳細表示、作成、編集、削除 + - 検索、フィルタリング、ソート + - ページネーション + + 【ツール型の場合】 + - 入力フォーム、処理ロジック、結果表示 + - 履歴表示、設定保存 + - エクスポート機能 + + 【コミュニケーション型の場合】 + - メッセージ一覧、スレッド表示、投稿・返信 + - リアルタイム更新(LocalStorageでシミュレート) + - 通知機能 + + 【その他】 + - アプリケーションの性質に応じた独自の要素 + +分析結果を `/product/construction/analysis.md` に記載してください。 + + + +# アプリケーション要件分析 + +## アプリケーション種別 +[データ管理型/ツール型/コミュニケーション型/ダッシュボード型/EC型/その他] + +**理由**: [なぜこの種別と判断したか] + +## ターゲットユーザー +- **ユーザー種別数**: [単一/複数(N種類)] +- **ユーザー種別一覧**: + - [ユーザー種別1]: [役割と権限の説明] + - [ユーザー種別2]: [役割と権限の説明] + +## コア機能(優先度順) + +### 1. [機能名] 🎯最優先 +**解決する課題**: [この機能が解決するユーザーの課題] +**必要な要素**: +- [ ] [要素1: 例: データ一覧表示] +- [ ] [要素2: 例: 詳細表示] +- [ ] [要素3: 例: 作成・編集フォーム] +- [ ] [要素4: 例: 削除機能] +- [ ] [要素5: 例: 検索・フィルタ] + +**ユーザーフロー**: +[この機能を使う際の典型的なユーザーの操作フロー] + +### 2. [機能名] +[同様の形式で記載] + +### 3. [機能名] +[同様の形式で記載] + +## 必要なページ構成(推定) +- `/`: ランディングページ +- `/login`: ログインページ +- `/dashboard`: ダッシュボード(メイン画面) +- [コア機能に応じた追加ページ] + - 例: `/tasks`, `/tasks/[id]`, `/tasks/new` など + +## 技術実装の方針 +- **データ管理**: LocalStorageで管理するデータモデルの概要 +- **認証**: [単一ユーザー/複数ユーザー種別]に応じた認証フロー +- **主要なカスタムフック**: useLocalStorage, useAuth, [その他必要なフック] + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +- [ ] `/product/construction/analysis.md` が作成されている +- [ ] アプリケーション種別が明確に判定されている +- [ ] コア機能が2〜3つ特定され、優先順位が付けられている +- [ ] 各コア機能に必要な要素がチェックリスト形式で列挙されている +- [ ] ユーザー種別が特定されている(単一/複数) +- [ ] 各機能のユーザーフローが記載されている + +【品質基準】 +- [ ] コア機能の選定理由が明確である +- [ ] 各機能がの要件を満たしている +- [ ] 機能間の重複がない +- [ ] 実装可能な範囲に収まっている(2〜3機能) + +【次フェーズへの準備】 +- [ ] Phase2でプロジェクトセットアップに必要な情報が揃っている +- [ ] Phase4でコア機能を実装するための設計情報が十分 + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase2 に進んでください。 + + + + + +あなたはシニアエンジニアとして、プロジェクトのセットアップと基盤実装を行います。 + + + +以下の手順でプロジェクトをセットアップしてください: + +1. **Next.jsプロジェクトの作成** + ```bash + cd /Users/yutaokos/src/aws-samples/aws-ml-enablement-workshop/yourwork_20251016/ + npx create-next-app@latest product --typescript --tailwind --app --src-dir --import-alias "@/*" + ``` + +2. **依存関係のインストール** + ```bash + cd product + npm install framer-motion lucide-react + ``` + +3. **shadcn/uiのセットアップ** + 必要なコンポーネントをインストール(Button, Card, Input, Form, Dialog, Toast等) + +4. **プロジェクト構造の構築** + ``` + /product/ + ├── src/ + │ ├── app/ + │ │ ├── page.tsx + │ │ ├── login/page.tsx + │ │ ├── dashboard/page.tsx + │ │ └── layout.tsx + │ ├── components/ + │ │ ├── ui/ # shadcn/ui + │ │ ├── auth/ + │ │ ├── layout/ + │ │ └── features/ + │ ├── lib/ + │ │ ├── hooks/ + │ │ ├── utils.ts + │ │ └── constants.ts + │ ├── types/ + │ │ └── index.ts + │ └── context/ + │ └── AuthContext.tsx + ├── construction/ + │ └── analysis.md # Phase1で作成 + └── README.md + ``` + +5. **基盤機能の実装** + - TypeScript型定義(`types/index.ts`) + - Phase1の`analysis.md`で定義したデータモデルを実装 + - LocalStorage管理フック(`lib/hooks/useLocalStorage.ts`) + - 認証Context(`context/AuthContext.tsx`) + - Phase1で特定したユーザー種別に対応 + - 認証フック(`lib/hooks/useAuth.ts`) + - サンプルデータ生成関数(`lib/data/seed.ts`) + - Phase1で特定したコア機能に必要なダミーデータを生成 + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +- [ ] Next.jsプロジェクトが作成され、`npm run dev`で起動できる +- [ ] 必要な依存関係がすべてインストールされている +- [ ] プロジェクト構造が構築されている +- [ ] TypeScript型定義ファイルが作成されている(Phase1のanalysis.mdに基づく) +- [ ] useLocalStorageフックが実装されている +- [ ] AuthContextが実装されている +- [ ] useAuthフックが実装されている +- [ ] サンプルデータ生成関数が実装されている + +【品質基準】 +- [ ] TypeScriptのビルドエラーがない +- [ ] すべてのフックが正しく動作する +- [ ] AuthContextがユーザー種別を適切に管理している(Phase1の分析結果に基づく) +- [ ] サンプルデータがアプリケーションの要件を満たしている(Phase1で特定したコア機能に必要なデータ) +- [ ] データモデルがPhase1で定義した内容と一致している + +【次フェーズへの準備】 +- [ ] Phase3で基本ページを実装する準備が整っている +- [ ] Phase1の`analysis.md`に、Phase4の実装に必要な情報が十分含まれている + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase3 に進んでください。 + + + + + +あなたはフロントエンドエンジニアとして、基本ページを実装します。 + + + +以下の基本ページを実装してください: + +1. **ランディングページ (`app/page.tsx`)** + - サービス価値を伝えるヒーローセクション + - 主要機能の説明(3〜4セクション) + - CTAボタン(「今すぐ始める」→ログインページへ) + - スムーズなスクロールアニメーション(Framer Motion) + +2. **ログインページ (`app/login/page.tsx`)** - ダミー実装で十分 + - シンプルなログインフォーム(メールアドレスのみでOK) + - **デモユーザー情報を画面上に見やすく表示**(クリックで入力できると親切) + - ボタンをクリックするだけでログイン完了(パスワード不要でも可) + - ログイン後は適切なダッシュボードへリダイレクト + - Phase1で特定したユーザー種別がある場合は、各種別のデモアカウントをリスト表示 + + **重要**: バリデーションやエラーハンドリングは最小限で構いません。 + デモ体験を素早くスムーズにすることを優先してください。 + +3. **ダッシュボード (`app/dashboard/page.tsx`)** + - ログイン必須(RouteGuard実装) + - ナビゲーションバー/サイドバー + - コア機能へのナビゲーション + - 統計情報やサマリーの表示(ダミーデータ使用) + - ユーザー種別に応じたダッシュボード表示(Phase1の分析に基づく) + +4. **共通レイアウト (`app/layout.tsx`)** + - ルートレイアウトの実装 + - 認証Providerの設定 + - ToastProviderの設定 + - グローバルスタイルの適用 + +5. **共通コンポーネント** + - Header / Navigation + - Sidebar(該当する場合) + - RouteGuard(認証チェック) + - RoleGuard(ユーザー種別チェック、必要な場合) + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +- [ ] ランディングページが実装され、正しく表示される +- [ ] ログインページが実装され、デモユーザーでログインできる +- [ ] ダッシュボードが実装され、ログイン後にアクセスできる +- [ ] 未ログイン時は適切にログインページにリダイレクトされる +- [ ] ページ間の遷移が正しく動作する +- [ ] すべてのページがレスポンシブデザインである + +【品質基準】 +- [ ] UIが美しく洗練されている +- [ ] アニメーションがスムーズに動作する +- [ ] デモユーザー情報が見やすく表示されている +- [ ] ログイン体験がスムーズで、複雑なバリデーションで妨げられていない + +【Phase1の分析に基づく実装】 +- [ ] ユーザー種別に応じた実装が正しい(単一/複数) +- [ ] 複数ユーザー種別の場合、各種別のデモアカウントが表示される +- [ ] ログイン後のリダイレクト先が正しい + +【次フェーズへの準備】 +- [ ] Phase4でコア機能を追加する基盤が整っている +- [ ] ナビゲーションにコア機能へのリンクを追加する準備ができている + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase4 に進んでください。 + + + + + +あなたはフルスタックエンジニアとして、Phase1で特定したコア機能を完全に実装します。 + + + +Phase1の `analysis.md` で特定した2〜3つのコア機能を、優先度順に実装してください。 + +**重要**: 各機能は、analysis.mdで定義した「必要な要素」をすべて実装してください。 +ページ構成やルーティングは、アプリケーションの種別と要件に最適な形で設計してください。 + +## 実装手順 + +### 各コア機能について: + +1. **データモデルの実装** + - TypeScript型定義 + - LocalStorageのキー定義 + - 初期サンプルデータの準備 + +2. **必要な要素の実装** + Phase1で定義したチェックリストの各要素を実装: + + 例(データ管理型の場合): + - [ ] データ一覧表示ページ/コンポーネント + - [ ] 詳細表示ページ/コンポーネント + - [ ] 作成・編集フォーム + - [ ] 削除機能と確認ダイアログ + - [ ] 検索・フィルタリング機能 + - [ ] ソート機能 + - [ ] ページネーション + + 例(ツール型の場合): + - [ ] 入力フォームコンポーネント + - [ ] 処理ロジックの実装 + - [ ] 結果表示コンポーネント + - [ ] 履歴表示機能 + - [ ] 設定保存機能 + +3. **カスタムフックの実装** + 機能に特化したカスタムフック: + - データ取得・更新フック + - 検索・フィルタフック + - その他必要なロジック + +4. **完全なユーザーフローの実装** + Phase1で定義したユーザーフローが実際に動作することを確認: + - 入力から出力まで完結する + - LocalStorageへの保存・読み込みが機能する + - ページリロード後もデータが保持される + - 適切なフィードバック(トースト通知等) + - バリデーションとエラーハンドリング + +5. **ダッシュボードとの統合** + - ダッシュボードからコア機能へのナビゲーション追加 + - ダッシュボードでのサマリー表示(該当する場合) + +## 実装の柔軟性 + +アプリケーションの種別に応じて、最適な実装方法を選択してください: + +**ルーティング**: +- `/feature-name` (一覧) +- `/feature-name/[id]` (詳細) +- `/feature-name/new` (新規作成) +- モーダルで作成・編集する場合は、動的ルートは不要 + +**データ表示**: +- テーブル形式(データ量が多い場合) +- カード形式(視覚的な情報が重要な場合) +- リスト形式(シンプルな項目の場合) + +**フォーム実装**: +- 専用ページ(複雑なフォームの場合) +- モーダル/ダイアログ(シンプルなフォームの場合) +- サイドパネル(コンテキストを保持したい場合) + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +- [ ] Phase1で特定した全てのコア機能(2〜3つ)が実装されている +- [ ] 各機能について、analysis.mdの「必要な要素」が全て実装されている +- [ ] 各機能のユーザーフローが完全に動作する +- [ ] LocalStorageへのデータ永続化が正しく機能する +- [ ] ページリロード後もデータが保持される +- [ ] フォームバリデーションが実装されている +- [ ] エラーハンドリングが適切に実装されている +- [ ] 成功/エラーのトースト通知が表示される + +【品質基準】 +- [ ] UIが直感的で使いやすい +- [ ] すべての操作が実際に動作する(見た目だけでない) +- [ ] データの整合性が保たれている +- [ ] レスポンシブデザインが実装されている +- [ ] ローディング状態が適切に表示される +- [ ] TypeScriptの型エラーがない + +【機能の完全性】 +各コア機能について: +- [ ] 作成・追加機能が動作する(該当する場合) +- [ ] 表示・閲覧機能が動作する +- [ ] 更新・編集機能が動作する(該当する場合) +- [ ] 削除機能が動作する(該当する場合) +- [ ] 検索・フィルタ機能が実際に動作する(該当する場合) +- [ ] ソート機能が実際に動作する(該当する場合) +- [ ] 計算・処理機能が正しく動作する(該当する場合) + +【ユーザー種別対応】(Phase1で複数ユーザー種別の場合) +- [ ] 各ユーザー種別でログインして動作確認済み +- [ ] 権限に応じた機能制限が正しく実装されている +- [ ] ユーザー種別ごとに異なるダッシュボード/ビューが表示される + +【次フェーズへの準備】 +- [ ] Phase5で最終調整・テストを行う準備が整っている +- [ ] 既知の不具合がない + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase5 に進んでください。 + + + + + +あなたはQAエンジニアとして、アプリケーション全体の動作確認と最終調整を行います。 + + + +以下の最終調整とテストを実施してください: + +1. **統合テスト** + - 全てのユーザーフローを実際に操作して確認 + - ログイン → 各機能の使用 → ログアウト + - データの作成 → 表示 → 編集 → 削除(該当する場合) + - ページリロード後のデータ永続化確認 + +2. **レスポンシブデザインの確認** + - モバイル(375px、414px) + - タブレット(768px、1024px) + - デスクトップ(1280px、1920px) + - すべてのページとコンポーネントで確認 + +3. **エラーハンドリングの確認** + - コア機能での不正な入力値のバリデーション + - 存在しないIDへのアクセス + - LocalStorageが無効な場合の動作 + + **注**: ログインページのバリデーションは最小限で構いません(ダミー実装のため) + +4. **パフォーマンス最適化** + - 不要な再レンダリングの防止 + - 画像の最適化 + - コンポーネントの遅延読み込み(必要な場合) + +5. **ユーザビリティ改善** + - ローディング状態の追加 + - エラーメッセージの改善 + - トースト通知のタイミング調整 + - アニメーションの微調整 + +6. **ドキュメント作成** + `/product/README.md` に以下を記載: + - プロジェクト概要 + - セットアップ手順 + - デモユーザー情報(全ユーザー種別) + - 実装済み機能の説明 + - 技術スタック + - ディレクトリ構造 + +7. **ビルド確認** + ```bash + npm run build + ``` + エラーなくビルドが成功することを確認 + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +- [ ] `npm run build` が成功する +- [ ] `npm run dev` で正常に起動する +- [ ] 全てのユーザーフローが正常に動作する +- [ ] TypeScriptのビルドエラーがない +- [ ] Lintエラーがない(または許容範囲内) +- [ ] README.mdが作成されている + +【統合テスト】 +- [ ] ログイン→ダッシュボード→各機能→ログアウトの流れが動作する +- [ ] 全てのコア機能が実際に使用できる +- [ ] データの永続化が正しく機能する(リロード後も保持) +- [ ] 削除したデータが正しく削除される +- [ ] 検索・フィルタが実際に動作する(該当する場合) + +【レスポンシブデザイン】 +- [ ] モバイルで全ページが正しく表示される +- [ ] タブレットで全ページが正しく表示される +- [ ] デスクトップで全ページが正しく表示される +- [ ] タッチ操作が適切に動作する(モバイル) + +【エラーハンドリング】 +- [ ] コア機能で不正な入力値に対して適切なエラーメッセージが表示される +- [ ] 存在しないページへのアクセスで適切に処理される +- [ ] LocalStorageエラーが適切に処理される + +**注**: ログイン機能はダミー実装のため、厳密なエラーハンドリングは不要です + +【ユーザビリティ】 +- [ ] 全ての操作で適切なフィードバックがある +- [ ] ローディング状態が適切に表示される +- [ ] エラーメッセージが分かりやすい +- [ ] アニメーションがスムーズ +- [ ] UIが直感的で使いやすい + +【ドキュメント】 +- [ ] README.mdにセットアップ手順が記載されている +- [ ] 全てのデモユーザー情報が記載されている +- [ ] 実装済み機能が説明されている +- [ ] 技術スタックが明記されている + +【最終確認】 +- [ ] デプロイ可能な品質である +- [ ] で要求された機能が実装されている +- [ ] Phase1で特定したコア機能が完全に動作する +- [ ] 既知の重大な不具合がない + +全ての項目にチェックが入ったことを宣言し、プロジェクトを完了してください。 + + + + + + +- このプロンプトはフェーズベースで段階的に実行してください +- 各フェーズのcompletion_criteriaを必ず確認し、全項目クリアしてから次へ進んでください +- Phase1の分析結果に基づいて、Phase4の実装内容が大きく変わります +- ページ構成やルーティングは、アプリケーションの要件に最適な形で柔軟に設計してください +- 「一覧・詳細・作成」というパターンに無理に当てはめる必要はありません +- 各機能が「実際に動作する」ことを最優先してください + +**ログイン機能について**: +- ログインは完全なダミー実装で構いません +- デモユーザー情報を見やすく表示し、ワンクリックでログインできるようにしてください +- 複雑なバリデーションやエラーハンドリングは不要です +- 重要なのはコア機能の実装であり、ログインはあくまで認証状態を作るための簡易的な手段です + diff --git a/yourwork_20251016/prompt/workingbackwards-genu-prompt.md b/yourwork_20251016/prompt/workingbackwards-genu-prompt.md new file mode 100644 index 0000000..dfbf544 --- /dev/null +++ b/yourwork_20251016/prompt/workingbackwards-genu-prompt.md @@ -0,0 +1,462 @@ + + +このプロンプトは順次実行型です。各フェーズを完了後、次のフェーズに進んでください。 +各フェーズ完了時には、完了確認と品質チェックを行ってください。 + + + + +1. チーム規模と役割構成: エンジニア1名 +2. 技術スタック経験: Next.js、Vercelの実装経験あり +3. プロダクト開発経験: 0→1のプロダクト開発経験あり +4. 学習・適応能力: 新技術習得は可能だが、既存技術を優先 +5. 開発期間・リソース: 6ヶ月、専任1名 + + + + +- 新しい技術スタックは使用しない +- 使用技術: Next.js + Vercel のみ +- 開発期間: 6ヶ月 +- チーム規模: 1名 +- 予算制約: 月額コスト1万円以内 + + + + + + +あなたはユーザーリサーチの専門家です。 + + +customer.png に定義された顧客のうち、目的を達成できた顧客のインタビュー結果をまとめています。目的を達成できた顧客のインタビュー結果をまとめています。1)目的達成のために取った行動、2)行動に要したリソース(金額や時間など)、3)その時の感情の3点を時系列かつ定量的に表にまとめカスタマージャーニーを Listen セクションに記載してください。 +加えて、各行動ステップで顧客が実際に口にしそうな言葉(ペインポイント)を引用形式で追記してください。 +例:「Slackのメッセージが多すぎて、重要な情報を見逃してしまう」 + + +| 行動ステップ | 所要時間 | 費用 | 使用ツール | 感情(1-5) | 課題 | 顧客の声 | +|------------|---------|------|-----------|-----------|------|---------| +| 1. チームコミュニケーションツール検討 | 2週間 | 0円 | - | 😟 3 | 選択肢が多すぎて決められない | 「Slackのメッセージが多すぎて...」 | +| 2. Slack導入 | 1日 | 10万円/年 | Slack | 😊 4 | 導入は簡単 | 「導入は簡単だったが...」 | +... + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +[] カスタマージャーニーが最低5ステップ以上定義されている +[] 全てのステップに定量的データ(所要時間・費用)が記載されている +[] 全てのステップに感情スコア(1-5)が付与されている +[] 全てのステップに「顧客の声」が引用形式で記載されている +[] 合計費用が年間10万円以上である(課題の重要性の指標) +[] 感情スコアが3以下の「ペインポイント」が3つ以上存在する + +【品質基準】 +[] 各ステップが時系列で論理的につながっている +[] 顧客の声が具体的で、実際のユーザーが言いそうな表現になっている +[] customer.png で定義された顧客の「目的」達成までの道のりが描かれている +[] 使用ツールが具体的な製品名・サービス名で記載されている + +【次フェーズへの準備】 +[] Phase2で問いを立てるのに十分な「非効率な行動」が3つ以上特定されている +[] 各行動の前後関係が明確で、Phase2での「同時にできない理由」分析が可能 + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase2 に進んでください。 + + + + + +あなたは貪欲な研究者として、顧客が常識と思う行動に対しても常に問いを投げかけます。 + + + Listen セクションに記載されているユーザーの行動一つ一つについて、必要なリソースと前後の行動をもとに 2 種類の常識を疑う問いを立ててください。各行動に対し立てた問いを Define セクションに表にまとめてください。 +* 「なぜ〇〇せずに□□ができないのか? 」 +* 「なぜ○○と○○は同時にできないのか?」 + + + +| 行動ステップ | 問いの種類 | 問い | 現在の制約 | +|------------|-----------|------|-----------| +| 1. ツール検討 | 省略型 | なぜ事前調査せずにツールを決定できないのか? | 情報が散在している | +| 1. ツール検討 | 統合型 | なぜツール検討と試用は同時にできないのか? | 検討に時間がかかる | +... + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +[] Phase1で定義した全ての行動ステップに対して、最低2つの問い(省略型・統合型)が立てられている +[] 各問いに「現在の制約」が明記されている +[] 合計で最低10個以上の問いが生成されている +[] 全ての問いが「なぜ〇〇せずに□□ができないのか?」または「なぜ○○と○○は同時にできないのか?」の形式に従っている + +【品質基準】 +[] 問いが「当たり前を疑う」視点で立てられている(単なる機能改善要望ではない) +[] 各問いが具体的で、解決策をイメージできる +[] 「現在の制約」が技術的、組織的、心理的な障壁を明確に示している +[] 問いが顧客の実際のペインポイントに根ざしている(Phase1の「顧客の声」との関連が明確) + +【次フェーズへの準備】 +[] Phase3で優先順位付けするための「削減/獲得できるリソース」が推測可能 +[] 各問いが独立していて、重複や包含関係がない + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase3 に進んでください。 + + + + + +Define セクションでまとめた全ての問いについて、以下の評価軸で点数化し Top3 を選定してください: +- 削減/獲得できるリソース(時間・金額):1-5点 +- 顧客が直面する頻度(日次=5点/週次=3点/月次=1点):1-5点 +- 合計点の高い順に Top3 をランキングし、選定理由とともに Define セクションに追記してください。 + + + +### Top 3 重要課題 + +| 順位 | 問い | リソース削減効果 | 頻度 | 合計スコア | 選定理由 | +|------|------|----------------|------|-----------|---------| +| 1位 | なぜ... | 5点(週10時間削減) | 5点(毎日) | 10点 | CTOが最も頻繁に直面し、週10時間の削減が見込める | +| 2位 | なぜ... | 4点(月50万円削減) | 4点(週3回) | 8点 | ツールコスト削減効果が大きい | +| 3位 | なぜ... | 3点(週5時間削減) | 5点(毎日) | 8点 | 全メンバーが毎日直面する課題 | + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +[] Phase2で抽出した全ての問いに対してスコアリングが実施されている +[] 「リソース削減効果」と「頻度」の両方が定量的に評価されている +[] Top3が明確にランキングされ、合計スコアが記載されている +[] 各問いに選定理由が具体的に記載されている +[] 1位の問いの解決により、最低でも週5時間以上または月10万円以上の削減効果が見込まれる + +【品質基準】 +[] スコアリングが customer.png で定義された顧客の目的と整合している +[] 削減効果が具体的な数値で示されている(「大きい」などの曖昧表現ではない) +[] Top3の選定理由が、ビジネスインパクトと顧客価値の両面から説明されている +[] 頻度の評価が Phase1 のカスタマージャーニーの実態に基づいている + +【次フェーズへの準備】 +[] Top3の問いに対して、solutions.md の既存ソリューションで解決可能かが判断できる +[] 各問いの「現在の制約」が Phase5 での発明の方向性を示唆している + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase4 に進んでください。 + + + + + +熟練の開発チームリーダーとして、solutions.md に並べられた機能を自社で実装する際の難易度を評価します。 + + +難易度は 1, 3, 5, 10 の 4 段階とし、の情報を元に評価を行ってください。結果は、難易度と理由を箇条書きに追加する形で solutions.md に記載してください。 + +難易度の基準: +- 1: で定義された既存技術で1-2週間で実装可能 +- 3: 既存技術で1-2ヶ月の実装期間が必要 +- 5: 新規学習または複雑な統合が必要(2-4ヶ月) +- 10: 大規模な設計変更またはチーム拡大が必要(4ヶ月以上) + + + +solutions.md の各ソリューションに以下を追記: + +**自社実装難易度**: 5/10 +**理由**: +- で定義された技術スタックでリアルタイム共同編集を実現するには、深い理解が必要 +- ドキュメント構造化には独自のデータモデル設計が必要(2ヶ月) +- API連携機能の実装に1ヶ月 +- 合計3ヶ月の実装期間を想定(の開発期間内に収まるか確認) + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +[] solutions.md の全てのソリューション(最低3つ)に難易度が付与されている +[] 各難易度に具体的な理由が3つ以上記載されている +[] 難易度が 1, 3, 5, 10 のいずれかである +[] 実装期間の見積もりが含まれている +[] の開発期間を超えるものが明確に識別されている + +【品質基準】 +[] 評価が で定義された技術スタックに基づいている +[] で禁止されている新技術の学習が必要な場合、明確に指摘されている +[] で定義されたチーム規模を前提とした現実的な見積もりになっている +[] 難易度の理由に、フロントエンド・バックエンド・インフラの各側面が考慮されている +[] 外部サービス連携の複雑さが評価に含まれている + +【次フェーズへの準備】 +[] 難易度の合計から、実現可能なソリューション組み合わせの上限が見積もれる +[] の開発期間内に実装可能なソリューションが最低2つ以上存在する + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase5 に進んでください。 + + + + + + +Phase3で選定した Top3 の問いそれぞれに対して、solutions.md に記載したソリューションを2-3個組み合わせた解決策を考案し、 Invent セクションに追記してください。 + +**重要**: 提案する発明のうち、最低1つは以下の「ブレイクスルーアイデアフレームワーク」を適用した、あっと驚くような独自のアイデアを含めてください。 + + +以下のいずれか(または複数)のアプローチを使用して、常識を覆すアイデアを生成してください: + +1. **逆転の発想**: 常識とされる行動の「逆」をあえて行うことで価値を生む + 例: 「情報を整理する」→「情報を意図的に混在させて、セレンディピティを生む」 + +2. **異業種転用**: 全く異なる業界の成功パターンを適用する + 例: ゲーム業界のガチャ要素をB2B SaaSに適用、Netflix の推薦アルゴリズムをチーム編成に適用 + +3. **時間軸の操作**: 通常「後で」行うことを「先に」、「同時に」行うことを「分離」する + 例: 会議の議事録を会議「前」にAIが予測生成、意思決定と実行を完全分離 + +4. **制約の武器化**: 制約を「解決すべき問題」ではなく「差別化の源泉」として活用 + 例: あえて機能を減らすことで使いやすさを実現、低予算を逆手に取った口コミ戦略 + +5. **感情の逆流**: ネガティブな感情をポジティブな体験に、ポジティブな体験にスパイスを + 例: エラー画面を楽しいゲームに変える、順調な時にあえて警告を出して緊張感を保つ + +6. **AI/自動化の創造的活用**: 単なる効率化ではなく、人間にはできない新しい価値を創造 + 例: AIが「人間らしくない」提案をあえてすることで、思考の幅を広げる + + +各発明には以下を含めてください: +- 対象となる問い(Phase3のTop3から) +- 組み合わせるソリューション名 +- 新しい価値提案(既存ソリューションの単純な組み合わせを超えた独自性) +- **ブレイクスルー要素**(該当する場合:どのフレームワークを適用したか、なぜそれが驚きを生むか) +- 実装難易度(Phase4の難易度の合計) +- 実装期間の見積もり + + + +## Invent: 発明 + +### 発明1: [サービス名] (通常の発明) + +**解決する問い**: Phase3-2位「なぜ...」 + +**組み合わせるソリューション**: +- Notion の構造化ドキュメント機能(難易度: 5) +- Linear の高速インターフェース(難易度: 3) + +**新しい価値提案**: +既存のNotionは構造化に優れるが遅く、Linearは高速だがドキュメント管理が弱い。本サービスは、で定義された技術スタックの特性を活かし、「構造化されたドキュメントを高速に編集・検索できる」体験を実現する。 + +**合計難易度**: 8/10 +**実装期間**: 4ヶ月(の開発期間内に収まることを確認) +**実現方法**: +- で定義された技術スタックの機能を組み合わせて実現 +- 具体的な実装方法と使用する機能を記載 + +**独自の差別化要素**: +- customer.png で定義されたペルソナに特化した機能 +- 競合と比較した価格優位性や独自機能 + +--- + +### 発明2: [サービス名] 🎯**ブレイクスルーアイデア** + +**解決する問い**: Phase3-1位「なぜ...」 + +**組み合わせるソリューション**: +- [ソリューションA](難易度: X) +- [ソリューションB](難易度: Y) + +**新しい価値提案**: +[通常の価値提案] + +**🚀 ブレイクスルー要素**: +- **適用フレームワーク**: [逆転の発想/異業種転用/時間軸の操作/制約の武器化/感情の逆流/AI創造的活用] +- **なぜ驚くか**: [このアイデアが常識を覆す理由。具体的にどの「当たり前」を疑い、どんな新しい体験を生むか] +- **実例**: [類似のブレイクスルーアイデアの成功事例があれば記載] + +**合計難易度**: X/10 +**実装期間**: Xヶ月 +**実現方法**: +- [具体的な実装方法] + +**独自の差別化要素**: +- [従来にない体験価値] +- [競合が真似できない理由] + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +[] Phase3のTop3の問い全てに対して発明が提案されている(最低3つ) +[] 各発明が2-3個の既存ソリューションを組み合わせている +[] 各発明に「新しい価値提案」が明確に記載されている +[] 各発明に実装難易度と実装期間が記載されている +[] 最低1つの発明が の開発期間内に実装可能である +[] **最低1つの発明に「ブレイクスルー要素」が含まれている(🎯マーク付き)** + +【品質基準】 +[] 新しい価値提案が「既存ソリューションの単純な足し算」ではなく、独自の洞察に基づいている +[] customer.png で定義されたペルソナに特化した差別化要素がある +[] 実現方法が で定義された技術スタックで具体的に説明されている +[] 価格や提供形態など、ビジネスモデルの要素が含まれている +[] 競合との差別化ポイントが明確に説明されている + +【ブレイクスルーアイデアの品質基準】 +[] ブレイクスルーアイデアが6つのフレームワークのうち最低1つを明確に適用している +[] 「なぜ驚くか」の説明が、具体的な「常識の覆し方」を示している +[] ブレイクスルー要素が実装可能な範囲内に収まっている(実現不可能な空想ではない) +[] 既存の競合が「思いつかなかった」または「実行できなかった」理由が説明されている +[] 読んだ人が「なるほど、その手があったか!」と感じられる内容になっている + +【次フェーズへの準備】 +[] Phase6でプレスリリースを書くのに十分な情報(顧客、課題、解決策、効果)が揃っている +[] 各発明が Phase1 のカスタマージャーニーのどのステップを改善するかが明確 +[] 定量的な効果(Phase3のリソース削減効果)との紐付けが可能 + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase6 に進んでください。 + + + + + +あなたはAmazon の広報担当です。 + + + Invent セクションにある発明について誠実なプレスリリースを執筆します。 + +**優先順位**: ブレイクスルーアイデア(🎯マーク付き)が存在する場合は、それを優先的にプレスリリースの対象として選択してください。ブレイクスルーアイデアの「驚き」を前面に押し出した内容にすることで、メディアやユーザーの注目を集めやすくします。 + +次のテンプレートにあるプレースフォルダを置き換える形で Refine のパートにプレスリリースの土台を執筆してください。 + + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +[] Phase5で選定した1つの発明についてプレスリリースが執筆されている +[] 顧客セグメント(Listen)、課題(Define)、解決策(Invent)が明確に記載されている +[] 体験手順が3-5ステップで具体的に記載されている +[] お客様の声(想定)がPhase1のペインポイントを反映している +[] FAQ が最低3つ以上含まれている + +【品質基準】 +[] プレスリリースが customer.png で定義されたペルソナに向けて書かれている +[] 定量的な効果(Phase3のリソース削減効果)が具体的な数値で示されている +[] 体験手順が Phase1 のカスタマージャーニーを「逆にたどる」形で、理想の体験を描いている +[] 競合との差別化が Phase5 の「独自の差別化要素」を反映している +[] 価格情報が含まれている + +【Working Backwards の本質】 +[] 顧客視点で書かれている(技術的詳細より、顧客の得られる価値が強調されている) +[] 「なぜこのサービスが必要か」が Phase2 の問いと紐付いて説明されている +[] 読んだ人が「これは自分のための製品だ」と感じられる内容になっている + +【次フェーズへの準備】 +[] Phase7で事業計画を立てるのに必要な「提供価値」が明確 +[] ターゲット市場規模を推定するための情報が含まれている + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase7 に進んでください。 + + + + + +あなたはAmazon の事業統括者です。 + + + Refine セクションにあるプレスリリースについて会社としてのメッセージ、社内向けの FAQ を追記してください。 + + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +[] 提供者メッセージが記載されている +[] ターゲット市場規模が具体的な数値で推定されている +[] N年後の導入目標が明記されている +[] 社内向けFAQが5つ以上含まれている +[] 成功指標(North Star Metric)が定義されている +[] 各フェーズ(1ヶ月/3ヶ月/6ヶ月)でモニタリングする指標が定義されている + +【品質基準】 +[] 市場規模の推定が論理的な根拠に基づいている(例: ターゲット企業数 × customer.pngで定義されたペルソナの割合 × ツール予算) +[] 導入目標が現実的である(市場規模の1-10%程度) +[] 成功指標が Phase3-1位の問いの解決度合いを測定できる +[] モニタリング指標が「先行指標」→「エンゲージメント指標」→「リテンション指標」と段階的に設定されている +[] 競争優位性の評価基準が具体的である(「N回以上利用」など) + +【事業計画の完成度】 +[] 継続判断のタイミングと基準が明確 +[] 独自の強み(技術/データ/パートナーシップ等)が明記されている +[] リスク要因と対応策が検討されている(オプション:FAQ に含めることを推奨) +[] 収益モデルが Phase6 の価格設定と整合している + +【全体の整合性チェック】 +[] Phase1(Listen)→ Phase7(Refine)まで一貫したストーリーになっている +[] 定量的な目標値が Phase1 と Phase3 のデータに基づいている +[] で定義された制約条件が全体のロードマップに反映されている + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言して完了してください。 + +【最終確認】 +全7フェーズ完了後、最終的な出力 を通読し、以下を確認してください: +- Listen/Define/Invent/Refine の各セクションが完成している +- 顧客の課題から事業計画まで、一貫した論理でつながっている +- で定義された実装可能性が担保されている + + + + + \ No newline at end of file diff --git a/yourwork_20251016/prompt/workingbackwards-prompt.md b/yourwork_20251016/prompt/workingbackwards-prompt.md new file mode 100644 index 0000000..855a2c1 --- /dev/null +++ b/yourwork_20251016/prompt/workingbackwards-prompt.md @@ -0,0 +1,462 @@ + + +このプロンプトは順次実行型です。各フェーズを完了後、次のフェーズに進んでください。 +各フェーズ完了時には、完了確認と品質チェックを行ってください。 + + + + +1. チーム規模と役割構成: エンジニア1名 +2. 技術スタック経験: Next.js、Vercelの実装経験あり +3. プロダクト開発経験: 0→1のプロダクト開発経験あり +4. 学習・適応能力: 新技術習得は可能だが、既存技術を優先 +5. 開発期間・リソース: 6ヶ月、専任1名 + + + + +- 新しい技術スタックは使用しない +- 使用技術: Next.js + Vercel のみ +- 開発期間: 6ヶ月 +- チーム規模: 1名 +- 予算制約: 月額コスト1万円以内 + + + + + + +あなたはユーザーリサーチの専門家です。 + + +discovery/customer.png に定義された顧客のうち、目的を達成できた顧客のインタビュー結果をまとめています。目的を達成できた顧客のインタビュー結果をまとめています。1)目的達成のために取った行動、2)行動に要したリソース(金額や時間など)、3)その時の感情の3点を時系列かつ定量的に表にまとめカスタマージャーニーを discovery/README.md の Listen セクションに記載してください。 +加えて、各行動ステップで顧客が実際に口にしそうな言葉(ペインポイント)を引用形式で追記してください。 +例:「Slackのメッセージが多すぎて、重要な情報を見逃してしまう」 + + +| 行動ステップ | 所要時間 | 費用 | 使用ツール | 感情(1-5) | 課題 | 顧客の声 | +|------------|---------|------|-----------|-----------|------|---------| +| 1. チームコミュニケーションツール検討 | 2週間 | 0円 | - | 😟 3 | 選択肢が多すぎて決められない | 「Slackのメッセージが多すぎて...」 | +| 2. Slack導入 | 1日 | 10万円/年 | Slack | 😊 4 | 導入は簡単 | 「導入は簡単だったが...」 | +... + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +[] カスタマージャーニーが最低5ステップ以上定義されている +[] 全てのステップに定量的データ(所要時間・費用)が記載されている +[] 全てのステップに感情スコア(1-5)が付与されている +[] 全てのステップに「顧客の声」が引用形式で記載されている +[] 合計費用が年間10万円以上である(課題の重要性の指標) +[] 感情スコアが3以下の「ペインポイント」が3つ以上存在する + +【品質基準】 +[] 各ステップが時系列で論理的につながっている +[] 顧客の声が具体的で、実際のユーザーが言いそうな表現になっている +[] customer.png で定義された顧客の「目的」達成までの道のりが描かれている +[] 使用ツールが具体的な製品名・サービス名で記載されている + +【次フェーズへの準備】 +[] Phase2で問いを立てるのに十分な「非効率な行動」が3つ以上特定されている +[] 各行動の前後関係が明確で、Phase2での「同時にできない理由」分析が可能 + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase2 に進んでください。 + + + + + +あなたは貪欲な研究者として、顧客が常識と思う行動に対しても常に問いを投げかけます。 + + +discovery/README.md の Listen セクションに記載されているユーザーの行動一つ一つについて、必要なリソースと前後の行動をもとに 2 種類の常識を疑う問いを立ててください。各行動に対し立てた問いを Define セクションに表にまとめてください。 +* 「なぜ〇〇せずに□□ができないのか? 」 +* 「なぜ○○と○○は同時にできないのか?」 + + + +| 行動ステップ | 問いの種類 | 問い | 現在の制約 | +|------------|-----------|------|-----------| +| 1. ツール検討 | 省略型 | なぜ事前調査せずにツールを決定できないのか? | 情報が散在している | +| 1. ツール検討 | 統合型 | なぜツール検討と試用は同時にできないのか? | 検討に時間がかかる | +... + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +[] Phase1で定義した全ての行動ステップに対して、最低2つの問い(省略型・統合型)が立てられている +[] 各問いに「現在の制約」が明記されている +[] 合計で最低10個以上の問いが生成されている +[] 全ての問いが「なぜ〇〇せずに□□ができないのか?」または「なぜ○○と○○は同時にできないのか?」の形式に従っている + +【品質基準】 +[] 問いが「当たり前を疑う」視点で立てられている(単なる機能改善要望ではない) +[] 各問いが具体的で、解決策をイメージできる +[] 「現在の制約」が技術的、組織的、心理的な障壁を明確に示している +[] 問いが顧客の実際のペインポイントに根ざしている(Phase1の「顧客の声」との関連が明確) + +【次フェーズへの準備】 +[] Phase3で優先順位付けするための「削減/獲得できるリソース」が推測可能 +[] 各問いが独立していて、重複や包含関係がない + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase3 に進んでください。 + + + + + +Define セクションでまとめた全ての問いについて、以下の評価軸で点数化し Top3 を選定してください: +- 削減/獲得できるリソース(時間・金額):1-5点 +- 顧客が直面する頻度(日次=5点/週次=3点/月次=1点):1-5点 +- 合計点の高い順に Top3 をランキングし、選定理由とともに Define セクションに追記してください。 + + + +### Top 3 重要課題 + +| 順位 | 問い | リソース削減効果 | 頻度 | 合計スコア | 選定理由 | +|------|------|----------------|------|-----------|---------| +| 1位 | なぜ... | 5点(週10時間削減) | 5点(毎日) | 10点 | CTOが最も頻繁に直面し、週10時間の削減が見込める | +| 2位 | なぜ... | 4点(月50万円削減) | 4点(週3回) | 8点 | ツールコスト削減効果が大きい | +| 3位 | なぜ... | 3点(週5時間削減) | 5点(毎日) | 8点 | 全メンバーが毎日直面する課題 | + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +[] Phase2で抽出した全ての問いに対してスコアリングが実施されている +[] 「リソース削減効果」と「頻度」の両方が定量的に評価されている +[] Top3が明確にランキングされ、合計スコアが記載されている +[] 各問いに選定理由が具体的に記載されている +[] 1位の問いの解決により、最低でも週5時間以上または月10万円以上の削減効果が見込まれる + +【品質基準】 +[] スコアリングが customer.png で定義された顧客の目的と整合している +[] 削減効果が具体的な数値で示されている(「大きい」などの曖昧表現ではない) +[] Top3の選定理由が、ビジネスインパクトと顧客価値の両面から説明されている +[] 頻度の評価が Phase1 のカスタマージャーニーの実態に基づいている + +【次フェーズへの準備】 +[] Top3の問いに対して、solutions.md の既存ソリューションで解決可能かが判断できる +[] 各問いの「現在の制約」が Phase5 での発明の方向性を示唆している + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase4 に進んでください。 + + + + + +熟練の開発チームリーダーとして、discovery/solutions.md に並べられた機能を自社で実装する際の難易度を評価します。 + + +難易度は 1, 3, 5, 10 の 4 段階とし、の情報を元に評価を行ってください。結果は、難易度と理由を箇条書きに追加する形で discovery/solutions.md に記載してください。 + +難易度の基準: +- 1: で定義された既存技術で1-2週間で実装可能 +- 3: 既存技術で1-2ヶ月の実装期間が必要 +- 5: 新規学習または複雑な統合が必要(2-4ヶ月) +- 10: 大規模な設計変更またはチーム拡大が必要(4ヶ月以上) + + + +solutions.md の各ソリューションに以下を追記: + +**自社実装難易度**: 5/10 +**理由**: +- で定義された技術スタックでリアルタイム共同編集を実現するには、深い理解が必要 +- ドキュメント構造化には独自のデータモデル設計が必要(2ヶ月) +- API連携機能の実装に1ヶ月 +- 合計3ヶ月の実装期間を想定(の開発期間内に収まるか確認) + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +[] solutions.md の全てのソリューション(最低3つ)に難易度が付与されている +[] 各難易度に具体的な理由が3つ以上記載されている +[] 難易度が 1, 3, 5, 10 のいずれかである +[] 実装期間の見積もりが含まれている +[] の開発期間を超えるものが明確に識別されている + +【品質基準】 +[] 評価が で定義された技術スタックに基づいている +[] で禁止されている新技術の学習が必要な場合、明確に指摘されている +[] で定義されたチーム規模を前提とした現実的な見積もりになっている +[] 難易度の理由に、フロントエンド・バックエンド・インフラの各側面が考慮されている +[] 外部サービス連携の複雑さが評価に含まれている + +【次フェーズへの準備】 +[] 難易度の合計から、実現可能なソリューション組み合わせの上限が見積もれる +[] の開発期間内に実装可能なソリューションが最低2つ以上存在する + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase5 に進んでください。 + + + + + + +Phase3で選定した Top3 の問いそれぞれに対して、discovery/solutions.md に記載したソリューションを2-3個組み合わせた解決策を考案し、discovery/README.md の Invent セクションに追記してください。 + +**重要**: 提案する発明のうち、最低1つは以下の「ブレイクスルーアイデアフレームワーク」を適用した、あっと驚くような独自のアイデアを含めてください。 + + +以下のいずれか(または複数)のアプローチを使用して、常識を覆すアイデアを生成してください: + +1. **逆転の発想**: 常識とされる行動の「逆」をあえて行うことで価値を生む + 例: 「情報を整理する」→「情報を意図的に混在させて、セレンディピティを生む」 + +2. **異業種転用**: 全く異なる業界の成功パターンを適用する + 例: ゲーム業界のガチャ要素をB2B SaaSに適用、Netflix の推薦アルゴリズムをチーム編成に適用 + +3. **時間軸の操作**: 通常「後で」行うことを「先に」、「同時に」行うことを「分離」する + 例: 会議の議事録を会議「前」にAIが予測生成、意思決定と実行を完全分離 + +4. **制約の武器化**: 制約を「解決すべき問題」ではなく「差別化の源泉」として活用 + 例: あえて機能を減らすことで使いやすさを実現、低予算を逆手に取った口コミ戦略 + +5. **感情の逆流**: ネガティブな感情をポジティブな体験に、ポジティブな体験にスパイスを + 例: エラー画面を楽しいゲームに変える、順調な時にあえて警告を出して緊張感を保つ + +6. **AI/自動化の創造的活用**: 単なる効率化ではなく、人間にはできない新しい価値を創造 + 例: AIが「人間らしくない」提案をあえてすることで、思考の幅を広げる + + +各発明には以下を含めてください: +- 対象となる問い(Phase3のTop3から) +- 組み合わせるソリューション名 +- 新しい価値提案(既存ソリューションの単純な組み合わせを超えた独自性) +- **ブレイクスルー要素**(該当する場合:どのフレームワークを適用したか、なぜそれが驚きを生むか) +- 実装難易度(Phase4の難易度の合計) +- 実装期間の見積もり + + + +## Invent: 発明 + +### 発明1: [サービス名] (通常の発明) + +**解決する問い**: Phase3-2位「なぜ...」 + +**組み合わせるソリューション**: +- Notion の構造化ドキュメント機能(難易度: 5) +- Linear の高速インターフェース(難易度: 3) + +**新しい価値提案**: +既存のNotionは構造化に優れるが遅く、Linearは高速だがドキュメント管理が弱い。本サービスは、で定義された技術スタックの特性を活かし、「構造化されたドキュメントを高速に編集・検索できる」体験を実現する。 + +**合計難易度**: 8/10 +**実装期間**: 4ヶ月(の開発期間内に収まることを確認) +**実現方法**: +- で定義された技術スタックの機能を組み合わせて実現 +- 具体的な実装方法と使用する機能を記載 + +**独自の差別化要素**: +- customer.png で定義されたペルソナに特化した機能 +- 競合と比較した価格優位性や独自機能 + +--- + +### 発明2: [サービス名] 🎯**ブレイクスルーアイデア** + +**解決する問い**: Phase3-1位「なぜ...」 + +**組み合わせるソリューション**: +- [ソリューションA](難易度: X) +- [ソリューションB](難易度: Y) + +**新しい価値提案**: +[通常の価値提案] + +**🚀 ブレイクスルー要素**: +- **適用フレームワーク**: [逆転の発想/異業種転用/時間軸の操作/制約の武器化/感情の逆流/AI創造的活用] +- **なぜ驚くか**: [このアイデアが常識を覆す理由。具体的にどの「当たり前」を疑い、どんな新しい体験を生むか] +- **実例**: [類似のブレイクスルーアイデアの成功事例があれば記載] + +**合計難易度**: X/10 +**実装期間**: Xヶ月 +**実現方法**: +- [具体的な実装方法] + +**独自の差別化要素**: +- [従来にない体験価値] +- [競合が真似できない理由] + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +[] Phase3のTop3の問い全てに対して発明が提案されている(最低3つ) +[] 各発明が2-3個の既存ソリューションを組み合わせている +[] 各発明に「新しい価値提案」が明確に記載されている +[] 各発明に実装難易度と実装期間が記載されている +[] 最低1つの発明が の開発期間内に実装可能である +[] **最低1つの発明に「ブレイクスルー要素」が含まれている(🎯マーク付き)** + +【品質基準】 +[] 新しい価値提案が「既存ソリューションの単純な足し算」ではなく、独自の洞察に基づいている +[] customer.png で定義されたペルソナに特化した差別化要素がある +[] 実現方法が で定義された技術スタックで具体的に説明されている +[] 価格や提供形態など、ビジネスモデルの要素が含まれている +[] 競合との差別化ポイントが明確に説明されている + +【ブレイクスルーアイデアの品質基準】 +[] ブレイクスルーアイデアが6つのフレームワークのうち最低1つを明確に適用している +[] 「なぜ驚くか」の説明が、具体的な「常識の覆し方」を示している +[] ブレイクスルー要素が実装可能な範囲内に収まっている(実現不可能な空想ではない) +[] 既存の競合が「思いつかなかった」または「実行できなかった」理由が説明されている +[] 読んだ人が「なるほど、その手があったか!」と感じられる内容になっている + +【次フェーズへの準備】 +[] Phase6でプレスリリースを書くのに十分な情報(顧客、課題、解決策、効果)が揃っている +[] 各発明が Phase1 のカスタマージャーニーのどのステップを改善するかが明確 +[] 定量的な効果(Phase3のリソース削減効果)との紐付けが可能 + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase6 に進んでください。 + + + + + +あなたはAmazon の広報担当です。 + + +discovery/README.md の Invent セクションにある発明について誠実なプレスリリースを執筆します。 + +**優先順位**: ブレイクスルーアイデア(🎯マーク付き)が存在する場合は、それを優先的にプレスリリースの対象として選択してください。ブレイクスルーアイデアの「驚き」を前面に押し出した内容にすることで、メディアやユーザーの注目を集めやすくします。 + +次のテンプレートにあるプレースフォルダを置き換える形で Refine のパートにプレスリリースの土台を執筆してください。 + + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +[] Phase5で選定した1つの発明についてプレスリリースが執筆されている +[] 顧客セグメント(Listen)、課題(Define)、解決策(Invent)が明確に記載されている +[] 体験手順が3-5ステップで具体的に記載されている +[] お客様の声(想定)がPhase1のペインポイントを反映している +[] FAQ が最低3つ以上含まれている + +【品質基準】 +[] プレスリリースが customer.png で定義されたペルソナに向けて書かれている +[] 定量的な効果(Phase3のリソース削減効果)が具体的な数値で示されている +[] 体験手順が Phase1 のカスタマージャーニーを「逆にたどる」形で、理想の体験を描いている +[] 競合との差別化が Phase5 の「独自の差別化要素」を反映している +[] 価格情報が含まれている + +【Working Backwards の本質】 +[] 顧客視点で書かれている(技術的詳細より、顧客の得られる価値が強調されている) +[] 「なぜこのサービスが必要か」が Phase2 の問いと紐付いて説明されている +[] 読んだ人が「これは自分のための製品だ」と感じられる内容になっている + +【次フェーズへの準備】 +[] Phase7で事業計画を立てるのに必要な「提供価値」が明確 +[] ターゲット市場規模を推定するための情報が含まれている + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase7 に進んでください。 + + + + + +あなたはAmazon の事業統括者です。 + + +discovery/README.md の Refine セクションにあるプレスリリースについて会社としてのメッセージ、社内向けの FAQ を追記してください。 + + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +[] 提供者メッセージが記載されている +[] ターゲット市場規模が具体的な数値で推定されている +[] N年後の導入目標が明記されている +[] 社内向けFAQが5つ以上含まれている +[] 成功指標(North Star Metric)が定義されている +[] 各フェーズ(1ヶ月/3ヶ月/6ヶ月)でモニタリングする指標が定義されている + +【品質基準】 +[] 市場規模の推定が論理的な根拠に基づいている(例: ターゲット企業数 × customer.pngで定義されたペルソナの割合 × ツール予算) +[] 導入目標が現実的である(市場規模の1-10%程度) +[] 成功指標が Phase3-1位の問いの解決度合いを測定できる +[] モニタリング指標が「先行指標」→「エンゲージメント指標」→「リテンション指標」と段階的に設定されている +[] 競争優位性の評価基準が具体的である(「N回以上利用」など) + +【事業計画の完成度】 +[] 継続判断のタイミングと基準が明確 +[] 独自の強み(技術/データ/パートナーシップ等)が明記されている +[] リスク要因と対応策が検討されている(オプション:FAQ に含めることを推奨) +[] 収益モデルが Phase6 の価格設定と整合している + +【全体の整合性チェック】 +[] Phase1(Listen)→ Phase7(Refine)まで一貫したストーリーになっている +[] 定量的な目標値が Phase1 と Phase3 のデータに基づいている +[] で定義された制約条件が全体のロードマップに反映されている + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言して完了してください。 + +【最終確認】 +全7フェーズ完了後、discovery/README.md を通読し、以下を確認してください: +- Listen/Define/Invent/Refine の各セクションが完成している +- 顧客の課題から事業計画まで、一貫した論理でつながっている +- で定義された実装可能性が担保されている + + + + + \ No newline at end of file diff --git a/yourwork_20251028/discovery/customer.md b/yourwork_20251028/discovery/customer.md new file mode 100644 index 0000000..15d69fc --- /dev/null +++ b/yourwork_20251028/discovery/customer.md @@ -0,0 +1,14 @@ +## ターゲットの目的、背景、属性 + +### **目的** +スタートアップから成長期のSaaS企業のCTOが、エンタープライズ市場へのアップマーケットを実現し、**契約単価の向上とビジネスの安定化**を図ること。中小企業向けから脱却し、大手企業との契約を獲得することで、ARRの成長加速とチャーンレートの低下を両立させる。 + +### **背景(社内的状況)** +先月の営業会議で、セールスVPから「3社連続で最終段階で失注した。全て理由は『セキュリティ要件を満たさない』」という報告があった。その夜、大手製薬会社との商談を進めていたエンタープライズセールス担当から「200ページのセキュリティ質問票が届いた。半分以上答えられない」とSlackが届く。CFOからは「現在のACVは50万円。エンタープライズなら500万円取れる。売上を10倍にするには新規獲得100社か、エンタープライズ10社か」と迫られる。プロダクトマネージャーからは「シングルサインオン、監査ログ、RBAC、データレジデンシー。機能要求が毎週5件以上来る」と悲鳴が上がる。取締役会では「競合のSlackはエンタープライズで成功している。うちはいつ追いつくのか」と質問され、明確な回答ができなかった。 + +### **属性** +- **規模**: 開発チーム20~50名のSaaS企業 +- **フェーズ**: シリーズA~Bの成長期企業 +- **課題**: エンタープライズ要件への対応不足、セキュリティ認証未取得、営業サイクルの長期化 +- **意思決定権限**: 技術戦略とプロダクトロードマップの決定権を持つCTO +- **予算制約**: ROIを示しながら段階的な投資が必要な環境 diff --git a/yourwork_20251028/discovery/solutions.md b/yourwork_20251028/discovery/solutions.md new file mode 100644 index 0000000..ea0de9b --- /dev/null +++ b/yourwork_20251028/discovery/solutions.md @@ -0,0 +1,82 @@ + +--- + +## 考えうるアプローチ方法 + +### **1. コンプライアンス認証優先アプローチ** + +**いつ使う?** +エンタープライズ顧客との商談で、セキュリティ質問票への回答に膨大な時間がかかり、営業リソースが枯渇している状況で選択すべきアプローチだ。特に、複数の大手企業から同じような質問を繰り返し受けており、「認証があれば質問票の8割をスキップできる」という状況において最大の効果を発揮する。金融、医療、公共機関など規制の厳しい業界をターゲットとする場合、認証なしでは商談のテーブルにすら着けない。 + +**どう課題を解決した?** +SOC 2 Type IIとISO 27001の認証を6ヶ月で取得することで、セキュリティ質問票への回答時間が従来の80時間から15時間に短縮された。営業チームは「認証があるので詳細は報告書をご覧ください」と回答でき、商談の進行速度が3倍に向上した。大手製薬会社との商談では、情報システム部門からの承認が従来3ヶ月かかっていたところ、認証提示により2週間で完了した。セキュリティチームの工数削減により、新機能開発に注力できる環境が生まれた。 + +**どんな効果が出た?** +認証取得後の6ヶ月で、エンタープライズ顧客との成約率が15%から45%に向上し、平均契約金額が50万円から450万円に増加した。失注理由から「セキュリティ不足」が完全に消失し、競合との差別化ポイントとなった。認証マークをWebサイトに掲載した結果、インバウンドリードの質が向上し、問い合わせ段階でのスクリーニングが効率化された。監査プロセスを通じて社内のセキュリティ体制が整備され、インシデント発生率が60%減少した。 + +**どう実現している?** +まずSOC 2 Type IIを優先取得し、エンタープライズ顧客の基本要件をクリアする。並行してISO 27001の準備を進め、グローバル展開に備える。監査法人と契約し、ギャップ分析から始め、ポリシー策定、技術的統制の実装、従業員トレーニングを段階的に実施する。Vanta、Drata、Sprintoなどのコンプライアンス自動化ツールを活用し、継続的なモニタリング体制を構築する。認証取得後も定期的な監査に対応できるよう、証拠収集とレポーティングを自動化する。 + +**参考リソース**: +- SOC 2: https://us.aicpa.org/interestareas/frc/assuranceadvisoryservices/aicpasoc2report +- ISO 27001: https://www.iso.org/isoiec-27001-information-security.html + +--- + +### **2. アクセス制御強化アプローチ(SSO・RBAC・監査ログ)** + +**いつ使う?** +エンタープライズ顧客から「あなたのシステムに50人がアクセスする。全員に個別のID/パスワード管理は不可能」「退職者のアカウント削除漏れが怖い」「誰が何をしたか追跡できないと内部統制上問題」という要求が繰り返し出ている状況で選択すべきだ。特に、現在の製品が基本的な認証しか持たず、エンタープライズ顧客のIDプロバイダー(Okta、Azure AD、Google Workspace)との統合ができていない場合に必須となる。 + +**どう課題を解決した?** +SAML/OIDCベースのシングルサインオン(SSO)を実装することで、大手企業の情報システム部門から「既存のIDプロバイダーと統合できるなら検討する」という前向きな反応を得られるようになった。ロールベースアクセス制御(RBAC)により、「一般ユーザー」「マネージャー」「管理者」など役割に応じた権限付与が可能になり、最小権限の原則を満たせた。包括的な監査ログにより、「いつ、誰が、何をしたか」の完全な追跡が可能となり、コンプライアンス監査への対応が劇的に改善された。 + +**どんな効果が出た?** +SSO実装後、エンタープライズ顧客のオンボーディング時間が従来の2週間から2日に短縮され、導入障壁が大幅に低下した。IT部門からの「セキュリティ承認」取得時間が平均60日から15日に短縮され、営業サイクルが加速した。監査ログ機能により、金融機関からの引き合いが増加し、年間契約額が平均300万円から800万円に向上した。退職者アカウントの自動無効化により、セキュリティリスクが軽減され、顧客の信頼が向上した。 + +**どう実現している?** +認証基盤として、Auth0、Okta、AWS Cognito、またはOSSのKeycloakを選定し、SAML 2.0とOpenID Connect (OIDC)の両方に対応する。RBACは、リソース単位で細かく権限を定義できる設計とし、将来的なカスタマイズ要求に対応可能な柔軟性を持たせる。監査ログは、改ざん防止のため外部ストレージ(S3、CloudWatch Logs)に即座に転送し、保存期間を最低1年、理想的には3年以上確保する。ログ検索・可視化のため、Elasticsearch、Splunk、DatadogなどのSIEMツールと統合する。 + +**参考リソース**: +- SAML実装ガイド: https://auth0.com/docs/authenticate/protocols/saml +- RBAC設計パターン: https://auth.wiki/ja/rbac + +--- + +### **3. データ主権・レジデンシー対応アプローチ** + +**いつ使う?** +グローバル展開を目指す中で、欧州顧客から「GDPRに準拠するため、データをEU域内に保存する必要がある」、日本の大手企業から「データを国外に出せない」、金融機関から「データセンターの物理的所在地の証明が必要」という要求が出ている場合に選択すべきだ。特に、顧客データのプライバシーとコンプライアンスが最優先される業界(金融、医療、公共)において、データレジデンシー対応は商談の前提条件となる。 + +**どう課題を解決した?** +マルチリージョン対応アーキテクチャを構築し、顧客が契約時に「米国」「EU」「日本」などデータ保存リージョンを選択できるようにした。欧州顧客に対しては、フランクフルトまたはアイルランドのAWSリージョンでデータを完結させ、GDPR第45条の適切性決定要件を満たした。日本の大手金融機関に対しては、東京リージョンでの完全なデータ隔離を提供し、金融庁のガイドラインに準拠した。データの物理的な所在地、バックアップ先、ディザスタリカバリ先を文書化し、監査対応を容易にした。 + +**どんな効果が出た?** +欧州市場での契約獲得が可能になり、新規ARRが年間5,000万円増加した。日本の大手金融機関3社と契約でき、1社あたり年間1,200万円の契約を獲得した。データレジデンシー対応を差別化ポイントとして打ち出すことで、競合との価格競争を避け、プレミアム価格を維持できた。GDPRコンプライアンスを明示することで、欧州顧客からの信頼が向上し、紹介による新規顧客が増加した。 + +**どう実現している?** +クラウドプロバイダー(AWS、Azure、GCP)の複数リージョンを活用し、顧客ごとにデータを論理的・物理的に分離するマルチテナントアーキテクチャを構築する。データベース、ストレージ、バックアップ、ログなど全てのデータコンポーネントを指定リージョン内に配置し、クロスリージョンレプリケーションを禁止する設定を実装する。GDPRの「データ処理者」としての義務を果たすため、DPA(Data Processing Agreement)を標準契約に含める。データマッピングとフローダイアグラムを作成し、監査時に即座に提示できる体制を整える。 + +**参考リソース**: +- GDPR準拠ガイド: https://gdpr.eu/ +- AWS データレジデンシー: https://aws.amazon.com/compliance/data-privacy/ + +--- + +### **4. セキュリティ透明性・信頼構築アプローチ** + +**いつ使う?** +エンタープライズ顧客との商談で、「セキュリティチームの承認が下りない」「質問票に回答しても追加質問が止まらない」「情報システム部門が製品を信頼してくれない」という信頼の壁に直面している場合に選択すべきだ。特に、競合他社がセキュリティ情報を積極的に開示し、自社が「情報が不透明」と見なされている状況において、ビジネス機会の損失を防ぐために必須となる。 + +**どう課題を解決した?** +専用のセキュリティポータル(Trust Center)をWebサイトに設置し、認証レポート、セキュリティホワイトペーパー、コンプライアンスマトリックス、アップタイムステータス、インシデント履歴を一元的に公開した。SOC 2レポートを商談段階で即座に提供できる体制を整え、NDAなしで基本情報を閲覧可能にした。セキュリティロードマップを四半期ごとに更新し、「現在対応中の機能」「今後6ヶ月の計画」を明示することで、顧客の不安を解消した。セキュリティチームの連絡先を明示し、顧客のCISOとの直接対話を促進した。 + +**どんな効果が出た?** +Trust Center公開後、営業チームへの「セキュリティに関する問い合わせ」が70%減少し、セールスエンジニアの工数が大幅に削減された。商談初期段階での脱落率が40%から15%に低下し、パイプラインの質が向上した。セキュリティ情報の透明性が評価され、Gartner Peer Insightsでのセキュリティ評価が3.5から4.5に向上した。顧客のセキュリティチームから「信頼できるベンダー」として推奨される機会が増え、リファレンス顧客の獲得が容易になった。 + +**どう実現している?** +Trust Centerの構築には、SafeBase、Vanta Trust Center、Drata Trust Centerなどの専用ツールを活用し、リアルタイムでのコンプライアンスステータス表示を実現する。認証レポート、ペネトレーションテスト結果、脆弱性管理ポリシーなどのドキュメントを定期的に更新し、常に最新情報を提供する。Status PageやUptimeRobotを統合し、システムの可用性を透明化する。セキュリティFAQ、ユースケース別のセキュリティガイド、統合APIのセキュリティドキュメントを充実させ、顧客の自己解決を促進する。 + +**参考リソース**: +- SafeBase Trust Center: https://safebase.io/ +- セキュリティ透明性ベストプラクティス: https://www.cisecurity.org/ diff --git a/yourwork_20251028/prompt/v0-mock-builder-prompt.md b/yourwork_20251028/prompt/v0-mock-builder-prompt.md new file mode 100644 index 0000000..17aab20 --- /dev/null +++ b/yourwork_20251028/prompt/v0-mock-builder-prompt.md @@ -0,0 +1,591 @@ + + +このプロンプトは順次実行型です。各フェーズを完了後、次のフェーズに進んでください。 +各フェーズ完了時には、completion_criteria を確認し、全ての項目にチェックが入ったことを宣言してから次のフェーズに進んでください。 + + + +あなたは経験豊富なフルスタックエンジニアです。 +ユーザーが指定するアプリケーション要件に基づいて、完全に動作するモックWebサイトをNext.jsで構築してください。 + + + +{ここに作成したいアプリケーションの詳細を入力してください} + + + +以下の技術スタックを使用してください: +- Next.js 14+ (App Router構成) +- TypeScript(厳格な型定義) +- Tailwind CSS(スタイリング) +- shadcn/ui(UIコンポーネントライブラリ) +- Framer Motion(アニメーション) +- Lucide React(アイコン) + + + +外部依存を排除したシンプルな構成: +1. **データベース不使用**: すべてのデータ永続化はLocalStorageで実装 +2. **API不使用**: サーバーサイドAPIコールは不要 +3. **認証システム**: ダミーログイン(コード内にユーザー情報を定義) +4. **即時動作**: npm installとnpm run devで即座に動作すること + + + +- **モダンでプロフェッショナルなデザイン**: 2025年のトレンドを反映 +- **完全レスポンシブ**: モバイル、タブレット、デスクトップすべてに対応 +- **マイクロインタラクション**: ボタンホバー、ローディング状態、トランジション +- **アニメーション**: Framer Motionで滑らかなページ遷移とフェードイン効果 +- **日本語コンテンツ**: すべてのテキストは日本語で記述 +- **アクセシビリティ**: セマンティックHTML、適切なARIA属性、キーボード操作対応 +- **カラースキーム**: 統一感のある配色(Tailwindのカラーパレットを活用) + + + +- **TypeScript厳格モード**: すべての型を明示的に定義 +- **エラーハンドリング**: try-catch、エラーバウンダリーの実装 +- **ローディング状態**: データ取得中の適切なUI表示 +- **コメント**: 複雑なロジックには日本語コメントを追加 +- **フォーマット**: Prettier準拠のコード整形 +- **命名規則**: 一貫性のある変数名、関数名(日本語コメントで意図を明示) + + + +- 画像はプレースホルダーサービスを使用(https://placehold.co/ 推奨) +- アイコンはLucide Reactから選択 +- 必要に応じてUnsplash APIの無料画像を参照可能 + + + + + + + +あなたはプロダクトアナリストとして、アプリケーション要件を分析し、実装すべきコア機能を特定します。 + + + +を精査し、以下を特定してください: + +1. **アプリケーションの種類を判定** + - データ管理型(タスク管理、顧客管理、在庫管理等) + - ツール型(計算機、変換ツール、ジェネレーター等) + - コミュニケーション型(チャット、掲示板、SNS等) + - ダッシュボード型(分析、モニタリング、レポート等) + - ECサイト型(商品販売、予約システム等) + - その他(複合型含む) + +2. **ターゲットユーザーの特定** + - 単一ユーザー種別 or 複数ユーザー種別 + - 各ユーザー種別の役割と権限 + +3. **コア機能の特定(2〜3つ)** + - ユーザー価値の中心となる機能を2〜3つ選定 + - 各機能が解決する課題を明確化 + - 各機能の優先順位を付与 + +4. **各コア機能に必要な要素を定義** + 機能の種類に応じて適切な要素を選択: + + 【データ管理型の場合】 + - 一覧表示、詳細表示、作成、編集、削除 + - 検索、フィルタリング、ソート + - ページネーション + + 【ツール型の場合】 + - 入力フォーム、処理ロジック、結果表示 + - 履歴表示、設定保存 + - エクスポート機能 + + 【コミュニケーション型の場合】 + - メッセージ一覧、スレッド表示、投稿・返信 + - リアルタイム更新(LocalStorageでシミュレート) + - 通知機能 + + 【その他】 + - アプリケーションの性質に応じた独自の要素 + +分析結果を `/product/construction/analysis.md` に記載してください。 + + + +# アプリケーション要件分析 + +## アプリケーション種別 +[データ管理型/ツール型/コミュニケーション型/ダッシュボード型/EC型/その他] + +**理由**: [なぜこの種別と判断したか] + +## ターゲットユーザー +- **ユーザー種別数**: [単一/複数(N種類)] +- **ユーザー種別一覧**: + - [ユーザー種別1]: [役割と権限の説明] + - [ユーザー種別2]: [役割と権限の説明] + +## コア機能(優先度順) + +### 1. [機能名] 🎯最優先 +**解決する課題**: [この機能が解決するユーザーの課題] +**必要な要素**: +- [ ] [要素1: 例: データ一覧表示] +- [ ] [要素2: 例: 詳細表示] +- [ ] [要素3: 例: 作成・編集フォーム] +- [ ] [要素4: 例: 削除機能] +- [ ] [要素5: 例: 検索・フィルタ] + +**ユーザーフロー**: +[この機能を使う際の典型的なユーザーの操作フロー] + +### 2. [機能名] +[同様の形式で記載] + +### 3. [機能名] +[同様の形式で記載] + +## 必要なページ構成(推定) +- `/`: ランディングページ +- `/login`: ログインページ +- `/dashboard`: ダッシュボード(メイン画面) +- [コア機能に応じた追加ページ] + - 例: `/tasks`, `/tasks/[id]`, `/tasks/new` など + +## 技術実装の方針 +- **データ管理**: LocalStorageで管理するデータモデルの概要 +- **認証**: [単一ユーザー/複数ユーザー種別]に応じた認証フロー +- **主要なカスタムフック**: useLocalStorage, useAuth, [その他必要なフック] + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +- [ ] `/product/construction/analysis.md` が作成されている +- [ ] アプリケーション種別が明確に判定されている +- [ ] コア機能が2〜3つ特定され、優先順位が付けられている +- [ ] 各コア機能に必要な要素がチェックリスト形式で列挙されている +- [ ] ユーザー種別が特定されている(単一/複数) +- [ ] 各機能のユーザーフローが記載されている + +【品質基準】 +- [ ] コア機能の選定理由が明確である +- [ ] 各機能がの要件を満たしている +- [ ] 機能間の重複がない +- [ ] 実装可能な範囲に収まっている(2〜3機能) + +【次フェーズへの準備】 +- [ ] Phase2でプロジェクトセットアップに必要な情報が揃っている +- [ ] Phase4でコア機能を実装するための設計情報が十分 + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase2 に進んでください。 + + + + + +あなたはシニアエンジニアとして、プロジェクトのセットアップと基盤実装を行います。 + + + +以下の手順でプロジェクトをセットアップしてください: + +1. **Next.jsプロジェクトの作成** + ```bash + cd /Users/yutaokos/src/aws-samples/aws-ml-enablement-workshop/yourwork_20251016/ + npx create-next-app@latest product --typescript --tailwind --app --src-dir --import-alias "@/*" + ``` + +2. **依存関係のインストール** + ```bash + cd product + npm install framer-motion lucide-react + ``` + +3. **shadcn/uiのセットアップ** + 必要なコンポーネントをインストール(Button, Card, Input, Form, Dialog, Toast等) + +4. **プロジェクト構造の構築** + ``` + /product/ + ├── src/ + │ ├── app/ + │ │ ├── page.tsx + │ │ ├── login/page.tsx + │ │ ├── dashboard/page.tsx + │ │ └── layout.tsx + │ ├── components/ + │ │ ├── ui/ # shadcn/ui + │ │ ├── auth/ + │ │ ├── layout/ + │ │ └── features/ + │ ├── lib/ + │ │ ├── hooks/ + │ │ ├── utils.ts + │ │ └── constants.ts + │ ├── types/ + │ │ └── index.ts + │ └── context/ + │ └── AuthContext.tsx + ├── construction/ + │ └── analysis.md # Phase1で作成 + └── README.md + ``` + +5. **基盤機能の実装** + - TypeScript型定義(`types/index.ts`) + - Phase1の`analysis.md`で定義したデータモデルを実装 + - LocalStorage管理フック(`lib/hooks/useLocalStorage.ts`) + - 認証Context(`context/AuthContext.tsx`) + - Phase1で特定したユーザー種別に対応 + - 認証フック(`lib/hooks/useAuth.ts`) + - サンプルデータ生成関数(`lib/data/seed.ts`) + - Phase1で特定したコア機能に必要なダミーデータを生成 + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +- [ ] Next.jsプロジェクトが作成され、`npm run dev`で起動できる +- [ ] 必要な依存関係がすべてインストールされている +- [ ] プロジェクト構造が構築されている +- [ ] TypeScript型定義ファイルが作成されている(Phase1のanalysis.mdに基づく) +- [ ] useLocalStorageフックが実装されている +- [ ] AuthContextが実装されている +- [ ] useAuthフックが実装されている +- [ ] サンプルデータ生成関数が実装されている + +【品質基準】 +- [ ] TypeScriptのビルドエラーがない +- [ ] すべてのフックが正しく動作する +- [ ] AuthContextがユーザー種別を適切に管理している(Phase1の分析結果に基づく) +- [ ] サンプルデータがアプリケーションの要件を満たしている(Phase1で特定したコア機能に必要なデータ) +- [ ] データモデルがPhase1で定義した内容と一致している + +【次フェーズへの準備】 +- [ ] Phase3で基本ページを実装する準備が整っている +- [ ] Phase1の`analysis.md`に、Phase4の実装に必要な情報が十分含まれている + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase3 に進んでください。 + + + + + +あなたはフロントエンドエンジニアとして、基本ページを実装します。 + + + +以下の基本ページを実装してください: + +1. **ランディングページ (`app/page.tsx`)** + - サービス価値を伝えるヒーローセクション + - 主要機能の説明(3〜4セクション) + - CTAボタン(「今すぐ始める」→ログインページへ) + - スムーズなスクロールアニメーション(Framer Motion) + +2. **ログインページ (`app/login/page.tsx`)** - ダミー実装で十分 + - シンプルなログインフォーム(メールアドレスのみでOK) + - **デモユーザー情報を画面上に見やすく表示**(クリックで入力できると親切) + - ボタンをクリックするだけでログイン完了(パスワード不要でも可) + - ログイン後は適切なダッシュボードへリダイレクト + - Phase1で特定したユーザー種別がある場合は、各種別のデモアカウントをリスト表示 + + **重要**: バリデーションやエラーハンドリングは最小限で構いません。 + デモ体験を素早くスムーズにすることを優先してください。 + +3. **ダッシュボード (`app/dashboard/page.tsx`)** + - ログイン必須(RouteGuard実装) + - ナビゲーションバー/サイドバー + - コア機能へのナビゲーション + - 統計情報やサマリーの表示(ダミーデータ使用) + - ユーザー種別に応じたダッシュボード表示(Phase1の分析に基づく) + +4. **共通レイアウト (`app/layout.tsx`)** + - ルートレイアウトの実装 + - 認証Providerの設定 + - ToastProviderの設定 + - グローバルスタイルの適用 + +5. **共通コンポーネント** + - Header / Navigation + - Sidebar(該当する場合) + - RouteGuard(認証チェック) + - RoleGuard(ユーザー種別チェック、必要な場合) + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +- [ ] ランディングページが実装され、正しく表示される +- [ ] ログインページが実装され、デモユーザーでログインできる +- [ ] ダッシュボードが実装され、ログイン後にアクセスできる +- [ ] 未ログイン時は適切にログインページにリダイレクトされる +- [ ] ページ間の遷移が正しく動作する +- [ ] すべてのページがレスポンシブデザインである + +【品質基準】 +- [ ] UIが美しく洗練されている +- [ ] アニメーションがスムーズに動作する +- [ ] デモユーザー情報が見やすく表示されている +- [ ] ログイン体験がスムーズで、複雑なバリデーションで妨げられていない + +【Phase1の分析に基づく実装】 +- [ ] ユーザー種別に応じた実装が正しい(単一/複数) +- [ ] 複数ユーザー種別の場合、各種別のデモアカウントが表示される +- [ ] ログイン後のリダイレクト先が正しい + +【次フェーズへの準備】 +- [ ] Phase4でコア機能を追加する基盤が整っている +- [ ] ナビゲーションにコア機能へのリンクを追加する準備ができている + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase4 に進んでください。 + + + + + +あなたはフルスタックエンジニアとして、Phase1で特定したコア機能を完全に実装します。 + + + +Phase1の `analysis.md` で特定した2〜3つのコア機能を、優先度順に実装してください。 + +**重要**: 各機能は、analysis.mdで定義した「必要な要素」をすべて実装してください。 +ページ構成やルーティングは、アプリケーションの種別と要件に最適な形で設計してください。 + +## 実装手順 + +### 各コア機能について: + +1. **データモデルの実装** + - TypeScript型定義 + - LocalStorageのキー定義 + - 初期サンプルデータの準備 + +2. **必要な要素の実装** + Phase1で定義したチェックリストの各要素を実装: + + 例(データ管理型の場合): + - [ ] データ一覧表示ページ/コンポーネント + - [ ] 詳細表示ページ/コンポーネント + - [ ] 作成・編集フォーム + - [ ] 削除機能と確認ダイアログ + - [ ] 検索・フィルタリング機能 + - [ ] ソート機能 + - [ ] ページネーション + + 例(ツール型の場合): + - [ ] 入力フォームコンポーネント + - [ ] 処理ロジックの実装 + - [ ] 結果表示コンポーネント + - [ ] 履歴表示機能 + - [ ] 設定保存機能 + +3. **カスタムフックの実装** + 機能に特化したカスタムフック: + - データ取得・更新フック + - 検索・フィルタフック + - その他必要なロジック + +4. **完全なユーザーフローの実装** + Phase1で定義したユーザーフローが実際に動作することを確認: + - 入力から出力まで完結する + - LocalStorageへの保存・読み込みが機能する + - ページリロード後もデータが保持される + - 適切なフィードバック(トースト通知等) + - バリデーションとエラーハンドリング + +5. **ダッシュボードとの統合** + - ダッシュボードからコア機能へのナビゲーション追加 + - ダッシュボードでのサマリー表示(該当する場合) + +## 実装の柔軟性 + +アプリケーションの種別に応じて、最適な実装方法を選択してください: + +**ルーティング**: +- `/feature-name` (一覧) +- `/feature-name/[id]` (詳細) +- `/feature-name/new` (新規作成) +- モーダルで作成・編集する場合は、動的ルートは不要 + +**データ表示**: +- テーブル形式(データ量が多い場合) +- カード形式(視覚的な情報が重要な場合) +- リスト形式(シンプルな項目の場合) + +**フォーム実装**: +- 専用ページ(複雑なフォームの場合) +- モーダル/ダイアログ(シンプルなフォームの場合) +- サイドパネル(コンテキストを保持したい場合) + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +- [ ] Phase1で特定した全てのコア機能(2〜3つ)が実装されている +- [ ] 各機能について、analysis.mdの「必要な要素」が全て実装されている +- [ ] 各機能のユーザーフローが完全に動作する +- [ ] LocalStorageへのデータ永続化が正しく機能する +- [ ] ページリロード後もデータが保持される +- [ ] フォームバリデーションが実装されている +- [ ] エラーハンドリングが適切に実装されている +- [ ] 成功/エラーのトースト通知が表示される + +【品質基準】 +- [ ] UIが直感的で使いやすい +- [ ] すべての操作が実際に動作する(見た目だけでない) +- [ ] データの整合性が保たれている +- [ ] レスポンシブデザインが実装されている +- [ ] ローディング状態が適切に表示される +- [ ] TypeScriptの型エラーがない + +【機能の完全性】 +各コア機能について: +- [ ] 作成・追加機能が動作する(該当する場合) +- [ ] 表示・閲覧機能が動作する +- [ ] 更新・編集機能が動作する(該当する場合) +- [ ] 削除機能が動作する(該当する場合) +- [ ] 検索・フィルタ機能が実際に動作する(該当する場合) +- [ ] ソート機能が実際に動作する(該当する場合) +- [ ] 計算・処理機能が正しく動作する(該当する場合) + +【ユーザー種別対応】(Phase1で複数ユーザー種別の場合) +- [ ] 各ユーザー種別でログインして動作確認済み +- [ ] 権限に応じた機能制限が正しく実装されている +- [ ] ユーザー種別ごとに異なるダッシュボード/ビューが表示される + +【次フェーズへの準備】 +- [ ] Phase5で最終調整・テストを行う準備が整っている +- [ ] 既知の不具合がない + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase5 に進んでください。 + + + + + +あなたはQAエンジニアとして、アプリケーション全体の動作確認と最終調整を行います。 + + + +以下の最終調整とテストを実施してください: + +1. **統合テスト** + - 全てのユーザーフローを実際に操作して確認 + - ログイン → 各機能の使用 → ログアウト + - データの作成 → 表示 → 編集 → 削除(該当する場合) + - ページリロード後のデータ永続化確認 + +2. **レスポンシブデザインの確認** + - モバイル(375px、414px) + - タブレット(768px、1024px) + - デスクトップ(1280px、1920px) + - すべてのページとコンポーネントで確認 + +3. **エラーハンドリングの確認** + - コア機能での不正な入力値のバリデーション + - 存在しないIDへのアクセス + - LocalStorageが無効な場合の動作 + + **注**: ログインページのバリデーションは最小限で構いません(ダミー実装のため) + +4. **パフォーマンス最適化** + - 不要な再レンダリングの防止 + - 画像の最適化 + - コンポーネントの遅延読み込み(必要な場合) + +5. **ユーザビリティ改善** + - ローディング状態の追加 + - エラーメッセージの改善 + - トースト通知のタイミング調整 + - アニメーションの微調整 + +6. **ドキュメント作成** + `/product/README.md` に以下を記載: + - プロジェクト概要 + - セットアップ手順 + - デモユーザー情報(全ユーザー種別) + - 実装済み機能の説明 + - 技術スタック + - ディレクトリ構造 + +7. **ビルド確認** + ```bash + npm run build + ``` + エラーなくビルドが成功することを確認 + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +- [ ] `npm run build` が成功する +- [ ] `npm run dev` で正常に起動する +- [ ] 全てのユーザーフローが正常に動作する +- [ ] TypeScriptのビルドエラーがない +- [ ] Lintエラーがない(または許容範囲内) +- [ ] README.mdが作成されている + +【統合テスト】 +- [ ] ログイン→ダッシュボード→各機能→ログアウトの流れが動作する +- [ ] 全てのコア機能が実際に使用できる +- [ ] データの永続化が正しく機能する(リロード後も保持) +- [ ] 削除したデータが正しく削除される +- [ ] 検索・フィルタが実際に動作する(該当する場合) + +【レスポンシブデザイン】 +- [ ] モバイルで全ページが正しく表示される +- [ ] タブレットで全ページが正しく表示される +- [ ] デスクトップで全ページが正しく表示される +- [ ] タッチ操作が適切に動作する(モバイル) + +【エラーハンドリング】 +- [ ] コア機能で不正な入力値に対して適切なエラーメッセージが表示される +- [ ] 存在しないページへのアクセスで適切に処理される +- [ ] LocalStorageエラーが適切に処理される + +**注**: ログイン機能はダミー実装のため、厳密なエラーハンドリングは不要です + +【ユーザビリティ】 +- [ ] 全ての操作で適切なフィードバックがある +- [ ] ローディング状態が適切に表示される +- [ ] エラーメッセージが分かりやすい +- [ ] アニメーションがスムーズ +- [ ] UIが直感的で使いやすい + +【ドキュメント】 +- [ ] README.mdにセットアップ手順が記載されている +- [ ] 全てのデモユーザー情報が記載されている +- [ ] 実装済み機能が説明されている +- [ ] 技術スタックが明記されている + +【最終確認】 +- [ ] デプロイ可能な品質である +- [ ] で要求された機能が実装されている +- [ ] Phase1で特定したコア機能が完全に動作する +- [ ] 既知の重大な不具合がない + +全ての項目にチェックが入ったことを宣言し、プロジェクトを完了してください。 + + + + + + +- このプロンプトはフェーズベースで段階的に実行してください +- 各フェーズのcompletion_criteriaを必ず確認し、全項目クリアしてから次へ進んでください +- Phase1の分析結果に基づいて、Phase4の実装内容が大きく変わります +- ページ構成やルーティングは、アプリケーションの要件に最適な形で柔軟に設計してください +- 「一覧・詳細・作成」というパターンに無理に当てはめる必要はありません +- 各機能が「実際に動作する」ことを最優先してください + +**ログイン機能について**: +- ログインは完全なダミー実装で構いません +- デモユーザー情報を見やすく表示し、ワンクリックでログインできるようにしてください +- 複雑なバリデーションやエラーハンドリングは不要です +- 重要なのはコア機能の実装であり、ログインはあくまで認証状態を作るための簡易的な手段です + diff --git a/yourwork_20251028/prompt/workingbackwards-prompt.md b/yourwork_20251028/prompt/workingbackwards-prompt.md new file mode 100644 index 0000000..73fccdd --- /dev/null +++ b/yourwork_20251028/prompt/workingbackwards-prompt.md @@ -0,0 +1,738 @@ + + +このプロンプトは順次実行型です。各フェーズを完了後、次のフェーズに進んでください。 +各フェーズ完了時には、完了確認と品質チェックを行ってください。 + + + + +1. チーム規模と役割構成: エンジニア10名 +2. 技術スタック経験: AWSの実装経験あり +3. プロダクト開発経験: 0->1,1->10のプロダクト開発経験あり +4. 学習・適応能力: 新技術習得は可能だが、既存技術を優先 +5. 開発期間・リソース: 6ヶ月、3名 + + + + + + + + +あなたはユーザーリサーチの専門家です。 + + +discovery/customer.md に定義された顧客のうち、目的を達成できた顧客のインタビュー結果をまとめています。目的を達成できた顧客のインタビュー結果をまとめています。1)目的達成のために取った行動、2)行動に要したリソース(金額や時間など)、3)その時の感情の3点を時系列かつ定量的に表にまとめカスタマージャーニーを discovery/README.md の Listen セクションに記載してください。 +加えて、各行動ステップで顧客が実際に口にしそうな言葉(ペインポイント)を引用形式で追記してください。 +例:「Slackのメッセージが多すぎて、重要な情報を見逃してしまう」 + + +| 行動ステップ | 所要時間 | 費用 | 使用ツール | 感情(1-5) | 課題 | 顧客の声 | +|------------|---------|------|-----------|-----------|------|---------| +| 1. チームコミュニケーションツール検討 | 2週間 | 0円 | - | 😟 3 | 選択肢が多すぎて決められない | 「Slackのメッセージが多すぎて...」 | +| 2. Slack導入 | 1日 | 10万円/年 | Slack | 😊 4 | 導入は簡単 | 「導入は簡単だったが...」 | +... + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +[] カスタマージャーニーが最低5ステップ以上定義されている +[] 全てのステップに定量的データ(所要時間・費用)が記載されている +[] 全てのステップに感情スコア(1-5)が付与されている +[] 全てのステップに「顧客の声」が引用形式で記載されている +[] 合計費用が年間10万円以上である(課題の重要性の指標) +[] 感情スコアが3以下の「ペインポイント」が3つ以上存在する + +【品質基準】 +[] 各ステップが時系列で論理的につながっている +[] 顧客の声が具体的で、実際のユーザーが言いそうな表現になっている +[] customer.md で定義された顧客の「目的」達成までの道のりが描かれている +[] 使用ツールが具体的な製品名・サービス名で記載されている + +【次フェーズへの準備】 +[] Phase2で問いを立てるのに十分な「非効率な行動」が3つ以上特定されている +[] 各行動の前後関係が明確で、Phase2での「同時にできない理由」分析が可能 + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase2 に進んでください。 + + + + + +あなたは貪欲な研究者として、顧客が常識と思う行動に対しても常に問いを投げかけます。 + + +discovery/README.md の Listen セクションに記載されているユーザーの行動一つ一つについて、必要なリソースと前後の行動をもとに 2 種類の常識を疑う問いを立ててください。各行動に対し立てた問いを Define セクションに表にまとめてください。 +* 「なぜ〇〇せずに□□ができないのか? 」 +* 「なぜ○○と○○は同時にできないのか?」 + + + +| 行動ステップ | 問いの種類 | 問い | 現在の制約 | +|------------|-----------|------|-----------| +| 1. ツール検討 | 省略型 | なぜ事前調査せずにツールを決定できないのか? | 情報が散在している | +| 1. ツール検討 | 統合型 | なぜツール検討と試用は同時にできないのか? | 検討に時間がかかる | +... + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +[] Phase1で定義した全ての行動ステップに対して、最低2つの問い(省略型・統合型)が立てられている +[] 各問いに「現在の制約」が明記されている +[] 合計で最低10個以上の問いが生成されている +[] 全ての問いが「なぜ〇〇せずに□□ができないのか?」または「なぜ○○と○○は同時にできないのか?」の形式に従っている + +【品質基準】 +[] 問いが「当たり前を疑う」視点で立てられている(単なる機能改善要望ではない) +[] 各問いが具体的で、解決策をイメージできる +[] 「現在の制約」が技術的、組織的、心理的な障壁を明確に示している +[] 問いが顧客の実際のペインポイントに根ざしている(Phase1の「顧客の声」との関連が明確) + +【次フェーズへの準備】 +[] Phase3で優先順位付けするための「削減/獲得できるリソース」が推測可能 +[] 各問いが独立していて、重複や包含関係がない + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase3 に進んでください。 + + + + + +Define セクションでまとめた全ての問いについて、以下の評価軸で点数化し Top3 を選定してください: +- 削減/獲得できるリソース(時間・金額):1-5点 +- 顧客が直面する頻度(日次=5点/週次=3点/月次=1点):1-5点 +- 合計点の高い順に Top3 をランキングし、選定理由とともに Define セクションに追記してください。 + + + +### Top 3 重要課題 + +| 順位 | 問い | リソース削減効果 | 頻度 | 合計スコア | 選定理由 | +|------|------|----------------|------|-----------|---------| +| 1位 | なぜ... | 5点(週10時間削減) | 5点(毎日) | 10点 | CTOが最も頻繁に直面し、週10時間の削減が見込める | +| 2位 | なぜ... | 4点(月50万円削減) | 4点(週3回) | 8点 | ツールコスト削減効果が大きい | +| 3位 | なぜ... | 3点(週5時間削減) | 5点(毎日) | 8点 | 全メンバーが毎日直面する課題 | + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +[] Phase2で抽出した全ての問いに対してスコアリングが実施されている +[] 「リソース削減効果」と「頻度」の両方が定量的に評価されている +[] Top3が明確にランキングされ、合計スコアが記載されている +[] 各問いに選定理由が具体的に記載されている +[] 1位の問いの解決により、最低でも週5時間以上または月10万円以上の削減効果が見込まれる + +【品質基準】 +[] スコアリングが customer.md で定義された顧客の目的と整合している +[] 削減効果が具体的な数値で示されている(「大きい」などの曖昧表現ではない) +[] Top3の選定理由が、ビジネスインパクトと顧客価値の両面から説明されている +[] 頻度の評価が Phase1 のカスタマージャーニーの実態に基づいている + +【次フェーズへの準備】 +[] Top3の問いに対して、solutions.md の既存ソリューションで解決可能かが判断できる +[] 各問いの「現在の制約」が Phase5 での発明の方向性を示唆している + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase4 に進んでください。 + + + + + +熟練の開発チームリーダーとして、discovery/solutions.md に並べられた機能を自社で実装する際の難易度を評価します。 + + +難易度は 1, 3, 5, 10 の 4 段階とし、の情報を元に評価を行ってください。結果は、難易度と理由を箇条書きに追加する形で discovery/solutions.md に記載してください。 + +難易度の基準: +- 1: で定義された既存技術で1-2週間で実装可能 +- 3: 既存技術で1-2ヶ月の実装期間が必要 +- 5: 新規学習または複雑な統合が必要(2-4ヶ月) +- 10: 大規模な設計変更またはチーム拡大が必要(4ヶ月以上) + + + +solutions.md の各ソリューションに以下を追記: + +**自社実装難易度**: 5/10 +**理由**: +- で定義された技術スタックでリアルタイム共同編集を実現するには、深い理解が必要 +- ドキュメント構造化には独自のデータモデル設計が必要(2ヶ月) +- API連携機能の実装に1ヶ月 +- 合計3ヶ月の実装期間を想定(の開発期間内に収まるか確認) + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +[] solutions.md の全てのソリューション(最低3つ)に難易度が付与されている +[] 各難易度に具体的な理由が3つ以上記載されている +[] 難易度が 1, 3, 5, 10 のいずれかである +[] 実装期間の見積もりが含まれている +[] の開発期間を超えるものが明確に識別されている + +【品質基準】 +[] 評価が で定義された技術スタックに基づいている +[] で禁止されている新技術の学習が必要な場合、明確に指摘されている +[] で定義されたチーム規模を前提とした現実的な見積もりになっている +[] 難易度の理由に、フロントエンド・バックエンド・インフラの各側面が考慮されている +[] 外部サービス連携の複雑さが評価に含まれている + +【次フェーズへの準備】 +[] 難易度の合計から、実現可能なソリューション組み合わせの上限が見積もれる +[] の開発期間内に実装可能なソリューションが最低2つ以上存在する + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase5 に進んでください。 + + + + + + +Phase3で選定した Top3 の問いそれぞれに対して、discovery/solutions.md に記載したソリューションを2-3個組み合わせた解決策を考案し、discovery/README.md の Invent セクションに追記してください。 + +**重要**: 提案する発明のうち、最低3つは以下の「ブレイクスルーアイデアフレームワーク」を適用した、あっと驚くような独自のアイデアを含めてください。 + + +以下のいずれか(または複数)のアプローチを使用して、常識を覆すアイデアを生成してください: + +1. **逆転の発想**: 常識とされる行動の「逆」をあえて行うことで価値を生む + 例: 「情報を整理する」→「情報を意図的に混在させて、セレンディピティを生む」 + +2. **異業種転用**: 全く異なる業界の成功パターンを適用する + 例: ゲーム業界のガチャ要素をB2B SaaSに適用、Netflix の推薦アルゴリズムをチーム編成に適用 + +3. **時間軸の操作**: 通常「後で」行うことを「先に」、「同時に」行うことを「分離」する + 例: 会議の議事録を会議「前」にAIが予測生成、意思決定と実行を完全分離 + +4. **制約の武器化**: 制約を「解決すべき問題」ではなく「差別化の源泉」として活用 + 例: あえて機能を減らすことで使いやすさを実現、低予算を逆手に取った口コミ戦略 + +5. **感情の逆流**: ネガティブな感情をポジティブな体験に、ポジティブな体験にスパイスを + 例: エラー画面を楽しいゲームに変える、順調な時にあえて警告を出して緊張感を保つ + +6. **AI/自動化の創造的活用**: 単なる効率化ではなく、人間にはできない新しい価値を創造 + 例: AIが「人間らしくない」提案をあえてすることで、思考の幅を広げる + + +各発明には以下を含めてください: +- 対象となる問い(Phase3のTop3から) +- 組み合わせるソリューション名 +- 新しい価値提案(既存ソリューションの単純な組み合わせを超えた独自性) +- **ブレイクスルー要素**(該当する場合:どのフレームワークを適用したか、なぜそれが驚きを生むか) +- 実装難易度(Phase4の難易度の合計) +- 実装期間の見積もり + + + +## Invent: 発明 + +### 発明1: [サービス名] (通常の発明) + +**解決する問い**: Phase3-2位「なぜ...」 + +**組み合わせるソリューション**: +- Notion の構造化ドキュメント機能(難易度: 5) +- Linear の高速インターフェース(難易度: 3) + +**新しい価値提案**: +既存のNotionは構造化に優れるが遅く、Linearは高速だがドキュメント管理が弱い。本サービスは、で定義された技術スタックの特性を活かし、「構造化されたドキュメントを高速に編集・検索できる」体験を実現する。 + +**合計難易度**: 8/10 +**実装期間**: 4ヶ月(の開発期間内に収まることを確認) +**実現方法**: +- で定義された技術スタックの機能を組み合わせて実現 +- 具体的な実装方法と使用する機能を記載 + +**独自の差別化要素**: +- customer.md で定義されたペルソナに特化した機能 +- 競合と比較した価格優位性や独自機能 + +--- + +### 発明2: [サービス名] 🎯**ブレイクスルーアイデア** + +**解決する問い**: Phase3-1位「なぜ...」 + +**組み合わせるソリューション**: +- [ソリューションA](難易度: X) +- [ソリューションB](難易度: Y) + +**新しい価値提案**: +[通常の価値提案] + +**🚀 ブレイクスルー要素**: +- **適用フレームワーク**: [逆転の発想/異業種転用/時間軸の操作/制約の武器化/感情の逆流/AI創造的活用] +- **なぜ驚くか**: [このアイデアが常識を覆す理由。具体的にどの「当たり前」を疑い、どんな新しい体験を生むか] +- **実例**: [類似のブレイクスルーアイデアの成功事例があれば記載] + +**合計難易度**: X/10 +**実装期間**: Xヶ月 +**実現方法**: +- [具体的な実装方法] + +**独自の差別化要素**: +- [従来にない体験価値] +- [競合が真似できない理由] + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +[] Phase3のTop3の問い全てに対して発明が提案されている(最低3つ) +[] 各発明に「新しい価値提案」が明確に記載されている +[] 各発明に実装難易度と実装期間が記載されている +[] 最低1つの発明が の開発期間内に実装可能である +[] **最低3つの発明に「ブレイクスルー要素」が含まれている(🎯マーク付き)** + +【品質基準】 +[] 新しい価値提案が「既存ソリューションの単純な足し算」ではなく、独自の洞察に基づいている +[] customer.md で定義されたペルソナに特化した差別化要素がある +[] 実現方法が で定義された技術スタックで具体的に説明されている +[] 価格や提供形態など、ビジネスモデルの要素が含まれている +[] 競合との差別化ポイントが明確に説明されている + +【ブレイクスルーアイデアの品質基準】 +[] ブレイクスルーアイデアが6つのフレームワークのうち最低1つを明確に適用している +[] 「なぜ驚くか」の説明が、具体的な「常識の覆し方」を示している +[] ブレイクスルー要素が実装可能な範囲内に収まっている(実現不可能な空想ではない) +[] 既存の競合が「思いつかなかった」または「実行できなかった」理由が説明されている +[] 読んだ人が「なるほど、その手があったか!」と感じられる内容になっている + +【次フェーズへの準備】 +[] Phase6でプレスリリースを書くのに十分な情報(顧客、課題、解決策、効果)が揃っている +[] 各発明が Phase1 のカスタマージャーニーのどのステップを改善するかが明確 +[] 定量的な効果(Phase3のリソース削減効果)との紐付けが可能 + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase6 に進んでください。 + + + + + +あなたはAmazon の広報担当です。 + + +discovery/README.md の Invent セクションにある発明について誠実なプレスリリースを執筆します。 + +**優先順位**: ブレイクスルーアイデア(🎯マーク付き)が存在する場合は、それを優先的にプレスリリースの対象として選択してください。ブレイクスルーアイデアの「驚き」を前面に押し出した内容にすることで、メディアやユーザーの注目を集めやすくします。 + +次のテンプレートにあるプレースフォルダを置き換える形で Refine のパートにプレスリリースの土台を執筆してください。 + + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件:プレスリリース本文(AWS Lambda PR/FAQ形式)】 +[] Phase5で選定した1つの発明についてプレスリリースが執筆されている +[] 見出し(会社名+サービス名+ローンチ)が明確 +[] サブ見出し(1行の価値提案)が Phase3-Top1 の問いを解決する内容になっている +[] 第1段落(導入パラグラフ)に以下が含まれている + - Phase3-Top1の問いに対する答え(1-2文で簡潔に) + - Phase2のDefineで定義した「常識」 + - Phase5のInventで定義した新しい価値 + - 技術的な独自性(1文で) + - Phase3で算出した定量的な効果 + - 価格設定(簡潔に) + - URLまたは開始方法 +[] 顧客の声が2つ含まれている +[] 各顧客の声に以下が含まれている + - Phase1のペインポイント + - Phase3の定量的な効果 + - Phase5の新しい価値提案による副次的効果 + - 削減前後の時間・コスト +[] 「使い方はシンプル」段落に以下が含まれている + - Phase1のカスタマージャーニーを逆にたどる形の3-5ステップ(簡潔に) + - Phase5で組み合わせたソリューション + - customer.mdのペルソナ + - Phase3-Top1の問いを解決する方法 + - 削減前後の時間・コスト + +【必須条件:顧客向けFAQ】 +[] 顧客向けFAQが最低15個以上含まれている +[] FAQが以下の6つのカテゴリに分類されている + - 一般(General):3個 + - 価格(Pricing):3個 + - はじめ方(Getting Started):3個 + - [サービス名]の使用(Using [Service Name]):5個 + - 制限と制約(Limits and Restrictions):3個 + - パフォーマンス(Performance):3個 +[] 各FAQの回答が具体的で、数値や具体例が含まれている +[] 「何ができますか?」に対する回答が customer.mdのペルソナのユースケースに基づいている +[] 価格に関する回答に Phase3のリソース削減効果との比較が含まれている +[] セキュリティに関する回答が Phase5の実現方法で記載したセキュリティ対策を反映している +[] 制限に関する回答が Phase5の実現方法で記載した技術的制約を正直に記載している + +【必須条件:社内向けFAQ(Internal FAQs)】 +[] 社内向けFAQが最低4つ含まれている +[] FAQ 1「いつ顧客に[サービス名]を勧める/勧めないべきですか?」に以下が含まれている + - 勧めるべき顧客:customer.mdのペルソナ、Phase1の課題、Phase3-Top3の問い + - 勧めるべきでない顧客:ペルソナ以外、Phase5の技術的制約、を超える要求 +[] FAQ 2「[サービス名]の指針(Tenets)は何ですか?」に以下が含まれている + - Phase5のInventで定義した最重要の価値提案 + - Phase3-Top1の問いに関連する指針 + - customer.mdのペルソナに関連する指針 + - に関連する指針 + - 各指針に「より良いものを知らない限り」という前提 +[] FAQ 3「顧客体験を改善するために測定・最適化する運用指標は何ですか?」に以下が含まれている + - Phase3-Top1の問いに関連する指標 + - Phase1のカスタマージャーニーで特定された課題に関連する指標 + - Phase5の新しい価値提案に関連する指標 + - 各指標の測定方法(内部指標と顧客に公開する指標の区別) +[] FAQ 4「[サービス名]はどのようにして顧客のコストを削減できますか?」に以下が含まれている + - Phase3の価格設定の単位 + - Phase3で算出した削減効果 + - 小〜中規模の顧客への恩恵 + - 大規模顧客への恩恵 + - TCO削減の説明 + +【品質基準:Amazon PR/FAQ形式の遵守】 +[] AWS LambdaのPR/FAQと同様の構造になっている(プレスリリース→顧客向けFAQ→社内向けFAQ) +[] プレスリリース本文が簡潔で、3-4段落にまとまっている(詳細はFAQに) +[] 顧客の声が実際のユーザーが言いそうな具体的な表現になっている +[] FAQが「顧客が実際に持つであろう疑問」に答えている +[] 社内向けFAQが「チームの意思決定に必要な情報」を提供している +[] テンプレートの各所に「AWS Lambdaの実例」が参考として記載されている + +【品質基準:具体性と定量性】 +[] プレスリリース全体が customer.md で定義されたペルソナに向けて書かれている +[] 定量的な効果が以下の形で具体的に示されている + - 削減時間(週X時間、年間Y時間) + - 削減費用(年間Z万円) + - 削減率(X%削減) + - 投資回収期間(Xヶ月) +[] 全ての数値が Phase1 と Phase3 のデータに基づいている +[] 「誰が読んでも同じ認識を持てる」レベルの具体性がある(曖昧な表現が0個) + +【品質基準:顧客視点の徹底】 +[] 技術的詳細より、顧客の得られる価値が強調されている +[] 「なぜこのサービスが必要か」が Phase2 の問いと紐付いて説明されている +[] 読んだ人が「これは自分のための製品だ」と感じられる内容になっている +[] ブレイクスルーアイデアの場合、「常識の覆し方」が前面に押し出されている + +【品質基準:実装可能性の担保】 +[] サービスの説明が で実装可能な内容である +[] 価格設定が Phase3 のリソース削減効果と整合している(投資回収期間が合理的) +[] セキュリティ・制限の説明が現実的である +[] 社内向けFAQ「勧めるべきでない顧客」が の制約を反映している + +【次フェーズへの準備】 +[] Phase7で事業計画を立てるのに必要な「提供価値」が明確 +[] ターゲット市場規模を推定するための情報が含まれている(顧客向けFAQ「どのような顧客に向いていますか?」) +[] 成功指標(North Star Metric)につながる行動指標が社内向けFAQ「測定する運用指標」に含まれている + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase7 に進んでください。 + + + + + +あなたはAmazon の事業統括者です。 + + +discovery/README.md の Refine セクションにあるプレスリリースについて会社としてのメッセージ、社内向けの FAQ を追記してください。 + + + + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件】 +[] 提供者メッセージが記載されている +[] ターゲット市場規模が具体的な数値で推定されている +[] N年後の導入目標が明記されている +[] 社内向けFAQが5つ以上含まれている +[] 成功指標(North Star Metric)が定義されている +[] 各フェーズ(1ヶ月/3ヶ月/6ヶ月)でモニタリングする指標が定義されている + +【品質基準】 +[] 市場規模の推定が論理的な根拠に基づいている(例: ターゲット企業数 × customer.mdで定義されたペルソナの割合 × ツール予算) +[] 導入目標が現実的である(市場規模の1-10%程度) +[] 成功指標が Phase3-1位の問いの解決度合いを測定できる +[] モニタリング指標が「先行指標」→「エンゲージメント指標」→「リテンション指標」と段階的に設定されている +[] 競争優位性の評価基準が具体的である(「N回以上利用」など) + +【事業計画の完成度】 +[] 継続判断のタイミングと基準が明確 +[] 独自の強み(技術/データ/パートナーシップ等)が明記されている +[] リスク要因と対応策が検討されている(オプション:FAQ に含めることを推奨) +[] 収益モデルが Phase6 の価格設定と整合している + +【全体の整合性チェック】 +[] Phase1(Listen)→ Phase7(Refine)まで一貫したストーリーになっている +[] 定量的な目標値が Phase1 と Phase3 のデータに基づいている +[] で定義された制約条件が全体のロードマップに反映されている + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言して完了してください。 + +【最終確認】 +全7フェーズ完了後、discovery/README.md を通読し、以下を確認してください: +- Listen/Define/Invent/Refine の各セクションが完成している +- 顧客の課題から事業計画まで、一貫した論理でつながっている +- で定義された実装可能性が担保されている + + + + + \ No newline at end of file diff --git a/yourwork_20251028/sample/ai_development/customer.md b/yourwork_20251028/sample/ai_development/customer.md new file mode 100644 index 0000000..dd71861 --- /dev/null +++ b/yourwork_20251028/sample/ai_development/customer.md @@ -0,0 +1,14 @@ +## ターゲットの目的、背景、属性 + +### **目的** +スタートアップから急成長企業のCTOが、限られた開発リソースの中で**持続可能な開発生産性向上**と**競争優位性の確立**を実現すること。単なる効率化ではなく、品質を損なうことなく市場投入速度を加速し、PMFの実現とスケーラブルな技術基盤の構築を両立させる。 + +### **背景(社内的状況)** +先週の経営会議で、CEOから「競合が2週間でリリースした機能を、うちは1ヶ月かかっている」と指摘された。その夜、エンジニアリングマネージャーから「3名のシニア開発者が転職を検討している。理由は単純作業の多さと、技術にチャレンジできないこと」というSlackが届いた。採用チームからは「年収1,200万円でも内定辞退が3件連続」、CFOからは「増員は難しい。今いるメンバーでなんとかならないか」とプレッシャーがかかる。開発チーム内では、シニア2名、ミドル5名、ジュニア8名という構成で、コードレビューの待ち時間が平均2日かかっており、シニアがボトルネックになっている。スプリント振り返りでは見積もりの30%オーバーが常態化し、プロダクトマネージャーから「いつリリースできるか読めない」という声が噴出している。競合がAI開発ツールを導入している噂を聞き、取締役会で「なぜうちは導入しないのか」と質問されたが、セキュリティチームからは「外部サービスにコードを送信するリスク」、法務からは「知的財産の保護」という懸念が寄せられ、判断できずにいる。 + +### **属性** +- **規模**: 開発チーム10~100名のスタートアップ・急成長企業 +- **フェーズ**: シード~シリーズAの成長期企業 +- **課題**: 人材確保困難、開発速度とコード品質のバランス、技術的負債の蓄積懸念 +- **意思決定権限**: 技術投資に関する最終決定権を持つCTO・VPE +- **予算制約**: コスト効果を明確に示す必要がある環境 diff --git a/yourwork_20251028/sample/ai_development/output.md b/yourwork_20251028/sample/ai_development/output.md new file mode 100644 index 0000000..e69de29 diff --git a/yourwork_20251028/sample/ai_development/solutions.md b/yourwork_20251028/sample/ai_development/solutions.md new file mode 100644 index 0000000..416913e --- /dev/null +++ b/yourwork_20251028/sample/ai_development/solutions.md @@ -0,0 +1,71 @@ +## 考えうる既存ソリューション分析 + +### **1. GitHub Copilot** + +**いつ使う?** +チームが既にGitHubエコシステムを中心とした開発フローを確立しており、幅広いプログラミング言語でのコード生成支援を求める場面で威力を発揮する。特に、オープンソースライブラリの活用が多く、標準的な開発パターンでの生産性向上を重視する企業において最適解となる。 + +**どう課題を解決した?** +従来4時間かかっていたCRUD操作の実装が30分で完了するようになり、ボイラープレートコードの生産が劇的に効率化された。開発者は創造的な問題解決により多くの時間を割けるようになり、**技術的負債を生まない品質の高いコード**を素早く実装できるようになった。コードレビューの時間も、AIが生成した標準的なコードパターンにより25%短縮された。シニア開発者のレビュー待ちというボトルネックが解消され、ジュニアメンバーも自信を持ってコミットできるようになった。 + +**どんな効果が出た?** +実際の企業調査では**開発速度が平均26-55%向上**し、開発者満足度が大幅に改善された。特に注目すべきは、経験の浅い開発者でも**シニア開発者並みのコード品質を実現**できるようになり、チーム全体のスキル底上げが図られた点だ。これにより「3名のシニア開発者転職検討」という危機的状況を回避し、むしろジュニアの成長実感が高まった。一方で、学習曲線の停滞や、AIに依存しすぎることによる基礎スキル低下の懸念も報告されている。 + +**どう実現している?** +OpenAIのCodexをベースにした大規模言語モデルが、GitHub上の数十億行のパブリックコードから学習し、リアルタイムでコンテキストに応じた提案を行う。VS Code、JetBrains、Neovimなど主要IDEとの深い統合により、開発者のワークフローを中断することなくシームレスな支援を提供している。 + +**サービスURL**: https://github.com/features/copilot + +--- + +### **2. Amazon Q Developer(旧CodeWhisperer)** + +**いつ使う?** +AWSインフラストラクチャを中心としたクラウドネイティブ開発において、インフラとアプリケーションコードの一体化した生産性向上を求める場面で真価を発揮する。特に、セキュリティとコンプライアンスが重視されるエンタープライズ環境での導入において、他の選択肢を上回る価値を提供する。 + +**どう課題を解決した?** +AWS SDKやクラウドサービスとの統合コードの実装時間が**従来の70%削減**され、セキュリティベストプラクティスに準拠したコードが自動的に生成されるようになった。さらに、既存のレガシーコードのモダナイゼーション作業において、**自動的なコード変換機能**により大幅な工数削減を実現した。IAMポリシーやセキュリティ設定の実装ミスが98%減少し、セキュリティチームからの「外部サービスにコードを送信するのはリスク」という懸念に対しても、AWSの信頼性とコンプライアンス体制で説得力のある回答を提供できた。 + +**どんな効果が出た?** +AWSを主軸とする開発チームでは**開発生産性が45%向上**し、クラウドネイティブなアーキテクチャの実装品質が劇的に改善された。**セキュリティインシデントの発生率が60%削減**され、コンプライアンス要件への対応時間も大幅に短縮された。法務部門の「知的財産の保護」という懸念に対しても、Amazon独自のモデル学習手法により外部漏洩リスクを最小化していることを示せた。コードレビューにおいても、AWSベストプラクティスの知識格差によるレビュー時間のばらつきが解消された。 + +**どう実現している?** +AWSの豊富なクラウドサービス知識と、Amazon内部での大規模システム開発経験を学習したモデルが、クラウドファーストな開発パターンを提案する。VSCode、IntelliJ、AWS Cloud9との統合に加え、**AWS CLIやCDKとの連携**により、インフラとアプリケーションの境界を越えた包括的な開発支援を実現している。 + +**サービスURL**: https://aws.amazon.com/q/developer/ + +--- + +### **3. Cursor** + +**いつ使う?** +開発者がIDEに深く没入しながら、**対話的かつ流れるようなコーディング体験**を求める場面で圧倒的な価値を発揮する。特に、既存コードベースの理解とリファクタリング、複数ファイルにまたがる大規模な変更、新しい技術スタックへの挑戦など、「AIとペアプログラミングする感覚」が必要な場面において最適解となる。VS Codeの操作性に慣れたチームであれば、学習コストゼロで即日生産性向上を実感できる。 + +**どう課題を解決した?** +従来「新しい技術にチャレンジできない」という不満を抱えていたシニア開発者が、Cursorの**Cmd+K(インラインコード編集)**や**チャット機能による自然言語での要求**により、未経験の技術領域でも自信を持って実装できるようになった。コードベース全体を理解した上での提案により、「見積もりの30%オーバー」という課題も、より正確な工数見積もりが可能になり改善された。複数ファイルにまたがるリファクタリング作業が、**従来3日かかっていたものが半日で完了**するようになり、技術的負債の返済スピードが劇的に向上した。 + +**どんな効果が出た?** +実際の導入企業では**開発速度が40-50%向上**し、特に「複雑なロジック変更」や「新規フレームワーク導入」における学習時間が大幅に短縮された。State of Web Dev AI 2025の調査では、**約59%の開発者が「生産性が大幅に向上した」**と回答している。最も重要な効果は、エンジニアの満足度向上だ。「単純作業から解放され、設計や課題解決に集中できる」という声が社内アンケートで上位を占め、転職を検討していたシニア開発者の定着にも成功した。 + +**どう実現している?** +VS Codeをベースにした親しみやすいUIに、**Claude 3.5 Sonnet、GPT-4など複数の最先端AIモデル**を統合している。コードベース全体をインデックス化し、プロジェクトコンテキストを理解した上での提案を行う。**Composerモード**では複数ファイルの同時編集が可能で、**Tab補完、Cmd+K、チャット**という3つの異なるインタラクション方法により、開発者の意図を柔軟に汲み取る。月額$20のProプラン、チーム向け$40のBusinessプランと、スタートアップにも手が届く価格設定も魅力だ。 + +**サービスURL**: https://cursor.com/ + +--- + +### **4. Devin** + +**いつ使う?** +単なるコード補完を超えて、**タスク全体を自律的に完遂するAIエージェント**が必要な場面で革命的な価値を提供する。特に、時間のかかるレガシーシステムのマイグレーション、単調だが膨大な量のリファクタリング作業、複数のツールやドキュメントを横断する調査が必要な実装など、「エンジニアの時間を別の価値創造に振り向けたい」という状況で最大の効果を発揮する。「人がやらなくても良い作業」を完全に委任できる唯一の選択肢だ。 + +**どう課題を解決した?** +ブラジルのフィンテック企業Nubankでは、**8年間で肥大化した数百万行規模のETLシステム移行**という悪夢のようなプロジェクトに直面していた。人間が行えば18ヶ月以上かかる見積もりだったこの作業を、Devinに委任した結果**わずか数週間で完了**し、**エンジニアリング時間を12倍節約、コストを20倍以上削減**した。Devinは要件の理解、既存コードの解析、新しいコードの実装、テスト、デバッグまでを自律的に実行し、人間のエンジニアは最終レビューと戦略的判断に集中できた。これにより「バグ修正に時間を取られる」状況から脱却し、新機能開発に注力できる環境が生まれた。 + +**どんな効果が出た?** +導入企業では**作業速度が8-12倍**に達し、特に大規模リファクタリングやマイグレーション作業において圧倒的な効率化を実現した。重要なのは、単なる速度向上だけでなく、**エンジニアの創造性を解放**できた点だ。GMOインターネットグループの検証では、「PRのマージ割合は半分」という課題もあるが、「指示がはっきりした内容」では極めて高い成功率を示している。時給換算で約1,200円というコストパフォーマンスの高さから、「年収1,200万円でも採れない」シニア人材不足の解決策として、経営陣への説得材料にもなった。 + +**どう実現している?** +Devinは**ブラウザ、ターミナル、コードエディタを統合した専用環境**で動作し、人間のエンジニアと同様のワークフローを再現する。Slackとの連携により、進捗報告や質問を自然に行い、チームメンバーとして振る舞う。従量課金モデル(ACU: Agent Compute Unit)により、月額$20から利用可能で、必要な時に必要なだけ使える柔軟性がある。Teamプランでは月額$500で250ACU+無制限ユーザー数という本格運用に適した選択肢も用意されている。 + +**サービスURL**: https://devin.ai/ diff --git a/yourwork_20251028/sample/security/customer.md b/yourwork_20251028/sample/security/customer.md new file mode 100644 index 0000000..15d69fc --- /dev/null +++ b/yourwork_20251028/sample/security/customer.md @@ -0,0 +1,14 @@ +## ターゲットの目的、背景、属性 + +### **目的** +スタートアップから成長期のSaaS企業のCTOが、エンタープライズ市場へのアップマーケットを実現し、**契約単価の向上とビジネスの安定化**を図ること。中小企業向けから脱却し、大手企業との契約を獲得することで、ARRの成長加速とチャーンレートの低下を両立させる。 + +### **背景(社内的状況)** +先月の営業会議で、セールスVPから「3社連続で最終段階で失注した。全て理由は『セキュリティ要件を満たさない』」という報告があった。その夜、大手製薬会社との商談を進めていたエンタープライズセールス担当から「200ページのセキュリティ質問票が届いた。半分以上答えられない」とSlackが届く。CFOからは「現在のACVは50万円。エンタープライズなら500万円取れる。売上を10倍にするには新規獲得100社か、エンタープライズ10社か」と迫られる。プロダクトマネージャーからは「シングルサインオン、監査ログ、RBAC、データレジデンシー。機能要求が毎週5件以上来る」と悲鳴が上がる。取締役会では「競合のSlackはエンタープライズで成功している。うちはいつ追いつくのか」と質問され、明確な回答ができなかった。 + +### **属性** +- **規模**: 開発チーム20~50名のSaaS企業 +- **フェーズ**: シリーズA~Bの成長期企業 +- **課題**: エンタープライズ要件への対応不足、セキュリティ認証未取得、営業サイクルの長期化 +- **意思決定権限**: 技術戦略とプロダクトロードマップの決定権を持つCTO +- **予算制約**: ROIを示しながら段階的な投資が必要な環境 diff --git a/yourwork_20251028/sample/security/output.md b/yourwork_20251028/sample/security/output.md new file mode 100644 index 0000000..d9c3370 --- /dev/null +++ b/yourwork_20251028/sample/security/output.md @@ -0,0 +1,399 @@ +# discovery/README.md - エンタープライズSaaSセキュリティ自動化プラットフォーム + +## Phase 1: カスタマージャーニー作成(Listen) + +### エンタープライズ市場参入カスタマージャーニー + +| # | 行動ステップ | 所要時間 | 費用(円) | 使用ツール | 感情スコア | 主要課題 | 顧客の声 | +|---|------------|---------|-----------|-----------|-----------|---------|---------| +| 1 | **認識・戦略立案**
エンタープライズ商談での失注を経験し、セキュリティ要件の壁を認識。経営陣への投資提案と予算確保を行う。 | 1-2ヶ月 | 75万-225万円 | G2、Capterra、競合分析ツール、ROI計算機 | **2/5** | ・経営陣の理解不足(「今の顧客で十分」)
・投資額と期間への驚愕
・どこから始めればよいか不明確 | 「エンタープライズ取引が毎回'SOC 2レポートはありますか?'で止まる。この壁を越えないと成長できない」 | +| 2 | **ギャップ分析・スコープ定義**
現状セキュリティ体制の棚卸しとフレームワーク選定。70-150統制項目のギャップアセスメントを実施。 | 1-3ヶ月 | 150万-450万円 | Vanta/Drata無料アセスメント、スプレッドシート、Jira/Asana | **2/5** | ・70-150統制項目の多さに圧倒
・既存セキュリティの不十分さ判明
・エンジニアからの抵抗
・技術的負債がコンプライアンス阻害 | 「ギャップ分析で判明した問題の多さに愕然。パスワード管理、アクセス制御、ログ監視...全て不十分だった」 | +| 3 | **統制・ポリシー実装**
情報セキュリティポリシー策定(40+文書)、MFA全社導入、データ暗号化、RBAC構築、ログ監視・SIEM導入、DR計画整備等を実施。 | 3-6ヶ月 | 750万-1,500万円 | Vanta/Drata ($2-5K/月)、Okta/Auth0、1Password、Splunk/Datadog、KnowBe4 | **2.5/5** | ・複数ツール統合の複雑さ
・開発速度15-25%低下
・継続的エビデンス収集の負担
・「セキュリティ vs 速度」トレードオフ
・警告疲れ(誤検知) | 「統制実装の最大課題は開発速度を犠牲にせずセキュリティ強化すること。'Move fast and break things'は通用しない」 | +| 4 | **外部監査・認証取得**
監査法人選定、レディネスアセスメント(模擬監査)、本監査実施、不適合是正、最終報告書受領。 | Type I: 2-4ヶ月
Type II: 6-12ヶ月 | 150万-825万円 | 監査管理プラットフォーム、自動エビデンス収集ツール、監査法人(CPA認定) | **3/5** | ・エビデンス収集の煩雑さ(複数システムから手動)
・予期せぬ追加質問
・ログの不完全さ
・エンジニア業務の中断
・監査法人の解釈の違い | 「最も困難なのは監査でなく準備。複数システムから何週間もエビデンス収集する」 | +| 5 | **運用・継続的維持管理**
継続的統制モニタリング(24/7)、四半期アクセスレビュー、年次リスクアセスメント、インシデント対応、年次更新監査。 | 継続的(年間) | 750万-2,250万円/年 | 継続的コンプライアンス監視ツール、SIEM、脆弱性スキャナー | **3.5/5** | ・日々の統制運用負担
・統制失敗時の是正対応
・新脅威への対応(ゼロデイ脆弱性)
・コンプライアンス疲れ | 「コンプライアンスは一度達成して終わりでない。継続的監視、更新、テストが日常業務の一部に」 | +| 6 | **スケールアップ・複数フレームワーク**
追加フレームワーク取得(ISO 27001、GDPR、HIPAA)、グローバル市場対応。 | 3-12ヶ月 | 1,200万-3,000万円 | マルチフレームワーク管理ツール、データレジデンシー管理ツール | **3.5/5** | ・フレームワーク間の要件差異
・データレジデンシー要件
・管理コスト上昇 | 「SOC 2とISO 27001は80-96%統制重複。残り10-20%対応が意外と大変」 | +| 7 | **エンタープライズ営業加速・ROI実現**
Trust Center公開、セキュリティ質問票自動化、ABM実施、大型案件獲得。 | 継続的 | 変動 | Trust Center、セキュリティ質問票自動化ツール、ABMプラットフォーム | **4/5** | ・エンタープライズセールスサイクルの長さ
・質問票対応の継続的負担 | 「Recruit CRMはコンプライアンス対応後30-45日で2社のエンタープライズ顧客獲得」 | + +**合計費用**: 年間**3,075万円〜8,250万円**(初年度) +**合計期間**: **12-24ヶ月** +**感情スコア3以下のペインポイント**: **4つ**(ステップ1, 2, 3, 4) + +--- + +## Phase 2: 問いの立案(Define) + +### 各行動ステップに対する問いの立案 + +#### ステップ1: 認識・戦略立案 +**問い1-A(省略型)**: なぜ「失注を経験してから」でなく「失注する前に」エンタープライズ要件を満たせないのか? +**現在の制約**: エンタープライズセキュリティ要件の可視性不足、予算承認プロセスの遅さ + +**問い1-B(統合型)**: なぜ「経営陣への説得」と「技術的実現可能性の検証」は同時にできないのか? +**現在の制約**: ROI計算に必要なデータ不足、技術的複雑性の見積もり困難 + +#### ステップ2: ギャップ分析・スコープ定義 +**問い2-A(省略型)**: なぜ「手動でスプレッドシート管理」せずに「自動的にギャップを可視化」できないのか? +**現在の制約**: 複数システムへの分散、統一的な評価基準の欠如 + +**問い2-B(統合型)**: なぜ「現状分析」と「統制の優先順位付け」は同時にできないのか? +**現在の制約**: 統制間の依存関係が不明確、ビジネスインパクトの定量化困難 + +#### ステップ3: 統制・ポリシー実装 +**問い3-A(省略型)**: なぜ「開発速度を15-25%犠牲にして」でなく「速度を維持しながら」セキュリティを強化できないのか? +**現在の制約**: セキュリティプロセスの手動実行、開発ワークフローへの統合不足 + +**問い3-B(統合型)**: なぜ「複数ツールの個別導入」と「統合されたセキュリティ基盤構築」は同時にできないのか? +**現在の制約**: ツール間の連携不足、統一的なデータモデルの欠如 + +**問い3-C(省略型)**: なぜ「40+のポリシー文書を手動作成」せずに「テンプレートから自動生成」できないのか? +**現在の制約**: カスタマイズ要件の多様性、業界標準テンプレートの不足 + +#### ステップ4: 外部監査・認証取得 +**問い4-A(省略型)**: なぜ「何週間もかけて手動でエビデンス収集」せずに「自動的にエビデンスを集約」できないのか? +**現在の制約**: 複数システムへのログ分散、監査要件とログ構造の不一致 + +**問い4-B(統合型)**: なぜ「監査準備」と「日常業務」は同時にできないのか? +**現在の制約**: エビデンス収集の一時的集中作業、エンジニアの業務中断 + +**問い4-C(省略型)**: なぜ「監査法人の解釈を待って」でなく「事前に要件を明確化」できないのか? +**現在の制約**: 監査基準の曖昧性、監査法人との情報非対称性 + +#### ステップ5: 運用・継続的維持管理 +**問い5-A(統合型)**: なぜ「継続的モニタリング」と「自動修復」は同時にできないのか? +**現在の制約**: 統制失敗の検知遅延、自動修復ロジックの複雑性 + +**問い5-B(省略型)**: なぜ「コンプライアンス疲れ」に陥らずに「持続可能な運用」を実現できないのか? +**現在の制約**: 手動プロセスの多さ、誤検知による警告疲れ + +#### ステップ6: スケールアップ・複数フレームワーク +**問い6-A(統合型)**: なぜ「SOC 2対応」と「ISO 27001対応」を別々でなく「統合的に」実施できないのか? +**現在の制約**: フレームワーク間のマッピング不在、80%重複部分の重複作業 + +**問い6-B(省略型)**: なぜ「追加フレームワーク毎に1,200-3,000万円」かけずに「増分コストで」対応できないのか? +**現在の制約**: 共通統制基盤の欠如、再利用可能な実装の不足 + +#### ステップ7: エンタープライズ営業加速 +**問い7-A(省略型)**: なぜ「セキュリティ質問票に個別対応」せずに「自動的に回答」できないのか? +**現在の制約**: 質問票の標準化不足、統制情報の分散 + +**問い7-B(統合型)**: なぜ「Trust Center公開」と「リアルタイムセキュリティ状況の共有」は同時にできないのか? +**現在の制約**: 静的ドキュメントベースの情報共有、リアルタイムデータ連携不足 + +--- + +## Phase 3: Top3課題の選定(Define) + +### 全問いのスコアリング + +| 問いID | 問いの内容 | 削減/獲得リソース
(1-5点) | 頻度
(1-5点) | 合計点 | +|-------|----------|----------------------|------------|--------| +| 3-A | 速度を維持しながらセキュリティ強化 | 5 | 5 | **10** | +| 4-A | エビデンスを自動的に集約 | 5 | 5 | **10** | +| 5-A | 継続的モニタリングと自動修復を同時実行 | 4 | 5 | **9** | +| 2-A | ギャップを自動的に可視化 | 5 | 3 | 8 | +| 7-A | セキュリティ質問票に自動回答 | 4 | 4 | 8 | +| 1-A | 失注する前にエンタープライズ要件を満たす | 5 | 3 | 8 | + +### Top3課題 + +#### 🥇 第1位(同点): 問い3-A & 問い4-A(スコア10点) + +**問い3-A**: なぜ「開発速度を15-25%犠牲にして」でなく「速度を維持しながら」セキュリティを強化できないのか? +**選定理由**: 開発生産性15-25%維持により年間約4,500万円の価値創出、日次の開発活動に影響 + +**問い4-A**: なぜ「何週間もかけて手動でエビデンス収集」せずに「自動的にエビデンスを集約」できないのか? +**選定理由**: エビデンス収集時間90%削減(約400万円/年)、年4回の監査対応、感情スコア3/5の最大ペインポイント + +#### 🥈 第2位: 問い5-A(スコア9点) + +**問い5-A**: なぜ「継続的モニタリング」と「自動修復」は同時にできないのか? +**選定理由**: インシデント対応時間70%削減、24/7継続的モニタリング、コンプライアンス疲れの軽減 + +#### 🥉 第3位: 問い2-A(スコア8点) + +**問い2-A**: なぜ「手動でスプレッドシート管理」せずに「自動的にギャップを可視化」できないのか? +**選定理由**: ギャップ分析期間70%削減(1-3ヶ月→2週間)、コスト約300万円削減、早期の正確な計画立案 + +--- + +## Phase 4: 実装難易度評価(solutions.md) + +### チーム条件 +- **チーム規模**: エンジニア10名 +- **技術スタック**: AWSの実装経験あり +- **開発期間**: 6ヶ月、3名専任 + +### ソリューション1: コンプライアンス認証 +**難易度スコア**: **10(4ヶ月以上)** +**理由**: 50-100以上のポリシー文書作成、第三者監査機関との調整、組織全体のプロセス変更、継続的コンプライアンス維持体制の構築 + +### ソリューション2: アクセス制御強化 +**難易度スコア**: **5(2-4ヶ月)** +**理由**: AWS Identity Centerにより簡略化、SAML統合は標準的、既存IAMからの移行作業、全社員のオンボーディング + +### ソリューション3: データ主権対応 +**難易度スコア**: **5-7(2-4ヶ月)** +**理由**: リージョン制限は簡単、KMS実装は中程度、CloudHSMは高難度、データ配置戦略の見直し + +### ソリューション4: セキュリティ透明性 +**難易度スコア**: **3(1-2ヶ月)** +**理由**: GuardDuty、Security Hubはワンクリック有効化、基本ダッシュボードは簡単、アラートチューニングが必要 + +--- + +## Phase 5: 発明の提案(Invent) + +### 発明1: 🚀 DevSecOps自動化プラットフォーム(問い3-A対応) + +**対象問い**: 速度を維持しながらセキュリティを強化 +**組み合わせソリューション**: アクセス制御強化(40%) + セキュリティ透明性(40%) + データ主権対応(20%) + +**新しい価値提案**: 開発ワークフローに透明に統合されるセキュリティレイヤー。CI/CDパイプラインが自動的にセキュリティ統制を実行・検証・エビデンス収集。 + +**ブレイクスルー要素**: 🔄 逆転の発想 + 🤖 AI/自動化 +- 従来: セキュリティは開発の「後」で実施 +- 革新: セキュリティは開発の「最中」に自動実行 + +**実装難易度**: 7(3-4ヶ月) +**期待効果**: 開発速度低下15-25% → 2-5%、セキュリティ統制自動実行率85% + +--- + +### 発明2: 🎯 インテリジェント監査エビデンス自動収集システム(問い4-A対応) + +**対象問い**: エビデンスを自動的に集約 +**組み合わせソリューション**: セキュリティ透明性(50%) + アクセス制御強化(30%) + コンプライアンス認証(20%) + +**新しい価値提案**: 監査人の質問を理解し、該当エビデンスを自動収集・整理・提出するAIアシスタント。70-150統制項目のエビデンスを24時間以内に提出可能。 + +**ブレイクスルー要素**: 🤖 AI/自動化 + ⏰ 時間軸の操作 +- 従来: 監査の「タイミング」で「回顧的」に収集 +- 革新: 監査の「前」から「継続的」に「予測的」に収集 + +**実装難易度**: 6(2.5-3ヶ月) +**期待効果**: エビデンス収集時間200時間 → 20時間(90%削減)、年間約400万円削減 + +--- + +### 発明3: ⚡ セルフヒーリングセキュリティオーケストレーター(問い5-A対応) + +**対象問い**: 継続的モニタリングと自動修復を同時実行 +**組み合わせソリューション**: セキュリティ透明性(40%) + アクセス制御強化(40%) + データ主権対応(20%) + +**新しい価値提案**: セキュリティインシデントを検知した瞬間に、人間の介入なしで自動修復するAIオーケストレーター。統制失敗、設定ドリフト、脅威検出に対して事前定義プレイブックを自動実行。 + +**ブレイクスルー要素**: 🤖 AI/自動化 + 🔧 制約の武器化 +- 従来: 「検知」と「対応」を分離(検知→アラート→人間判断→修復) +- 革新: 「検知」と「対応」を統合(検知 == 自動修復) + +**実装難易度**: 8(3.5-4ヶ月) +**期待効果**: インシデント対応時間2時間 → 15秒(99.8%削減)、統制失敗自動修復率85% + +--- + +### 発明4: 🧩 ユニバーサルコンプライアンスハブ(問い2-A + 問い6-A対応) + +**対象問い**: ギャップ自動可視化 + SOC 2とISO 27001を統合的に実施 +**組み合わせソリューション**: コンプライアンス認証(50%) + セキュリティ透明性(30%) + アクセス制御強化(20%) + +**新しい価値提案**: 複数のコンプライアンスフレームワークを単一の統合ビューで管理し、80-96%の重複統制を一度の実装で満たすインテリジェントプラットフォーム。 + +**ブレイクスルー要素**: 🔀 異業種転用 + 🔄 逆転の発想 +- 異業種転用: ソフトウェア開発の「依存性管理」概念をコンプライアンスに転用 +- 逆転: 「各フレームワークに個別対応」→「共通統制基盤から各フレームワークを導出」 + +**実装難易度**: 9(4-5ヶ月) +**期待効果**: ギャップ分析期間1-3ヶ月 → 2週間(85%削減)、追加フレームワークコスト60%削減 + +--- + +## Phase 6: プレスリリース作成(Refine) + +# ComplianceFlow、AI搭載「インテリジェント監査エビデンス自動収集システム」を発表 + +## エンタープライズ市場を目指すSaaS企業のCTOが、監査準備の負担から解放され、プロダクト開発に集中できる革新的ソリューション + +**東京、2026年1月** - ComplianceFlowは本日、AI搭載「インテリジェント監査エビデンス自動収集システム」を発表しました。本システムは、SOC 2、ISO 27001等のコンプライアンス監査準備に必要なエビデンス収集時間を、従来の200時間から20時間に90%削減します。 + +スタートアップから成長期のSaaS企業がエンタープライズ市場にアップマーケットする際、SOC 2やISO 27001などのセキュリティ認証取得が不可欠です。しかし、70-150の統制項目それぞれに対する監査エビデンスの収集は、複数のシステム(AWS、GitHub、Slack、Google Workspace等)から手動で行う必要があり、エンジニアチームに大きな負担をかけてきました。 + +### 解決する課題 + +**エビデンス収集の煩雑さ**: 監査準備に平均200時間を要し、エンジニアが本来の開発業務から離脱。ある CTO は「最も困難なのは監査でなく準備。複数システムから何週間もエビデンス収集する」と語っています。 + +**監査法人の要件理解の難しさ**: 監査法人から「MFAが全ユーザーで有効化されている証拠」と言われても、どのログをどの形式で提出すべきか不明確。 + +**エンジニア業務の中断**: 四半期毎の監査対応でエンジニアが平均50時間業務から離脱。開発スプリントが遅延し、プロダクトロードマップに影響。 + +**証跡の不完全さ**: 監査時点で「過去6ヶ月のアクセスレビュー記録」を求められても、継続的に記録していないため提出不可。 + +### ソリューション + +**24/7継続的エビデンス収集**: 監査の「前」から「継続的」にエビデンスを自動収集。AWS CloudTrail、Config、IAM、Slack、GitHub、Okta等の15+システムと統合し、15分毎に増分収集。 + +**AI搭載エビデンス解釈エンジン**: 監査人の自然言語質問を理解し、該当する統制項目を自動特定。関連するログを自動抽出し、監査法人が好む形式で整形。24時間以内に自動回答。 + +**統制-エビデンスマッピング**: SOC 2、ISO 27001、NIST等の200+統制項目それぞれに必要なエビデンスタイプを事前定義。統制項目毎のエビデンス完全性スコアをリアルタイム表示。 + +**エビデンスギャップ予測アラート**: 監査の2週間前に不足エビデンスを自動検知し、担当者にアラート。監査当日の「証跡不足」による統制失敗を防ぎます。 + +**監査人ポータル**: 監査人専用のセキュアなWebポータルを提供。統制項目別にエビデンスを整理して表示し、監査人は必要な証跡をワンクリックでダウンロード。 + +### 体験手順 + +1. **セットアップ(2週間)**: AWS、GitHub、Slack等のシステムをOAuth認証で統合。SOC 2、ISO 27001等のフレームワークを選択。 + +2. **自動収集開始**: システムが24時間365日、自動的にエビデンスを収集。統制項目毎の完全性スコアをダッシュボードで確認。 + +3. **監査準備**: 監査の2週間前、不足エビデンスをアラート通知。ワンクリックで不足部分を補完。 + +4. **監査実施**: 監査人に専用ポータルへのアクセスを提供。監査人は統制項目別に整理されたエビデンスを確認、追加質問もポータルで受付。 + +5. **継続的維持**: 初回監査後も継続的にエビデンス収集。次回監査はさらにスムーズに。 + +### お客様の声 + +「監査準備は毎回悪夢でした。ComplianceFlow導入後、監査準備が20時間に短縮され、エビデンスの完全性が大幅に向上しました。監査人からも『これまでで最も整理されたエビデンス提出』と評価されました」- SaaS企業CTO(匿名) + +### FAQ + +**Q1: どのコンプライアンスフレームワークに対応していますか?** +A1: SOC 2 Type I/II、ISO 27001、NIST CSF、CIS AWS Foundations、GDPR、HIPAAに対応しています。 + +**Q2: Vanta、Drataと何が違いますか?** +A2: Vanta、Drataは統制の「実装」と「監視」に優れていますが、監査エビデンスの「収集」は手動作業が多く残ります。ComplianceFlowは、監査人の質問を理解し、複数システムから自動的にエビデンスを収集・整形・提出する点で差別化されています。多くのお客様はVanta/Drataと併用しています。 + +**Q3: セットアップにどのくらい時間がかかりますか?** +A3: 標準的な環境で約2週間です。システム統合(Day 1-3)、フレームワーク選択(Day 4-7)、初回スキャン(Day 8-10)、トレーニング(Day 11-14)。 + +**Q4: データセキュリティはどのように担保されますか?** +A4: ComplianceFlow自体がSOC 2 Type II、ISO 27001認証を取得しています。転送時暗号化(TLS 1.3)、保管時暗号化(AWS KMS)、最小権限原則、MFA必須、全アクセスをCloudTrailで記録。 + +**Q5: 年間のコスト削減効果はどのくらいですか?** +A5: 平均的なSaaS企業(50-100名)の場合、エビデンス収集時間削減により年間約400万円のコスト削減。加えて、監査遅延回避によるエンタープライズ案件獲得加速。 + +--- + +## Phase 7: 事業計画(Refine) + +### 提供者メッセージ + +**ミッション**: 世界中のSaaS企業が、コンプライアンスの負担なくエンタープライズ市場に挑戦できる世界を実現する。 + +エンタープライズSaaS市場は年率16.1%で成長し、2030年には$552.1Bに達します。しかし、この成長市場に参入するための「入場券」であるSOC 2、ISO 27001取得は、スタートアップにとって大きな障壁です。初期投資3,000万円以上、期間12-24ヶ月、そしてエビデンス収集に年間200時間。 + +私たちは、この問題を自分たちも経験しました。前職でSaaS企業のCTOとして、SOC 2取得のために6ヶ月間、開発チームがエビデンス収集に追われ、プロダクトロードマップが大幅に遅延しました。「なぜこれを自動化できないのか?」という疑問から、ComplianceFlowは生まれました。 + +2026年、私たちは1,000社のSaaS企業がエンタープライズ市場に参入する支援をします。そして、コンプライアンスが「負担」ではなく「競争優位性」になる世界を実現します。 + +### 社内向けFAQ + +**Q1: ターゲット顧客は現在どのような製品を使用していますか?** +A1: Vanta、Drata、Secureframe(統制実装・監視)、Googleスプレッドシート(エビデンス管理)、外部コンサルタント(エビデンス収集支援)。これらのツールは統制実装に優れていますが、監査エビデンスの自動収集機能は限定的です。 + +**Q2: この製品はどの問題を解決しますか?** +A2: エビデンス収集の煩雑さ(200時間)、監査要件の不明確さ、証跡の不完全さ、エンジニア業務中断(50時間)を解決します。より速い(90%削減)、より良い(完全性向上)、より安い(年間400万円削減)を実現します。 + +**Q3: 現在の競合は?** +A3: 直接競合はVanta Autopilot、Drata、Secureframe。競争優位性は、AI搭載エビデンス解釈(独自)、継続的予測的収集(時間軸の革新)、監査人ポータル(UX優位性)、20+システム統合(統合の広さ)。 + +**Q4: 推定TAMは?** +A4: TAM $10B+(コンプライアンス自動化市場全体)、SAM $500M(従業員50-500名のSaaS企業7,000社 × $72K)、SOM Year 3: $36M(500社、10%市場シェア)。 + +**Q5: 必要な困難な問題は?** +A5: 統制オントロジー構築(6ヶ月)、20+システム統合(3ヶ月)、AI/NLP自然言語理解(4ヶ月)、エビデンス形式変換(2ヶ月)、大規模ログデータの保存・検索(2ヶ月)。 + +**Q6: ユニットエコノミクスは?** +A6: ACV $72K、LTV $216K(3年保持)、COGS $5K(7%)、CAC $36K、LTV/CAC 6.0x(健全)、粗利率93%、貢献利益22%。 + +**Q7: 初期投資額は?** +A7: Year 0(プロダクト開発6ヶ月)$500K、Year 1(GTM、顧客獲得50社)$2.2M、累計初期投資$2.7M(シードラウンド想定)。 + +**Q8: 成功のための仮定は?** +A8: 市場需要(SOC 2新規取得年間1,000社)、ペインポイントの重大性(エビデンス収集200時間)、自動化可能性(85%以上)、監査法人の受容(検証中)、価格受容性(ROI 7-10倍)。 + +**Q9: 成功しない上位3つの理由は?** +A9: ①監査法人の非承認(対策:早期協議・パイロット監査)、②競合の追随(対策:AI差別化・先行者利益)、③市場規模の過大評価(対策:複数セグメント検証・隣接市場拡大)。 + +**Q10: GTM戦略は?** +A10: デザインパートナープログラム(5-10社)、監査法人パートナーシップ(紹介料20%)、コンテンツマーケティング(SEO、ウェビナー)、コミュニティ構築(SaaS CTO)。セールスサイクル30-45日、Year 1目標50社、MRR $200K。 + +### ターゲット市場規模 + +- **TAM**: $10B+(コンプライアンス自動化市場全体) +- **SAM**: $500M(従業員50-500名のSaaS企業7,000社) +- **SOM**: Year 1 $3.6M(50社)、Year 3 $36M(500社)、Year 5 $100M(1,400社) + +### N年後の導入目標 + +- **Year 1(2026)**: 顧客50社、ARR $2.5M、チーム10名 +- **Year 2(2027)**: 顧客200社、ARR $10M、チーム25名 +- **Year 3(2028)**: 顧客500社、ARR $25M、チーム60名、営業利益黒字 +- **Year 5(2030)**: 顧客1,400社、ARR $100M、チーム150名、IPO準備 + +### 成功指標(North Star Metric) + +**監査エビデンス自動収集時間削減率(月間合計)** + +定義: 全顧客の月間エビデンス収集時間削減の合計 +Year 1目標: 月間9,000時間削減(50顧客 × 180時間/年 ÷ 12) +Year 3目標: 月間90,000時間削減(500顧客 × 180時間/年 ÷ 12) + +### モニタリング指標 + +**Listen(顧客理解)**: +- 顧客インタビュー実施数: 月10件 +- デザインパートナー契約数: 累計10社 +- ICP精度: ペインポイント一致率80%以上 + +**Define(問題定義)**: +- エビデンス収集時間削減率: 85%以上(目標90%) +- エビデンス完全性スコア: 平均95%以上 +- 監査遅延発生率: 5%以下 + +**Invent(開発)**: +- システム統合数: 累計20システム +- AI質問理解精度: 85%以上 +- エビデンス自動収集成功率: 95%以上 +- システム稼働率: 99.9% + +**Refine(洗練)**: +- NPS: 50以上 +- CSAT: 4.5/5以上 +- 監査成功率: 98%以上 +- 顧客推薦率: 40%以上 + +**Launch & Scale(市場投入)**: +- North Star Metric: 月間エビデンス削減時間9,000時間(Year 1) +- MRR: $200K(Month 12) +- MRR成長率: 20%/月(初期)→ 10%/月(Year 1後半) +- ロゴChurn率: <5%/年 +- LTV/CAC: 6.0x + +--- + +## まとめ + +本discovery/README.mdドキュメントは、Working Backwards手法に従い、SaaS企業のCTOがエンタープライズ市場に参入する際の最大のペインポイント「監査エビデンス収集の煩雑さ」を解決する**インテリジェント監査エビデンス自動収集システム**を提案しました。 + +**主要な発見**: +- カスタマージャーニー: 7ステップ、初年度3,075万円〜8,250万円、期間12-24ヶ月 +- Top3課題: 開発速度維持(スコア10)、エビデンス自動収集(スコア10)、自動修復(スコア9) +- ブレイクスルー: AI質問理解 + 継続的予測的収集により、エビデンス収集時間90%削減 +- ビジネス: TAM $10B+、Year 3でARR $25M達成可能 + +**実装推奨順序**(6ヶ月、3名チーム): +1. Month 1-2: 監査エビデンス自動収集(難易度6) +2. Month 3-4: DevSecOps自動化(難易度7) +3. Month 5-6: セルフヒーリング(難易度8) + +**次のアクション**: +1. Week 1-2: デザインパートナー5社リクルート +2. Week 3-4: MVP仕様確定、技術アーキテクチャ設計 +3. Month 2-4: MVP開発(SOC 2エビデンス自動収集) +4. Month 5-6: パイロット監査 +5. Month 7: プロダクトローンチ + +**ドキュメント作成日**: 2025年10月28日 +**バージョン**: 1.0 +**作成者**: ComplianceFlow Product Team \ No newline at end of file diff --git a/yourwork_20251028/sample/security/solutions.md b/yourwork_20251028/sample/security/solutions.md new file mode 100644 index 0000000..ea0de9b --- /dev/null +++ b/yourwork_20251028/sample/security/solutions.md @@ -0,0 +1,82 @@ + +--- + +## 考えうるアプローチ方法 + +### **1. コンプライアンス認証優先アプローチ** + +**いつ使う?** +エンタープライズ顧客との商談で、セキュリティ質問票への回答に膨大な時間がかかり、営業リソースが枯渇している状況で選択すべきアプローチだ。特に、複数の大手企業から同じような質問を繰り返し受けており、「認証があれば質問票の8割をスキップできる」という状況において最大の効果を発揮する。金融、医療、公共機関など規制の厳しい業界をターゲットとする場合、認証なしでは商談のテーブルにすら着けない。 + +**どう課題を解決した?** +SOC 2 Type IIとISO 27001の認証を6ヶ月で取得することで、セキュリティ質問票への回答時間が従来の80時間から15時間に短縮された。営業チームは「認証があるので詳細は報告書をご覧ください」と回答でき、商談の進行速度が3倍に向上した。大手製薬会社との商談では、情報システム部門からの承認が従来3ヶ月かかっていたところ、認証提示により2週間で完了した。セキュリティチームの工数削減により、新機能開発に注力できる環境が生まれた。 + +**どんな効果が出た?** +認証取得後の6ヶ月で、エンタープライズ顧客との成約率が15%から45%に向上し、平均契約金額が50万円から450万円に増加した。失注理由から「セキュリティ不足」が完全に消失し、競合との差別化ポイントとなった。認証マークをWebサイトに掲載した結果、インバウンドリードの質が向上し、問い合わせ段階でのスクリーニングが効率化された。監査プロセスを通じて社内のセキュリティ体制が整備され、インシデント発生率が60%減少した。 + +**どう実現している?** +まずSOC 2 Type IIを優先取得し、エンタープライズ顧客の基本要件をクリアする。並行してISO 27001の準備を進め、グローバル展開に備える。監査法人と契約し、ギャップ分析から始め、ポリシー策定、技術的統制の実装、従業員トレーニングを段階的に実施する。Vanta、Drata、Sprintoなどのコンプライアンス自動化ツールを活用し、継続的なモニタリング体制を構築する。認証取得後も定期的な監査に対応できるよう、証拠収集とレポーティングを自動化する。 + +**参考リソース**: +- SOC 2: https://us.aicpa.org/interestareas/frc/assuranceadvisoryservices/aicpasoc2report +- ISO 27001: https://www.iso.org/isoiec-27001-information-security.html + +--- + +### **2. アクセス制御強化アプローチ(SSO・RBAC・監査ログ)** + +**いつ使う?** +エンタープライズ顧客から「あなたのシステムに50人がアクセスする。全員に個別のID/パスワード管理は不可能」「退職者のアカウント削除漏れが怖い」「誰が何をしたか追跡できないと内部統制上問題」という要求が繰り返し出ている状況で選択すべきだ。特に、現在の製品が基本的な認証しか持たず、エンタープライズ顧客のIDプロバイダー(Okta、Azure AD、Google Workspace)との統合ができていない場合に必須となる。 + +**どう課題を解決した?** +SAML/OIDCベースのシングルサインオン(SSO)を実装することで、大手企業の情報システム部門から「既存のIDプロバイダーと統合できるなら検討する」という前向きな反応を得られるようになった。ロールベースアクセス制御(RBAC)により、「一般ユーザー」「マネージャー」「管理者」など役割に応じた権限付与が可能になり、最小権限の原則を満たせた。包括的な監査ログにより、「いつ、誰が、何をしたか」の完全な追跡が可能となり、コンプライアンス監査への対応が劇的に改善された。 + +**どんな効果が出た?** +SSO実装後、エンタープライズ顧客のオンボーディング時間が従来の2週間から2日に短縮され、導入障壁が大幅に低下した。IT部門からの「セキュリティ承認」取得時間が平均60日から15日に短縮され、営業サイクルが加速した。監査ログ機能により、金融機関からの引き合いが増加し、年間契約額が平均300万円から800万円に向上した。退職者アカウントの自動無効化により、セキュリティリスクが軽減され、顧客の信頼が向上した。 + +**どう実現している?** +認証基盤として、Auth0、Okta、AWS Cognito、またはOSSのKeycloakを選定し、SAML 2.0とOpenID Connect (OIDC)の両方に対応する。RBACは、リソース単位で細かく権限を定義できる設計とし、将来的なカスタマイズ要求に対応可能な柔軟性を持たせる。監査ログは、改ざん防止のため外部ストレージ(S3、CloudWatch Logs)に即座に転送し、保存期間を最低1年、理想的には3年以上確保する。ログ検索・可視化のため、Elasticsearch、Splunk、DatadogなどのSIEMツールと統合する。 + +**参考リソース**: +- SAML実装ガイド: https://auth0.com/docs/authenticate/protocols/saml +- RBAC設計パターン: https://auth.wiki/ja/rbac + +--- + +### **3. データ主権・レジデンシー対応アプローチ** + +**いつ使う?** +グローバル展開を目指す中で、欧州顧客から「GDPRに準拠するため、データをEU域内に保存する必要がある」、日本の大手企業から「データを国外に出せない」、金融機関から「データセンターの物理的所在地の証明が必要」という要求が出ている場合に選択すべきだ。特に、顧客データのプライバシーとコンプライアンスが最優先される業界(金融、医療、公共)において、データレジデンシー対応は商談の前提条件となる。 + +**どう課題を解決した?** +マルチリージョン対応アーキテクチャを構築し、顧客が契約時に「米国」「EU」「日本」などデータ保存リージョンを選択できるようにした。欧州顧客に対しては、フランクフルトまたはアイルランドのAWSリージョンでデータを完結させ、GDPR第45条の適切性決定要件を満たした。日本の大手金融機関に対しては、東京リージョンでの完全なデータ隔離を提供し、金融庁のガイドラインに準拠した。データの物理的な所在地、バックアップ先、ディザスタリカバリ先を文書化し、監査対応を容易にした。 + +**どんな効果が出た?** +欧州市場での契約獲得が可能になり、新規ARRが年間5,000万円増加した。日本の大手金融機関3社と契約でき、1社あたり年間1,200万円の契約を獲得した。データレジデンシー対応を差別化ポイントとして打ち出すことで、競合との価格競争を避け、プレミアム価格を維持できた。GDPRコンプライアンスを明示することで、欧州顧客からの信頼が向上し、紹介による新規顧客が増加した。 + +**どう実現している?** +クラウドプロバイダー(AWS、Azure、GCP)の複数リージョンを活用し、顧客ごとにデータを論理的・物理的に分離するマルチテナントアーキテクチャを構築する。データベース、ストレージ、バックアップ、ログなど全てのデータコンポーネントを指定リージョン内に配置し、クロスリージョンレプリケーションを禁止する設定を実装する。GDPRの「データ処理者」としての義務を果たすため、DPA(Data Processing Agreement)を標準契約に含める。データマッピングとフローダイアグラムを作成し、監査時に即座に提示できる体制を整える。 + +**参考リソース**: +- GDPR準拠ガイド: https://gdpr.eu/ +- AWS データレジデンシー: https://aws.amazon.com/compliance/data-privacy/ + +--- + +### **4. セキュリティ透明性・信頼構築アプローチ** + +**いつ使う?** +エンタープライズ顧客との商談で、「セキュリティチームの承認が下りない」「質問票に回答しても追加質問が止まらない」「情報システム部門が製品を信頼してくれない」という信頼の壁に直面している場合に選択すべきだ。特に、競合他社がセキュリティ情報を積極的に開示し、自社が「情報が不透明」と見なされている状況において、ビジネス機会の損失を防ぐために必須となる。 + +**どう課題を解決した?** +専用のセキュリティポータル(Trust Center)をWebサイトに設置し、認証レポート、セキュリティホワイトペーパー、コンプライアンスマトリックス、アップタイムステータス、インシデント履歴を一元的に公開した。SOC 2レポートを商談段階で即座に提供できる体制を整え、NDAなしで基本情報を閲覧可能にした。セキュリティロードマップを四半期ごとに更新し、「現在対応中の機能」「今後6ヶ月の計画」を明示することで、顧客の不安を解消した。セキュリティチームの連絡先を明示し、顧客のCISOとの直接対話を促進した。 + +**どんな効果が出た?** +Trust Center公開後、営業チームへの「セキュリティに関する問い合わせ」が70%減少し、セールスエンジニアの工数が大幅に削減された。商談初期段階での脱落率が40%から15%に低下し、パイプラインの質が向上した。セキュリティ情報の透明性が評価され、Gartner Peer Insightsでのセキュリティ評価が3.5から4.5に向上した。顧客のセキュリティチームから「信頼できるベンダー」として推奨される機会が増え、リファレンス顧客の獲得が容易になった。 + +**どう実現している?** +Trust Centerの構築には、SafeBase、Vanta Trust Center、Drata Trust Centerなどの専用ツールを活用し、リアルタイムでのコンプライアンスステータス表示を実現する。認証レポート、ペネトレーションテスト結果、脆弱性管理ポリシーなどのドキュメントを定期的に更新し、常に最新情報を提供する。Status PageやUptimeRobotを統合し、システムの可用性を透明化する。セキュリティFAQ、ユースケース別のセキュリティガイド、統合APIのセキュリティドキュメントを充実させ、顧客の自己解決を促進する。 + +**参考リソース**: +- SafeBase Trust Center: https://safebase.io/ +- セキュリティ透明性ベストプラクティス: https://www.cisecurity.org/ From bd5894593e613e8d8cd98d2b3f0f29e65548f62b Mon Sep 17 00:00:00 2001 From: yutaokos Date: Fri, 7 Nov 2025 17:10:41 +0900 Subject: [PATCH 2/6] Auto stash before rebase of "20251028" --- .../discovery/customer.md | 0 .../discovery}/solutions.md | 5 +- .../prompt/v0-mock-builder-prompt.md | 0 .../prompt/workingbackwards-prompt.md | 0 .../sample/ai_development/customer.md | 0 .../sample/ai_development/output.md | 0 .../sample/ai_development/solutions.md | 0 .../sample/security/customer.md | 0 .../sample/security/output.md | 0 .../sample/security}/solutions.md | 0 yourwork_20251016/discovery/README.md | 11 - yourwork_20251016/discovery/customer.png | Bin 58583 -> 0 bytes yourwork_20251016/discovery/customer.pptx | Bin 82677 -> 0 bytes yourwork_20251016/discovery/solutions.md | 36 -- .../prompt/workingbackwards-genu-prompt.md | 462 -------------- .../prompt/workingbackwards-prompt.md | 462 -------------- .../prompt/v0-mock-builder-prompt.md | 591 ------------------ 17 files changed, 1 insertion(+), 1566 deletions(-) rename {yourwork_20251028 => yourwork_1shot}/discovery/customer.md (100%) rename {yourwork_20251028/sample/security => yourwork_1shot/discovery}/solutions.md (99%) rename {yourwork_20251016 => yourwork_1shot}/prompt/v0-mock-builder-prompt.md (100%) rename {yourwork_20251028 => yourwork_1shot}/prompt/workingbackwards-prompt.md (100%) rename {yourwork_20251028 => yourwork_1shot}/sample/ai_development/customer.md (100%) rename {yourwork_20251028 => yourwork_1shot}/sample/ai_development/output.md (100%) rename {yourwork_20251028 => yourwork_1shot}/sample/ai_development/solutions.md (100%) rename {yourwork_20251028 => yourwork_1shot}/sample/security/customer.md (100%) rename {yourwork_20251028 => yourwork_1shot}/sample/security/output.md (100%) rename {yourwork_20251028/discovery => yourwork_1shot/sample/security}/solutions.md (100%) delete mode 100644 yourwork_20251016/discovery/README.md delete mode 100644 yourwork_20251016/discovery/customer.png delete mode 100644 yourwork_20251016/discovery/customer.pptx delete mode 100644 yourwork_20251016/discovery/solutions.md delete mode 100644 yourwork_20251016/prompt/workingbackwards-genu-prompt.md delete mode 100644 yourwork_20251016/prompt/workingbackwards-prompt.md delete mode 100644 yourwork_20251028/prompt/v0-mock-builder-prompt.md diff --git a/yourwork_20251028/discovery/customer.md b/yourwork_1shot/discovery/customer.md similarity index 100% rename from yourwork_20251028/discovery/customer.md rename to yourwork_1shot/discovery/customer.md diff --git a/yourwork_20251028/sample/security/solutions.md b/yourwork_1shot/discovery/solutions.md similarity index 99% rename from yourwork_20251028/sample/security/solutions.md rename to yourwork_1shot/discovery/solutions.md index ea0de9b..12aeb3b 100644 --- a/yourwork_20251028/sample/security/solutions.md +++ b/yourwork_1shot/discovery/solutions.md @@ -1,7 +1,4 @@ - ---- - -## 考えうるアプローチ方法 +# 顧客の課題に対する解決策候補一覧 ### **1. コンプライアンス認証優先アプローチ** diff --git a/yourwork_20251016/prompt/v0-mock-builder-prompt.md b/yourwork_1shot/prompt/v0-mock-builder-prompt.md similarity index 100% rename from yourwork_20251016/prompt/v0-mock-builder-prompt.md rename to yourwork_1shot/prompt/v0-mock-builder-prompt.md diff --git a/yourwork_20251028/prompt/workingbackwards-prompt.md b/yourwork_1shot/prompt/workingbackwards-prompt.md similarity index 100% rename from yourwork_20251028/prompt/workingbackwards-prompt.md rename to yourwork_1shot/prompt/workingbackwards-prompt.md diff --git a/yourwork_20251028/sample/ai_development/customer.md b/yourwork_1shot/sample/ai_development/customer.md similarity index 100% rename from yourwork_20251028/sample/ai_development/customer.md rename to yourwork_1shot/sample/ai_development/customer.md diff --git a/yourwork_20251028/sample/ai_development/output.md b/yourwork_1shot/sample/ai_development/output.md similarity index 100% rename from yourwork_20251028/sample/ai_development/output.md rename to yourwork_1shot/sample/ai_development/output.md diff --git a/yourwork_20251028/sample/ai_development/solutions.md b/yourwork_1shot/sample/ai_development/solutions.md similarity index 100% rename from yourwork_20251028/sample/ai_development/solutions.md rename to yourwork_1shot/sample/ai_development/solutions.md diff --git a/yourwork_20251028/sample/security/customer.md b/yourwork_1shot/sample/security/customer.md similarity index 100% rename from yourwork_20251028/sample/security/customer.md rename to yourwork_1shot/sample/security/customer.md diff --git a/yourwork_20251028/sample/security/output.md b/yourwork_1shot/sample/security/output.md similarity index 100% rename from yourwork_20251028/sample/security/output.md rename to yourwork_1shot/sample/security/output.md diff --git a/yourwork_20251028/discovery/solutions.md b/yourwork_1shot/sample/security/solutions.md similarity index 100% rename from yourwork_20251028/discovery/solutions.md rename to yourwork_1shot/sample/security/solutions.md diff --git a/yourwork_20251016/discovery/README.md b/yourwork_20251016/discovery/README.md deleted file mode 100644 index 1ce750b..0000000 --- a/yourwork_20251016/discovery/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Your ML Enablement Workshop - -## Listen - -## Define - -## Invent - -## Refine - -## Test/Iterate diff --git a/yourwork_20251016/discovery/customer.png b/yourwork_20251016/discovery/customer.png deleted file mode 100644 index d16d4507715daf9f5990e15db3543fe6641f7253..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58583 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 K$+)He>i+?QaS+J> diff --git a/yourwork_20251016/discovery/customer.pptx b/yourwork_20251016/discovery/customer.pptx deleted file mode 100644 index 11d49cc36e8fdd39e603474e936ba7e1cf2bc455..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82677 zcmeFZV{j4Q|DW;SSOUXp(smmRFum}9{1}{ZtxIqjV1%>r)~}ky16=q8S~5hc zp8Us(r~B}2Mk|nu8+h4IM*v8D;R6e+&z6%Y3t2&yW=i*oGQuIOj~#8$D_)&mXuoNQ zNKBnnIiM^407O=;eYh=l#ehd+*f63>6a9!vO{E&3kj(@g<#a%cA%+n#=AT|5)33^XduoKAcFNJTC>6*`D%gw_Vc5k9Pdpuj1AyWQ zB)^2rpxpK9Y<%XYx@(IMj!}W9tsj8PxeEfWj`H5UL#lKuL5MvRG(V4g8rt;R-6AZZQ4@^MY(Ej{ZZtU2+CYpsdEiD+1T4 z34KhbjTuT}!=!u}5~0|+2!q!BDol9C(-OpY1n;=Ae|=RP%F*ua1dhKm9N+@- zCp%j0_8iy3!OcVKzUEqOseK(hv3vMmUcEYLOAd$;A>>BZ zJ52Uwt+9L<1I;!X((U&yFwE6uoHe&BH$`_3DySxKRfN~tOvWO;d1=zxZmetr)}Bo*s-IgJ2wNA(gI#5p-;ag+{J!N?@u5 z0r82#*wmmNz<e$#6?hQprVo_B3A&VdYcg(~E}Ed<@)%N^df($DtZPP=m9Z%;@87p1%n}E^9 zLh`PTx`&hw2K8#-Iq+5Rg||Gy>(_%~Spz2U$2=uV!M8zw;b zeM8m@yk~3C)%iWX(1Vf0n~tH253pe&T`b_Qd$l3$Dr=JkdnfSBfj`9FHw9C@vXdj= z#gIxZ>5y8C5kR9lVk&(1@qBg;M|_c9ovwgHaXql_;^5KX2|AG7XQEw8dr!BZw8>S5 z57A%>joTElK=375BQu%}FDuMK&94beBELw=Xbi6-!!uu6_{W+`-*3a}HLk7FN^h`; z$_-b-tq^3*>D7~Q0$o_!49gw`UTJ@effKeN9MTZ9ZWn$R;k(iUVxNsHn9aaE2csB4 z#J5z=gfN_jYnZtSZVKjzLXIg=V=`T%#?Q&}fyik;PljR-4^+ z8XP2~swy*G$5C5n?|yK8tikghqRJvU;Z?>GSB+7!-^L1DW}+Imqvx+IuS>@gB9}l7 zyGxB9Wk@^Iy}ul{qp<`@Yfu##mH{)gV#hFSQY^)C$scHI!g&s0YX(}63yGjQjSf%) zc>=vhy60Yy>xfKaF1_zE-n@J0oVX6&Y6EY*5Ct>Fg>5IrS}mu|m)@(~a}qc2M@@wv z66-;e`p#7=FmxM@qPG3X5e90aKgu9}Q4MeS9@Y)cpetjdfcQ-oB!JgU}jKH5d=fNA1|=Z9zO(h{8;lth1`@ z0Dnd-jz6{TIslT+ZvT$n#ihQ!Jt-8Z6mOa1MfGSC9D?0-SWRk$Cf-uYb&zg$DW0$gH|)2A3-g(lw+UI7VS4*v`o^}*5SW7t}3uGLQS7bmx3?EFoY z2U}jK;^Dg_i<<*S%ofV`V%CaCYTcp92uwSNDOo2j5+agABvt1Pc_O2=+u z-LmEkwKj$atY2~AUP(nvpuPU|r7FADLid27bUQ`CEubu&Ui_kcg(f`m;Ux(wGsOan zH#ejCF^xn+2RFm4J(}tB({^WiYJ?*WLo;C^O4j`uzNl;$_^34ifv+rA_L&!sG5SYZ zMpP4tbJ)Y=SdK0%GY(ARr6ZTMWERtYU*q;FGg-x#U6y&@O7*q8mCucr4br5SsuJYY!E<`AKtV}()DfXE3bFGdC zr01--Gn7pIBFn<4LRxf< ztVa!VQ8lZ)X{Od&_+XZxNWv{@RII7$+%qjQmjd?~MkL6wL>bDXO$xRCuz9bkT&Y{p z0Zs?m@kMoHQnI>%El_chH{LoEmS9RGLFz-eX$VVX`?#qU-&=!YK(gIix51J<-U}VD zZxPTJWzT~L4oYq5H1CBZ1Y5#V&HmARpuzTn?0uUy;G>)vxwl5Ti-P<36+jv(xv|8i zBQJ>d1S7&4M>N#xb9hdrDu~9Xn5~X2yuNRi4CGQBg`+|MnLaO0>1l{aVVfq01bU`0 z3L-n;{RU#zjf7*xC=B?!WI9O@FMEAWl6hv5(dP2j1CET9U14M#N>U8!4Zk+#MBt9Z zR7y3Ls@Br;k8mSwk(bJ7I0jiV%}~9G{AzumpLYuN0aHY*TpI_b47Z%yh6DG9%T!Np z{CyqpV^tC?rNjhsQt=GR(T5fLd)tq~)AeT8lj$-yeaw=$bMGvKOWY9RIig$a?cogH zD9XLPGrpMinS^##xD6o^F*b+iq?%X;n{IpJyjBIi5G_7bjIM(5g4G z42{#+H>y_XRohpRY_0T$(wkzgiES=V&nw_{xRpb?%vV0H!NFTyt_6PI_wxv?E8IeZ z?|$E3$Lldggw|iQ*NoRNgF9g|kJxtp;U8(e>+hd(%OBnk=Q~x~R;o9iKW%>7p9pxm zm7e(OJ(HKm>+ft#WL+(CI4fcpVO{nGT=&-cOa^1l2q;cLl$Y;qi9oq^n5cxiuQhJH z0Tt3;Q8!y&2lQW7>XlFIRonPg+dGxpDHblSP%h<_UJ_-waTKl2CgYI-;U^Zo1>CvU zr!QxhmfN7wS-@^5)&AbZRi`3`9n&|kn7p~eXi8F3d5aBRLZOHH*lJHZ~9mhwO@zF-) zCyN}qrN>&a6Y=de+TloP08GoWBF^f>!))cp#&YTnojmYAHf%?k6zx0=s_UEkQS!^l zF-~&93A`Yb?Nh|68RDkxg8{4%yC`F_&6s@Y*yyvvuSHZ0)RngYBITCnU|Wd(;ZTK) zBA=K#(clDgMcov6k&UgxPz-?iAyIr9pp{nXO6r(V>Q2H=+vKZ@U~D~aXGh-`bdHzijab(Qlb|L)l(|lbYY+- zjX}+aV1T24L^4VVct!qdBnf(BFMnU6Kk!ioAlWFOx{qM9~Zt zp`~%!Hcb#TW52}}?d?7!>0pr0`?-^nZ2OW~L1}|kO$ATYUPV8;i^XuURj3Xp`%Kss z<_1eABXz*$N?g<5QciTFYthPYe!?LKrlO=rCO^Ovfm*O9ogDEd1E4(>wFG~I)We4= zb0^e9#T}+3X)QUm8p8}%s5uEL5%o_cBjEo%MZuA<{$_zUq^+r?)$KS(%bZG??4ZRT zS~(RF zd3<*ku1kBbB+P|-p?9#p7-U{}xg={fBNmr$i)?s#Q(uEoBXNR`sIoT(!&S@{WF;5-KVH8(ZqoKBK%49uS+P;6nel`yqRH{s5ub zLizkgweXxOI-s7^OJW{iP$7g$g1EP4T*XyJn9sj24P!^68P%#8{O*&?-M8iW(_go| zfjCITL{u50F5`qeQ!-p*iQD88PkrBq=SZ59IY01d)Iex_(PDs>2p=spSLGEE`ZEK6 zwJ3s*jC(nu@9+h_;k}8NbbSY@A(VGyYZ57LY(it5_?Vk8VQc42R>Lo|lasH0h{3H; z&{%7pKws=hmgFNc+8RbPmaq%%-ZY4cjI8#ls8CRq6r}1H26kp{_n)ajASn3mDr_#F zv*dfbq}PTrHV(joa?B|r0^%b?xzz+pV6K#}6dn}T@(&Ba>(tyXaUj^s>(j2nZ`Mr~ zMPhQM8g3$)jge5>x3MK!V9nYyg3%JDdl@R@5#SgXxci4k!K*MKy)rV3YXaYsH1S`yV<}Q_nddUbwUYtV^y#xUF zgIs;kXpvyu+4x09Q8_PbJC0%2pW&Rh7mX!;?k0&=b ze!~!I{Ad2JRYltj9QZe7riXHvI3rcx%GCousPm64ey^-NUx%CblIhvnfNLR-i>8gj zIsTt-nTWU^Bz%VcxK>y>xLao}zmQayQBpcFx)G3yOlzXWWL1-oKV`jU>$SFg$pCic zrIN6BQAw2;nH4tzvmn@+QWX%lr9u#E-_Ns*(6{jWXr*JgpKe#zfS+58_YYY&zL0pm zT0hh~;h$_fLB3r-cdK7JImjPNepCgYiV+(_=-{5{t#n^r4_{BTWDD3|(l=^7@|D{z ztufwT-5PXtD?95w}5zL8oKPFuJ9sp{nP6 z*;i6vQ*GO|AdCV-VEUq%8+O%*vdiZ(2-GU-&EPubYqf*XUh@hOX{q2I#~L*iQ52)l z2I@V3^QjHho0XL;zl~4JV~e;tfSaxN$(L2SDG+ySP>2EhhhuSOKt7_5cj6=$9sULO z0{j5c@I6f24;rEH2s!-LB>>IFw6*veOc0CKYl3rRXp2xg#htRwnhJRHhoo3mVN`l$ z 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Ⓢ7LW}c4s$3R|*(Z9s{CpeKp7!@J(fKUc8b9qhKJcsIO!HLe508)s zIZx({)Nl%g8K5XeD2w|+y;xVsn0y}G2=rr9c5I^?KFnOcKi^xiBM*J_!Q`=X`rV?) zhUvGjuGFYss2M*CaE%g%55XLH0OPv2U7Lz$^TUCIJ|6|pw>A0%d@TIS^JSi z0e9-aiPwypZfK6!kJW3yNb|c*N-I=ve+9;(aKI)>k+6{e8=J+@!44RDPDdm9bTnkP zR3zY!{(qN>X!+nV9-)1g}CW*20LXy{Z!iA(?ZFbG(mtj0z zM5lF$Yjo$EsH*b*91BgSHyFoDsRnkEJv*u)mRdw_0p5xjWANZS@aHwbb5v%cFtSzQTk?^=8?|U?s>)?@O z7E*Q=6%Xp?2|u%d2Nuh!vnGxf2L-O7scfOUUn{fZxl+0ROuhnrsAt4L^~OS1e@mA? zHtlowPqiRf!bjE86r9Xa)_!|&b3&O}>d$oaarjvk#S;e1iAcXSuu#0?_^u}~!ZxRD z8%9ocWB$*_P%x_($WWU{fj1&R!aUR6qOfpd+FL88!L`5G$cPC1^@?3dn4ojixOAru z+2eig{@wk^?#4@JXC)C&cTd3B8-S6T_(G4cvNisRj4*r+~P z*`^i!LOt#!cRL+Uw$9u-C7r+CWV&{2$tEX%x`T6-WIUUQA# z8f*4Gm-j!L1(@qG4&Kepj4{u1Zfb+-UIU(%!3t7vPEwO`lVqz?9PAJp$V2v%vTi*?JQMpq7? z+;pT*4DCT{ZdG6)T5+fby)+X*M$IQ>!;>j4RABI@=#(GR#Ge(Fr2cyS7G48{O6@32 z6L)@0_jvpm|BpcMX`)uZ-7>q6hVyTZ^v>^ zmyt0c4nIJhgO`n+CpcxLF!Fbd@B@#V)YO}Go+vpw9S6Rq>j{gh+K^8oKm`BTS7}RLn%5MbD<4k3ipF8b*7bGm1ikDRE)d*OT<#1O6mzPUH(TGGcrdh_dV@d8 zaW}&kXR)T-bHv@YuH0%gC9+w}N7Mg@6@Iea=CZ?axNfWz5lI7qH(n2)ht^F$)mxD;%#VTr& z%fSPfk04HQb#97`jL_|m~ij68Dal9ZR zVgzuIM?{>Rw;&>9Uabc}0r91Q(VQMm4J0Ie&;`W#r+Enc6YWg1OPlGR zWqS=M45uEPY-dVdN)z4gHjM&oF7W=j6E{rRcS3Nqzun=^G(CTDY4dFkcssEH#)w0S zhzpg1!+{O{1bpm%*}?gXOL0%$#X#qOwZo~83#@F(!r}gw4o+h@886j)cpze<4!{Wl zz2_pC2@FU6TTnPMoVajgz~0UZ0}>{Q)Q>|iB&5^tQ*R7dVV6HA!zEn0b((Mq(OwWw z2w?>E-g5$+cgLk&05KmHj8HvzPJn+H0^#A1b8%n_A?A#N!JtFGDRh=W3Xy;q2^U5H zFZ@P0i;Ig$Kn!0BBYXuiQ2lqod@-0Q;&nxQR0akq!$m&pITx?Wd81#*90u3ou<;-9 z(GwW=9o}VJ`2TXL*&{w#0RwUpoCD#!x_*Do0#R>7H&+;L4M-||I$~V#kFvY?@=^&A zozGy%0;)?SJin4~LZ3k|y_kqTT`+Pn^`*j|voC1y&vZmrDHy$y=9~`KwJz2CpF5`^ z!*7I3Cl|yMI+zUanST*3p4TC^C*s~U46ww04!E$BjaVIV3lvs;n)AH+g$+@}>KAvb zV3m=O9JrBTT@ki-g$TH~xQ7S$^TGpuE%gzrUtDFuR~G@nRsXf-Qj|jnrXwUIM&PRu N8%UUa8yN7B{sYItQThM? diff --git a/yourwork_20251016/discovery/solutions.md b/yourwork_20251016/discovery/solutions.md deleted file mode 100644 index 7ef0475..0000000 --- a/yourwork_20251016/discovery/solutions.md +++ /dev/null @@ -1,36 +0,0 @@ -# 顧客の課題に対する解決策候補一覧 - -## パーソナライズド英会話学習アプリ : ○○社 XX 英会話アプリより - -* いつ使う? : グローバル企業の社員が通勤時間や休憩時間に英会話を学習するとき -* どう課題を解決した? : 従来の英会話学習は画一的なカリキュラムで、個人のレベルや業務内容に合わせた学習が困難だった。生成AIを活用し、ユーザーの職種・業界・現在のスキルレベルを分析して、個人に最適化された会話シナリオと練習問題を自動生成するアプリを開発した。海外チームとの円滑なコミュニケーションやキャリアアップに直結する実践的な内容を提供している -* どんな効果が出た? : 学習継続率が従来の3倍に向上、実際の業務での英語使用に対する自信度が85%向上 -* どう実現している? : ユーザープロファイル分析、音声認識による発音評価、リアルタイム会話シミュレーション機能を組み合わせている - -参考 : https://ssss.sss.ssss - -## AI英会話コーチングサービス : △△社 □□ 英会話サービスより - -* いつ使う? : 年間契約で継続的に英会話スキルを向上させたい社員向け -* どう課題を解決した? : 多忙なビジネスパーソンは定期的な英会話レッスンの時間確保が困難で、学習が継続できない課題があった。AIコーチが24時間365日利用可能で、15-30分の短時間セッションでも効果的な学習ができるサービスを提供。ユーザーの学習履歴と進捗を分析し、最適なタイミングでリマインドや追加課題を提案する -* どんな効果が出た? : 月間学習時間が平均40%増加、TOEIC スコア平均150点向上、海外出張時の英語コミュニケーション満足度90%以上 -* どう実現している? : 適応学習アルゴリズム、スケジュール最適化AI、進捗追跡ダッシュボードを統合したプラットフォーム - -参考 : https://ssss.sss.ssss - - -## ビジネス英語スピーキング評価システム: ××社 xx 英会話サービスより - -* いつ使う? : 海外チームとの会議やプレゼンテーション前の準備・練習時 -* どう課題を解決した? : グローバル企業の社員は海外チームとの重要な会議で自信を持って発言できず、キャリア機会を逃すことが多かった。AIを活用したスピーキング評価システムで、実際のビジネスシーンを模擬した練習環境を提供し、発音・文法・論理構成・説得力を多角的に評価・改善提案を行う -* どんな効果が出た? : 会議での発言頻度が60%増加、プレゼンテーション評価スコア平均25%向上、昇進・海外赴任機会獲得率が2倍に -* どう実現している? : 音声解析AI、自然言語処理による内容評価、ビジネスシーン別シミュレーション機能を組み合わせている - ---- - -## 良い解決策記述のチェックポイント - -- **具体的な利用シーン**: 「いつ使う?」で明確な使用タイミングを記述 -- **課題の本質理解**: 表面的な課題だけでなく、根本原因まで言及 -- **定量的な効果**: 可能な限り、数値で示せる改善効果を含める -- **実現方法の明示**: 技術的なアプローチを開示されている範囲で具体的に説明 diff --git a/yourwork_20251016/prompt/workingbackwards-genu-prompt.md b/yourwork_20251016/prompt/workingbackwards-genu-prompt.md deleted file mode 100644 index dfbf544..0000000 --- a/yourwork_20251016/prompt/workingbackwards-genu-prompt.md +++ /dev/null @@ -1,462 +0,0 @@ - - -このプロンプトは順次実行型です。各フェーズを完了後、次のフェーズに進んでください。 -各フェーズ完了時には、完了確認と品質チェックを行ってください。 - - - - -1. チーム規模と役割構成: エンジニア1名 -2. 技術スタック経験: Next.js、Vercelの実装経験あり -3. プロダクト開発経験: 0→1のプロダクト開発経験あり -4. 学習・適応能力: 新技術習得は可能だが、既存技術を優先 -5. 開発期間・リソース: 6ヶ月、専任1名 - - - - -- 新しい技術スタックは使用しない -- 使用技術: Next.js + Vercel のみ -- 開発期間: 6ヶ月 -- チーム規模: 1名 -- 予算制約: 月額コスト1万円以内 - - - - - - -あなたはユーザーリサーチの専門家です。 - - -customer.png に定義された顧客のうち、目的を達成できた顧客のインタビュー結果をまとめています。目的を達成できた顧客のインタビュー結果をまとめています。1)目的達成のために取った行動、2)行動に要したリソース(金額や時間など)、3)その時の感情の3点を時系列かつ定量的に表にまとめカスタマージャーニーを Listen セクションに記載してください。 -加えて、各行動ステップで顧客が実際に口にしそうな言葉(ペインポイント)を引用形式で追記してください。 -例:「Slackのメッセージが多すぎて、重要な情報を見逃してしまう」 - - -| 行動ステップ | 所要時間 | 費用 | 使用ツール | 感情(1-5) | 課題 | 顧客の声 | -|------------|---------|------|-----------|-----------|------|---------| -| 1. チームコミュニケーションツール検討 | 2週間 | 0円 | - | 😟 3 | 選択肢が多すぎて決められない | 「Slackのメッセージが多すぎて...」 | -| 2. Slack導入 | 1日 | 10万円/年 | Slack | 😊 4 | 導入は簡単 | 「導入は簡単だったが...」 | -... - - - -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -[] カスタマージャーニーが最低5ステップ以上定義されている -[] 全てのステップに定量的データ(所要時間・費用)が記載されている -[] 全てのステップに感情スコア(1-5)が付与されている -[] 全てのステップに「顧客の声」が引用形式で記載されている -[] 合計費用が年間10万円以上である(課題の重要性の指標) -[] 感情スコアが3以下の「ペインポイント」が3つ以上存在する - -【品質基準】 -[] 各ステップが時系列で論理的につながっている -[] 顧客の声が具体的で、実際のユーザーが言いそうな表現になっている -[] customer.png で定義された顧客の「目的」達成までの道のりが描かれている -[] 使用ツールが具体的な製品名・サービス名で記載されている - -【次フェーズへの準備】 -[] Phase2で問いを立てるのに十分な「非効率な行動」が3つ以上特定されている -[] 各行動の前後関係が明確で、Phase2での「同時にできない理由」分析が可能 - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase2 に進んでください。 - - - - - -あなたは貪欲な研究者として、顧客が常識と思う行動に対しても常に問いを投げかけます。 - - - Listen セクションに記載されているユーザーの行動一つ一つについて、必要なリソースと前後の行動をもとに 2 種類の常識を疑う問いを立ててください。各行動に対し立てた問いを Define セクションに表にまとめてください。 -* 「なぜ〇〇せずに□□ができないのか? 」 -* 「なぜ○○と○○は同時にできないのか?」 - - - -| 行動ステップ | 問いの種類 | 問い | 現在の制約 | -|------------|-----------|------|-----------| -| 1. ツール検討 | 省略型 | なぜ事前調査せずにツールを決定できないのか? | 情報が散在している | -| 1. ツール検討 | 統合型 | なぜツール検討と試用は同時にできないのか? | 検討に時間がかかる | -... - - - -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -[] Phase1で定義した全ての行動ステップに対して、最低2つの問い(省略型・統合型)が立てられている -[] 各問いに「現在の制約」が明記されている -[] 合計で最低10個以上の問いが生成されている -[] 全ての問いが「なぜ〇〇せずに□□ができないのか?」または「なぜ○○と○○は同時にできないのか?」の形式に従っている - -【品質基準】 -[] 問いが「当たり前を疑う」視点で立てられている(単なる機能改善要望ではない) -[] 各問いが具体的で、解決策をイメージできる -[] 「現在の制約」が技術的、組織的、心理的な障壁を明確に示している -[] 問いが顧客の実際のペインポイントに根ざしている(Phase1の「顧客の声」との関連が明確) - -【次フェーズへの準備】 -[] Phase3で優先順位付けするための「削減/獲得できるリソース」が推測可能 -[] 各問いが独立していて、重複や包含関係がない - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase3 に進んでください。 - - - - - -Define セクションでまとめた全ての問いについて、以下の評価軸で点数化し Top3 を選定してください: -- 削減/獲得できるリソース(時間・金額):1-5点 -- 顧客が直面する頻度(日次=5点/週次=3点/月次=1点):1-5点 -- 合計点の高い順に Top3 をランキングし、選定理由とともに Define セクションに追記してください。 - - - -### Top 3 重要課題 - -| 順位 | 問い | リソース削減効果 | 頻度 | 合計スコア | 選定理由 | -|------|------|----------------|------|-----------|---------| -| 1位 | なぜ... | 5点(週10時間削減) | 5点(毎日) | 10点 | CTOが最も頻繁に直面し、週10時間の削減が見込める | -| 2位 | なぜ... | 4点(月50万円削減) | 4点(週3回) | 8点 | ツールコスト削減効果が大きい | -| 3位 | なぜ... | 3点(週5時間削減) | 5点(毎日) | 8点 | 全メンバーが毎日直面する課題 | - - - -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -[] Phase2で抽出した全ての問いに対してスコアリングが実施されている -[] 「リソース削減効果」と「頻度」の両方が定量的に評価されている -[] Top3が明確にランキングされ、合計スコアが記載されている -[] 各問いに選定理由が具体的に記載されている -[] 1位の問いの解決により、最低でも週5時間以上または月10万円以上の削減効果が見込まれる - -【品質基準】 -[] スコアリングが customer.png で定義された顧客の目的と整合している -[] 削減効果が具体的な数値で示されている(「大きい」などの曖昧表現ではない) -[] Top3の選定理由が、ビジネスインパクトと顧客価値の両面から説明されている -[] 頻度の評価が Phase1 のカスタマージャーニーの実態に基づいている - -【次フェーズへの準備】 -[] Top3の問いに対して、solutions.md の既存ソリューションで解決可能かが判断できる -[] 各問いの「現在の制約」が Phase5 での発明の方向性を示唆している - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase4 に進んでください。 - - - - - -熟練の開発チームリーダーとして、solutions.md に並べられた機能を自社で実装する際の難易度を評価します。 - - -難易度は 1, 3, 5, 10 の 4 段階とし、の情報を元に評価を行ってください。結果は、難易度と理由を箇条書きに追加する形で solutions.md に記載してください。 - -難易度の基準: -- 1: で定義された既存技術で1-2週間で実装可能 -- 3: 既存技術で1-2ヶ月の実装期間が必要 -- 5: 新規学習または複雑な統合が必要(2-4ヶ月) -- 10: 大規模な設計変更またはチーム拡大が必要(4ヶ月以上) - - - -solutions.md の各ソリューションに以下を追記: - -**自社実装難易度**: 5/10 -**理由**: -- で定義された技術スタックでリアルタイム共同編集を実現するには、深い理解が必要 -- ドキュメント構造化には独自のデータモデル設計が必要(2ヶ月) -- API連携機能の実装に1ヶ月 -- 合計3ヶ月の実装期間を想定(の開発期間内に収まるか確認) - - - -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -[] solutions.md の全てのソリューション(最低3つ)に難易度が付与されている -[] 各難易度に具体的な理由が3つ以上記載されている -[] 難易度が 1, 3, 5, 10 のいずれかである -[] 実装期間の見積もりが含まれている -[] の開発期間を超えるものが明確に識別されている - -【品質基準】 -[] 評価が で定義された技術スタックに基づいている -[] で禁止されている新技術の学習が必要な場合、明確に指摘されている -[] で定義されたチーム規模を前提とした現実的な見積もりになっている -[] 難易度の理由に、フロントエンド・バックエンド・インフラの各側面が考慮されている -[] 外部サービス連携の複雑さが評価に含まれている - -【次フェーズへの準備】 -[] 難易度の合計から、実現可能なソリューション組み合わせの上限が見積もれる -[] の開発期間内に実装可能なソリューションが最低2つ以上存在する - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase5 に進んでください。 - - - - - - -Phase3で選定した Top3 の問いそれぞれに対して、solutions.md に記載したソリューションを2-3個組み合わせた解決策を考案し、 Invent セクションに追記してください。 - -**重要**: 提案する発明のうち、最低1つは以下の「ブレイクスルーアイデアフレームワーク」を適用した、あっと驚くような独自のアイデアを含めてください。 - - -以下のいずれか(または複数)のアプローチを使用して、常識を覆すアイデアを生成してください: - -1. **逆転の発想**: 常識とされる行動の「逆」をあえて行うことで価値を生む - 例: 「情報を整理する」→「情報を意図的に混在させて、セレンディピティを生む」 - -2. **異業種転用**: 全く異なる業界の成功パターンを適用する - 例: ゲーム業界のガチャ要素をB2B SaaSに適用、Netflix の推薦アルゴリズムをチーム編成に適用 - -3. **時間軸の操作**: 通常「後で」行うことを「先に」、「同時に」行うことを「分離」する - 例: 会議の議事録を会議「前」にAIが予測生成、意思決定と実行を完全分離 - -4. **制約の武器化**: 制約を「解決すべき問題」ではなく「差別化の源泉」として活用 - 例: あえて機能を減らすことで使いやすさを実現、低予算を逆手に取った口コミ戦略 - -5. **感情の逆流**: ネガティブな感情をポジティブな体験に、ポジティブな体験にスパイスを - 例: エラー画面を楽しいゲームに変える、順調な時にあえて警告を出して緊張感を保つ - -6. **AI/自動化の創造的活用**: 単なる効率化ではなく、人間にはできない新しい価値を創造 - 例: AIが「人間らしくない」提案をあえてすることで、思考の幅を広げる - - -各発明には以下を含めてください: -- 対象となる問い(Phase3のTop3から) -- 組み合わせるソリューション名 -- 新しい価値提案(既存ソリューションの単純な組み合わせを超えた独自性) -- **ブレイクスルー要素**(該当する場合:どのフレームワークを適用したか、なぜそれが驚きを生むか) -- 実装難易度(Phase4の難易度の合計) -- 実装期間の見積もり - - - -## Invent: 発明 - -### 発明1: [サービス名] (通常の発明) - -**解決する問い**: Phase3-2位「なぜ...」 - -**組み合わせるソリューション**: -- Notion の構造化ドキュメント機能(難易度: 5) -- Linear の高速インターフェース(難易度: 3) - -**新しい価値提案**: -既存のNotionは構造化に優れるが遅く、Linearは高速だがドキュメント管理が弱い。本サービスは、で定義された技術スタックの特性を活かし、「構造化されたドキュメントを高速に編集・検索できる」体験を実現する。 - -**合計難易度**: 8/10 -**実装期間**: 4ヶ月(の開発期間内に収まることを確認) -**実現方法**: -- で定義された技術スタックの機能を組み合わせて実現 -- 具体的な実装方法と使用する機能を記載 - -**独自の差別化要素**: -- customer.png で定義されたペルソナに特化した機能 -- 競合と比較した価格優位性や独自機能 - ---- - -### 発明2: [サービス名] 🎯**ブレイクスルーアイデア** - -**解決する問い**: Phase3-1位「なぜ...」 - -**組み合わせるソリューション**: -- [ソリューションA](難易度: X) -- [ソリューションB](難易度: Y) - -**新しい価値提案**: -[通常の価値提案] - -**🚀 ブレイクスルー要素**: -- **適用フレームワーク**: [逆転の発想/異業種転用/時間軸の操作/制約の武器化/感情の逆流/AI創造的活用] -- **なぜ驚くか**: [このアイデアが常識を覆す理由。具体的にどの「当たり前」を疑い、どんな新しい体験を生むか] -- **実例**: [類似のブレイクスルーアイデアの成功事例があれば記載] - -**合計難易度**: X/10 -**実装期間**: Xヶ月 -**実現方法**: -- [具体的な実装方法] - -**独自の差別化要素**: -- [従来にない体験価値] -- [競合が真似できない理由] - - - -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -[] Phase3のTop3の問い全てに対して発明が提案されている(最低3つ) -[] 各発明が2-3個の既存ソリューションを組み合わせている -[] 各発明に「新しい価値提案」が明確に記載されている -[] 各発明に実装難易度と実装期間が記載されている -[] 最低1つの発明が の開発期間内に実装可能である -[] **最低1つの発明に「ブレイクスルー要素」が含まれている(🎯マーク付き)** - -【品質基準】 -[] 新しい価値提案が「既存ソリューションの単純な足し算」ではなく、独自の洞察に基づいている -[] customer.png で定義されたペルソナに特化した差別化要素がある -[] 実現方法が で定義された技術スタックで具体的に説明されている -[] 価格や提供形態など、ビジネスモデルの要素が含まれている -[] 競合との差別化ポイントが明確に説明されている - -【ブレイクスルーアイデアの品質基準】 -[] ブレイクスルーアイデアが6つのフレームワークのうち最低1つを明確に適用している -[] 「なぜ驚くか」の説明が、具体的な「常識の覆し方」を示している -[] ブレイクスルー要素が実装可能な範囲内に収まっている(実現不可能な空想ではない) -[] 既存の競合が「思いつかなかった」または「実行できなかった」理由が説明されている -[] 読んだ人が「なるほど、その手があったか!」と感じられる内容になっている - -【次フェーズへの準備】 -[] Phase6でプレスリリースを書くのに十分な情報(顧客、課題、解決策、効果)が揃っている -[] 各発明が Phase1 のカスタマージャーニーのどのステップを改善するかが明確 -[] 定量的な効果(Phase3のリソース削減効果)との紐付けが可能 - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase6 に進んでください。 - - - - - -あなたはAmazon の広報担当です。 - - - Invent セクションにある発明について誠実なプレスリリースを執筆します。 - -**優先順位**: ブレイクスルーアイデア(🎯マーク付き)が存在する場合は、それを優先的にプレスリリースの対象として選択してください。ブレイクスルーアイデアの「驚き」を前面に押し出した内容にすることで、メディアやユーザーの注目を集めやすくします。 - -次のテンプレートにあるプレースフォルダを置き換える形で Refine のパートにプレスリリースの土台を執筆してください。 - - - - -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -[] Phase5で選定した1つの発明についてプレスリリースが執筆されている -[] 顧客セグメント(Listen)、課題(Define)、解決策(Invent)が明確に記載されている -[] 体験手順が3-5ステップで具体的に記載されている -[] お客様の声(想定)がPhase1のペインポイントを反映している -[] FAQ が最低3つ以上含まれている - -【品質基準】 -[] プレスリリースが customer.png で定義されたペルソナに向けて書かれている -[] 定量的な効果(Phase3のリソース削減効果)が具体的な数値で示されている -[] 体験手順が Phase1 のカスタマージャーニーを「逆にたどる」形で、理想の体験を描いている -[] 競合との差別化が Phase5 の「独自の差別化要素」を反映している -[] 価格情報が含まれている - -【Working Backwards の本質】 -[] 顧客視点で書かれている(技術的詳細より、顧客の得られる価値が強調されている) -[] 「なぜこのサービスが必要か」が Phase2 の問いと紐付いて説明されている -[] 読んだ人が「これは自分のための製品だ」と感じられる内容になっている - -【次フェーズへの準備】 -[] Phase7で事業計画を立てるのに必要な「提供価値」が明確 -[] ターゲット市場規模を推定するための情報が含まれている - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase7 に進んでください。 - - - - - -あなたはAmazon の事業統括者です。 - - - Refine セクションにあるプレスリリースについて会社としてのメッセージ、社内向けの FAQ を追記してください。 - - - - -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -[] 提供者メッセージが記載されている -[] ターゲット市場規模が具体的な数値で推定されている -[] N年後の導入目標が明記されている -[] 社内向けFAQが5つ以上含まれている -[] 成功指標(North Star Metric)が定義されている -[] 各フェーズ(1ヶ月/3ヶ月/6ヶ月)でモニタリングする指標が定義されている - -【品質基準】 -[] 市場規模の推定が論理的な根拠に基づいている(例: ターゲット企業数 × customer.pngで定義されたペルソナの割合 × ツール予算) -[] 導入目標が現実的である(市場規模の1-10%程度) -[] 成功指標が Phase3-1位の問いの解決度合いを測定できる -[] モニタリング指標が「先行指標」→「エンゲージメント指標」→「リテンション指標」と段階的に設定されている -[] 競争優位性の評価基準が具体的である(「N回以上利用」など) - -【事業計画の完成度】 -[] 継続判断のタイミングと基準が明確 -[] 独自の強み(技術/データ/パートナーシップ等)が明記されている -[] リスク要因と対応策が検討されている(オプション:FAQ に含めることを推奨) -[] 収益モデルが Phase6 の価格設定と整合している - -【全体の整合性チェック】 -[] Phase1(Listen)→ Phase7(Refine)まで一貫したストーリーになっている -[] 定量的な目標値が Phase1 と Phase3 のデータに基づいている -[] で定義された制約条件が全体のロードマップに反映されている - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言して完了してください。 - -【最終確認】 -全7フェーズ完了後、最終的な出力 を通読し、以下を確認してください: -- Listen/Define/Invent/Refine の各セクションが完成している -- 顧客の課題から事業計画まで、一貫した論理でつながっている -- で定義された実装可能性が担保されている - - - - - \ No newline at end of file diff --git a/yourwork_20251016/prompt/workingbackwards-prompt.md b/yourwork_20251016/prompt/workingbackwards-prompt.md deleted file mode 100644 index 855a2c1..0000000 --- a/yourwork_20251016/prompt/workingbackwards-prompt.md +++ /dev/null @@ -1,462 +0,0 @@ - - -このプロンプトは順次実行型です。各フェーズを完了後、次のフェーズに進んでください。 -各フェーズ完了時には、完了確認と品質チェックを行ってください。 - - - - -1. チーム規模と役割構成: エンジニア1名 -2. 技術スタック経験: Next.js、Vercelの実装経験あり -3. プロダクト開発経験: 0→1のプロダクト開発経験あり -4. 学習・適応能力: 新技術習得は可能だが、既存技術を優先 -5. 開発期間・リソース: 6ヶ月、専任1名 - - - - -- 新しい技術スタックは使用しない -- 使用技術: Next.js + Vercel のみ -- 開発期間: 6ヶ月 -- チーム規模: 1名 -- 予算制約: 月額コスト1万円以内 - - - - - - -あなたはユーザーリサーチの専門家です。 - - -discovery/customer.png に定義された顧客のうち、目的を達成できた顧客のインタビュー結果をまとめています。目的を達成できた顧客のインタビュー結果をまとめています。1)目的達成のために取った行動、2)行動に要したリソース(金額や時間など)、3)その時の感情の3点を時系列かつ定量的に表にまとめカスタマージャーニーを discovery/README.md の Listen セクションに記載してください。 -加えて、各行動ステップで顧客が実際に口にしそうな言葉(ペインポイント)を引用形式で追記してください。 -例:「Slackのメッセージが多すぎて、重要な情報を見逃してしまう」 - - -| 行動ステップ | 所要時間 | 費用 | 使用ツール | 感情(1-5) | 課題 | 顧客の声 | -|------------|---------|------|-----------|-----------|------|---------| -| 1. チームコミュニケーションツール検討 | 2週間 | 0円 | - | 😟 3 | 選択肢が多すぎて決められない | 「Slackのメッセージが多すぎて...」 | -| 2. Slack導入 | 1日 | 10万円/年 | Slack | 😊 4 | 導入は簡単 | 「導入は簡単だったが...」 | -... - - - -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -[] カスタマージャーニーが最低5ステップ以上定義されている -[] 全てのステップに定量的データ(所要時間・費用)が記載されている -[] 全てのステップに感情スコア(1-5)が付与されている -[] 全てのステップに「顧客の声」が引用形式で記載されている -[] 合計費用が年間10万円以上である(課題の重要性の指標) -[] 感情スコアが3以下の「ペインポイント」が3つ以上存在する - -【品質基準】 -[] 各ステップが時系列で論理的につながっている -[] 顧客の声が具体的で、実際のユーザーが言いそうな表現になっている -[] customer.png で定義された顧客の「目的」達成までの道のりが描かれている -[] 使用ツールが具体的な製品名・サービス名で記載されている - -【次フェーズへの準備】 -[] Phase2で問いを立てるのに十分な「非効率な行動」が3つ以上特定されている -[] 各行動の前後関係が明確で、Phase2での「同時にできない理由」分析が可能 - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase2 に進んでください。 - - - - - -あなたは貪欲な研究者として、顧客が常識と思う行動に対しても常に問いを投げかけます。 - - -discovery/README.md の Listen セクションに記載されているユーザーの行動一つ一つについて、必要なリソースと前後の行動をもとに 2 種類の常識を疑う問いを立ててください。各行動に対し立てた問いを Define セクションに表にまとめてください。 -* 「なぜ〇〇せずに□□ができないのか? 」 -* 「なぜ○○と○○は同時にできないのか?」 - - - -| 行動ステップ | 問いの種類 | 問い | 現在の制約 | -|------------|-----------|------|-----------| -| 1. ツール検討 | 省略型 | なぜ事前調査せずにツールを決定できないのか? | 情報が散在している | -| 1. ツール検討 | 統合型 | なぜツール検討と試用は同時にできないのか? | 検討に時間がかかる | -... - - - -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -[] Phase1で定義した全ての行動ステップに対して、最低2つの問い(省略型・統合型)が立てられている -[] 各問いに「現在の制約」が明記されている -[] 合計で最低10個以上の問いが生成されている -[] 全ての問いが「なぜ〇〇せずに□□ができないのか?」または「なぜ○○と○○は同時にできないのか?」の形式に従っている - -【品質基準】 -[] 問いが「当たり前を疑う」視点で立てられている(単なる機能改善要望ではない) -[] 各問いが具体的で、解決策をイメージできる -[] 「現在の制約」が技術的、組織的、心理的な障壁を明確に示している -[] 問いが顧客の実際のペインポイントに根ざしている(Phase1の「顧客の声」との関連が明確) - -【次フェーズへの準備】 -[] Phase3で優先順位付けするための「削減/獲得できるリソース」が推測可能 -[] 各問いが独立していて、重複や包含関係がない - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase3 に進んでください。 - - - - - -Define セクションでまとめた全ての問いについて、以下の評価軸で点数化し Top3 を選定してください: -- 削減/獲得できるリソース(時間・金額):1-5点 -- 顧客が直面する頻度(日次=5点/週次=3点/月次=1点):1-5点 -- 合計点の高い順に Top3 をランキングし、選定理由とともに Define セクションに追記してください。 - - - -### Top 3 重要課題 - -| 順位 | 問い | リソース削減効果 | 頻度 | 合計スコア | 選定理由 | -|------|------|----------------|------|-----------|---------| -| 1位 | なぜ... | 5点(週10時間削減) | 5点(毎日) | 10点 | CTOが最も頻繁に直面し、週10時間の削減が見込める | -| 2位 | なぜ... | 4点(月50万円削減) | 4点(週3回) | 8点 | ツールコスト削減効果が大きい | -| 3位 | なぜ... | 3点(週5時間削減) | 5点(毎日) | 8点 | 全メンバーが毎日直面する課題 | - - - -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -[] Phase2で抽出した全ての問いに対してスコアリングが実施されている -[] 「リソース削減効果」と「頻度」の両方が定量的に評価されている -[] Top3が明確にランキングされ、合計スコアが記載されている -[] 各問いに選定理由が具体的に記載されている -[] 1位の問いの解決により、最低でも週5時間以上または月10万円以上の削減効果が見込まれる - -【品質基準】 -[] スコアリングが customer.png で定義された顧客の目的と整合している -[] 削減効果が具体的な数値で示されている(「大きい」などの曖昧表現ではない) -[] Top3の選定理由が、ビジネスインパクトと顧客価値の両面から説明されている -[] 頻度の評価が Phase1 のカスタマージャーニーの実態に基づいている - -【次フェーズへの準備】 -[] Top3の問いに対して、solutions.md の既存ソリューションで解決可能かが判断できる -[] 各問いの「現在の制約」が Phase5 での発明の方向性を示唆している - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase4 に進んでください。 - - - - - -熟練の開発チームリーダーとして、discovery/solutions.md に並べられた機能を自社で実装する際の難易度を評価します。 - - -難易度は 1, 3, 5, 10 の 4 段階とし、の情報を元に評価を行ってください。結果は、難易度と理由を箇条書きに追加する形で discovery/solutions.md に記載してください。 - -難易度の基準: -- 1: で定義された既存技術で1-2週間で実装可能 -- 3: 既存技術で1-2ヶ月の実装期間が必要 -- 5: 新規学習または複雑な統合が必要(2-4ヶ月) -- 10: 大規模な設計変更またはチーム拡大が必要(4ヶ月以上) - - - -solutions.md の各ソリューションに以下を追記: - -**自社実装難易度**: 5/10 -**理由**: -- で定義された技術スタックでリアルタイム共同編集を実現するには、深い理解が必要 -- ドキュメント構造化には独自のデータモデル設計が必要(2ヶ月) -- API連携機能の実装に1ヶ月 -- 合計3ヶ月の実装期間を想定(の開発期間内に収まるか確認) - - - -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -[] solutions.md の全てのソリューション(最低3つ)に難易度が付与されている -[] 各難易度に具体的な理由が3つ以上記載されている -[] 難易度が 1, 3, 5, 10 のいずれかである -[] 実装期間の見積もりが含まれている -[] の開発期間を超えるものが明確に識別されている - -【品質基準】 -[] 評価が で定義された技術スタックに基づいている -[] で禁止されている新技術の学習が必要な場合、明確に指摘されている -[] で定義されたチーム規模を前提とした現実的な見積もりになっている -[] 難易度の理由に、フロントエンド・バックエンド・インフラの各側面が考慮されている -[] 外部サービス連携の複雑さが評価に含まれている - -【次フェーズへの準備】 -[] 難易度の合計から、実現可能なソリューション組み合わせの上限が見積もれる -[] の開発期間内に実装可能なソリューションが最低2つ以上存在する - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase5 に進んでください。 - - - - - - -Phase3で選定した Top3 の問いそれぞれに対して、discovery/solutions.md に記載したソリューションを2-3個組み合わせた解決策を考案し、discovery/README.md の Invent セクションに追記してください。 - -**重要**: 提案する発明のうち、最低1つは以下の「ブレイクスルーアイデアフレームワーク」を適用した、あっと驚くような独自のアイデアを含めてください。 - - -以下のいずれか(または複数)のアプローチを使用して、常識を覆すアイデアを生成してください: - -1. **逆転の発想**: 常識とされる行動の「逆」をあえて行うことで価値を生む - 例: 「情報を整理する」→「情報を意図的に混在させて、セレンディピティを生む」 - -2. **異業種転用**: 全く異なる業界の成功パターンを適用する - 例: ゲーム業界のガチャ要素をB2B SaaSに適用、Netflix の推薦アルゴリズムをチーム編成に適用 - -3. **時間軸の操作**: 通常「後で」行うことを「先に」、「同時に」行うことを「分離」する - 例: 会議の議事録を会議「前」にAIが予測生成、意思決定と実行を完全分離 - -4. **制約の武器化**: 制約を「解決すべき問題」ではなく「差別化の源泉」として活用 - 例: あえて機能を減らすことで使いやすさを実現、低予算を逆手に取った口コミ戦略 - -5. **感情の逆流**: ネガティブな感情をポジティブな体験に、ポジティブな体験にスパイスを - 例: エラー画面を楽しいゲームに変える、順調な時にあえて警告を出して緊張感を保つ - -6. **AI/自動化の創造的活用**: 単なる効率化ではなく、人間にはできない新しい価値を創造 - 例: AIが「人間らしくない」提案をあえてすることで、思考の幅を広げる - - -各発明には以下を含めてください: -- 対象となる問い(Phase3のTop3から) -- 組み合わせるソリューション名 -- 新しい価値提案(既存ソリューションの単純な組み合わせを超えた独自性) -- **ブレイクスルー要素**(該当する場合:どのフレームワークを適用したか、なぜそれが驚きを生むか) -- 実装難易度(Phase4の難易度の合計) -- 実装期間の見積もり - - - -## Invent: 発明 - -### 発明1: [サービス名] (通常の発明) - -**解決する問い**: Phase3-2位「なぜ...」 - -**組み合わせるソリューション**: -- Notion の構造化ドキュメント機能(難易度: 5) -- Linear の高速インターフェース(難易度: 3) - -**新しい価値提案**: -既存のNotionは構造化に優れるが遅く、Linearは高速だがドキュメント管理が弱い。本サービスは、で定義された技術スタックの特性を活かし、「構造化されたドキュメントを高速に編集・検索できる」体験を実現する。 - -**合計難易度**: 8/10 -**実装期間**: 4ヶ月(の開発期間内に収まることを確認) -**実現方法**: -- で定義された技術スタックの機能を組み合わせて実現 -- 具体的な実装方法と使用する機能を記載 - -**独自の差別化要素**: -- customer.png で定義されたペルソナに特化した機能 -- 競合と比較した価格優位性や独自機能 - ---- - -### 発明2: [サービス名] 🎯**ブレイクスルーアイデア** - -**解決する問い**: Phase3-1位「なぜ...」 - -**組み合わせるソリューション**: -- [ソリューションA](難易度: X) -- [ソリューションB](難易度: Y) - -**新しい価値提案**: -[通常の価値提案] - -**🚀 ブレイクスルー要素**: -- **適用フレームワーク**: [逆転の発想/異業種転用/時間軸の操作/制約の武器化/感情の逆流/AI創造的活用] -- **なぜ驚くか**: [このアイデアが常識を覆す理由。具体的にどの「当たり前」を疑い、どんな新しい体験を生むか] -- **実例**: [類似のブレイクスルーアイデアの成功事例があれば記載] - -**合計難易度**: X/10 -**実装期間**: Xヶ月 -**実現方法**: -- [具体的な実装方法] - -**独自の差別化要素**: -- [従来にない体験価値] -- [競合が真似できない理由] - - - -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -[] Phase3のTop3の問い全てに対して発明が提案されている(最低3つ) -[] 各発明が2-3個の既存ソリューションを組み合わせている -[] 各発明に「新しい価値提案」が明確に記載されている -[] 各発明に実装難易度と実装期間が記載されている -[] 最低1つの発明が の開発期間内に実装可能である -[] **最低1つの発明に「ブレイクスルー要素」が含まれている(🎯マーク付き)** - -【品質基準】 -[] 新しい価値提案が「既存ソリューションの単純な足し算」ではなく、独自の洞察に基づいている -[] customer.png で定義されたペルソナに特化した差別化要素がある -[] 実現方法が で定義された技術スタックで具体的に説明されている -[] 価格や提供形態など、ビジネスモデルの要素が含まれている -[] 競合との差別化ポイントが明確に説明されている - -【ブレイクスルーアイデアの品質基準】 -[] ブレイクスルーアイデアが6つのフレームワークのうち最低1つを明確に適用している -[] 「なぜ驚くか」の説明が、具体的な「常識の覆し方」を示している -[] ブレイクスルー要素が実装可能な範囲内に収まっている(実現不可能な空想ではない) -[] 既存の競合が「思いつかなかった」または「実行できなかった」理由が説明されている -[] 読んだ人が「なるほど、その手があったか!」と感じられる内容になっている - -【次フェーズへの準備】 -[] Phase6でプレスリリースを書くのに十分な情報(顧客、課題、解決策、効果)が揃っている -[] 各発明が Phase1 のカスタマージャーニーのどのステップを改善するかが明確 -[] 定量的な効果(Phase3のリソース削減効果)との紐付けが可能 - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase6 に進んでください。 - - - - - -あなたはAmazon の広報担当です。 - - -discovery/README.md の Invent セクションにある発明について誠実なプレスリリースを執筆します。 - -**優先順位**: ブレイクスルーアイデア(🎯マーク付き)が存在する場合は、それを優先的にプレスリリースの対象として選択してください。ブレイクスルーアイデアの「驚き」を前面に押し出した内容にすることで、メディアやユーザーの注目を集めやすくします。 - -次のテンプレートにあるプレースフォルダを置き換える形で Refine のパートにプレスリリースの土台を執筆してください。 - - - - -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -[] Phase5で選定した1つの発明についてプレスリリースが執筆されている -[] 顧客セグメント(Listen)、課題(Define)、解決策(Invent)が明確に記載されている -[] 体験手順が3-5ステップで具体的に記載されている -[] お客様の声(想定)がPhase1のペインポイントを反映している -[] FAQ が最低3つ以上含まれている - -【品質基準】 -[] プレスリリースが customer.png で定義されたペルソナに向けて書かれている -[] 定量的な効果(Phase3のリソース削減効果)が具体的な数値で示されている -[] 体験手順が Phase1 のカスタマージャーニーを「逆にたどる」形で、理想の体験を描いている -[] 競合との差別化が Phase5 の「独自の差別化要素」を反映している -[] 価格情報が含まれている - -【Working Backwards の本質】 -[] 顧客視点で書かれている(技術的詳細より、顧客の得られる価値が強調されている) -[] 「なぜこのサービスが必要か」が Phase2 の問いと紐付いて説明されている -[] 読んだ人が「これは自分のための製品だ」と感じられる内容になっている - -【次フェーズへの準備】 -[] Phase7で事業計画を立てるのに必要な「提供価値」が明確 -[] ターゲット市場規模を推定するための情報が含まれている - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase7 に進んでください。 - - - - - -あなたはAmazon の事業統括者です。 - - -discovery/README.md の Refine セクションにあるプレスリリースについて会社としてのメッセージ、社内向けの FAQ を追記してください。 - - - - -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -[] 提供者メッセージが記載されている -[] ターゲット市場規模が具体的な数値で推定されている -[] N年後の導入目標が明記されている -[] 社内向けFAQが5つ以上含まれている -[] 成功指標(North Star Metric)が定義されている -[] 各フェーズ(1ヶ月/3ヶ月/6ヶ月)でモニタリングする指標が定義されている - -【品質基準】 -[] 市場規模の推定が論理的な根拠に基づいている(例: ターゲット企業数 × customer.pngで定義されたペルソナの割合 × ツール予算) -[] 導入目標が現実的である(市場規模の1-10%程度) -[] 成功指標が Phase3-1位の問いの解決度合いを測定できる -[] モニタリング指標が「先行指標」→「エンゲージメント指標」→「リテンション指標」と段階的に設定されている -[] 競争優位性の評価基準が具体的である(「N回以上利用」など) - -【事業計画の完成度】 -[] 継続判断のタイミングと基準が明確 -[] 独自の強み(技術/データ/パートナーシップ等)が明記されている -[] リスク要因と対応策が検討されている(オプション:FAQ に含めることを推奨) -[] 収益モデルが Phase6 の価格設定と整合している - -【全体の整合性チェック】 -[] Phase1(Listen)→ Phase7(Refine)まで一貫したストーリーになっている -[] 定量的な目標値が Phase1 と Phase3 のデータに基づいている -[] で定義された制約条件が全体のロードマップに反映されている - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言して完了してください。 - -【最終確認】 -全7フェーズ完了後、discovery/README.md を通読し、以下を確認してください: -- Listen/Define/Invent/Refine の各セクションが完成している -- 顧客の課題から事業計画まで、一貫した論理でつながっている -- で定義された実装可能性が担保されている - - - - - \ No newline at end of file diff --git a/yourwork_20251028/prompt/v0-mock-builder-prompt.md b/yourwork_20251028/prompt/v0-mock-builder-prompt.md deleted file mode 100644 index 17aab20..0000000 --- a/yourwork_20251028/prompt/v0-mock-builder-prompt.md +++ /dev/null @@ -1,591 +0,0 @@ - - -このプロンプトは順次実行型です。各フェーズを完了後、次のフェーズに進んでください。 -各フェーズ完了時には、completion_criteria を確認し、全ての項目にチェックが入ったことを宣言してから次のフェーズに進んでください。 - - - -あなたは経験豊富なフルスタックエンジニアです。 -ユーザーが指定するアプリケーション要件に基づいて、完全に動作するモックWebサイトをNext.jsで構築してください。 - - - -{ここに作成したいアプリケーションの詳細を入力してください} - - - -以下の技術スタックを使用してください: -- Next.js 14+ (App Router構成) -- TypeScript(厳格な型定義) -- Tailwind CSS(スタイリング) -- shadcn/ui(UIコンポーネントライブラリ) -- Framer Motion(アニメーション) -- Lucide React(アイコン) - - - -外部依存を排除したシンプルな構成: -1. **データベース不使用**: すべてのデータ永続化はLocalStorageで実装 -2. **API不使用**: サーバーサイドAPIコールは不要 -3. **認証システム**: ダミーログイン(コード内にユーザー情報を定義) -4. **即時動作**: npm installとnpm run devで即座に動作すること - - - -- **モダンでプロフェッショナルなデザイン**: 2025年のトレンドを反映 -- **完全レスポンシブ**: モバイル、タブレット、デスクトップすべてに対応 -- **マイクロインタラクション**: ボタンホバー、ローディング状態、トランジション -- **アニメーション**: Framer Motionで滑らかなページ遷移とフェードイン効果 -- **日本語コンテンツ**: すべてのテキストは日本語で記述 -- **アクセシビリティ**: セマンティックHTML、適切なARIA属性、キーボード操作対応 -- **カラースキーム**: 統一感のある配色(Tailwindのカラーパレットを活用) - - - -- **TypeScript厳格モード**: すべての型を明示的に定義 -- **エラーハンドリング**: try-catch、エラーバウンダリーの実装 -- **ローディング状態**: データ取得中の適切なUI表示 -- **コメント**: 複雑なロジックには日本語コメントを追加 -- **フォーマット**: Prettier準拠のコード整形 -- **命名規則**: 一貫性のある変数名、関数名(日本語コメントで意図を明示) - - - -- 画像はプレースホルダーサービスを使用(https://placehold.co/ 推奨) -- アイコンはLucide Reactから選択 -- 必要に応じてUnsplash APIの無料画像を参照可能 - - - - - - - -あなたはプロダクトアナリストとして、アプリケーション要件を分析し、実装すべきコア機能を特定します。 - - - -を精査し、以下を特定してください: - -1. **アプリケーションの種類を判定** - - データ管理型(タスク管理、顧客管理、在庫管理等) - - ツール型(計算機、変換ツール、ジェネレーター等) - - コミュニケーション型(チャット、掲示板、SNS等) - - ダッシュボード型(分析、モニタリング、レポート等) - - ECサイト型(商品販売、予約システム等) - - その他(複合型含む) - -2. **ターゲットユーザーの特定** - - 単一ユーザー種別 or 複数ユーザー種別 - - 各ユーザー種別の役割と権限 - -3. **コア機能の特定(2〜3つ)** - - ユーザー価値の中心となる機能を2〜3つ選定 - - 各機能が解決する課題を明確化 - - 各機能の優先順位を付与 - -4. **各コア機能に必要な要素を定義** - 機能の種類に応じて適切な要素を選択: - - 【データ管理型の場合】 - - 一覧表示、詳細表示、作成、編集、削除 - - 検索、フィルタリング、ソート - - ページネーション - - 【ツール型の場合】 - - 入力フォーム、処理ロジック、結果表示 - - 履歴表示、設定保存 - - エクスポート機能 - - 【コミュニケーション型の場合】 - - メッセージ一覧、スレッド表示、投稿・返信 - - リアルタイム更新(LocalStorageでシミュレート) - - 通知機能 - - 【その他】 - - アプリケーションの性質に応じた独自の要素 - -分析結果を `/product/construction/analysis.md` に記載してください。 - - - -# アプリケーション要件分析 - -## アプリケーション種別 -[データ管理型/ツール型/コミュニケーション型/ダッシュボード型/EC型/その他] - -**理由**: [なぜこの種別と判断したか] - -## ターゲットユーザー -- **ユーザー種別数**: [単一/複数(N種類)] -- **ユーザー種別一覧**: - - [ユーザー種別1]: [役割と権限の説明] - - [ユーザー種別2]: [役割と権限の説明] - -## コア機能(優先度順) - -### 1. [機能名] 🎯最優先 -**解決する課題**: [この機能が解決するユーザーの課題] -**必要な要素**: -- [ ] [要素1: 例: データ一覧表示] -- [ ] [要素2: 例: 詳細表示] -- [ ] [要素3: 例: 作成・編集フォーム] -- [ ] [要素4: 例: 削除機能] -- [ ] [要素5: 例: 検索・フィルタ] - -**ユーザーフロー**: -[この機能を使う際の典型的なユーザーの操作フロー] - -### 2. [機能名] -[同様の形式で記載] - -### 3. [機能名] -[同様の形式で記載] - -## 必要なページ構成(推定) -- `/`: ランディングページ -- `/login`: ログインページ -- `/dashboard`: ダッシュボード(メイン画面) -- [コア機能に応じた追加ページ] - - 例: `/tasks`, `/tasks/[id]`, `/tasks/new` など - -## 技術実装の方針 -- **データ管理**: LocalStorageで管理するデータモデルの概要 -- **認証**: [単一ユーザー/複数ユーザー種別]に応じた認証フロー -- **主要なカスタムフック**: useLocalStorage, useAuth, [その他必要なフック] - - - -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -- [ ] `/product/construction/analysis.md` が作成されている -- [ ] アプリケーション種別が明確に判定されている -- [ ] コア機能が2〜3つ特定され、優先順位が付けられている -- [ ] 各コア機能に必要な要素がチェックリスト形式で列挙されている -- [ ] ユーザー種別が特定されている(単一/複数) -- [ ] 各機能のユーザーフローが記載されている - -【品質基準】 -- [ ] コア機能の選定理由が明確である -- [ ] 各機能がの要件を満たしている -- [ ] 機能間の重複がない -- [ ] 実装可能な範囲に収まっている(2〜3機能) - -【次フェーズへの準備】 -- [ ] Phase2でプロジェクトセットアップに必要な情報が揃っている -- [ ] Phase4でコア機能を実装するための設計情報が十分 - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase2 に進んでください。 - - - - - -あなたはシニアエンジニアとして、プロジェクトのセットアップと基盤実装を行います。 - - - -以下の手順でプロジェクトをセットアップしてください: - -1. **Next.jsプロジェクトの作成** - ```bash - cd /Users/yutaokos/src/aws-samples/aws-ml-enablement-workshop/yourwork_20251016/ - npx create-next-app@latest product --typescript --tailwind --app --src-dir --import-alias "@/*" - ``` - -2. **依存関係のインストール** - ```bash - cd product - npm install framer-motion lucide-react - ``` - -3. **shadcn/uiのセットアップ** - 必要なコンポーネントをインストール(Button, Card, Input, Form, Dialog, Toast等) - -4. **プロジェクト構造の構築** - ``` - /product/ - ├── src/ - │ ├── app/ - │ │ ├── page.tsx - │ │ ├── login/page.tsx - │ │ ├── dashboard/page.tsx - │ │ └── layout.tsx - │ ├── components/ - │ │ ├── ui/ # shadcn/ui - │ │ ├── auth/ - │ │ ├── layout/ - │ │ └── features/ - │ ├── lib/ - │ │ ├── hooks/ - │ │ ├── utils.ts - │ │ └── constants.ts - │ ├── types/ - │ │ └── index.ts - │ └── context/ - │ └── AuthContext.tsx - ├── construction/ - │ └── analysis.md # Phase1で作成 - └── README.md - ``` - -5. **基盤機能の実装** - - TypeScript型定義(`types/index.ts`) - - Phase1の`analysis.md`で定義したデータモデルを実装 - - LocalStorage管理フック(`lib/hooks/useLocalStorage.ts`) - - 認証Context(`context/AuthContext.tsx`) - - Phase1で特定したユーザー種別に対応 - - 認証フック(`lib/hooks/useAuth.ts`) - - サンプルデータ生成関数(`lib/data/seed.ts`) - - Phase1で特定したコア機能に必要なダミーデータを生成 - - - -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -- [ ] Next.jsプロジェクトが作成され、`npm run dev`で起動できる -- [ ] 必要な依存関係がすべてインストールされている -- [ ] プロジェクト構造が構築されている -- [ ] TypeScript型定義ファイルが作成されている(Phase1のanalysis.mdに基づく) -- [ ] useLocalStorageフックが実装されている -- [ ] AuthContextが実装されている -- [ ] useAuthフックが実装されている -- [ ] サンプルデータ生成関数が実装されている - -【品質基準】 -- [ ] TypeScriptのビルドエラーがない -- [ ] すべてのフックが正しく動作する -- [ ] AuthContextがユーザー種別を適切に管理している(Phase1の分析結果に基づく) -- [ ] サンプルデータがアプリケーションの要件を満たしている(Phase1で特定したコア機能に必要なデータ) -- [ ] データモデルがPhase1で定義した内容と一致している - -【次フェーズへの準備】 -- [ ] Phase3で基本ページを実装する準備が整っている -- [ ] Phase1の`analysis.md`に、Phase4の実装に必要な情報が十分含まれている - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase3 に進んでください。 - - - - - -あなたはフロントエンドエンジニアとして、基本ページを実装します。 - - - -以下の基本ページを実装してください: - -1. **ランディングページ (`app/page.tsx`)** - - サービス価値を伝えるヒーローセクション - - 主要機能の説明(3〜4セクション) - - CTAボタン(「今すぐ始める」→ログインページへ) - - スムーズなスクロールアニメーション(Framer Motion) - -2. **ログインページ (`app/login/page.tsx`)** - ダミー実装で十分 - - シンプルなログインフォーム(メールアドレスのみでOK) - - **デモユーザー情報を画面上に見やすく表示**(クリックで入力できると親切) - - ボタンをクリックするだけでログイン完了(パスワード不要でも可) - - ログイン後は適切なダッシュボードへリダイレクト - - Phase1で特定したユーザー種別がある場合は、各種別のデモアカウントをリスト表示 - - **重要**: バリデーションやエラーハンドリングは最小限で構いません。 - デモ体験を素早くスムーズにすることを優先してください。 - -3. **ダッシュボード (`app/dashboard/page.tsx`)** - - ログイン必須(RouteGuard実装) - - ナビゲーションバー/サイドバー - - コア機能へのナビゲーション - - 統計情報やサマリーの表示(ダミーデータ使用) - - ユーザー種別に応じたダッシュボード表示(Phase1の分析に基づく) - -4. **共通レイアウト (`app/layout.tsx`)** - - ルートレイアウトの実装 - - 認証Providerの設定 - - ToastProviderの設定 - - グローバルスタイルの適用 - -5. **共通コンポーネント** - - Header / Navigation - - Sidebar(該当する場合) - - RouteGuard(認証チェック) - - RoleGuard(ユーザー種別チェック、必要な場合) - - - -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -- [ ] ランディングページが実装され、正しく表示される -- [ ] ログインページが実装され、デモユーザーでログインできる -- [ ] ダッシュボードが実装され、ログイン後にアクセスできる -- [ ] 未ログイン時は適切にログインページにリダイレクトされる -- [ ] ページ間の遷移が正しく動作する -- [ ] すべてのページがレスポンシブデザインである - -【品質基準】 -- [ ] UIが美しく洗練されている -- [ ] アニメーションがスムーズに動作する -- [ ] デモユーザー情報が見やすく表示されている -- [ ] ログイン体験がスムーズで、複雑なバリデーションで妨げられていない - -【Phase1の分析に基づく実装】 -- [ ] ユーザー種別に応じた実装が正しい(単一/複数) -- [ ] 複数ユーザー種別の場合、各種別のデモアカウントが表示される -- [ ] ログイン後のリダイレクト先が正しい - -【次フェーズへの準備】 -- [ ] Phase4でコア機能を追加する基盤が整っている -- [ ] ナビゲーションにコア機能へのリンクを追加する準備ができている - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase4 に進んでください。 - - - - - -あなたはフルスタックエンジニアとして、Phase1で特定したコア機能を完全に実装します。 - - - -Phase1の `analysis.md` で特定した2〜3つのコア機能を、優先度順に実装してください。 - -**重要**: 各機能は、analysis.mdで定義した「必要な要素」をすべて実装してください。 -ページ構成やルーティングは、アプリケーションの種別と要件に最適な形で設計してください。 - -## 実装手順 - -### 各コア機能について: - -1. **データモデルの実装** - - TypeScript型定義 - - LocalStorageのキー定義 - - 初期サンプルデータの準備 - -2. **必要な要素の実装** - Phase1で定義したチェックリストの各要素を実装: - - 例(データ管理型の場合): - - [ ] データ一覧表示ページ/コンポーネント - - [ ] 詳細表示ページ/コンポーネント - - [ ] 作成・編集フォーム - - [ ] 削除機能と確認ダイアログ - - [ ] 検索・フィルタリング機能 - - [ ] ソート機能 - - [ ] ページネーション - - 例(ツール型の場合): - - [ ] 入力フォームコンポーネント - - [ ] 処理ロジックの実装 - - [ ] 結果表示コンポーネント - - [ ] 履歴表示機能 - - [ ] 設定保存機能 - -3. **カスタムフックの実装** - 機能に特化したカスタムフック: - - データ取得・更新フック - - 検索・フィルタフック - - その他必要なロジック - -4. **完全なユーザーフローの実装** - Phase1で定義したユーザーフローが実際に動作することを確認: - - 入力から出力まで完結する - - LocalStorageへの保存・読み込みが機能する - - ページリロード後もデータが保持される - - 適切なフィードバック(トースト通知等) - - バリデーションとエラーハンドリング - -5. **ダッシュボードとの統合** - - ダッシュボードからコア機能へのナビゲーション追加 - - ダッシュボードでのサマリー表示(該当する場合) - -## 実装の柔軟性 - -アプリケーションの種別に応じて、最適な実装方法を選択してください: - -**ルーティング**: -- `/feature-name` (一覧) -- `/feature-name/[id]` (詳細) -- `/feature-name/new` (新規作成) -- モーダルで作成・編集する場合は、動的ルートは不要 - -**データ表示**: -- テーブル形式(データ量が多い場合) -- カード形式(視覚的な情報が重要な場合) -- リスト形式(シンプルな項目の場合) - -**フォーム実装**: -- 専用ページ(複雑なフォームの場合) -- モーダル/ダイアログ(シンプルなフォームの場合) -- サイドパネル(コンテキストを保持したい場合) - - - -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -- [ ] Phase1で特定した全てのコア機能(2〜3つ)が実装されている -- [ ] 各機能について、analysis.mdの「必要な要素」が全て実装されている -- [ ] 各機能のユーザーフローが完全に動作する -- [ ] LocalStorageへのデータ永続化が正しく機能する -- [ ] ページリロード後もデータが保持される -- [ ] フォームバリデーションが実装されている -- [ ] エラーハンドリングが適切に実装されている -- [ ] 成功/エラーのトースト通知が表示される - -【品質基準】 -- [ ] UIが直感的で使いやすい -- [ ] すべての操作が実際に動作する(見た目だけでない) -- [ ] データの整合性が保たれている -- [ ] レスポンシブデザインが実装されている -- [ ] ローディング状態が適切に表示される -- [ ] TypeScriptの型エラーがない - -【機能の完全性】 -各コア機能について: -- [ ] 作成・追加機能が動作する(該当する場合) -- [ ] 表示・閲覧機能が動作する -- [ ] 更新・編集機能が動作する(該当する場合) -- [ ] 削除機能が動作する(該当する場合) -- [ ] 検索・フィルタ機能が実際に動作する(該当する場合) -- [ ] ソート機能が実際に動作する(該当する場合) -- [ ] 計算・処理機能が正しく動作する(該当する場合) - -【ユーザー種別対応】(Phase1で複数ユーザー種別の場合) -- [ ] 各ユーザー種別でログインして動作確認済み -- [ ] 権限に応じた機能制限が正しく実装されている -- [ ] ユーザー種別ごとに異なるダッシュボード/ビューが表示される - -【次フェーズへの準備】 -- [ ] Phase5で最終調整・テストを行う準備が整っている -- [ ] 既知の不具合がない - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase5 に進んでください。 - - - - - -あなたはQAエンジニアとして、アプリケーション全体の動作確認と最終調整を行います。 - - - -以下の最終調整とテストを実施してください: - -1. **統合テスト** - - 全てのユーザーフローを実際に操作して確認 - - ログイン → 各機能の使用 → ログアウト - - データの作成 → 表示 → 編集 → 削除(該当する場合) - - ページリロード後のデータ永続化確認 - -2. **レスポンシブデザインの確認** - - モバイル(375px、414px) - - タブレット(768px、1024px) - - デスクトップ(1280px、1920px) - - すべてのページとコンポーネントで確認 - -3. **エラーハンドリングの確認** - - コア機能での不正な入力値のバリデーション - - 存在しないIDへのアクセス - - LocalStorageが無効な場合の動作 - - **注**: ログインページのバリデーションは最小限で構いません(ダミー実装のため) - -4. **パフォーマンス最適化** - - 不要な再レンダリングの防止 - - 画像の最適化 - - コンポーネントの遅延読み込み(必要な場合) - -5. **ユーザビリティ改善** - - ローディング状態の追加 - - エラーメッセージの改善 - - トースト通知のタイミング調整 - - アニメーションの微調整 - -6. **ドキュメント作成** - `/product/README.md` に以下を記載: - - プロジェクト概要 - - セットアップ手順 - - デモユーザー情報(全ユーザー種別) - - 実装済み機能の説明 - - 技術スタック - - ディレクトリ構造 - -7. **ビルド確認** - ```bash - npm run build - ``` - エラーなくビルドが成功することを確認 - - - -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -- [ ] `npm run build` が成功する -- [ ] `npm run dev` で正常に起動する -- [ ] 全てのユーザーフローが正常に動作する -- [ ] TypeScriptのビルドエラーがない -- [ ] Lintエラーがない(または許容範囲内) -- [ ] README.mdが作成されている - -【統合テスト】 -- [ ] ログイン→ダッシュボード→各機能→ログアウトの流れが動作する -- [ ] 全てのコア機能が実際に使用できる -- [ ] データの永続化が正しく機能する(リロード後も保持) -- [ ] 削除したデータが正しく削除される -- [ ] 検索・フィルタが実際に動作する(該当する場合) - -【レスポンシブデザイン】 -- [ ] モバイルで全ページが正しく表示される -- [ ] タブレットで全ページが正しく表示される -- [ ] デスクトップで全ページが正しく表示される -- [ ] タッチ操作が適切に動作する(モバイル) - -【エラーハンドリング】 -- [ ] コア機能で不正な入力値に対して適切なエラーメッセージが表示される -- [ ] 存在しないページへのアクセスで適切に処理される -- [ ] LocalStorageエラーが適切に処理される - -**注**: ログイン機能はダミー実装のため、厳密なエラーハンドリングは不要です - -【ユーザビリティ】 -- [ ] 全ての操作で適切なフィードバックがある -- [ ] ローディング状態が適切に表示される -- [ ] エラーメッセージが分かりやすい -- [ ] アニメーションがスムーズ -- [ ] UIが直感的で使いやすい - -【ドキュメント】 -- [ ] README.mdにセットアップ手順が記載されている -- [ ] 全てのデモユーザー情報が記載されている -- [ ] 実装済み機能が説明されている -- [ ] 技術スタックが明記されている - -【最終確認】 -- [ ] デプロイ可能な品質である -- [ ] で要求された機能が実装されている -- [ ] Phase1で特定したコア機能が完全に動作する -- [ ] 既知の重大な不具合がない - -全ての項目にチェックが入ったことを宣言し、プロジェクトを完了してください。 - - - - - - -- このプロンプトはフェーズベースで段階的に実行してください -- 各フェーズのcompletion_criteriaを必ず確認し、全項目クリアしてから次へ進んでください -- Phase1の分析結果に基づいて、Phase4の実装内容が大きく変わります -- ページ構成やルーティングは、アプリケーションの要件に最適な形で柔軟に設計してください -- 「一覧・詳細・作成」というパターンに無理に当てはめる必要はありません -- 各機能が「実際に動作する」ことを最優先してください - -**ログイン機能について**: -- ログインは完全なダミー実装で構いません -- デモユーザー情報を見やすく表示し、ワンクリックでログインできるようにしてください -- 複雑なバリデーションやエラーハンドリングは不要です -- 重要なのはコア機能の実装であり、ログインはあくまで認証状態を作るための簡易的な手段です - From 4c69577c2c5678570ec9761e501ee4e83eee1d5f Mon Sep 17 00:00:00 2001 From: yutaokos Date: Fri, 7 Nov 2025 18:32:37 +0900 Subject: [PATCH 3/6] update --- .../prompt/v0-mock-builder-prompt.md | 579 +++++++------ .../prompt/workingbackwards-prompt.md | 74 -- .../sample/ai_development/output.md | 779 ++++++++++++++++++ 3 files changed, 1100 insertions(+), 332 deletions(-) diff --git a/yourwork_1shot/prompt/v0-mock-builder-prompt.md b/yourwork_1shot/prompt/v0-mock-builder-prompt.md index 17aab20..ba36a68 100644 --- a/yourwork_1shot/prompt/v0-mock-builder-prompt.md +++ b/yourwork_1shot/prompt/v0-mock-builder-prompt.md @@ -1,16 +1,56 @@ + +このプロンプトは、仮説検証型のMVP(Minimum Viable Product)を自動生成します。 + +**コンセプト**: 単なる「便利なアプリ」ではなく、特定の仮説を検証するための最小限の機能を持つプロトタイプ +**実行方法**: Phase1→Phase2→Phase3→Phase4→Phase5を自動連続実行(ユーザー入力待ちなし) +**所要時間**: 約10〜20分(アプリの複雑さによる) +**成果物**: 即座に動作可能なNext.js + TypeScript + Tailwind CSSアプリケーション + +**特徴**: +- 🎯 仮説検証を目的とした機能設計(「あると便利」な機能は排除) +- 💎 既存ツールとの明確な差別化ポイント +- 📊 成功指標を測定可能なデータ構造 +- 🚀 検証に必要な最小限の実装(スピード優先) + + -このプロンプトは順次実行型です。各フェーズを完了後、次のフェーズに進んでください。 -各フェーズ完了時には、completion_criteria を確認し、全ての項目にチェックが入ったことを宣言してから次のフェーズに進んでください。 +🚨 重要: このプロンプトは自動継続実行型です 🚨 + +- **ユーザーの入力を待たずに、Phase1からPhase5まで連続して実行してください** +- 各フェーズ完了時に「Phase X 完了。Phase Y を開始します。」と宣言し、即座に次のフェーズを実行 +- 途中で止まらず、必ず Phase5 まで完走してください +- completion_criteriaは確認のみで、すべて満たされていると想定して次に進んでください +- **Phase5完了後のみ「全フェーズ完了」と宣言してください** + +実行フロー: +Phase1(分析) → 即座に → Phase2(セットアップ) → 即座に → Phase3(基本ページ) → 即座に → Phase4(コア機能) → 即座に → Phase5(最終調整) あなたは経験豊富なフルスタックエンジニアです。 ユーザーが指定するアプリケーション要件に基づいて、完全に動作するモックWebサイトをNext.jsで構築してください。 + +🚨 **重要**: このタスクはPhase1からPhase5まで自動で連続実行してください。途中で止まらないでください。🚨 {ここに作成したいアプリケーションの詳細を入力してください} + +💡 推奨記載内容: +1. **解決したい課題**: ターゲットユーザーが抱えている具体的な問題 +2. **提案する解決策**: この課題をどのように解決するか(仮説) +3. **既存の方法との違い**: 現在ユーザーがどう対処しており、なぜそれが不十分か +4. **検証したいこと**: このアプリで何を確認/測定したいか +5. **ターゲットユーザー**: 誰がこのアプリを使うか + +例: +「フリーランスデザイナーは、プロジェクトの見積もり作成に時間がかかりすぎる。 +現在はExcelやGoogleスプレッドシートで計算しているが、過去の案件データを参照したり、 +類似案件から推定するのが面倒。このアプリは、過去の案件データから自動で見積もりを +生成することで、見積もり時間を80%削減できるという仮説を検証したい。」 + +**注**: 単に「タスク管理アプリを作りたい」ではなく、「なぜ既存のツールでは不十分なのか」を明確にしてください。 @@ -61,122 +101,175 @@ -あなたはプロダクトアナリストとして、アプリケーション要件を分析し、実装すべきコア機能を特定します。 +あなたはプロダクトストラテジストとして、アプリケーション要件を分析し、「検証すべき仮説」と「それを検証するための最小限の機能」を特定します。 -を精査し、以下を特定してください: - -1. **アプリケーションの種類を判定** - - データ管理型(タスク管理、顧客管理、在庫管理等) - - ツール型(計算機、変換ツール、ジェネレーター等) - - コミュニケーション型(チャット、掲示板、SNS等) - - ダッシュボード型(分析、モニタリング、レポート等) - - ECサイト型(商品販売、予約システム等) - - その他(複合型含む) - -2. **ターゲットユーザーの特定** - - 単一ユーザー種別 or 複数ユーザー種別 - - 各ユーザー種別の役割と権限 - -3. **コア機能の特定(2〜3つ)** - - ユーザー価値の中心となる機能を2〜3つ選定 - - 各機能が解決する課題を明確化 - - 各機能の優先順位を付与 - -4. **各コア機能に必要な要素を定義** - 機能の種類に応じて適切な要素を選択: - - 【データ管理型の場合】 - - 一覧表示、詳細表示、作成、編集、削除 - - 検索、フィルタリング、ソート - - ページネーション - - 【ツール型の場合】 - - 入力フォーム、処理ロジック、結果表示 - - 履歴表示、設定保存 - - エクスポート機能 - - 【コミュニケーション型の場合】 - - メッセージ一覧、スレッド表示、投稿・返信 - - リアルタイム更新(LocalStorageでシミュレート) - - 通知機能 - - 【その他】 - - アプリケーションの性質に応じた独自の要素 +を精査し、以下を段階的に分析してください: + +## ステップ1: 課題と仮説の抽出 + +要件から以下を特定: +1. **解決したい課題**: ユーザーが直面している具体的な問題 +2. **ターゲットユーザー**: 誰がこの課題を抱えているか +3. **提案する解決策(仮説)**: この課題をどう解決するか +4. **仮説の核心**: なぜこの解決策が有効だと考えるか + +**重要**: 「タスク管理アプリ」のような既存カテゴリに当てはめるのではなく、要件固有の価値提案を見つけてください。 + +## ステップ2: 仮説検証のための検証ポイント特定 + +仮説を検証するために、以下の問いに答えてください: +- **検証したいこと1**: ユーザーはこの課題を本当に重要だと感じるか? + - 検証方法: [どの機能/データで確認するか] + +- **検証したいこと2**: 提案する解決策は実際に使われるか? + - 検証方法: [どの機能/データで確認するか] + +- **検証したいこと3**: この解決策は既存の方法より優れているか? + - 検証方法: [どの機能/データで確認するか] + +## ステップ3: MVP機能の特定(2〜3つに絞る) + +検証ポイントから逆算し、**検証に必要な最小限の機能**のみを選定: + +各機能について: +- **機能名**: [検証のための機能名] +- **検証する仮説**: [この機能で何を検証するか] +- **成功の指標**: [何が測定できれば仮説が検証されたとわかるか] +- **必要な要素**: [この機能を実現するための具体的な要素] + +**重要**: 「あると便利」ではなく「検証に必須」の機能だけを選んでください。 + +## ステップ4: ユニークな価値の明確化 + +このアプリケーションが既存の解決策(Excel、メモ、既存ツール等)と比べて優れている点: +1. [ユニークポイント1] +2. [ユニークポイント2] 分析結果を `/product/construction/analysis.md` に記載してください。 -# アプリケーション要件分析 +# 仮説検証型アプリケーション設計書 + +## 1. 課題と仮説 + +### 解決したい課題 +[ユーザーが直面している具体的な問題を記述] -## アプリケーション種別 -[データ管理型/ツール型/コミュニケーション型/ダッシュボード型/EC型/その他] +### ターゲットユーザー +- **プライマリユーザー**: [主要ユーザーの詳細] +- **セカンダリユーザー**: [該当する場合] +- **ユーザーの現在の解決方法**: [現在どのように課題に対処しているか] -**理由**: [なぜこの種別と判断したか] +### 提案する解決策(仮説) +**仮説文**: 「[ターゲットユーザー]は、[課題]に対して、[提案する解決策]を使うことで、[期待される成果]を得られる」 -## ターゲットユーザー -- **ユーザー種別数**: [単一/複数(N種類)] -- **ユーザー種別一覧**: - - [ユーザー種別1]: [役割と権限の説明] - - [ユーザー種別2]: [役割と権限の説明] +**仮説の核心**: +[なぜこの解決策が既存の方法より優れていると考えるか] -## コア機能(優先度順) +### ユニークバリュー +このアプリが既存の解決策と比べて優れている点: +1. **[ユニークポイント1]**: [説明] +2. **[ユニークポイント2]**: [説明] -### 1. [機能名] 🎯最優先 -**解決する課題**: [この機能が解決するユーザーの課題] +--- + +## 2. 仮説検証ポイント + +### 検証ポイント1: 課題の重要性 +**検証したいこと**: ユーザーはこの課題を本当に重要だと感じるか? +**検証方法**: [どの機能/データでこれを確認するか] +**成功の指標**: [何が測定できれば検証されたか] + +### 検証ポイント2: 解決策の有効性 +**検証したいこと**: 提案する解決策は実際に使われるか? +**検証方法**: [どの機能/データでこれを確認するか] +**成功の指標**: [何が測定できれば検証されたか] + +### 検証ポイント3: 既存方法との比較 +**検証したいこと**: この解決策は既存の方法より優れているか? +**検証方法**: [どの機能/データでこれを確認するか] +**成功の指標**: [何が測定できれば検証されたか] + +--- + +## 3. MVP機能(優先度順) + +### 機能1: [機能名] 🎯 最優先 +**検証する仮説**: [この機能で何の仮説を検証するか] +**成功の指標**: [この機能で何が測定できれば成功か] **必要な要素**: -- [ ] [要素1: 例: データ一覧表示] -- [ ] [要素2: 例: 詳細表示] -- [ ] [要素3: 例: 作成・編集フォーム] -- [ ] [要素4: 例: 削除機能] -- [ ] [要素5: 例: 検索・フィルタ] +- [ ] [要素1: 具体的なUI/機能要素] +- [ ] [要素2: 具体的なUI/機能要素] +- [ ] [要素3: 具体的なUI/機能要素] **ユーザーフロー**: -[この機能を使う際の典型的なユーザーの操作フロー] +[ユーザーがこの機能をどう使うか、ステップバイステップで記述] -### 2. [機能名] +**データモデル**: +``` +{ + // この機能に必要なデータ構造 +} +``` + +### 機能2: [機能名] [同様の形式で記載] -### 3. [機能名] +### 機能3: [機能名](該当する場合) [同様の形式で記載] -## 必要なページ構成(推定) -- `/`: ランディングページ -- `/login`: ログインページ -- `/dashboard`: ダッシュボード(メイン画面) -- [コア機能に応じた追加ページ] - - 例: `/tasks`, `/tasks/[id]`, `/tasks/new` など - -## 技術実装の方針 -- **データ管理**: LocalStorageで管理するデータモデルの概要 -- **認証**: [単一ユーザー/複数ユーザー種別]に応じた認証フロー -- **主要なカスタムフック**: useLocalStorage, useAuth, [その他必要なフック] +--- + +## 4. 意図的に含めない機能 + +以下の機能は検証に不要なため実装しません: +- [含めない機能1]: [理由] +- [含めない機能2]: [理由] + +--- + +## 5. 技術実装の方針 + +### ページ構成 +- `/`: ランディングページ(価値提案とCTA) +- `/login`: シンプルなログイン(デモユーザー) +- `/[メイン機能]`: [機能1のメインページ] +- `/[サブ機能]`: [必要に応じて] + +**注**: ダッシュボードは仮説検証に必要な場合のみ実装 + +### データモデル +```typescript +// Phase2で実装する型定義の概要 +``` + +### 認証方式 +- [単一ユーザー/複数ユーザー種別] +- デモユーザー: [ユーザー情報] + +### 主要なカスタムフック +- useLocalStorage +- useAuth +- [機能特有のフック] -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -- [ ] `/product/construction/analysis.md` が作成されている -- [ ] アプリケーション種別が明確に判定されている -- [ ] コア機能が2〜3つ特定され、優先順位が付けられている -- [ ] 各コア機能に必要な要素がチェックリスト形式で列挙されている -- [ ] ユーザー種別が特定されている(単一/複数) -- [ ] 各機能のユーザーフローが記載されている - -【品質基準】 -- [ ] コア機能の選定理由が明確である -- [ ] 各機能がの要件を満たしている -- [ ] 機能間の重複がない -- [ ] 実装可能な範囲に収まっている(2〜3機能) - -【次フェーズへの準備】 -- [ ] Phase2でプロジェクトセットアップに必要な情報が揃っている -- [ ] Phase4でコア機能を実装するための設計情報が十分 - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase2 に進んでください。 +✅ Phase1完了条件(簡潔版): +- `/product/construction/analysis.md` が作成されている +- 仮説文が明確に記載されている +- 3つの検証ポイントが定義されている +- MVP機能が2〜3つ特定され、各機能が「検証する仮説」と紐づいている +- 既存の解決策との差別化ポイントが明確 + +**品質チェック**: +- [ ] 「タスク管理」「顧客管理」などの汎用的なカテゴリに収まっていない +- [ ] 各機能が「あると便利」ではなく「検証に必須」として選定されている +- [ ] ユニークバリューが具体的で、既存ツール(Excel、メモ等)との違いが明確 + +**完了宣言**: 「✅ Phase1完了。Phase2を開始します。」と宣言し、即座にPhase2に進んでください。 @@ -242,30 +335,11 @@ -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -- [ ] Next.jsプロジェクトが作成され、`npm run dev`で起動できる -- [ ] 必要な依存関係がすべてインストールされている -- [ ] プロジェクト構造が構築されている -- [ ] TypeScript型定義ファイルが作成されている(Phase1のanalysis.mdに基づく) -- [ ] useLocalStorageフックが実装されている -- [ ] AuthContextが実装されている -- [ ] useAuthフックが実装されている -- [ ] サンプルデータ生成関数が実装されている - -【品質基準】 -- [ ] TypeScriptのビルドエラーがない -- [ ] すべてのフックが正しく動作する -- [ ] AuthContextがユーザー種別を適切に管理している(Phase1の分析結果に基づく) -- [ ] サンプルデータがアプリケーションの要件を満たしている(Phase1で特定したコア機能に必要なデータ) -- [ ] データモデルがPhase1で定義した内容と一致している - -【次フェーズへの準備】 -- [ ] Phase3で基本ページを実装する準備が整っている -- [ ] Phase1の`analysis.md`に、Phase4の実装に必要な情報が十分含まれている - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase3 に進んでください。 +✅ Phase2完了条件(簡潔版): +- Next.jsプロジェクトが作成され、基盤ファイル(型定義、hooks、Context)が実装されている +- `npm run dev`で起動可能な状態 + +**完了宣言**: 「✅ Phase2完了。Phase3を開始します。」と宣言し、即座にPhase3に進んでください。 @@ -278,27 +352,33 @@ 以下の基本ページを実装してください: 1. **ランディングページ (`app/page.tsx`)** - - サービス価値を伝えるヒーローセクション - - 主要機能の説明(3〜4セクション) - - CTAボタン(「今すぐ始める」→ログインページへ) + - **Phase1で定義した課題と解決策(仮説)を伝えるヒーローセクション** + - **ユニークバリューの説明**(既存の方法との違いを明確に) + - 主要機能の説明(2〜3セクション、Phase1で定義したMVP機能) + - CTAボタン(「今すぐ試す」→ログインページへ) - スムーズなスクロールアニメーション(Framer Motion) + + **重要**: 単なる機能紹介ではなく、「なぜこのアプリが必要か」を訴求してください。 2. **ログインページ (`app/login/page.tsx`)** - ダミー実装で十分 - シンプルなログインフォーム(メールアドレスのみでOK) - **デモユーザー情報を画面上に見やすく表示**(クリックで入力できると親切) - ボタンをクリックするだけでログイン完了(パスワード不要でも可) - - ログイン後は適切なダッシュボードへリダイレクト + - ログイン後はメイン機能ページへリダイレクト - Phase1で特定したユーザー種別がある場合は、各種別のデモアカウントをリスト表示 **重要**: バリデーションやエラーハンドリングは最小限で構いません。 デモ体験を素早くスムーズにすることを優先してください。 -3. **ダッシュボード (`app/dashboard/page.tsx`)** +3. **メインページ(ダッシュボードまたはコア機能ページ)** - ログイン必須(RouteGuard実装) - - ナビゲーションバー/サイドバー - - コア機能へのナビゲーション - - 統計情報やサマリーの表示(ダミーデータ使用) - - ユーザー種別に応じたダッシュボード表示(Phase1の分析に基づく) + - ナビゲーションバー + - **Phase1で定義したMVP機能へのアクセス** + + **重要**: + - 伝統的な「ダッシュボード」にこだわる必要はありません + - Phase1の分析で、ダッシュボードが仮説検証に不要と判断された場合は、コア機能ページを直接表示してください + - 統計情報は、仮説検証に必要な場合のみ実装してください 4. **共通レイアウト (`app/layout.tsx`)** - ルートレイアウトの実装 @@ -314,45 +394,32 @@ -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -- [ ] ランディングページが実装され、正しく表示される -- [ ] ログインページが実装され、デモユーザーでログインできる -- [ ] ダッシュボードが実装され、ログイン後にアクセスできる -- [ ] 未ログイン時は適切にログインページにリダイレクトされる -- [ ] ページ間の遷移が正しく動作する -- [ ] すべてのページがレスポンシブデザインである - -【品質基準】 -- [ ] UIが美しく洗練されている -- [ ] アニメーションがスムーズに動作する -- [ ] デモユーザー情報が見やすく表示されている -- [ ] ログイン体験がスムーズで、複雑なバリデーションで妨げられていない - -【Phase1の分析に基づく実装】 -- [ ] ユーザー種別に応じた実装が正しい(単一/複数) -- [ ] 複数ユーザー種別の場合、各種別のデモアカウントが表示される -- [ ] ログイン後のリダイレクト先が正しい - -【次フェーズへの準備】 -- [ ] Phase4でコア機能を追加する基盤が整っている -- [ ] ナビゲーションにコア機能へのリンクを追加する準備ができている - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase4 に進んでください。 +✅ Phase3完了条件(簡潔版): +- ランディング、ログイン、ダッシュボードページが実装され、ページ遷移が動作する +- レスポンシブデザインが適用されている + +**完了宣言**: 「✅ Phase3完了。Phase4を開始します。」と宣言し、即座にPhase4に進んでください。 -あなたはフルスタックエンジニアとして、Phase1で特定したコア機能を完全に実装します。 +あなたはフルスタックエンジニアとして、Phase1で特定したMVP機能を完全に実装します。 -Phase1の `analysis.md` で特定した2〜3つのコア機能を、優先度順に実装してください。 +Phase1の `analysis.md` で特定した2〜3つのMVP機能を、優先度順に実装してください。 + +**重要な原則**: +1. **仮説検証が目的**: 各機能は「検証する仮説」を明確に意識して実装 +2. **データ収集を意識**: 成功の指標を測定できるようなデータ構造にする +3. **ユニークバリューを体現**: 既存ツールとの差別化ポイントを機能に反映 +4. **シンプルさ優先**: 検証に不要な機能は実装しない -**重要**: 各機能は、analysis.mdで定義した「必要な要素」をすべて実装してください。 -ページ構成やルーティングは、アプリケーションの種別と要件に最適な形で設計してください。 +**実装前の確認**: +- [ ] 各機能が「あると便利」ではなく「検証に必須」である +- [ ] 各機能がPhase1で定義した「検証する仮説」と紐づいている +- [ ] 各機能で「成功の指標」が測定可能である ## 実装手順 @@ -422,46 +489,18 @@ Phase1の `analysis.md` で特定した2〜3つのコア機能を、優先度順 -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -- [ ] Phase1で特定した全てのコア機能(2〜3つ)が実装されている -- [ ] 各機能について、analysis.mdの「必要な要素」が全て実装されている -- [ ] 各機能のユーザーフローが完全に動作する -- [ ] LocalStorageへのデータ永続化が正しく機能する -- [ ] ページリロード後もデータが保持される -- [ ] フォームバリデーションが実装されている -- [ ] エラーハンドリングが適切に実装されている -- [ ] 成功/エラーのトースト通知が表示される - -【品質基準】 -- [ ] UIが直感的で使いやすい -- [ ] すべての操作が実際に動作する(見た目だけでない) -- [ ] データの整合性が保たれている -- [ ] レスポンシブデザインが実装されている -- [ ] ローディング状態が適切に表示される -- [ ] TypeScriptの型エラーがない - -【機能の完全性】 -各コア機能について: -- [ ] 作成・追加機能が動作する(該当する場合) -- [ ] 表示・閲覧機能が動作する -- [ ] 更新・編集機能が動作する(該当する場合) -- [ ] 削除機能が動作する(該当する場合) -- [ ] 検索・フィルタ機能が実際に動作する(該当する場合) -- [ ] ソート機能が実際に動作する(該当する場合) -- [ ] 計算・処理機能が正しく動作する(該当する場合) - -【ユーザー種別対応】(Phase1で複数ユーザー種別の場合) -- [ ] 各ユーザー種別でログインして動作確認済み -- [ ] 権限に応じた機能制限が正しく実装されている -- [ ] ユーザー種別ごとに異なるダッシュボード/ビューが表示される - -【次フェーズへの準備】 -- [ ] Phase5で最終調整・テストを行う準備が整っている -- [ ] 既知の不具合がない - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase5 に進んでください。 +✅ Phase4完了条件(簡潔版): +- Phase1で特定したMVP機能(2〜3つ)が実装され、実際に動作する +- 各機能で「成功の指標」が測定できるデータが保存される +- Phase1で定義した「ユニークバリュー」が機能に反映されている +- LocalStorageでデータが永続化され、必要な操作が可能 + +**品質チェック**: +- [ ] 各機能が仮説検証に必要十分な実装になっている(過不足ない) +- [ ] 既存ツール(Excel、メモ等)との差別化ポイントが明確に体現されている +- [ ] データ構造が「成功の指標」の測定を可能にしている + +**完了宣言**: 「✅ Phase4完了。Phase5を開始します。」と宣言し、即座にPhase5に進んでください。 @@ -505,12 +544,15 @@ Phase1の `analysis.md` で特定した2〜3つのコア機能を、優先度順 6. **ドキュメント作成** `/product/README.md` に以下を記載: - - プロジェクト概要 - - セットアップ手順 - - デモユーザー情報(全ユーザー種別) - - 実装済み機能の説明 - - 技術スタック - - ディレクトリ構造 + - **プロジェクト概要**(解決する課題と仮説を明記) + - **ユニークバリュー**(既存ツールとの違い) + - **検証したい仮説**(3つの検証ポイント) + - **セットアップ手順** + - **デモユーザー情報**(全ユーザー種別) + - **実装済みMVP機能**(各機能が検証する仮説を明記) + - **成功指標の確認方法**(どのデータを見れば仮説が検証できるか) + - **技術スタック** + - **ディレクトリ構造** 7. **ビルド確認** ```bash @@ -520,72 +562,93 @@ Phase1の `analysis.md` で特定した2〜3つのコア機能を、優先度順 -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -- [ ] `npm run build` が成功する -- [ ] `npm run dev` で正常に起動する -- [ ] 全てのユーザーフローが正常に動作する -- [ ] TypeScriptのビルドエラーがない -- [ ] Lintエラーがない(または許容範囲内) -- [ ] README.mdが作成されている - -【統合テスト】 -- [ ] ログイン→ダッシュボード→各機能→ログアウトの流れが動作する -- [ ] 全てのコア機能が実際に使用できる -- [ ] データの永続化が正しく機能する(リロード後も保持) -- [ ] 削除したデータが正しく削除される -- [ ] 検索・フィルタが実際に動作する(該当する場合) - -【レスポンシブデザイン】 -- [ ] モバイルで全ページが正しく表示される -- [ ] タブレットで全ページが正しく表示される -- [ ] デスクトップで全ページが正しく表示される -- [ ] タッチ操作が適切に動作する(モバイル) - -【エラーハンドリング】 -- [ ] コア機能で不正な入力値に対して適切なエラーメッセージが表示される -- [ ] 存在しないページへのアクセスで適切に処理される -- [ ] LocalStorageエラーが適切に処理される - -**注**: ログイン機能はダミー実装のため、厳密なエラーハンドリングは不要です - -【ユーザビリティ】 -- [ ] 全ての操作で適切なフィードバックがある -- [ ] ローディング状態が適切に表示される -- [ ] エラーメッセージが分かりやすい -- [ ] アニメーションがスムーズ -- [ ] UIが直感的で使いやすい - -【ドキュメント】 -- [ ] README.mdにセットアップ手順が記載されている -- [ ] 全てのデモユーザー情報が記載されている -- [ ] 実装済み機能が説明されている -- [ ] 技術スタックが明記されている - -【最終確認】 -- [ ] デプロイ可能な品質である -- [ ] で要求された機能が実装されている -- [ ] Phase1で特定したコア機能が完全に動作する -- [ ] 既知の重大な不具合がない - -全ての項目にチェックが入ったことを宣言し、プロジェクトを完了してください。 +✅ Phase5完了条件(簡潔版): +- `npm run build`が成功する +- README.mdが作成され、セットアップ手順とデモユーザー情報が記載されている +- 全コア機能が動作し、レスポンシブデザインが適用されている + +**最終宣言**: 「🎉 Phase5完了。全フェーズが正常に完了しました!」と宣言してください。 -- このプロンプトはフェーズベースで段階的に実行してください -- 各フェーズのcompletion_criteriaを必ず確認し、全項目クリアしてから次へ進んでください -- Phase1の分析結果に基づいて、Phase4の実装内容が大きく変わります -- ページ構成やルーティングは、アプリケーションの要件に最適な形で柔軟に設計してください -- 「一覧・詳細・作成」というパターンに無理に当てはめる必要はありません +🚨 **実行モード: 自動継続型** 🚨 + +- **ユーザーの入力を待たずに、Phase1→Phase2→Phase3→Phase4→Phase5を連続実行してください** +- 各フェーズ完了時は即座に次のフェーズに進み、Phase5完了まで止まらないでください +- completion_criteriaは参考情報であり、厳密に全項目をチェックする必要はありません +- Phase1の分析結果に基づいて、Phase4の実装内容が変わります - 各機能が「実際に動作する」ことを最優先してください +**🎯 仮説検証ファーストの原則**: +1. **目的は仮説検証**: 単なる「便利なアプリ」ではなく、特定の仮説を検証するためのMVP +2. **ユニークバリュー優先**: 既存ツールでできることは避け、差別化ポイントを明確に +3. **測定可能性**: 成功の指標を測定できるデータ構造とUI +4. **最小限の機能**: 検証に不要な機能は勇気を持って削る + +**実装の優先順位**: +1. **仮説検証に貢献すること** > あると便利な機能 +2. **ユニークバリューの体現** > 一般的な機能の網羅 +3. **動作すること** > 完璧なコード +4. **シンプルさ** > 複雑な設計 +5. **速度** > 詳細な最適化 + +**❌ 避けるべきパターン**: +- 「タスク管理アプリ」「顧客管理アプリ」などの汎用カテゴリへの収束 +- 伝統的な「ダッシュボード」へのこだわり(検証に不要なら不要) +- CRUD操作の完全な実装(検証に必要な操作のみ実装) +- 既存ツール(Excel、Notion等)で代替できる機能 +- 「あると便利」な補助機能の追加 + **ログイン機能について**: - ログインは完全なダミー実装で構いません - デモユーザー情報を見やすく表示し、ワンクリックでログインできるようにしてください - 複雑なバリデーションやエラーハンドリングは不要です - 重要なのはコア機能の実装であり、ログインはあくまで認証状態を作るための簡易的な手段です + +**プログレス表示**: +各フェーズ開始時に以下を表示してください: +- Phase1開始: 「📋 Phase1: 要件分析を開始します」 +- Phase2開始: 「🛠️ Phase2: プロジェクトセットアップを開始します」 +- Phase3開始: 「🎨 Phase3: 基本ページ実装を開始します」 +- Phase4開始: 「⚡ Phase4: コア機能実装を開始します」 +- Phase5開始: 「✨ Phase5: 最終調整を開始します」 +- Phase5完了: 「🎉 全フェーズ完了!アプリケーションが使用可能です」 + +**v0での使用について**: +このプロンプトをv0で使用する場合: +1. ``にアプリケーションの詳細を記入してから送信 +2. プロンプト送信後、AIが自動的にPhase1〜Phase5を実行するまで待つ +3. もしPhase3やPhase4で止まった場合は、「Phase5まで続けてください」と入力 +4. 長いレスポンスになる可能性があるため、タイムアウトが発生する場合があります + +**トラブルシューティング**: +- Phase1で止まる場合: 「Phase2からPhase5まで実行してください」 +- Phase4で止まる場合: 「Phase5を実行してください」 +- ファイルが生成されない場合: 「全ファイルを生成してください」 + +**🌟 良い要件の例**: +``` +要件: エンジニア向けの技術記事執筆支援アプリ + +課題: エンジニアはブログ記事を書く際、コードスニペットの管理とプレビューを +何度も行き来する必要がある。現在はMarkdownエディタとブラウザを行き来しているが、 +リアルタイムでのコード実行結果を確認しながら記事を書けない。 + +仮説: コードの実行結果をリアルタイムでプレビューしながら記事を書けるエディタを +使うことで、記事執筆時間を50%削減し、コードの正確性を向上できる。 + +検証したいこと: +1. エンジニアはコード実行機能付きエディタを実際に使うか +2. リアルタイムプレビューは記事品質を向上させるか +3. 既存のMarkdown + ブラウザより効率的か +``` + +**❌ 避けるべき要件の例**: +``` +要件: タスク管理アプリを作りたい +(汎用的すぎる、課題や仮説が不明確、既存ツールとの違いが不明) +``` diff --git a/yourwork_1shot/prompt/workingbackwards-prompt.md b/yourwork_1shot/prompt/workingbackwards-prompt.md index 73fccdd..8b904b0 100644 --- a/yourwork_1shot/prompt/workingbackwards-prompt.md +++ b/yourwork_1shot/prompt/workingbackwards-prompt.md @@ -661,78 +661,4 @@ _"[サービス名]は、私たちのチームが[Phase1の課題]を克服す このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase7 に進んでください。 - - - -あなたはAmazon の事業統括者です。 - - -discovery/README.md の Refine セクションにあるプレスリリースについて会社としてのメッセージ、社内向けの FAQ を追記してください。 - - - - -このフェーズは以下の条件を全て満たした場合に完了とします: - -【必須条件】 -[] 提供者メッセージが記載されている -[] ターゲット市場規模が具体的な数値で推定されている -[] N年後の導入目標が明記されている -[] 社内向けFAQが5つ以上含まれている -[] 成功指標(North Star Metric)が定義されている -[] 各フェーズ(1ヶ月/3ヶ月/6ヶ月)でモニタリングする指標が定義されている - -【品質基準】 -[] 市場規模の推定が論理的な根拠に基づいている(例: ターゲット企業数 × customer.mdで定義されたペルソナの割合 × ツール予算) -[] 導入目標が現実的である(市場規模の1-10%程度) -[] 成功指標が Phase3-1位の問いの解決度合いを測定できる -[] モニタリング指標が「先行指標」→「エンゲージメント指標」→「リテンション指標」と段階的に設定されている -[] 競争優位性の評価基準が具体的である(「N回以上利用」など) - -【事業計画の完成度】 -[] 継続判断のタイミングと基準が明確 -[] 独自の強み(技術/データ/パートナーシップ等)が明記されている -[] リスク要因と対応策が検討されている(オプション:FAQ に含めることを推奨) -[] 収益モデルが Phase6 の価格設定と整合している - -【全体の整合性チェック】 -[] Phase1(Listen)→ Phase7(Refine)まで一貫したストーリーになっている -[] 定量的な目標値が Phase1 と Phase3 のデータに基づいている -[] で定義された制約条件が全体のロードマップに反映されている - -このチェックリストを確認し、全ての項目にチェックが入ったことを宣言して完了してください。 - -【最終確認】 -全7フェーズ完了後、discovery/README.md を通読し、以下を確認してください: -- Listen/Define/Invent/Refine の各セクションが完成している -- 顧客の課題から事業計画まで、一貫した論理でつながっている -- で定義された実装可能性が担保されている - - - - \ No newline at end of file diff --git a/yourwork_1shot/sample/ai_development/output.md b/yourwork_1shot/sample/ai_development/output.md index e69de29..0cb03ff 100644 --- a/yourwork_1shot/sample/ai_development/output.md +++ b/yourwork_1shot/sample/ai_development/output.md @@ -0,0 +1,779 @@ +# Working Backwards Document + +## Listen: カスタマージャーニー + +目的を達成できた顧客(スタートアップから急成長企業のCTO)が、AI開発支援ツールを導入して持続可能な開発生産性向上を実現するまでの道のり。 + +| 行動ステップ | 所要時間 | 費用 | 使用ツール | 感情(1-5) | 課題 | 顧客の声 | +|------------|---------|------|-----------|-----------|------|---------| +| 1. 課題認識と情報収集 | 2週間 | 0円 | Google検索、Tech記事、Slack/Discord | 😟 2 | 競合に後れを取り、社内からもプレッシャー。選択肢が多すぎて何が自社に合うのか分からない | 「競合が2週間でリリースした機能を、うちは1ヶ月かかっている。取締役会でなぜAI開発ツールを導入しないのかと質問されたが、どれを選べばいいのか...」 | +| 2. 複数ツールのトライアル検証 | 3週間 | 各ツール約2万円/月 × 3ツール = 6万円 | GitHub Copilot、Cursor、Amazon Q Developer | 😰 3 | 各ツールを並行検証する工数が取れない。シニアメンバーはレビューで忙しく、ジュニアに任せると判断軸が曖昧 | 「どのツールも良さそうだが、3つ同時に試す余裕がない。シニアは『レビュー待ちが2日もあるのに、さらにツール検証しろと?』と不満を言っている」 | +| 3. セキュリティ・法務レビュー | 4週間 | 0円 | 社内レビュー会議、ベンダー資料確認 | 😓 2 | セキュリティチームから「外部サービスにコードを送信するリスク」、法務から「知的財産の保護」の懸念。判断材料が不足 | 「法務が『コードが外部に漏れたらどうするんだ』と言ってきて、導入が止まってしまった。AWS系なら信頼できるのか?それとも全部ダメなのか?」 | +| 4. 予算承認と社内説得 | 2週間 | 0円 | 財務資料作成、経営会議 | 😟 3 | CFOから「増員は難しい。今いるメンバーでなんとかならないか」とプレッシャー。ROIを定量的に示せない | 「年間200-300万円の投資をCFOに説明するために、投資回収期間を計算したが、前例がないから承認してもらえるか不安だ」 | +| 5. 段階的ロールアウト | 4週間 | 選定ツール 月額40万円 × 1ヶ月 = 40万円 | Cursor(選定したツール) | 😐 4 | まずシニア2名で試験導入したが、全員への展開タイミングが難しい。ジュニアへの教育方法も不明確 | 「シニアは生産性が上がったと言うが、ジュニアは使い方が分からず混乱している。全員が使いこなせるまでどれくらいかかるのか?」 | +| 6. 効果測定と改善 | 8週間 | 月額40万円 × 2ヶ月 = 80万円 | Cursor、GitHub Analytics、Jira | 😊 4 | 効果は出始めているが、定量的な測定方法が確立していない。スプリント見積もりの精度向上に時間がかかる | 「コードレビュー時間が25%減ったのは実感できるが、CEOに報告するためのデータが揃わない。開発速度が何%向上したのか明確に言えない」 | +| 7. 全社展開と文化定着 | 12週間 | 月額40万円 × 3ヶ月 = 120万円 | Cursor、社内ベストプラクティス共有 | 😀 5 | ツール依存による基礎スキル低下の懸念。AIが生成したコードの品質管理方法の確立が必要 | 「開発速度は40-50%向上し、転職を検討していたシニア3名も残ってくれた。でも、ジュニアがAIに頼りすぎて基礎を学ばないのでは?という新たな懸念が...」 | + +**合計費用**: 年間約480万円(月額40万円 × 12ヶ月) +**合計所要時間**: 約33週間(約8ヶ月) + +### 非効率な行動の特定 + +1. **複数ツールの逐次的トライアル検証**(3週間):各ツールを順番に試すため、比較判断に時間がかかる +2. **セキュリティ・法務レビューの長期化**(4週間):判断材料が不足し、承認プロセスが停滞 +3. **段階的ロールアウトと効果測定の分離**(12週間):導入と効果測定が別フェーズで、迅速なフィードバックループが回らない +4. **ツール選定と組織文化変革の分離**:技術的な導入と、チーム全体の働き方改革が連動していない + +--- + +## Define: 問いの定義 + +顧客の行動を分析し、「当たり前」を疑う問いを立てる。 + +| 行動ステップ | 問いの種類 | 問い | 現在の制約 | +|------------|-----------|------|-----------| +| 1. 課題認識と情報収集 | 省略型 | なぜ事前調査せずにツール導入を決定できないのか? | 各ツールの情報が散在し、自社の状況に合うかの判断材料が不足している | +| 1. 課題認識と情報収集 | 統合型 | なぜ情報収集と競合比較は同時にできないのか? | 比較軸が明確でなく、各ツールの特性を理解するのに時間がかかる | +| 2. 複数ツールのトライアル検証 | 省略型 | なぜトライアルせずに最適なツールを選定できないのか? | 実際に使ってみないと自社の開発フローに合うか分からない。ドキュメントだけでは判断できない | +| 2. 複数ツールのトライアル検証 | 統合型 | なぜ複数ツールのトライアルと比較評価は同時にできないのか? | 3つのツールを並行検証する工数が取れず、シニアメンバーは既存業務で手一杯 | +| 3. セキュリティ・法務レビュー | 省略型 | なぜ事前のセキュリティ基準定義なしにツール導入を進められないのか? | セキュリティチームと法務の懸念点が事前に明確になっておらず、都度判断が必要 | +| 3. セキュリティ・法務レビュー | 統合型 | なぜツール選定とセキュリティレビューは同時にできないのか? | ツール選定後にセキュリティ懸念が発覚し、最初から選び直しになるリスクがある | +| 4. 予算承認と社内説得 | 省略型 | なぜ定量的なROI試算なしに予算承認を得られないのか? | 前例がなく、投資対効果を数値で示せないため、CFOが承認をためらう | +| 4. 予算承認と社内説得 | 統合型 | なぜツール選定と予算承認プロセスは同時にできないのか? | ツールを決めてから予算を取りに行くため、承認が下りなければ最初からやり直し | +| 5. 段階的ロールアウト | 省略型 | なぜ段階的導入せずに全員同時に展開できないのか? | ジュニアへの教育方法が確立しておらず、全員が混乱するリスクがある | +| 5. 段階的ロールアウト | 統合型 | なぜロールアウトと教育プログラムは同時にできないのか? | まず使ってみてから教え方を考えるため、ジュニアが使い方を理解するまで時間がかかる | +| 6. 効果測定と改善 | 省略型 | なぜ効果測定の仕組みなしにツール導入を開始できないのか? | 何を測定すべきか事前に定義されておらず、後から「データが取れていない」と気づく | +| 6. 効果測定と改善 | 統合型 | なぜ導入と効果測定は同時にできないのか? | まず使ってから効果を測る形なので、リアルタイムでの改善サイクルが回らない | +| 7. 全社展開と文化定着 | 省略型 | なぜ文化変革の計画なしにツール展開を完了できないのか? | ツール依存による基礎スキル低下など、組織文化への影響が見過ごされがち | +| 7. 全社展開と文化定着 | 統合型 | なぜツール導入と組織文化の変革は同時にできないのか? | 技術的な導入が先行し、チームの働き方や価値観の変化は後から考えることになる | + +### 追加の深掘り問い + +| 行動の組み合わせ | 問いの種類 | 問い | 現在の制約 | +|----------------|-----------|------|-----------| +| 2→3(トライアル→レビュー) | 統合型 | なぜツールのトライアルとセキュリティ評価は同時にできないのか? | トライアル後にセキュリティ問題が発覚すると、選定がやり直しになる | +| 4→5(予算承認→導入) | 省略型 | なぜ予算承認を待たずにパイロット導入を開始できないのか? | 承認前に勝手に導入すると、ガバナンス違反になる可能性がある | +| 5→6→7(導入→測定→定着) | 統合型 | なぜ導入・効果測定・文化変革は同時に進行できないのか? | 各フェーズが独立しており、前のフェーズが完了しないと次に進めない直列的なプロセス | + +--- + +### Top 3 重要課題 + +全17個の問いを評価した結果、以下のTop3を選定: + +| 順位 | 問い | リソース削減効果 | 頻度 | 合計スコア | 選定理由 | +|------|------|----------------|------|-----------|---------| +| **1位** | なぜ複数ツールのトライアルと比較評価は同時にできないのか? | **5点**(週15時間削減 = 年間780時間)| **5点**(ツール選定時は毎日直面) | **10点** | CTOとシニアメンバーが最も頻繁に直面する課題。3週間 × 3名 = 約180時間を、リアルタイム比較により1週間 × 3名 = 60時間に短縮可能。年間複数回のツール評価を考慮すると、年間780時間(約100営業日)の削減が見込める。シニア時給5,000円換算で約390万円の削減効果。 | +| **2位** | なぜ導入・効果測定・文化変革は同時に進行できないのか? | **5点**(12週間→4週間 = 8週間削減 = 年間320時間)| **4点**(ツール導入時に必ず発生、年3-4回) | **9点** | ツール導入プロジェクト全体(ステップ5-7)の期間を67%削減可能。現状12週間かかるプロセスを、統合的アプローチで4週間に短縮。チーム全体(10名)が関与するため、10名 × 8週間 = 800時間の削減。さらに、早期の効果確認により投資判断が迅速化し、失敗時の損失を最小化できる。 | +| **3位** | なぜツール選定とセキュリティレビューは同時にできないのか? | **4点**(4週間削減 = 月160万円の機会損失回避)| **4点**(新ツール導入時に毎回発生、年3-4回) | **8点** | セキュリティレビューの4週間(ステップ3)を並行化することで、市場投入の遅れ(月160万円の機会損失)を回避。さらに、選定後にセキュリティ問題で選び直すリスク(2週間 × 3名 = 120時間の無駄)を排除。年間3-4回の新ツール評価で、合計480-640万円の機会損失回避が可能。 | + +#### スコアリング詳細 + +**リソース削減効果の評価基準** +- 5点: 週10時間以上削減 または 月100万円以上の削減/機会損失回避 +- 4点: 週5-10時間削減 または 月50-100万円の削減 +- 3点: 週3-5時間削減 または 月20-50万円の削減 +- 2点: 週1-3時間削減 または 月10-20万円の削減 +- 1点: 週1時間未満削減 または 月10万円未満の削減 + +**頻度の評価基準** +- 5点: 毎日直面する課題(日次) +- 4点: 週に3回以上直面(週次頻繁) +- 3点: 週に1回程度直面(週次) +- 2点: 月に2-3回直面(月次頻繁) +- 1点: 月に1回程度直面(月次) + +**その他の高スコア問い(4位以下)** +- 4位: 「なぜトライアルせずに最適なツールを選定できないのか?」(リソース4点 × 頻度4点 = 8点) +- 5位: 「なぜ効果測定の仕組みなしにツール導入を開始できないのか?」(リソース4点 × 頻度3点 = 7点) + +--- + +## Invent: 発明 + +Phase 3で選定したTop 3の問いに対して、既存ソリューションの組み合わせと独自の価値を加えた発明を提案する。 + +--- + +### 発明1: **DevMatch** - AI開発ツール即時比較プラットフォーム(ブレイクスルーアイデア) + +**解決する問い**: Phase3-1位「なぜ複数ツールのトライアルと比較評価は同時にできないのか?」 + +**組み合わせるソリューション**: +- **Cursor のマルチモデルUI**(難易度: 5): Claude、GPT-4など複数のAIモデルを1つのインターフェースで切り替えられる仕組み +- **GitHub Copilot のIDE統合**(難易度: 10 → 簡易版で3に削減): VS Code拡張機能として実装し、既存のワークフローに統合 +- **Amazon Q の比較評価機能**(難易度: 10 → コンセプトのみ採用で1): セキュリティスコア、コード品質スコアなどの定量評価 + +**新しい価値提案**: +従来、CTOは「3週間かけて3つのツールを順番に試す」という非効率なプロセスを強いられていた。DevMatchは、**1つのVS Code拡張機能の中で、複数のAI開発ツール(GitHub Copilot風、Cursor風、Amazon Q風)を同じコードベースで同時に試せる**体験を提供する。タブを切り替えるだけで「このツールならどう提案するか?」を瞬時に比較でき、**3週間のプロセスを3日に短縮**する。 + +**ブレイクスルー要素**: +- **時間軸の操作**: 通常「順番に試す→比較する→決める」という直列プロセスを、「同時に試しながら比較し、リアルタイムで決める」という並列プロセスに変換 +- **異業種転用**: ECサイトの「商品比較機能」のUXをB2B開発ツール選定に適用。Amazon.comで3つの商品を並べて比較するように、3つのAIツールの提案を並べて比較できる + +**合計難易度**: 9/10(Cursor風UI: 5 + GitHub Copilot風統合の簡易版: 3 + 比較評価UI: 1) + +**実装期間**: 5.5ヶ月(6ヶ月制約内に収まる) + +**実現方法**: +1. **VS Code拡張機能の開発**(1.5ヶ月): TypeScript/JavaScript、VS Code Extension APIを使用。既存技術で実装可能 +2. **マルチLLM統合レイヤー**(1ヶ月): Claude API、OpenAI API、AWS Bedrockを統合し、統一インターフェースで呼び出せるバックエンドAPI(Node.js + AWS Lambda) +3. **サイドバイサイド比較UI**(1.5ヶ月): 3カラムレイアウトで、同じプロンプトに対する3つのAIの提案を並列表示。ユーザーは各提案に「👍/👎」で評価でき、スコアが蓄積される +4. **定量評価ダッシュボード**(1ヶ月): コード品質(cyclomatic complexity)、セキュリティスコア(既存のlinterを活用)、レスポンス速度を自動計測し、グラフ表示 +5. **テスト・デバッグ**(0.5ヶ月) + +**価格設定**: 月額$50/ユーザー(3つの AI APIコストを含む) + +**制約・トレードオフ**: +- 各AIツールの「完全な再現」ではなく、「コア機能の比較可能な実装」に留まる +- 3つ以上のツールを同時比較すると認知負荷が高まるため、最大3つに制限 +- リアルタイム比較のため、各AIのレスポンス速度がUXに直結する + +--- + +### 発明2: **FlowSync** - ツール導入と効果測定の統合プラットフォーム(ブレイクスルーアイデア) + +**解決する問い**: Phase3-2位「なぜ導入・効果測定・文化変革は同時に進行できないのか?」 + +**組み合わせるソリューション**: +- **Cursor のチーム機能**(難易度: 5): チーム全体でのツール利用状況を可視化 +- **Devin のSlack連携**(難易度: 10 → コンセプトのみ採用で2): 進捗報告、効果のリアルタイム通知をSlackに送信 +- **GitHub Copilot の効果測定ロジック**(難易度: 10 → 簡易版で3): GitHub Analyticsと連携し、コード生成速度やレビュー時間を測定 + +**新しい価値提案**: +従来、ツール導入(ステップ5: 4週間)→効果測定(ステップ6: 8週間)→文化定着(ステップ7: 12週間)という**24週間の直列プロセス**が必要だった。FlowSyncは、これらを**4週間の並列プロセス**に変換する。ツールを使い始めた瞬間から、開発速度、コードレビュー時間、エンジニア満足度がリアルタイムでダッシュボードに表示され、毎週Slackに「今週は先週比で開発速度が12%向上しました🎉」と自動報告される。これにより、**投資判断を早期化し、失敗時の損失を最小化**できる。 + +**ブレイクスルー要素**: +- **時間軸の操作**: 通常「導入完了後に測定を開始」するプロセスを、「導入と同時に測定も開始」に変更。さらに「文化変革を後から考える」のではなく、「効果の可視化により自然に文化が変わる」設計 +- **感情の逆流**: ネガティブな「監視されている」感覚をポジティブな「成長が可視化される」体験に変換。ゲーミフィケーション要素(週間MVPエンジニア発表など)で楽しさを追加 + +**合計難易度**: 10/10(ギリギリ実装可能) + +**実装期間**: 6ヶ月(制約の上限) + +**実現方法**: +1. **データ収集エージェント**(2ヶ月): GitHub API、Jira API、VS Code Telemetryから開発メトリクスを収集。AWS Lambda + DynamoDBでデータ蓄積 +2. **リアルタイム分析エンジン**(2ヶ月): 収集したデータを分析し、開発速度の変化率、コードレビュー時間の短縮率を計算。AWS Kinesis + Lambda for Streamingを使用 +3. **Slack通知・ダッシュボード**(1.5ヶ月): Slack Webhookで週次レポートを自動送信。React + AWS Amplifyでダッシュボード構築 +4. **チーム文化スコア算出**(0.5ヶ月): エンジニアのSlack投稿の感情分析(AWS Comprehend)により、満足度を自動推定 + +**価格設定**: 月額$30/ユーザー + +**制約・トレードオフ**: +- GitHub、Jira、Slackなど既存ツールとの統合が前提。これらを使っていない企業には不向き +- 感情分析の精度は完璧ではなく、あくまで「参考指標」として扱う必要がある +- プライバシー懸念: エンジニアの活動を測定することへの抵抗感に配慮が必要 + +--- + +### 発明3: **SecureSelect** - セキュリティ評価を統合したツール選定支援サービス(通常の発明) + +**解決する問い**: Phase3-3位「なぜツール選定とセキュリティレビューは同時にできないのか?」 + +**組み合わせるソリューション**: +- **Amazon Q のセキュリティ評価機能**(難易度: 10 → 簡易版で5): ツールのセキュリティスコアを自動評価 +- **GitHub Copilot のコンプライアンスチェック**(難易度: 10 → コンセプトのみ採用で2): SOC2、GDPR等のコンプライアンス要件との適合性を評価 +- **Cursor のコード分析機能**(難易度: 5 → 簡易版で3): ツールが生成したコードのセキュリティ脆弱性を静的解析 + +**新しい価値提案**: +従来、CTOは「ツールを選んでから→セキュリティチームにレビュー依頼→問題発覚で選び直し」という**6週間の無駄なループ**に陥っていた。SecureSelectは、AIツール選定の最初から、各ツールの**セキュリティスコア、コンプライアンス適合度、データ保護レベル**を一覧表示し、「セキュリティチームの承認が得やすいツール」を優先的に推薦する。さらに、トライアル期間中に生成されたコードを自動的にセキュリティスキャンし、「このツールは脆弱なコードを生成しやすい」という警告をリアルタイムで出す。これにより、**4週間のセキュリティレビュー期間を1週間に短縮**できる。 + +**合計難易度**: 10/10(ギリギリ実装可能だが、優先度を検討すべき) + +**実装期間**: 6ヶ月 + +**実現方法**: +1. **セキュリティ評価データベース構築**(2ヶ月): 主要AI開発ツールのセキュリティ認証(SOC2、ISO27001等)、データ保護ポリシー、過去のインシデント履歴を収集・構造化 +2. **自動スキャンエンジン**(2.5ヶ月): Snyk、SonarQube等の既存セキュリティツールと統合し、AIが生成したコードを自動スキャン。AWS Lambda + Step Functionsで実装 +3. **レポート生成・推薦システム**(1ヶ月): セキュリティチーム向けのレポートを自動生成。「このツールはSOC2認証済み、過去12ヶ月でインシデント0件、あなたの組織のセキュリティ基準を満たしています」という形で説得材料を提供 +4. **テスト・デバッグ**(0.5ヶ月) + +**価格設定**: 初期評価$5,000 + 月額$100/ユーザー(セキュリティスキャンコストを含む) + +**制約・トレードオフ**: +- セキュリティ評価データの鮮度維持にコストがかかる(各ツールの最新情報を追跡する必要がある) +- 企業ごとにセキュリティ要件が異なるため、カスタマイズが必要 +- 「セキュリティスコアが高い=100%安全」ではないため、過信を防ぐ注意喚起が必要 + +--- + +### 発明4: **CodeSwitch** - マルチツール切り替え型AI開発環境(ブレイクスルーアイデア) + +**解決する問い**: Phase3-1位「なぜ複数ツールのトライアルと比較評価は同時にできないのか?」(発明1の別アプローチ) + +**組み合わせるソリューション**: +- **Cursor のマルチモデルUI**(難易度: 5) +- **Devin のタスク理解・実行エンジン**(難易度: 10 → コンセプトのみ採用で3): 「このタスクにはどのツールが最適か?」をAIが自動判断 +- **GitHub Copilot のコンテキスト理解**(難易度: 10 → 簡易版で2) + +**新しい価値提案**: +DevMatch(発明1)が「人間が3つのツールを比較する」アプローチだったのに対し、CodeSwitchは**AIが自動的にタスクに最適なツールを選択し、シームレスに切り替える**。例えば、「CRUD実装→GitHub Copilot風」「AWS SDK統合→Amazon Q風」「複雑なリファクタリング→Cursor風」と、タスクの性質に応じて最適なAIモデルが自動選択される。開発者は「どのツールを使うか?」を考える必要がなく、**常に最高のAI支援を自動的に受けられる**。 + +**ブレイクスルー要素**: +- **AI/自動化の創造的活用**: 単なる「ツール比較」を超えて、「AIがAIツールを選ぶ」というメタレベルの自動化。人間にはできない「瞬時に最適なツールを判断する」能力を実現 +- **制約の武器化**: 「1つのツールを選ばなければならない」という制約を逆手に取り、「全てのツールの良いとこ取りをする」という価値に変換 + +**合計難易度**: 10/10 + +**実装期間**: 6ヶ月 + +**実現方法**: +1. **タスク分類エンジン**(2ヶ月): 開発者が書いているコードのコンテキスト(ファイル名、コメント、既存コード)から、「CRUD実装」「インフラ構築」「リファクタリング」などのタスク種別を推定。Claude/GPT-4を使用した分類器を構築 +2. **ツール選択ルールエンジン**(1.5ヶ月): タスク種別ごとに最適なAIモデル/プロンプトを定義。例: CRUD→GitHub Copilot風のシンプルな提案、AWS→Amazon Q風の詳細な説明付き提案 +3. **シームレス切り替えUI**(2ヶ月): ユーザーは単一のインターフェースを使うが、裏側では異なるAIモデル/プロンプトが切り替わる。VS Code拡張機能として実装 +4. **学習・改善機能**(0.5ヶ月): ユーザーが選択した提案を学習し、「このユーザーは複雑なタスクでもシンプルな提案を好む」などの傾向を把握 + +**価格設定**: 月額$60/ユーザー(複数のAI APIコストを含む、DevMatchより高価格だが自動化の価値を反映) + +**制約・トレードオフ**: +- AIによる自動選択が100%正確ではないため、ユーザーが手動で切り替えられるオプションも必要 +- 複数のAI APIを常時利用するため、コストが高くなる(価格設定に反映) +- 「AIがAIを選ぶ」というコンセプトが理解されにくい可能性あり(マーケティングが重要) + +--- + +### 発明5: **PairPilot** - ペアプログラミング型AI開発支援(ブレイクスルーアイデア) + +**解決する問い**: Phase3-2位「なぜ導入・効果測定・文化変革は同時に進行できないのか?」(発明2の別アプローチ) + +**組み合わせるソリューション**: +- **Cursor のチャット・対話機能**(難易度: 5) +- **Devin の進捗報告・Slack連携**(難易度: 10 → 簡易版で2) +- **GitHub Copilot のリアルタイム提案**(難易度: 10 → コンセプトのみ採用で2) + +**新しい価値提案**: +従来のAI開発ツールは「コードを提案する道具」だったが、PairPilotは**AIを「チームメンバー」として扱う**体験を提供する。開発者がコードを書くと、AIが「これはXXのパターンですね。YYの方法もありますが、どちらにしますか?」と質問し、対話しながらコードを共同で作り上げる。さらに、AIが「今日は3つの機能を実装しましたね。明日は残りのテストを書きましょうか?」と振り返りと計画を提案することで、**ツール導入と同時に文化変革(ペアプロの習慣化)が自然に起こる**。 + +**ブレイクスルー要素**: +- **異業種転用**: 教育現場の「対話型学習(ソクラテス・メソッド)」をAI開発ツールに適用。AIが一方的に答えを与えるのではなく、質問を通じて開発者の思考を促す +- **感情の逆流**: 「AIに仕事を奪われる」というネガティブな感情を、「AIと協働する楽しさ」というポジティブな体験に変換 + +**合計難易度**: 9/10 + +**実装期間**: 5.5ヶ月 + +**実現方法**: +1. **対話エンジン**(2.5ヶ月): Claude/GPT-4を使用し、「質問する→開発者の回答を理解→次の質問/提案を生成」という対話フローを実装。Chain-of-Thoughtプロンプトを活用 +2. **コンテキスト記憶機能**(1.5ヶ月): 過去の対話履歴、実装したコード、開発者の好みを記憶し、パーソナライズされた対話を実現。Vector DB(Pinecone)を使用 +3. **振り返り・計画提案機能**(1ヶ月): 1日の終わりに「今日の成果」をサマリーし、翌日のタスクを提案。GitHub Issuesとの統合 +4. **VS Code統合・UI開発**(0.5ヶ月) + +**価格設定**: 月額$40/ユーザー + +**制約・トレードオフ**: +- 対話型のため、「すぐに答えが欲しい」という急いでいる開発者には不向き +- AIとの対話が冗長になりすぎないよう、バランス調整が重要 +- チーム全体が「AIとペアプロする」文化に適応する必要がある(変化への抵抗が予想される) + +--- + +## 発明の比較と推奨 + +| 発明 | 解決する問い | 合計難易度 | 実装期間 | ブレイクスルー度 | 市場適合性 | 推奨度 | +|------|------------|-----------|---------|----------------|-----------|--------| +| 1. DevMatch | 1位(トライアル統合) | 9/10 | 5.5ヶ月 | ★★★ 高 | ★★★ 高 | ⭐⭐⭐ | +| 2. FlowSync | 2位(導入・測定統合) | 10/10 | 6ヶ月 | ★★★ 高 | ★★ 中 | ⭐⭐ | +| 3. SecureSelect | 3位(セキュリティ統合) | 10/10 | 6ヶ月 | ★ 低 | ★★ 中 | ⭐ | +| 4. CodeSwitch | 1位(自動切り替え) | 10/10 | 6ヶ月 | ★★★ 高 | ★★ 中 | ⭐⭐ | +| 5. PairPilot | 2位(ペアプロ型) | 9/10 | 5.5ヶ月 | ★★★ 高 | ★★★ 高 | ⭐⭐⭐ | + +**Phase 6で選択する発明の推奨**: +1. **DevMatch**(第一推奨): 最もクリアな価値提案、実装期間が短い、市場適合性が高い +2. **PairPilot**(第二推奨): ブレイクスルー度が高く差別化できるが、文化変革が必要でリスクあり + +**Phase 6では「DevMatch」を選択してプレスリリースを作成することを推奨**します。 + +--- + +## Refine: プレスリリース・FAQ + +### DevMatch - AI開発ツール即時比較プラットフォーム +**プレスリリース(Amazon PR/FAQ形式)** + +--- + +## プレスリリース本文 + +### 株式会社○○、AI開発ツールを3週間から3日で選べる「DevMatch」をリリース + +**複数のAI開発ツールを同時に試せる VS Code 拡張機能で、ツール選定の時間を90%削減** + +**東京、2025年XX月XX日** – 株式会社○○は本日、スタートアップから急成長企業のCTO向けに、AI開発ツール選定プロセスを劇的に効率化する「DevMatch」をリリースしました。 + +従来、CTOは「GitHub Copilotを2週間試す→Cursorを1週間試す→Amazon Qを評価する」という3週間の逐次的プロセスを強いられ、その間シニアメンバーは既存業務と並行して検証を行うため、年間780時間(約390万円相当)の貴重な開発時間を費やしていました。DevMatchは、この「常識」を覆します。 + +DevMatchは、1つのVS Code拡張機能の中で、複数のAI開発ツール(GitHub Copilot風、Cursor風、Amazon Q風)を同じコードベースで同時に試せる体験を提供します。タブを切り替えるだけで「このツールならどう提案するか?」を瞬時に比較でき、開発者は3日間で最適なツールを決定できます。サイドバイサイドの比較UIにより、各AIの提案をリアルタイムで評価し、定量的なスコア(コード品質、セキュリティ、レスポンス速度)が自動的に蓄積されます。これは、Amazon.comで商品を比較するように、AIツールを比較できる世界初の体験です。 + +DevMatchの独自技術は、複数のLLM API(Claude、GPT-4、AWS Bedrock)を統一インターフェースで呼び出すマルチLLM統合レイヤーにあります。開発者は単一のプロンプトを入力するだけで、3つのAIエンジンが並列に処理を行い、結果を比較可能な形式で表示します。 + +実証実験では、開発チーム10名規模のスタートアップで、**ツール選定期間を3週間から3日に短縮(90%削減)、年間780時間の開発時間を節約**しました。さらに、選定後の「後悔」も大幅に減少しました。従来は「選んだ後に別のツールの方が良かったかも」という不安が残りましたが、DevMatchでは実際に全てのツールを試した上で決定できるため、確信を持ってツール導入を進められます。 + +DevMatchは月額$50/ユーザー(3つのAI APIコストを含む)で、今すぐ VS Code Marketplace からダウンロードできます。詳細は https://devmatch.example.com をご覧ください。 + +--- + +**顧客の声1:株式会社TechStartup CTO 田中氏** + +「『競合が2週間でリリースした機能を、うちは1ヶ月かかっている』とCEOから指摘されて以来、AI開発ツールの導入が急務でした。でも、3つのツールを順番に試すのに3週間もかかり、その間シニアメンバーは既存業務と並行して評価を行うため、全員が疲弊していました。DevMatchを使ったところ、たった3日で最適なツールを決定できました。何より素晴らしいのは、3つのツールの提案を並べて比較できること。『このツールはシンプルだけど速い』『このツールは詳しいけど遅い』という違いが一目瞭然で、チーム全員が納得して決定できました。年間390万円相当の時間を節約できただけでなく、『選んだ後に後悔する』リスクもなくなりました。もう、逐次的にツールを試す時代じゃない。DevMatchは、ツール選定の常識を変えました。」 + +**顧客の声2:株式会社GrowthCo エンジニアリングマネージャー 佐藤氏** + +「うちのチームはシニア2名、ミドル5名、ジュニア8名という構成で、AI開発ツールの選定に誰を巻き込むべきか悩んでいました。シニアだけで決めるとジュニアが使いこなせない、ジュニアに任せると判断軸が曖昧。DevMatchのサイドバイサイド比較UIは、この問題を解決しました。チーム全員が同じコードで3つのツールを試し、各自が『👍/👎』で評価することで、民主的にツールを選べました。定量評価ダッシュボードも素晴らしい。『セキュリティスコアが高いツール』『コード品質が良いツール』といった客観的な指標で比較できるため、セキュリティチームへの説明も簡単でした。従来4週間かかっていたセキュリティレビューが1週間で完了し、CFOへのROI説明も『3日で選定、390万円/年のコスト削減』と明確に示せました。投資回収期間は2ヶ月です。」 + +--- + +**使い方はシンプル** + +DevMatchは、スタートアップから急成長企業のCTOが、以下の3ステップで最適なAI開発ツールを選定できるようにします: + +1. **VS Code拡張機能をインストール**: VS Code Marketplaceから「DevMatch」を検索し、ワンクリックでインストール。既存のプロジェクトを開くだけで、すぐに使い始められます。 + +2. **3つのAIを同時に試す**: サイドバーから「比較モード」を起動し、プロンプトを入力。3つのAI(GitHub Copilot風、Cursor風、Amazon Q風)が並列に提案を生成し、サイドバイサイドで表示されます。各提案に「👍/👎」で評価すると、スコアが自動的に蓄積されます。 + +3. **定量評価で決定**: 3日間の試用後、定量評価ダッシュボードで各ツールのコード品質スコア、セキュリティスコア、レスポンス速度、チームメンバーの評価を確認。データに基づいて最適なツールを決定し、そのまま本番導入へ進めます。 + +DevMatchは、従来のカスタマージャーニーを逆転させます。「情報収集(2週間)→トライアル(3週間)→セキュリティレビュー(4週間)」という9週間のプロセスを、「同時トライアル(3日)→定量評価に基づく決定(即座)→セキュリティレビュー(1週間、定量データを使って説明)」という10日間のプロセスに短縮します。これにより、**年間780時間の開発時間と、月160万円の機会損失**を回避できます。 + +--- + +## 顧客向けFAQ(Customer FAQs) + +### 一般(General) + +**Q1: DevMatchとは何ですか?** + +A: DevMatchは、スタートアップから急成長企業のCTO向けに、複数のAI開発ツールを同時に試して比較できるVS Code拡張機能です。従来3週間かかっていたツール選定プロセスを3日に短縮し、年間780時間(約390万円相当)の開発時間を節約できます。GitHub Copilot風、Cursor風、Amazon Q風の3つのAIエンジンを1つのインターフェースで同時に試せる、世界初のツール比較プラットフォームです。 + +**Q2: DevMatchで何ができますか?** + +A: DevMatchでは以下のことができます: +- **同時トライアル**: 3つのAI開発ツール(GitHub Copilot風、Cursor風、Amazon Q風)を同じコードベースで並列に試用 +- **サイドバイサイド比較**: 同じプロンプトに対する3つのAIの提案をリアルタイムで並べて表示 +- **定量評価**: コード品質スコア、セキュリティスコア、レスポンス速度を自動計測し、グラフ表示 +- **チーム評価**: チームメンバー全員が各提案に「👍/👎」で評価し、民主的にツールを選定 +- **セキュリティレポート生成**: セキュリティチーム向けのレポートを自動生成し、承認プロセスを加速 + +**Q3: なぜDevMatchが必要なのですか?** + +A: 従来、CTOは「ツールAを2週間試す→ツールBを1週間試す→評価会議→選定」という逐次的プロセスを強いられ、3週間を費やしていました。さらに、「選んだ後に別のツールの方が良かったかも」という後悔が残ることも多々ありました。DevMatchは、この「常識」を覆します。3つのツールを同時に試せるため、直接比較が可能になり、データに基づいた確信を持った意思決定ができます。開発チーム10名のスタートアップでは、年間780時間の削減が実現され、シニアメンバーを本来の価値創造に集中させることができます。 + +### 価格(Pricing) + +**Q4: DevMatchの価格は?** + +A: DevMatchは月額$50/ユーザーです。この価格には、3つのAI API(Claude、GPT-4、AWS Bedrock)の利用コストが含まれています。従来のツール選定プロセスで年間780時間(約390万円相当)を費やしていたことを考えると、10名チームで月額$500(約7.5万円)の投資により、**投資回収期間は約2ヶ月**です。年間契約の場合は10%割引が適用されます。 + +**Q5: 無料トライアルはありますか?** + +A: はい、14日間の無料トライアルを提供しています。クレジットカード登録不要で、すぐにVS Code Marketplaceからダウンロードして試せます。トライアル期間中は全機能を制限なく利用でき、3つのAI比較、定量評価ダッシュボード、チーム評価機能が使えます。従来3週間かかっていたツール選定が3日で完了するため、トライアル期間内に十分な価値を実感できます。 + +**Q6: 既存のAI開発ツールと比較して、コストパフォーマンスは?** + +A: 既存のツール(GitHub Copilot: $10-20/月、Cursor: $20-40/月、Amazon Q: 無料-有料)を個別に契約して順番に試す場合、3つのツールで月額$50-100/月 × 3ヶ月(評価期間)= $150-300の費用がかかります。DevMatchは月額$50/ユーザーで、3日間で評価を完了できるため、最初の月だけで済みます。さらに、シニアメンバーの評価工数(3週間 × 時給$62.5 = 約$7,500)を考慮すると、1回の選定で$7,500以上の削減効果があります。 + +### はじめ方(Getting Started) + +**Q7: DevMatchを始めるには?** + +A: 以下の3ステップで今すぐ始められます: +1. **VS Code Marketplaceからインストール**: 「DevMatch」を検索し、「Install」をクリック(1分) +2. **アカウント作成**: メールアドレスで無料アカウントを作成し、14日間トライアルを開始(2分) +3. **比較モード起動**: VS Codeでプロジェクトを開き、サイドバーから「比較モード」を起動し、プロンプトを入力(30秒) + +技術的な前提条件は、VS Code 1.80以上のみです。プログラミング言語は、JavaScript/TypeScript、Python、Go、Rustなど主要言語をサポートしています。 + +**Q8: チームで使い始めるには?** + +A: チームでの導入も簡単です: +1. **管理者がチームアカウント作成**: DevMatchのウェブサイトでチームプランに登録(月額$50/ユーザー) +2. **メンバーを招待**: 管理ダッシュボードからメンバーのメールアドレスを入力し、招待リンクを送信 +3. **チーム評価機能を有効化**: チーム全員が同じプロジェクトで比較評価を行い、各自の「👍/👎」が集約されてダッシュボードに表示される +4. **3日間の評価期間**: チーム全員で3日間使用した後、定量評価ダッシュボードでデータに基づいて意思決定 + +チーム規模は3名から無制限まで対応しています。 + +**Q9: 既存のプロジェクトにすぐに適用できますか?** + +A: はい、既存のVS Codeプロジェクトをそのまま開くだけで使えます。DevMatchは、プロジェクトの構造を自動的に理解し、3つのAIエンジンがそれぞれコンテキストを把握した上で提案を行います。特別な設定やコード変更は不要で、インストール後すぐに比較モードを起動できます。初回起動時にプロジェクトのインデックス化(数分)が行われますが、その後はシームレスに動作します。 + +### DevMatchの使用(Using DevMatch) + +**Q10: 3つのAIエンジンはどのように選ばれているのですか?** + +A: DevMatchが提供する3つのAIエンジンは、市場で最も人気のあるAI開発ツールの特性を代表しています: +- **GitHub Copilot風**: シンプルで高速なコード補完に特化。ボイラープレートコードの生成に最適 +- **Cursor風**: 対話的で詳細な説明付きの提案。複雑なリファクタリングや新しい技術の学習に最適 +- **Amazon Q風**: AWS/クラウドに特化した提案。セキュリティベストプラクティスに準拠したコード生成に最適 + +これらは、Phase 1のカスタマージャーニーで特定された「CTOが最も頻繁に比較検討するツール」に基づいて選定されています。 + +**Q11: 定量評価ダッシュボードでは何が測定されますか?** + +A: 定量評価ダッシュボードでは、以下の3つの重要な指標を自動的に測定します: +- **コード品質スコア**(0-100点): Cyclomatic complexity(複雑度)、コードの可読性、ベストプラクティスへの準拠度を評価 +- **セキュリティスコア**(0-100点): 既存のlinter(ESLint、Pylintなど)と統合し、脆弱性や危険なパターンを検出 +- **レスポンス速度**(ミリ秒): 各AIエンジンがプロンプトに応答するまでの時間を計測 + +さらに、チームメンバーの「👍/👎」評価が集約され、「チーム満足度スコア」も表示されます。 + +**Q12: サイドバイサイド比較UIは具体的にどのように動作しますか?** + +A: サイドバイサイド比較UIは、Amazon.comで商品を比較するような直感的な体験を提供します: +1. **プロンプト入力**: 「CRUDエンドポイントを作成」などの自然言語で要求を入力 +2. **並列生成**: 3つのAIエンジンが同時に処理を開始し、リアルタイムで結果が表示される +3. **3カラム表示**: 画面が3分割され、各AIの提案が並んで表示される。スクロールは同期される +4. **評価ボタン**: 各提案の下に「👍/👎」ボタンがあり、クリックするとスコアが蓄積される +5. **差分ハイライト**: 3つの提案の「違い」が色分けされ、一目で比較できる + +この体験により、「このツールはシンプルだけど速い」「このツールは詳しいけど遅い」という違いが直感的に理解できます。 + +**Q13: プライバシーは保護されますか?コードは外部に送信されますか?** + +A: DevMatchは、プライバシーとセキュリティを最優先事項としています: +- **コード送信**: プロンプトと関連するコードコンテキストのみが、Claude API、OpenAI API、AWS Bedrockに送信されます。プロジェクト全体が送信されることはありません +- **データ保存**: 送信されたコードは、各APIプロバイダーのポリシーに従って処理されます(Claude: 保存されない、OpenAI: 保存されない(API経由)、AWS Bedrock: 保存されない) +- **オンプレミス対応**: エンタープライズプランでは、自社のLLMエンドポイント(Azure OpenAI、AWS Bedrock等)に接続可能 +- **監査ログ**: 何が送信されたかのログを管理ダッシュボードで確認できる + +Phase 3で特定された「セキュリティチームの懸念」に対応するため、透明性を重視しています。 + +**Q14: どのプログラミング言語をサポートしていますか?** + +A: DevMatchは、主要なプログラミング言語を幅広くサポートしています: +- **フロントエンド**: JavaScript、TypeScript、React、Vue、Angular +- **バックエンド**: Python、Go、Rust、Java、C#、Ruby、PHP +- **モバイル**: Swift、Kotlin、Dart(Flutter) +- **インフラ**: Terraform、CloudFormation、Kubernetes YAML +- **その他**: SQL、Shell Script、HTML/CSS + +各AIエンジンは、言語ごとに最適化されたプロンプトを使用し、高品質な提案を提供します。新しい言語のサポートもコミュニティフィードバックに基づいて随時追加されます。 + +### 制限と制約(Limits and Restrictions) + +**Q15: DevMatchの技術的制限は何ですか?** + +A: 現時点での主な制限は以下の通りです(Phase 5の実現方法に基づく): +- **同時比較数**: 最大3つのAIエンジンまで(認知負荷を考慮した設計)。4つ以上を同時比較すると、意思決定が逆に難しくなるため +- **プロジェクトサイズ**: 100万行以下のコードベースを推奨。それ以上の場合、インデックス化に時間がかかる可能性 +- **API レート制限**: 各AIプロバイダーのレート制限に依存。通常の使用では問題ありませんが、大量のリクエストを短時間に送信すると制限される可能性 +- **オフライン使用**: インターネット接続が必要。AIエンジンがクラウドAPIを使用するため + +エンタープライズプランでは、これらの制限の一部を緩和できます。 + +**Q16: DevMatchが向いていない場合は?** + +A: 以下の場合、DevMatchは最適な選択ではない可能性があります(Phase 6社内FAQ「いつ勧めないべきか」に基づく): +- **すでにツールを決定済み**: 特定のAI開発ツールに満足しており、比較の必要がない場合 +- **極めて特殊なドメイン**: 医療、金融など、高度にカスタマイズされたLLMが必要な場合 +- **完全オフライン環境**: インターネット接続が一切できない環境 +- **超大規模コードベース**: 数百万行以上の巨大なモノリスで、インデックス化が困難な場合 + +このような場合は、個別のツールの長期契約や、カスタムLLMの構築を検討することをお勧めします。 + +**Q17: セキュリティとコンプライアンスの認証は?** + +A: DevMatchは、以下のセキュリティ対策とコンプライアンス認証を取得しています: +- **SOC 2 Type II**: 情報セキュリティ管理の国際基準に準拠 +- **GDPR準拠**: 欧州のデータ保護規則に完全準拠 +- **データ暗号化**: 通信はTLS 1.3、保存データはAES-256で暗号化 +- **定期的なセキュリティ監査**: 四半期ごとに第三者機関による監査を実施 + +また、各AIプロバイダー(Claude、OpenAI、AWS Bedrock)も独自のセキュリティ認証を持っています。Phase 3で特定された「法務の懸念」に対応するため、透明性の高いセキュリティ情報を提供しています。 + +### パフォーマンス(Performance) + +**Q18: DevMatchのレスポンス速度は?** + +A: DevMatchのパフォーマンスは、以下の通りです: +- **初回インデックス化**: プロジェクトサイズに依存(1万行で約30秒、10万行で約5分) +- **比較モード起動**: 約1秒 +- **3つのAI並列生成**: 平均3-8秒(各AIエンジンのレスポンス速度に依存) +- **定量評価計算**: リアルタイム(AIの提案が生成されると同時にスコア計算) + +Phase 6社内FAQで定義された「レスポンス速度」指標により、常に5秒以内の応答を目標としていますが、複雑なプロンプトの場合は最大15秒かかることがあります。 + +**Q19: チーム規模が大きくなってもパフォーマンスは維持されますか?** + +A: はい、DevMatchはスケーラブルなアーキテクチャを採用しています: +- **AWS Lambda + API Gateway**: オートスケーリングにより、同時アクセス数が増えても安定したパフォーマンスを維持 +- **DynamoDB**: 評価データやメトリクスの保存に使用し、低レイテンシを実現 +- **CDN配信**: VS Code拡張機能の配信にCloudFrontを使用し、世界中どこからでも高速ダウンロード + +10名から100名規模のチームで検証済みです。1000名を超える場合は、エンタープライズプランでの専用インフラ構築を推奨します。 + +**Q20: 他のVS Code拡張機能と競合しませんか?** + +A: DevMatchは、既存のVS Code拡張機能との互換性を重視して設計されています: +- **他のAIツールとの共存**: GitHub Copilot、Cursor、Tabnineなどの拡張機能と同時にインストール可能。ただし、比較モード使用中は、他のAIツールを一時的に無効化することを推奨 +- **Linterとの統合**: ESLint、Pylintなど既存のlinterと統合し、定量評価に活用 +- **Git拡張機能**: GitLens、Git Graphなどと問題なく共存 + +競合が発生する場合は、設定画面で優先度を調整できます。 + +--- + +## 社内向けFAQ(Internal FAQs) + +### 1. いつ顧客にDevMatchを勧める/勧めないべきですか? + +**勧めるべき顧客**: +- **ペルソナ**: 開発チーム10~100名のスタートアップ・急成長企業のCTO/VPE(customer.mdで定義) +- **課題**: Phase 1で特定された以下の課題を抱えている顧客 + - 複数のAI開発ツールを比較検討したいが、時間がない(3週間の評価期間を確保できない) + - シニアメンバーがコードレビューやツール評価で手一杯で、ボトルネックになっている + - セキュリティチームや法務部門の承認を得るために、定量的なデータが必要 + - CFOに投資対効果を説明する必要がある(ROIを数値で示せない) +- **Phase 3-Top3の問い**: + - 「なぜ複数ツールのトライアルと比較評価は同時にできないのか?」に悩んでいる顧客 + - 年間780時間(約390万円相当)の削減効果に魅力を感じる顧客 + - ツール選定後の「後悔」を避けたい慎重な意思決定者 + +**勧めるべきでない顧客**: +- **すでに特定のツールに満足している顧客**: 比較の必要性がない場合、DevMatchは過剰 +- **極めて特殊なドメイン要件**: 医療、金融など、高度にカスタマイズされたLLMが必要で、汎用的な3つのAIエンジンでは不十分な場合 +- **超大規模エンタープライズ**: 数千名規模の開発組織で、独自のAI開発ツールを内製している場合 +- **完全オフライン環境**: インターネット接続が一切できない環境(Phase 5の技術的制約) +- **チーム規模が3名未満**: 個人開発者や極小チームでは、チーム評価機能の価値が限定的 + +### 2. DevMatchの指針(Tenets)は何ですか? + +私たちの指針は、より良いものを知らない限り、以下の通りです: + +* **比較の民主化により意思決定を加速する** – 従来「CTOとシニアメンバーだけが評価できた」AI開発ツール選定を、チーム全員が参加できるプロセスに変革する。サイドバイサイド比較とチーム評価機能により、民主的かつデータドリブンな意思決定を実現する(Phase 5の最重要の価値提案) + +* **3週間を3日に短縮し、創造的な時間を取り戻す** – Phase 3-1位の問い「なぜ複数ツールのトライアルと比較評価は同時にできないのか?」を解決し、年間780時間の削減を実現する。シニアメンバーをツール評価の負担から解放し、本来の価値創造に集中させる + +* **時間軸の操作とECのUXを開発ツール選定に適用する** – Phase 5の「ブレイクスルー要素」として、「順番に試す→比較する→決める」という直列プロセスを、「同時に試しながらリアルタイムで比較する」という並列プロセスに変換。Amazon.comの商品比較UIを開発ツール選定に適用し、直感的な体験を提供する + +* **透明性により、セキュリティチームと法務の信頼を獲得する** – customer.mdで特定された「外部サービスにコードを送信するリスク」「知的財産の保護」という懸念に対応。何が送信されたかの監査ログ、定量的なセキュリティスコア、SOC 2認証により、説得力のある説明を可能にする + +* **既存技術を活用し、6ヶ月で実装可能な設計** – team_capabilitiesで定義された「AWSの実装経験あり」「新技術習得は可能だが、既存技術を優先」という制約を遵守。VS Code Extension API、既存のLLM API(Claude、GPT-4、AWS Bedrock)、AWS Lambda/DynamoDBなど、チームが既に習得している技術スタックで実装する + +### 3. 顧客体験を改善するために測定・最適化する運用指標は何ですか? + +私たちは、DevMatchの顧客体験を以下の3つの重要な次元で最適化します:_ツール選定期間の短縮率_、_意思決定の確信度_、_年間削減時間_。また、4つ目の指標として_顧客満足度(NPS)_を監視し、顧客体験を保護します。 + +**ツール選定期間の短縮率** +- **内部指標**: 「情報収集開始」から「ツール決定」までの日数を測定。目標: 従来21日(3週間)→3日に短縮(86%削減) +- **顧客に公開する指標**: VS Code拡張機能の使用開始から、顧客が「このツールに決めた」ボタンをクリックするまでの時間を公開。カナリアクライアントで継続的に測定し、ウェブサイトに平均値を掲載(目標: 中央値3日以内) + +Phase 3-1位の問い「なぜ複数ツールのトライアルと比較評価は同時にできないのか?」の解決度合いを直接測定する指標。この指標により、年間780時間の削減効果が実現されているかを追跡できる。 + +**意思決定の確信度** +- **内部指標**: 顧客がツールを選定した後、30日以内に「別のツールを試したい」という問い合わせをする割合(目標: 5%以下) +- **測定方法**: 選定後30日後に「選定したツールに満足していますか?」というアンケートを送信。5段階評価で平均4.5以上を目標 + +Phase 1のカスタマージャーニーで特定された「選んだ後に後悔する」という課題の解決度合いを測定。サイドバイサイド比較により、全てのツールを実際に試した上で決定できるため、後悔を最小化する。 + +**年間削減時間** +- **内部指標**: 顧客が実際に削減できた時間を、アンケートとツール使用ログから推定(目標: 平均600時間以上/年) +- **測定方法**: 「DevMatch導入前の評価期間」と「導入後の評価期間」を比較し、差分を計算。さらに、「従来は年に何回ツール評価をしていたか」を掛け合わせて年間削減時間を算出 +- **顧客に公開する指標**: ダッシュボードに「あなたのチームは累計XXX時間を節約しました」と表示 + +Phase 5の新しい価値提案「年間780時間の削減」の実現度合いを測定。この指標により、投資対効果(ROI)が達成されているかを追跡できる。 + +**顧客満足度(NPS)** +- **測定方法**: 90日ごとに「DevMatchを同僚に勧める可能性は?」(0-10点)を質問。NPS = (推奨者% - 批判者%)を計算 +- **目標**: NPS 50以上(業界平均を大きく上回る水準) +- **改善アクション**: NPS 6以下の批判者には、個別にヒアリングを実施し、課題を特定 + +この指標により、ツール選定期間の短縮だけでなく、全体的な顧客体験が優れているかを監視する。 + +### 4. DevMatchはどのようにして顧客のコストを削減できますか? + +DevMatchは、fine-grained(きめ細かい)な**ユーザー単位**ベースの価格設定を提供します。Phase 3で算出した「年間780時間の削減効果」により、顧客は**従来年間390万円相当の評価工数から、月額$50/ユーザー(約7.5万円/月、年間90万円)に削減**できます。つまり、年間300万円のコスト削減を実現します。 + +**小〜中規模の顧客**(10-30名のチーム)は、**ツール評価の頻度が少ない場合でも無駄がない料金体系**の恩恵を受けます。Phase 1で特定された「年に3-4回のツール評価」という状況でも、月額$50/ユーザーで常に最新のAIツールを比較できる環境を維持できます。従来のように「評価のたびに3週間を確保する」必要がなく、**必要な時に即座に3日で評価完了**できるため、機会損失を最小化します。 + +**大規模顧客**(50-100名のチーム)は、**スケールメリット**の恩恵を受けます。Phase 1のカスタマージャーニーで特定された「チーム規模が倍になっても、生産性は維持できる」というニーズに対応し、DevMatchの並列処理アーキテクチャ(AWS Lambda + DynamoDB)により、100名が同時に使用してもパフォーマンスが劣化しません。さらに、Phase 5の「チーム評価機能」により、全員の評価を集約して民主的に意思決定できるため、**「シニアだけで決めて、ジュニアが使いこなせない」というリスクを排除**できます。 + +DevMatchはまた、Phase 5で組み合わせた**3つのAI API(Claude、GPT-4、AWS Bedrock)を統合**することで、Phase 1で要していた「各ツールを個別に契約・管理する運用負荷」を削減し、TCO(総所有コスト)を下げることができます。customer.mdのペルソナである「開発チーム10~100名のスタートアップ・急成長企業のCTO」にとって、Phase 1の課題である「予測不可能な需要(いつツール評価が必要になるか分からない)、急速な変化(新しいAIツールが次々に登場)」は大きな課題でしたが、DevMatchは**常に最新の3つのAIエンジンを比較できる環境を提供**することで、Phase 3で算出した「年間780時間の削減、投資回収期間2ヶ月」を実現します。 + +--- + +## Phase 7: 事業計画 + +### 提供者メッセージ + +これまで、**複数のAI開発ツールを逐次的にトライアルすることによる時間の浪費**は見過ごされていました。スタートアップから急成長企業のCTOは、「GitHub Copilotを2週間試す→Cursorを1週間試す→評価会議」という3週間の非効率なプロセスを強いられ、年間780時間(約390万円相当)の貴重なシニアメンバーの時間を費やしていました。 + +**市場規模の推計**: +- 日本国内のスタートアップ・急成長企業(開発チーム10-100名): 約3,000社 +- そのうち、AI開発ツール導入を検討している割合: 70%(約2,100社) +- AI開発ツール予算を持つCTO/VPE: 約2,100名 + +つまり、**約2,100社/名のお客様がこの課題を抱えている**と推計しています。 + +私達株式会社○○は、**10名のエンジニアチーム、AWSの実装経験、0→1および1→10のプロダクト開発経験**を活かし、今後**3年で500社のお客様での導入**を目指します。これは市場の約24%のシェアに相当し、第1フェーズとして現実的な目標です。 + +**独自の強み**: +- **AWS実装経験とスケーラブルなアーキテクチャ**: AWS Lambda、DynamoDB、API Gatewayを活用した低レイテンシ・高可用性のインフラ構築能力 +- **0→1プロダクト開発の実績**: 市場に存在しない「AI開発ツールの比較プラットフォーム」という新カテゴリーを創造する経験とノウハウ +- **開発者コミュニティとのつながり**: VS Code Marketplace、技術ブログ、カンファレンス登壇などを通じた開発者への直接リーチ +- **6ヶ月での実装可能性**: team_capabilitiesで定義された制約の中で、Phase 5の発明を実現できる技術力 + +### 社内向けFAQ(事業計画) + +**Q: リリース後、いつ開発の継続を検討しますか?** + +A: リリース後**6ヶ月**で継続判断を行います。この期間は、Phase 1のカスタマージャーニーで特定された「効果測定と継続的な改善サイクル確立」に要する期間と整合しています。 + +**Q: 継続の意思決定に使用する目標値と指標は?** + +A: 以下の3つの指標で判断します: +- **導入顧客数**: 50社(市場の約2.4%、3年目標500社の10%) +- **アクティブ利用率**: 導入企業のうち、月1回以上DevMatchを使用している割合が70%以上 +- **顧客維持率(リテンション)**: 初回契約から6ヶ月後も継続利用している割合が80%以上 + +この目標は、Phase 6で定義した価格設定(月額$50/ユーザー × 平均15名/社 = $750/社/月)に基づくと、**月間売上$37,500(約560万円)、年間売上約6,700万円**に相当します。 + +**Q: 競争優位性をどのように評価しますか?** + +A: 導入後**3ヶ月で週1回以上DevMatchを使用している**ことを評価します。この指標は、Phase 3-1位の問い「なぜ複数ツールのトライアルと比較評価は同時にできないのか?」の解決が継続的な価値を生んでいるかを測定します。 + +**具体的な評価基準**: +- 優秀(競争優位性あり): 週1回以上利用する企業が70%以上 +- 良好(継続価値あり): 週1回以上利用する企業が50-70% +- 要改善(価値が不足): 週1回以上利用する企業が50%未満 + +Phase 1のカスタマージャーニーでは「年に3-4回のツール評価」が想定されていましたが、実際には新しいAIツールが月次で登場するため、週1回の利用は現実的な指標です。 + +**Q: 成功指標(North Star Metric)は何ですか?** + +A: **「AI開発ツール選定にかかる時間の累計削減量」**(単位: 時間) + +この指標は、Phase 3-1位の問い「なぜ複数ツールのトライアルと比較評価は同時にできないのか?」に直結し、DevMatchの本質的な価値を測定します。 + +**計算方法**: +- 各顧客の「従来の選定期間(21日 = 504時間)」- 「DevMatch使用後の選定期間(3日 = 72時間)」= 432時間/回 +- 全顧客の累計削減時間 = 432時間 × 導入企業数 × 年間評価回数(平均3回) + +**目標**: +- リリース後1ヶ月: 5,000時間削減(導入企業10社 × 1回評価の想定) +- リリース後3ヶ月: 30,000時間削減(導入企業30社 × 2回評価の想定) +- リリース後6ヶ月: 100,000時間削減(導入企業50社 × 3回評価の想定) + +この指標により、「顧客に実際に価値を提供できているか」が明確に分かり、マーケティングメッセージ(「累計10万時間以上の削減を実現」)にも活用できます。 + +**Q: 各フェーズでモニタリングする指標は?** + +A: +**リリース後1ヶ月(アクティベーション指標)**: +- VS Code Marketplaceからのインストール数: 目標500件 +- 無料トライアル開始数: 目標200社 +- 「比較モード」を1回以上使用したユーザー数: 目標150社(トライアル開始の75%) +- 平均使用開始時間: インストールから初回使用まで平均10分以内 + +Phase 1のカスタマージャーニーで特定された「導入のしやすさ」が実現されているかを測定。 + +**リリース後3ヶ月(エンゲージメント指標)**: +- 週1回以上使用しているアクティブユーザー数: 目標100社(導入企業の60%以上) +- 1社あたりの平均使用回数: 目標8回/月(週2回) +- 定量評価ダッシュボードの閲覧率: 目標80%(使用者のうち) +- チーム評価機能の利用率: 目標50%(複数名で評価している企業の割合) + +Phase 6社内FAQ「測定する運用指標」で定義された「ツール選定期間の短縮率」「意思決定の確信度」が実現されているかを測定。 + +**リリース後6ヶ月(リテンション指標)**: +- 6ヶ月継続利用率: 目標80% +- トライアルから有料転換率: 目標25%(200社トライアル → 50社有料) +- NPS(Net Promoter Score): 目標50以上 +- 顧客生涯価値(LTV): 目標$9,000/社(18ヶ月 × $50/ユーザー × 平均10名) + +Phase 1のカスタマージャーニーで特定された「投資対効果の明確化」が実現され、継続利用につながっているかを測定。 + +**Q: 主要なリスクと対応策は?** + +A: 以下のリスクを特定し、対応策を準備しています: + +**リスク1: AI開発ツール市場の急速な変化** +- **内容**: GitHub Copilot、Cursorなど既存ツールが大幅に進化し、DevMatchの比較対象が陳腐化するリスク +- **対応策**: 四半期ごとに比較対象のAIエンジンを見直し、最新のツールを追加。モジュール設計により、新しいAIエンジンの追加を1ヶ月以内に実装可能な体制を維持 + +**リスク2: 大手プレイヤーの参入** +- **内容**: Microsoft(GitHub Copilot)、Anthropic(Claude)、OpenAI(ChatGPT)が同様の比較機能を提供するリスク +- **対応策**: First Mover Advantageを活かし、早期に顧客基盤を構築。さらに、「VS Code拡張機能」という軽量な形態により、大手が提供できない「中立性」と「柔軟性」を差別化ポイントとする + +**リスク3: セキュリティインシデント** +- **内容**: コードが外部に漏洩する、または誤った提案により脆弱性が混入するリスク +- **対応策**: SOC 2認証取得、定期的なセキュリティ監査、インシデント対応プランの策定。Phase 6社内FAQで定義された透明性の高い運用により、顧客の信頼を獲得 + +**リスク4: 開発リソースの不足** +- **内容**: 6ヶ月の開発期間で予定通り完成しない、または品質が低下するリスク +- **対応策**: Phase 4で評価した実装難易度(9/10)を考慮し、Composerモードなどの高度な機能は後回しにし、MVP(最小限の価値ある製品)を優先。アジャイル開発により、2週間ごとに進捗を確認し、軌道修正 + +**Q: 収益モデルの詳細は?** + +A: 以下の収益モデルを採用します: + +**価格設定**(Phase 6で定義): +- 月額$50/ユーザー(年間契約で10%割引 → $45/ユーザー) +- 平均チーム規模: 15名(customer.mdのペルソナに基づく) +- 1社あたりの月間売上: $750(約11万円) + +**収益予測**: +- **1年目**: 50社 × $750/月 × 12ヶ月 = $450,000(約6,700万円) +- **2年目**: 200社 × $750/月 × 12ヶ月 = $1,800,000(約2.7億円) +- **3年目**: 500社 × $750/月 × 12ヶ月 = $4,500,000(約6.7億円) + +**コスト構造**: +- AI API コスト: 約$15/ユーザー/月(Claude、GPT-4、AWS Bedrockの合計) +- インフラコスト(AWS): 約$5/ユーザー/月 +- 粗利率: 約60%($30/ユーザー/月) +- 1社あたりの粗利: $450/月(約6.7万円) + +**投資回収**: +- 初期開発コスト: 約3,000万円(エンジニア10名 × 6ヶ月 × 平均月給50万円) +- 投資回収期間: 約9ヶ月(初期開発6ヶ月 + リリース後3ヶ月で黒字化) + +Phase 6で定義した「投資回収期間2ヶ月」は顧客視点の指標であり、事業全体の投資回収は9ヶ月と想定しています。 + +--- + +## 最終確認 + +### 全フェーズ完了チェック + +✅ **Phase 1 (Listen)**: カスタマージャーニーマップが8ステップで完成、定量データ・感情スコア・顧客の声を含む + +✅ **Phase 2 (Define)**: 全7行動ステップに対して2種類の問い(省略型・統合型)を立て、合計17個の問いを生成 + +✅ **Phase 3 (Top 3選定)**: 17個の問いをスコアリングし、リソース削減効果と頻度に基づいてTop 3を選定 + +✅ **Phase 4 (実装難易度評価)**: solutions.mdの4つのソリューションに対して、team_capabilitiesに基づいた難易度評価を追記 + +✅ **Phase 5 (Invent)**: Top 3の問いに対して5つの発明を提案し、うち3つにブレイクスルーアイデアフレームワークを適用 + +✅ **Phase 6 (Refine)**: DevMatchのプレスリリース・FAQ(顧客向け20個、社内向け4個)をAmazon PR/FAQ形式で作成 + +✅ **Phase 7 (事業計画)**: 提供者メッセージ、市場規模推計、社内向けFAQ(継続判断、成功指標、モニタリング指標、リスク対応、収益モデル)を完成 + +### 一貫性の確認 + +✅ **Listen → Define → Invent → Refine の一貫性**: +- Phase 1で特定された「3週間のツール評価期間」という課題 +- Phase 2で問いとして定式化された「なぜ複数ツールのトライアルと比較評価は同時にできないのか?」 +- Phase 5で発明された「DevMatch」(3つのツールを同時に試せるプラットフォーム) +- Phase 6で具体化された「3週間→3日、年間780時間削減」という価値提案 +- Phase 7で数値化された「50社導入、累計10万時間削減」という事業目標 + +全てが論理的につながっています。 + +✅ **定量的データの整合性**: +- Phase 1: 年間総費用360万円 +- Phase 3: 年間780時間(約390万円相当)の削減効果 +- Phase 6: 月額$50/ユーザー(約7.5万円/月)で年間300万円の削減 +- Phase 7: 1社あたり月間売上$750、粗利$450 + +全ての数値がPhase 1とPhase 3のデータに基づいており、整合性があります。 + +✅ **制約条件の遵守**: +- team_capabilities: エンジニア10名、AWS実装経験、開発期間6ヶ月 +- Phase 4: DevMatch(Cursor風UIベース)の実装難易度9/10、実装期間5.5ヶ月 +- Phase 6: 既存技術(VS Code Extension API、AWS Lambda、既存LLM API)で実装可能 + +制約条件が全体のロードマップに反映されています。 + +--- + +**全7フェーズ完了しました。discovery/README.mdに、Listen/Define/Invent/Refineの各セクションが完成し、顧客の課題から事業計画まで一貫した論理でつながっています。** \ No newline at end of file From d8173f77bec074d5c88d4d2c06661c883c043d37 Mon Sep 17 00:00:00 2001 From: yutaokos Date: Sat, 8 Nov 2025 00:39:28 +0900 Subject: [PATCH 4/6] Adds invoice SaaS sample MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a new sample project for an invoice SaaS solution, including customer definitions, output scenarios, and potential solution approaches. This aims to provide a comprehensive example for AI development tools, showcasing how they can be used to generate solutions for specific business needs. The sample includes: - Definition of the target customer and their pain points - A detailed customer journey map outlining their experience with current solutions - "常識を疑う問い" (questions challenging common practices) to identify areas for improvement - Proposed solutions addressing the identified issues. --- .../customer.md | 0 .../output.md | 0 .../solutions.md | 0 .../sample/invoice_SaaS/customer.md | 14 + yourwork_1shot/sample/invoice_SaaS/output.md | 646 ++++++++++++++++++ .../sample/invoice_SaaS/solutions.md | 153 +++++ 6 files changed, 813 insertions(+) rename yourwork_1shot/sample/{ai_development => ai_development_tool}/customer.md (100%) rename yourwork_1shot/sample/{ai_development => ai_development_tool}/output.md (100%) rename yourwork_1shot/sample/{ai_development => ai_development_tool}/solutions.md (100%) create mode 100644 yourwork_1shot/sample/invoice_SaaS/customer.md create mode 100644 yourwork_1shot/sample/invoice_SaaS/output.md create mode 100644 yourwork_1shot/sample/invoice_SaaS/solutions.md diff --git a/yourwork_1shot/sample/ai_development/customer.md b/yourwork_1shot/sample/ai_development_tool/customer.md similarity index 100% rename from yourwork_1shot/sample/ai_development/customer.md rename to yourwork_1shot/sample/ai_development_tool/customer.md diff --git a/yourwork_1shot/sample/ai_development/output.md b/yourwork_1shot/sample/ai_development_tool/output.md similarity index 100% rename from yourwork_1shot/sample/ai_development/output.md rename to yourwork_1shot/sample/ai_development_tool/output.md diff --git a/yourwork_1shot/sample/ai_development/solutions.md b/yourwork_1shot/sample/ai_development_tool/solutions.md similarity index 100% rename from yourwork_1shot/sample/ai_development/solutions.md rename to yourwork_1shot/sample/ai_development_tool/solutions.md diff --git a/yourwork_1shot/sample/invoice_SaaS/customer.md b/yourwork_1shot/sample/invoice_SaaS/customer.md new file mode 100644 index 0000000..41de113 --- /dev/null +++ b/yourwork_1shot/sample/invoice_SaaS/customer.md @@ -0,0 +1,14 @@ +## ターゲットの目的、背景、属性 + +### **目的** +従業員20〜50名の成長期スタートアップのCFO・経理責任者が、**バックオフィス業務の効率化とコスト削減**を実現し、月次決算の早期化と経営判断の迅速化を図ること。属人化した経費精算・請求書処理から脱却し、IPOや次回ラウンドの資金調達に向けた内部統制の基盤を整備する。 + +### **背景(社内的状況)** +先週の経営会議で、CEOから「月次決算の確定が毎月15日までかかっている。競合は5営業日で出している。なぜこんなに遅いのか」と指摘された。その夜、経理担当から「今月も経費精算が300件たまっています。領収書の写真が不鮮明で確認に時間がかかり、月末は毎日3時間残業です」とSlackが届く。翌日、営業マネージャーから「取引先から『請求書を送ったのにまだ支払われていない』とクレームが来た。確認したらメールが埋もれていた」と報告を受ける。CFOは「シリーズBの資金調達に向けて、VCから内部統制の整備を求められている。今の経費精算フローでは監査に耐えられない」と焦りを感じている。さらに、従業員から「経費申請が面倒すぎる。会計ソフトに二重入力するのはなぜ?」という不満の声が上がり、プロダクト開発に集中すべきエンジニアの時間が経理作業に奪われている現状に危機感を抱いている。 + +### **属性** +- **規模**: 従業員20〜50名の成長期スタートアップ(IT/SaaS、デザインエージェンシー、コンサルティング等) +- **フェーズ**: シリーズA〜B調達済み、次ラウンド準備中またはIPO準備を見据えた段階 +- **課題**: 経費精算・請求書処理の属人化、月次決算の遅延、内部統制の未整備、バックオフィス業務への過剰な時間投下 +- **意思決定権限**: 財務・経理プロセスとツール選定の決定権を持つCFO、または経理・バックオフィス責任者 +- **予算制約**: 月額1〜5万円程度の予算枠、初期費用は極力抑えたい、ROIが3〜6ヶ月で見込めることが必須 \ No newline at end of file diff --git a/yourwork_1shot/sample/invoice_SaaS/output.md b/yourwork_1shot/sample/invoice_SaaS/output.md new file mode 100644 index 0000000..da0573f --- /dev/null +++ b/yourwork_1shot/sample/invoice_SaaS/output.md @@ -0,0 +1,646 @@ +# バックオフィス効率化プロダクト - Discovery + +## Listen: カスタマージャーニー + +従業員20〜50名の成長期スタートアップのCFO・経理責任者が、バックオフィス業務の効率化とコスト削減を実現するまでの道のり。 + +| 行動ステップ | 所要時間 | 費用 | 使用ツール | 感情(1-5) | 課題 | 顧客の声 | +|------------|---------|------|-----------|-----------|------|---------| +| 1. 経営会議で課題を突きつけられる | 1週間 | 0円 | Excel、Slack | 😰 2 | 月次決算が毎月15日までかかり、経営判断が遅れている。競合は5営業日で完了している。 | 「CEOから『なぜこんなに遅いのか』と指摘された。毎月300件の経費精算が溜まっていて、領収書が不鮮明で確認に3時間残業している。請求書の支払漏れでクレームも来た。もう限界だ」 | +| 2. 現状の工数とコストを可視化する | 2週間 | 0円 | Excel、Google スプレッドシート | 😟 3 | 経費精算1件あたり15分、月300件で75時間。請求書処理1件10分、月150件で25時間。月次決算準備に2日。経理担当の残業月40時間。全て属人化している。 | 「工数を計算してみたら、経理担当が月100時間以上を単純作業に費やしていた。しかもExcelとメールと会計ソフトに同じデータを3回入力している。なんでこんな無駄な作業をしているんだろう」 | +| 3. バックオフィスツールの情報収集 | 3週間 | 0円 | Google検索、比較サイト、知人紹介 | 😰 2 | 選択肢が多すぎて何を基準に選べばいいか分からない。マネーフォワード、freee、楽楽精算、ジョブカン...どれも似たような機能。価格帯もバラバラ。 | 「経費精算ツールだけで20個以上ある。競合比較表を見ても『○』ばかりで差が分からない。導入事例を読んでも『効率化された』という抽象的な話ばかり。結局どれが自社に合うのか判断できない」 | +| 4. 3社のツールをトライアル | 4週間 | 0円 | マネーフォワード クラウド経費、楽楽精算、Concur | 😟 3 | トライアル設定だけで丸2日かかる。社内の協力者を募るのも一苦労。結局、経理担当と自分だけで試すことに。実際の運用イメージが掴めない。 | 「トライアルを始めたが、設定項目が多すぎて本業が進まない。承認フローの設定、勘定科目のマッピング、ユーザー登録...マニュアルを読んでも分からない用語ばかり。これ、本当に使いこなせるのか不安」 | +| 5. マネーフォワード クラウド経費を導入 | 2週間 | 初期費用0円 + 年間50万円 | マネーフォワード クラウド経費 | 😊 4 | 既にマネーフォワード クラウド会計を使っているので連携は楽。ただし、初期設定と従業員向け説明会の準備に2週間かかった。 | 「導入は決めたものの、全従業員に使い方を教えるのが大変。説明資料を作って、オンボーディング会を3回開催。『なんで今更新しいツールを覚えないといけないんだ』という声も。でも、長期的には絶対に必要だと信じている」 | +| 6. 社内展開とルール整備 | 1ヶ月 | 5万円(説明会の準備、マニュアル作成) | マネーフォワード クラウド経費、Slack、Notion | 😟 3 | 従業員の半分が新しいツールに抵抗感を示す。「面倒」「今まで通りでいい」という声。ルールを明文化しないと使ってもらえない。Slackで何度もリマインド。 | 「導入から1ヶ月経っても、まだ紙の領収書を持ってくる人がいる。『スマホで撮影して申請してください』と言っても『よく分からない』と。結局、経理担当が代わりに入力している。これじゃ効率化にならない」 | +| 7. 運用定着と改善 | 2ヶ月 | 3万円(追加トレーニング、改善施策) | マネーフォワード クラウド経費、Slack、Google フォーム(フィードバック収集) | 😐 3 | 使い始めて2ヶ月で、ようやく8割の従業員が使うようになった。でも、まだ勘定科目の選択ミスや領収書の添付漏れが多い。月次決算は10日に短縮されたが、目標の5日にはまだ遠い。 | 「やっと軌道に乗ってきた感じ。経理担当の残業は月40時間から15時間に減った。でも、『なんでこの経費が却下されたのか分からない』という問い合わせが毎週来る。承認ルールをもっと明確にしないと」 | +| 8. 継続的な改善とROI確認 | 3ヶ月 | 5万円(データ分析、改善施策) | マネーフォワード クラウド経費、Excel、BIツール | 😊 4 | 導入から半年。経費精算の処理時間が月75時間から20時間に73%削減。請求書処理も月25時間から10時間に60%削減。月次決算は7日に短縮。経理担当の残業はほぼゼロ。年間ROIは約200%。 | 「数字で見ると、明らかに効率化された。経理担当が『やっと経営分析に時間を使える』と喜んでいる。でも、正直に言うとツール費用が年間50万円かかっているので、従業員が100名になったら価格がさらに上がる。もっとコスパの良い選択肢があったかもしれない」 | + +**合計費用**: 年間63万円(ツール費用50万円 + 導入・運用費用13万円) +**合計所要時間**: 約6ヶ月(調査・導入・定着まで) +**ペインポイント数**: 5箇所(感情スコア3以下) + +--- + +## Define: 常識を疑う問いの抽出 + +Phase 1で特定した各行動ステップに対して、「なぜ〇〇せずに□□ができないのか?」「なぜ○○と○○は同時にできないのか?」の2種類の問いを立てる。 + +| 行動ステップ | 問いの種類 | 問い | 現在の制約 | +|------------|-----------|------|-----------| +| 1. 経営会議で課題を突きつけられる | 省略型 | なぜ経営会議で指摘されてから初めて課題に気づくのか? 日常的にボトルネックを検知できないのか? | 経費精算・請求書処理の工数や遅延が可視化されていない。リアルタイムでの業務状況モニタリング機能がない | +| 1. 経営会議で課題を突きつけられる | 統合型 | なぜ課題の認識と解決策の探索は同時にできないのか? | 課題が顕在化してから対策を考え始めるため、対応が後手に回る。予防的な改善提案がない | +| 2. 現状の工数とコストを可視化する | 省略型 | なぜExcelで手作業集計せずに、自動で工数を可視化できないのか? | 各作業の時間を自動トラッキングする仕組みがない。経費精算システムと工数管理が分離している | +| 2. 現状の工数とコストを可視化する | 統合型 | なぜ工数の可視化とツール選定は同時にできないのか? | 現状分析に2週間かかり、その後でツール探しを始めるため、意思決定が遅れる | +| 3. バックオフィスツールの情報収集 | 省略型 | なぜ3週間もかけて情報収集せずに、自社に最適なツールを即座に推薦してもらえないのか? | 自社の業務フロー、規模、予算、技術スタックに基づいたパーソナライズされた推薦システムがない | +| 3. バックオフィスツールの情報収集 | 統合型 | なぜツールの情報収集とトライアルは同時にできないのか? | ツールを選定してからトライアルを申し込むため、検証に時間がかかる。並行トライアルの仕組みがない | +| 4. 3社のツールをトライアル | 省略型 | なぜ4週間もかけてトライアルせずに、1週間で比較評価できないのか? | トライアルごとに初期設定が必要。社内の協力者を募るのに時間がかかる。評価基準が曖昧 | +| 4. 3社のツールをトライアル | 統合型 | なぜトライアルと社内教育は同時にできないのか? | トライアルを終えてから社内展開を考えるため、導入までの期間が長くなる | +| 5. マネーフォワード クラウド経費を導入 | 省略型 | なぜ2週間かけて初期設定せずに、1日で使い始められないのか? | 承認フロー、勘定科目マッピング、ユーザー登録などの設定が複雑。テンプレートや自動設定がない | +| 5. マネーフォワード クラウド経費を導入 | 統合型 | なぜツール導入と既存業務の並行運用は同時にできないのか? | 新ツールへの完全移行が前提。段階的移行や並行運用の設計がない | +| 6. 社内展開とルール整備 | 省略型 | なぜ1ヶ月かけて社内展開せずに、全従業員が初日から直感的に使えないのか? | 説明会、マニュアル、繰り返しのリマインドが必要。UI/UXが複雑で学習コストが高い | +| 6. 社内展開とルール整備 | 統合型 | なぜルール整備とツール導入は同時にできないのか? | ツールを触ってから問題点が分かり、ルールを後付けで作る。事前にルールを組み込んだ設定ができない | +| 7. 運用定着と改善 | 省略型 | なぜ2ヶ月かけて定着させずに、初日から8割の従業員が活用できないのか? | 従業員の抵抗感、操作ミス、問い合わせ対応に時間がかかる。行動変容を促す仕組みがない | +| 7. 運用定着と改善 | 統合型 | なぜ運用定着と効果測定は同時にできないのか? | 定着してから効果を測り始めるため、改善サイクルが遅い。リアルタイムKPI測定がない | +| 8. 継続的な改善とROI確認 | 省略型 | なぜ3ヶ月かけてROI確認せずに、毎週自動でROIレポートを受け取れないのか? | データ分析とレポート作成が手作業。ROI計算ロジックが標準化されていない | +| 8. 継続的な改善とROI確認 | 統合型 | なぜROI確認と次の改善施策の立案は同時にできないのか? | ROIを確認してから改善案を考え始めるため、改善サイクルが遅い。AIによる改善提案がない | + +**問いの総数**: 16個(各ステップ2問 × 8ステップ) + +--- + +### Top 3 重要課題 + +全16個の問いを「リソース削減効果(1-5点)」と「頻度(日次=5点/週次=3点/月次=1点)」で評価し、合計スコアの高い順にランキング。 + +| 順位 | 問い | リソース削減効果 | 頻度 | 合計スコア | 選定理由 | +|------|------|----------------|------|-----------|---------| +| 1位 | なぜExcelで手作業集計せずに、自動で工数を可視化できないのか? | 5点(週10時間削減 = 年間520時間、約200万円相当) | 5点(毎日) | **10点** | 経理担当が毎日行う工数集計を自動化することで、最大のリソース削減効果が見込める。現状、経費精算1件15分×月300件=75時間、請求書処理10分×月150件=25時間を、自動トラッキングにより90%削減可能。年間約520時間(=月40時間×13ヶ月相当)の削減は、経理担当1名の半分以上の工数に相当し、空いた時間を経営分析や予算管理に充てられる | +| 2位 | なぜ3週間もかけて情報収集せずに、自社に最適なツールを即座に推薦してもらえないのか? | 5点(3週間 = 約120時間削減 + 意思決定の早期化により機会損失を回避) | 3点(ツール選定時 = 年1-2回だが、影響度大) | **8点** | ツール選定に3週間(約120時間)かかる現状を、AIパーソナライズ推薦により1日(8時間)に短縮できる。削減時間は約112時間。さらに、早期に最適なツールを導入できることで、6ヶ月の導入期間を3ヶ月に短縮でき、3ヶ月分の非効率な業務(月100時間×3ヶ月=300時間)を回避できる。合計約400時間の削減効果 | +| 3位 | なぜ2週間かけて初期設定せずに、1日で使い始められないのか? | 4点(2週間 = 約80時間削減 + 導入スピード向上) | 3点(ツール導入時 = 年1-2回だが、全社展開に影響) | **7点** | 初期設定に2週間(約80時間)かかる現状を、自動設定とテンプレートにより1日(8時間)に短縮できる。削減時間は約72時間。さらに、導入期間が短縮されることで、社内展開がスムーズになり、全従業員の学習コストも削減される(50名×2時間=100時間の削減)。合計約170時間の削減効果 | + +**選定されなかった主な問いと理由**: +- 「なぜ課題の認識と解決策の探索は同時にできないのか?」(スコア6点): リソース削減効果は大きいが、頻度が低い(月次)ため3位に届かず +- 「なぜ1ヶ月かけて社内展開せずに、全従業員が初日から直感的に使えないのか?」(スコア7点): 3位と同スコアだが、初期設定の効率化の方が根本的な課題解決につながるため、優先度を下げた +- 「なぜ4週間もかけてトライアルせずに、1週間で比較評価できないのか?」(スコア6点): トライアル期間の短縮は有効だが、Top3の問いと比較して削減効果が限定的 + +**Top 3の合計削減効果**: 年間約1,090時間(≒ 月90時間)、金額換算で約400万円相当 + +--- + +## Invent: 解決策の考案 + +Phase 3で選定したTop 3の問いに対して、solutions.mdのソリューションを組み合わせた解決策を考案。最低3つのブレイクスルーアイデアを含む。 + +### 発明1: リアルタイム業務トラッキング・ダッシュボード(Top 1問いへの解決策) + +**対象となる問い**: なぜExcelで手作業集計せずに、自動で工数を可視化できないのか? + +**組み合わせるソリューション**: +- ソリューション1: AI-OCR自動化アプローチ +- ソリューション4: リアルタイム・ダッシュボード可視化アプローチ + +**新しい価値提案**: +経費精算・請求書処理の一件一件に対して、AI-OCRが処理時間を自動トラッキングし、リアルタイムダッシュボードで「今この瞬間、どの業務にどれだけの時間がかかっているか」を可視化する。従来は月末にExcelで集計していた工数が、リアルタイムで把握できるようになり、ボトルネックを即座に検知して改善できる。 + +具体的には: +- OCR処理の開始〜完了までの時間を自動記録 +- 承認待ち時間、差し戻しによる再処理時間も可視化 +- 「経費精算1件あたりの平均処理時間」「今月の累計工数」「前月比」をリアルタイム表示 +- 「今週、経費精算に40時間使っています。先月より10時間増えています」といったAIインサイトを自動生成 +- 経理担当者だけでなく、CFOも経営ダッシュボードで業務効率をモニタリング可能 + +**ブレイクスルー要素(該当フレームワーク: 時間軸の操作)**: +従来は「月末に振り返って工数を集計する」という**後追い型**の管理だったが、これを「リアルタイムで業務を可視化する」**先回り型**に転換。問題が顕在化する前にボトルネックを発見し、予防的な改善ができる。 + +さらに、**AI/自動化の創造的活用**として、単なる時間記録ではなく「なぜこの経費精算に15分もかかったのか?」を分析し、「領収書が不鮮明だったため」「勘定科目の選択ミスで差し戻しされたため」といった原因を自動特定して改善提案を行う。人間には気づきにくいパターンをAIが発見し、継続的な業務改善サイクルを実現する。 + +**実装難易度**: 5 + 5 = 10/20(難易度スコアの合計) + +**実装期間の見積もり**: 約5ヶ月 +- AI-OCR基盤構築: 3.5ヶ月(ソリューション1) +- ダッシュボード可視化: 5ヶ月(ソリューション4) +- ただし、両者を並行開発し、OCR処理ログをダッシュボードに流し込む統合部分に1ヶ月追加 +- 合計: 5ヶ月(並行開発により短縮) + +**実現方法**: +- フロントエンド: React + Recharts(データビジュアライゼーション) +- バックエンド: AWS Lambda + API Gateway + DynamoDB(リアルタイムデータ処理) +- OCR: Amazon Textract + 独自の処理時間トラッキングロジック +- AIインサイト: Claude API(Anthropic)または OpenAI APIを活用した異常検知と解説文生成 +- 認証: Amazon Cognito + +**定量的な効果**: +- 工数可視化の自動化により、月末の集計作業(2日間 = 16時間)がゼロに +- ボトルネック早期発見により、経費精算処理時間が月75時間から20時間に73%削減(年間660時間削減) +- 請求書処理時間も月25時間から10時間に60%削減(年間180時間削減) +- 合計: 年間約856時間(≒ 月71時間)削減、金額換算で約320万円相当 + +--- + +### 発明2: AIパーソナライズド・ツール推薦エンジン(Top 2問いへの解決策) + +**対象となる問い**: なぜ3週間もかけて情報収集せずに、自社に最適なツールを即座に推薦してもらえないのか? + +**組み合わせるソリューション**: +- ソリューション4: リアルタイム・ダッシュボード可視化アプローチ(データ分析基盤) +- 新規要素: AIエージェントによるパーソナライズド推薦システム + +**新しい価値提案**: +「従業員規模」「業種」「現在の会計ソフト」「予算」「技術スタック」「課題の優先順位」などの情報を入力すると、AIが自社に最適なバックオフィスツールを即座に推薦する。単なる機能比較ではなく、「なぜこのツールがあなたの会社に最適なのか」を具体的な数値(削減時間、ROI、導入期間)とともに説明する。 + +具体的には: +- 5分間の質問に答えるだけで、AIが最適なツールを3つ推薦 +- 推薦理由を「あなたの会社は従業員30名で、マネーフォワード クラウド会計を使っているため、マネーフォワード クラウド経費が最もシームレスに連携できます。導入期間は2週間、年間ROIは約200%見込めます」といった具体的な説明で提示 +- 競合ツールとの比較表を自動生成(価格、機能、導入期間、サポート体制) +- ユーザーレビューから、同じような規模・業種の企業の実際の声を抽出して表示 +- トライアル申し込みリンクを自動生成し、即座に試せる + +**ブレイクスルー要素(該当フレームワーク: AI/自動化の創造的活用 + 時間軸の操作)**: +従来は「ツールを調べて→比較して→トライアルして→決定する」という**順次実行**だったが、AIが「調査・比較・推薦」を**同時実行**することで、3週間を5分に圧縮。 + +さらに、**異業種転用**として、Netflix の推薦アルゴリズムをB2B SaaSツール選定に適用。「このツールを選んだ企業は、こんな組み合わせで使っています」といった協調フィルタリングにより、最適な組み合わせも提案する。 + +**実装難易度**: 5 + 3(新規要素)= 8/20 + +**実装期間の見積もり**: 約4ヶ月 +- データ分析基盤: ソリューション4の一部を流用(1ヶ月) +- AIエージェント開発: Claude API(Anthropic)を活用した質問生成・推薦ロジック構築(2ヶ月) +- ツール情報データベース構築: 主要バックオフィスツール50社の情報収集とデータ構造化(1ヶ月) +- 合計: 4ヶ月 + +**実現方法**: +- フロントエンド: React + 対話型UI(チャットボット形式) +- バックエンド: AWS Lambda + API Gateway + DynamoDB +- AI推薦エンジン: Claude API(Anthropic)を活用したパーソナライズド推薦 +- ツール情報データベース: DynamoDB + 定期的なスクレイピングによる情報更新 +- 認証: Amazon Cognito + +**定量的な効果**: +- ツール選定期間が3週間(約120時間)から5分(0.08時間)に99.9%削減 +- 最適なツールを早期に導入できることで、導入期間が6ヶ月から3ヶ月に短縮 +- 非効率な業務の継続期間が3ヶ月短縮されることで、約300時間(月100時間×3ヶ月)の機会損失を回避 +- 合計: 約420時間削減、金額換算で約160万円相当 + +--- + +### 発明3: ゼロコンフィグ・インスタント導入システム(Top 3問いへの解決策) + +**対象となる問い**: なぜ2週間かけて初期設定せずに、1日で使い始められないのか? + +**組み合わせるソリューション**: +- ソリューション1: AI-OCR自動化アプローチ +- ソリューション3: 会計ソフト連携・自動仕訳アプローチ +- ソリューション5: モバイルファースト・承認フローアプローチ + +**新しい価値提案**: +既存の会計ソフトに接続するだけで、AIが過去の取引データを分析し、承認フロー・勘定科目マッピング・ユーザー権限を自動設定する「ゼロコンフィグ」を実現。従来は2週間かかっていた初期設定が、1時間で完了する。 + +具体的には: +- 会計ソフトのOAuth連携を行うと、AIが過去6ヶ月の取引データを分析 +- 「交通費の承認者は○○さん、会議費の承認者は△△さん」といった暗黙のルールをAIが発見し、承認フロー を自動生成 +- 過去の仕訳データから「この経費は○○の勘定科目に分類されている」というパターンを学習し、勘定科目マッピングを自動設定 +- 従業員リストを会計ソフトまたはSlackから自動インポートし、ユーザー登録とメール招待を一括実行 +- 設定完了後、従業員向けのオンボーディング動画と説明資料を自動生成(「あなたの会社の設定内容」をパーソナライズ) + +**ブレイクスルー要素(該当フレームワーク: 時間軸の操作 + 制約の武器化)**: +従来は「ツールを導入してから設定を考える」という順序だったが、これを**逆転**させ、「既存の業務フローをAIが学習して、ツールを既存フローに合わせる」ことで、設定作業をゼロにする。 + +さらに、**制約の武器化**として、「設定項目が多い」という従来のツールの弱点を、「AIが自動設定するため、ユーザーは何も考えなくていい」という差別化の源泉に転換。「設定の柔軟性」ではなく「設定の不要性」で勝負する。 + +**実装難易度**: 5 + 3 + 3 = 11/20 + +**実装期間の見積もり**: 約6ヶ月(ギリギリ開発期間内) +- AI-OCR基盤: 3.5ヶ月(ソリューション1) +- 会計ソフト連携: 2.5ヶ月(ソリューション3) +- モバイルファースト・承認フロー: 4.5ヶ月(ソリューション5) +- AI自動設定ロジック: 2ヶ月(既存の取引データ分析、パターン抽出、設定自動生成) +- ただし、3つのソリューションを並行開発し、統合テストに1ヶ月追加 +- 合計: 6ヶ月(並行開発により短縮、ギリギリ期間内に収まる) + +**実現方法**: +- フロントエンド: React(PWA) +- バックエンド: AWS Lambda + API Gateway + DynamoDB +- AI自動設定エンジン: Claude API(Anthropic)を活用した取引データ分析とパターン抽出 +- OCR: Amazon Textract +- 会計ソフト連携: freee、マネーフォワード、弥生会計のAPI +- Slack連携: Slack API +- 認証: Amazon Cognito + +**定量的な効果**: +- 初期設定期間が2週間(約80時間)から1時間に98.8%削減 +- 社内展開がスムーズになり、全従業員の学習コストが削減(50名×2時間=100時間) +- 導入期間が短縮されることで、早期にROIを実現(3ヶ月早く効果が出ることで、経費精算・請求書処理の効率化効果が3ヶ月分前倒し = 約210時間の追加削減) +- 合計: 約390時間削減、金額換算で約150万円相当 + +--- + +### 発明4: 🎲 ガチャ式経費精算ゲーミフィケーション(ブレイクスルーアイデア) + +**対象となる問い**: Phase 1の課題「なぜ従業員は経費申請を『面倒』と感じるのか?」 + +**組み合わせるソリューション**: +- ソリューション1: AI-OCR自動化アプローチ +- ソリューション5: モバイルファースト・承認フローアプローチ +- 新規要素: ゲーミフィケーション + +**新しい価値提案**: +経費精算を「面倒な作業」から「楽しいゲーム」に変える。領収書を撮影して申請すると、ガチャが回り、ランダムで「即時承認チケット」「ポイント」「バッジ」などの報酬が当たる。月間で最も多く申請した従業員は「経費マスター」として表彰され、社内Slackで発表される。 + +具体的には: +- 経費申請を行うたびに、ガチャが1回回せる +- ガチャで当たる報酬: 「即時承認チケット」(通常の承認フローをスキップ)、「早期振込チケット」(通常月末振込が翌週に早まる)、「社内ポイント」(社内の自販機やカフェで使える)、「レアバッジ」(プロフィールに表示される称号) +- 月間ランキング: 申請件数、承認スピード、勘定科目の正確性などを競う +- チーム対抗戦: 部門ごとに「経費精算完了率」を競い、優勝部門には「部門ランチ補助」などの特典 + +**ブレイクスルー要素(該当フレームワーク: 異業種転用 + 感情の逆流)**: +ゲーム業界の**ガチャ要素**をB2B SaaSに適用し、「面倒な作業」というネガティブな感情を「楽しい体験」に転換。経費精算が「やらなければいけないタスク」から「やりたくなるゲーム」に変わる。 + +さらに、**心理的報酬**により、行動変容を促進。従業員が「早く申請したい」と思うようになり、経理担当者の「リマインド業務」が不要になる。 + +**実装難易度**: 5 + 3 + 2(ゲーミフィケーション機能)= 10/20 + +**実装期間の見積もり**: 約5ヶ月 +- AI-OCR基盤: 3.5ヶ月(ソリューション1) +- モバイルファースト・承認フロー: 4.5ヶ月(ソリューション5) +- ゲーミフィケーション機能: 1.5ヶ月(ガチャシステム、ランキング、バッジ管理、Slack通知) +- ただし、並行開発により、合計5ヶ月に短縮 + +**実現方法**: +- フロントエンド: React(PWA)+ ガチャアニメーション(Lottie) +- バックエンド: AWS Lambda + API Gateway + DynamoDB +- ガチャシステム: ランダム報酬生成ロジック(確率調整可能) +- ランキング: リアルタイム集計とリーダーボード表示 +- Slack連携: ランキング発表、バッジ取得通知 +- 認証: Amazon Cognito + +**定量的な効果**: +- 従業員の経費申請率が60%から95%に向上(申請漏れの削減) +- 申請〜承認までの時間が平均2日から半日に短縮(従業員が早く申請するようになるため) +- 経理担当者のリマインド業務がゼロに(月5時間削減 = 年間60時間削減) +- 従業員満足度の向上により、離職率が低下(定量化は困難だが、副次的効果として大きい) +- 合計: 約60時間削減、金額換算で約20万円相当(ただし、従業員満足度の向上は金額換算困難) + +**注意点**: ガチャ要素は「ギャンブル性」を連想させるため、企業文化によっては受け入れられない可能性がある。トライアルで反応を見て、導入可否を判断する必要がある。 + +--- + +### 発明5: 🔮 AIが先読みする「未来の経費レポート」(ブレイクスルーアイデア) + +**対象となる問い**: Phase 1の課題「なぜ経営会議で指摘されてから初めて課題に気づくのか?」 + +**組み合わせるソリューション**: +- ソリューション4: リアルタイム・ダッシュボード可視化アプローチ +- 新規要素: 予測分析とAI警告システム + +**新しい価値提案**: +過去の経費データと現在のトレンドから、AIが「来月の経費は今月より30万円増えそうです」「このペースだと、年度末に予算を50万円オーバーします」といった**未来予測**を行い、問題が顕在化する前に警告する。経営会議で指摘される前に、CFOが先手を打って対策できる。 + +具体的には: +- 毎月1日に、「今月の経費予測レポート」を自動生成してCFOに送信 +- 「今月は出張が多いため、交通費が通常より20万円増える見込みです」「先月と同じペースだと、会議費が予算を10万円オーバーします」といった予測と警告 +- 予算オーバーのリスクがある場合、「会議費を削減するには、カフェでの打ち合わせをオンライン会議に切り替えることで月5万円削減可能です」といった具体的な改善提案 +- シナリオ分析: 「もし新規採用を5名増やしたら、経費はどのくらい増えるか?」といったシミュレーションが可能 +- AIが「人間らしくない提案」をあえてすることで、思考の幅を広げる(例: 「交通費を削減するために、全員に自転車を配布してはどうか?」といった大胆な提案) + +**ブレイクスルー要素(該当フレームワーク: 時間軸の操作 + AI/自動化の創造的活用)**: +従来は「経営会議で指摘されてから対応する」という**後追い型**だったが、AIが**未来を予測**することで**先回り型**の経営判断が可能になる。 + +さらに、**AI/自動化の創造的活用**として、AIが「人間には思いつかない提案」をあえてすることで、思考の幅を広げる。単なる効率化ではなく、「新しい視点」を提供する。 + +**実装難易度**: 5 + 3(予測分析機能)= 8/20 + +**実装期間の見積もり**: 約5ヶ月 +- ダッシュボード基盤: 5ヶ月(ソリューション4) +- 予測分析機能: 2ヶ月(時系列予測モデル、シナリオ分析、改善提案生成) +- ただし、並行開発により、合計5ヶ月に短縮 + +**実現方法**: +- フロントエンド: React + Recharts +- バックエンド: AWS Lambda + API Gateway + DynamoDB +- 予測分析: AWS Forecast(時系列予測)または独自の機械学習モデル +- AIインサイト: Claude API(Anthropic)を活用した改善提案生成 +- レポート自動送信: AWS SES(メール)+ Slack API +- 認証: Amazon Cognito + +**定量的な効果**: +- 予算オーバーの早期検知により、年間約50万円のコスト削減 +- 経営会議での準備時間が1日(8時間)から30分に削減(月1回 = 年間約85時間削減) +- シナリオ分析により、新規採用や事業拡大の意思決定がスピーディーに(定量化困難だが、戦略的価値大) +- 合計: 約85時間削減 + 約50万円のコスト削減 + +--- + +### 発明の選定と優先順位 + +**実装可能性と効果の総合評価**: + +| 発明 | 実装難易度 | 実装期間 | 削減効果(時間) | 削減効果(金額) | 優先度 | +|------|-----------|---------|---------------|---------------|-------| +| 1. リアルタイム業務トラッキング・ダッシュボード | 10/20 | 5ヶ月 | 年間856時間 | 約320万円 | ⭐️⭐️⭐️ 最優先 | +| 2. AIパーソナライズド・ツール推薦エンジン | 8/20 | 4ヶ月 | 約420時間 | 約160万円 | ⭐️⭐️ 高優先度 | +| 3. ゼロコンフィグ・インスタント導入システム | 11/20 | 6ヶ月 | 約390時間 | 約150万円 | ⭐️⭐️ 高優先度 | +| 4. ガチャ式経費精算ゲーミフィケーション | 10/20 | 5ヶ月 | 約60時間 | 約20万円 | ⭐️ 中優先度 | +| 5. AIが先読みする「未来の経費レポート」 | 8/20 | 5ヶ月 | 約85時間 | 約50万円コスト削減 | ⭐️⭐️ 高優先度 | + +**Phase 6のPR/FAQ作成対象**: 発明1「リアルタイム業務トラッキング・ダッシュボード」を選定 + +**選定理由**: +- Top 1の問いに対する解決策であり、最大のリソース削減効果(年間856時間、約320万円)が見込める +- customer.mdで定義された顧客の最大の課題「月次決算の遅延」「経理担当者の過剰な残業」を直接解決する +- 実装期間が5ヶ月で、6ヶ月の開発期間内に収まる +- 他の発明(発明2、5)と組み合わせることで、さらに価値を高められる拡張性がある + +# プレスリリース: BackOffice Insight - バックオフィス業務の「見えない時間」を可視化する、リアルタイム業務トラッキング・ダッシュボード + +**スタートアップの月次決算を10日から5日に短縮し、経理担当者の残業をゼロにする** + +--- + +## プレスリリース本文 + +**東京、2025年XX月XX日** - 本日、BackOffice Insightは、従業員20〜50名の成長期スタートアップ向けに、バックオフィス業務のリアルタイム可視化ダッシュボードをローンチします。「なぜExcelで手作業集計せずに、自動で工数を可視化できないのか?」という問いに答え、経費精算・請求書処理の一件一件にかかる時間を自動トラッキングし、ボトルネックを即座に発見・改善できるようにします。 + +従来、バックオフィス業務の工数は「月末にExcelで振り返って集計する」という後追い型の管理が常識でした。しかし、BackOffice Insightは、AI-OCRと機械学習を活用し、処理の開始〜完了までの時間をリアルタイムで記録・可視化することで、問題が顕在化する前にボトルネックを発見する「先回り型」の管理を実現します。AIが「なぜこの経費精算に15分もかかったのか?」を自動分析し、「領収書が不鮮明」「勘定科目の選択ミス」といった原因を特定して改善提案を行うため、人間には気づきにくいパターンを発見できます。 + +BackOffice Insightの導入により、経費精算処理時間が月75時間から20時間に73%削減(年間660時間削減)、請求書処理時間が月25時間から10時間に60%削減(年間180時間削減)され、合計年間約856時間(≒ 月71時間)、金額換算で約320万円相当のリソース削減を実現します。月次決算の確定日数が15日から7日に短縮され、経営判断のスピードが飛躍的に向上します。 + +BackOffice Insightは、月額2.9万円(従業員50名まで)からご利用いただけます。今すぐ https://backoffice-insight.example.com から無料トライアルを開始できます。 + +--- + +### 顧客の声 + +**「経営会議で『なぜこんなに遅いのか』と指摘されていた私たちが、今では5営業日で月次決算を完了しています」** + +従業員35名のSaaS企業のCFO、田中太郎氏は次のように語ります。「先週の経営会議で、CEOから『月次決算の確定が毎月15日までかかっている。競合は5営業日で出している。なぜこんなに遅いのか』と指摘されました。その夜、経理担当から『今月も経費精算が300件たまっています。領収書の写真が不鮮明で確認に時間がかかり、月末は毎日3時間残業です』とSlackが届きました。何か手を打たないと、と思っていた矢先にBackOffice Insightに出会いました。」 + +「導入後3ヶ月で、経費精算処理時間が月75時間から20時間に73%削減されました。経理担当の残業がほぼゼロになり、『やっと経営分析に時間を使える』と喜んでいます。リアルタイムダッシュボードで『今、どの業務にどれだけ時間がかかっているか』が見えるようになったことで、ボトルネックを即座に発見して改善できるようになりました。月次決算は7日に短縮され、CEOからも『経営判断が早くなった』と評価されています。年間約320万円相当のコスト削減は、シリーズBの資金調達に向けた内部統制の整備にも貢献しています。」 + +**「工数集計に丸2日かけていた私たちが、今ではリアルタイムでダッシュボードを見るだけになりました」** + +従業員28名のデザインエージェンシーの経理責任者、佐藤花子氏は次のように語ります。「以前は、月末になるとExcelで経費精算と請求書処理の工数を手作業で集計していました。1件ずつ処理時間を記録し、集計するだけで丸2日(16時間)かかっていました。しかも、集計が終わった頃には月末は過ぎており、ボトルネックに気づいても後の祭りでした。」 + +「BackOffice Insightを導入してからは、AI-OCRが処理時間を自動トラッキングしてくれるため、工数集計作業がゼロになりました。ダッシュボードを見れば、『経費精算1件あたりの平均処理時間』『今月の累計工数』『前月比』がリアルタイムで分かります。『今週、経費精算に40時間使っています。先月より10時間増えています』といったAIインサイトが自動生成されるため、問題が大きくなる前に対策を打てます。請求書の支払漏れもゼロになり、取引先からのクレームが完全に消失しました。空いた時間をプロジェクト別のコスト分析に充てられるようになり、CFOから『経営に貢献している』と評価されています。」 + +--- + +### 使い方はシンプル + +BackOffice Insightの導入は、わずか3ステップで完了します。 + +**1. 会計ソフトに接続(5分)** +既にご利用中のマネーフォワード クラウド会計、freee、または弥生会計オンラインにOAuth連携で接続するだけ。過去の取引データを分析し、勘定科目マッピングを自動設定します。 + +**2. 従業員を招待(5分)** +Slackまたはメールで従業員を一括招待。スマホアプリまたはPWAで、いつでもどこでも経費精算・請求書処理が可能になります。 + +**3. 領収書を撮影(3秒)** +スマホで領収書を撮影すると、AI-OCRが3秒以内に金額・日付・店舗名・品目を自動抽出。過去の申請履歴から最適な勘定科目を自動提案します。処理時間は自動トラッキングされ、リアルタイムダッシュボードで可視化されます。 + +従業員20〜50名の成長期スタートアップのCFO・経理責任者であれば、「月次決算の早期化」「経理担当者の残業削減」「内部統制の整備」という3つの課題を同時に解決できます。従来は経費精算処理に月75時間、請求書処理に月25時間かかっていたのが、BackOffice Insightの導入により、それぞれ20時間、10時間に削減されます。年間約856時間(≒ 月71時間)、金額換算で約320万円相当のリソース削減を実現できます。 + +--- + +## 顧客向けFAQ(Customer FAQs) + +### 一般(General) + +**1. BackOffice Insightとは何ですか?** +BackOffice Insightは、従業員20〜50名の成長期スタートアップ向けに、経費精算・請求書処理のリアルタイム可視化ダッシュボードを提供するSaaSプロダクトです。AI-OCRと機械学習を活用し、バックオフィス業務の一件一件にかかる時間を自動トラッキングし、ボトルネックを即座に発見・改善できるようにします。 + +**2. BackOffice Insightで何ができますか?** +BackOffice Insightを使うと、以下のことが可能になります: +- 経費精算・請求書処理の時間を自動トラッキングし、リアルタイムダッシュボードで可視化 +- 「経費精算1件あたりの平均処理時間」「今月の累計工数」「前月比」をリアルタイム表示 +- AIが「なぜこの経費精算に15分もかかったのか?」を分析し、「領収書が不鮮明」「勘定科目の選択ミス」といった原因を特定 +- 経費精算処理時間を月75時間から20時間に73%削減、請求書処理時間を月25時間から10時間に60%削減 +- 月次決算の確定日数を15日から7日に短縮 +- ボトルネックを早期発見し、予防的な改善ができる + +典型的なユースケース: +- シリーズA〜B調達済みの成長期スタートアップのCFOが、月次決算の早期化と経営判断のスピード向上を実現 +- 経理担当者が、月40時間の残業をゼロにし、経営分析や予算管理といった戦略的業務に時間を充てられるようになる +- IPO準備中の企業が、VCから求められる内部統制の整備を進め、次回ラウンドの資金調達に向けた準備を加速 + +**3. 他のバックオフィスツールとの違いは何ですか?** +BackOffice Insightは、「リアルタイム業務トラッキング」という独自の価値提案を持っています。マネーフォワード クラウド経費や楽楽精算は、経費精算・請求書処理の「入力」と「承認」を効率化しますが、「どの業務にどれだけ時間がかかっているか」を可視化する機能はありません。BackOffice Insightは、AI-OCRで処理時間を自動トラッキングし、ボトルネックを即座に発見できるため、継続的な業務改善サイクルを実現できます。 + +また、BackOffice Insightは以下の点でも差別化されています: +- **AIインサイト**: 「今週、経費精算に40時間使っています。先月より10時間増えています」といった異常検知と解説文を自動生成 +- **ゼロコンフィグ導入**: 会計ソフトに接続するだけで、過去の取引データを分析し、勘定科目マッピングを自動設定。初期設定が1時間で完了 +- **シンプルな価格設定**: 月額2.9万円(従業員50名まで)の定額制。従業員数が増えても価格が跳ね上がらない + +--- + +### 価格(Pricing) + +**4. BackOffice Insightの価格はいくらですか?** +BackOffice Insightは、以下の価格体系で提供されます: +- **スタータープラン**: 月額2.9万円(従業員50名まで、年間契約の場合は月額2.5万円) +- **グロースプラン**: 月額5.9万円(従業員100名まで、年間契約の場合は月額5.0万円) +- **初期費用**: 0円 +- **無料トライアル**: 14日間(クレジットカード登録不要) + +すべてのプランに以下が含まれます: +- AI-OCR自動化(経費精算・請求書処理) +- リアルタイム業務トラッキング・ダッシュボード +- 会計ソフト連携(freee、マネーフォワード、弥生会計) +- モバイルアプリ(PWA) +- AIインサイト自動生成 +- メール・チャットサポート + +**5. 他のツールと比べて、BackOffice Insightのコストメリットは何ですか?** +従来のバックオフィスツール(例: マネーフォワード クラウド経費)は、月額3,980円〜ですが、従業員数が増えると従量課金で価格が上昇します。従業員50名の場合、月額約5万円〜6万円になることもあります。 + +一方、BackOffice Insightは従業員50名まで月額2.9万円の定額制です。さらに、以下の削減効果により、実質的なコストメリットは非常に大きくなります: +- 経費精算処理時間: 月75時間 → 20時間(55時間削減) +- 請求書処理時間: 月25時間 → 10時間(15時間削減) +- 月次決算準備: 2日(16時間)→ ゼロ(16時間削減) +- 合計: 月86時間削減、年間約1,032時間削減 + +時給3,000円で計算すると、年間約310万円のコスト削減です。BackOffice Insightの年間コスト(月額2.9万円×12ヶ月=34.8万円)を差し引いても、約275万円の純削減効果があります。投資回収期間は約1.3ヶ月です。 + +**6. 無料トライアル期間中に何ができますか?** +14日間の無料トライアル期間中、すべての機能を制限なくご利用いただけます: +- 最大50名の従業員を招待可能 +- 会計ソフト連携(freee、マネーフォワード、弥生会計) +- AI-OCR自動化(経費精算・請求書処理) +- リアルタイムダッシュボード +- AIインサイト自動生成 +- メール・チャットサポート + +トライアル期間中にクレジットカードの登録は不要です。トライアル終了後、自動的に課金されることはありません。 + +--- + +### はじめ方(Getting Started) + +**7. BackOffice Insightを使い始めるには何が必要ですか?** +BackOffice Insightを始めるために必要なものは、以下の3つだけです: +1. **会計ソフト**: freee、マネーフォワード クラウド会計、または弥生会計オンラインのアカウント +2. **メールアドレス**: 従業員を招待するためのメールアドレス +3. **スマホまたはPC**: 経費精算・請求書処理を行うデバイス + +特別なハードウェアやソフトウェアのインストールは不要です。Webブラウザまたはスマホアプリ(PWA)で、いつでもどこでも利用できます。 + +**8. 導入にはどのくらいの時間がかかりますか?** +BackOffice Insightの導入は、わずか10分で完了します: +1. 会計ソフトに接続(5分): OAuth連携で会計ソフトに接続するだけ。過去の取引データを分析し、勘定科目マッピングを自動設定します。 +2. 従業員を招待(5分): Slackまたはメールで従業員を一括招待。 + +従来のツール(例: マネーフォワード クラウド経費)では、初期設定に2週間(約80時間)かかることもありますが、BackOffice Insightは「ゼロコンフィグ」設計により、AIが自動設定するため、設定作業がほぼゼロです。 + +**9. 既存の会計ソフトから移行する必要がありますか?** +いいえ、既存の会計ソフトから移行する必要はありません。BackOffice Insightは、freee、マネーフォワード クラウド会計、弥生会計オンラインと連携するため、既存の会計ソフトをそのまま使い続けられます。経費精算・請求書処理のデータは、自動的に会計ソフトに仕訳として送信されます。 + +--- + +### BackOffice Insightの使用(Using BackOffice Insight) + +**10. AI-OCRはどのくらい正確ですか?** +BackOffice InsightのAI-OCRは、Amazon Textractを活用し、金額・日付・店舗名・品目の認識精度が平均98%以上です。画像補正機能により、斜めや暗い写真でも高精度で読み取りが可能です。 + +認識ミスがあった場合でも、経理担当者が手動で修正できます。修正データは機械学習モデルにフィードバックされ、使えば使うほど精度が向上します。 + +**11. オフラインでも使えますか?** +はい、BackOffice InsightのモバイルアプリはPWA(Progressive Web App)として提供されており、オフラインでも経費精算・請求書処理が可能です。オフライン時に撮影・入力したデータは、ローカルストレージに一時保存され、オンラインに戻ると自動的に同期されます。 + +これにより、飛行機や新幹線の移動中でも経費申請が可能になり、月末の申請集中が緩和されます。 + +**12. 複数の会計ソフトを同時に連携できますか?** +いいえ、現時点では1つの会計ソフトのみ連携可能です。将来的には、複数の会計ソフトに対応する予定です。 + +**13. 承認フローをカスタマイズできますか?** +はい、BackOffice Insightは柔軟な承認フロー設定が可能です: +- 金額に応じた承認ルート(例: 1万円未満は上長承認のみ、1万円以上は部長承認が必要) +- 部門に応じた承認ルート(例: 営業部は営業マネージャー承認、エンジニア部はCTO承認) +- 複数承認者の設定(例: 5万円以上はCFOの最終承認が必要) + +ただし、現時点では「ゼロコンフィグ」設計のため、AIが過去の取引データから暗黙のルールを発見し、承認フローを自動生成します。カスタマイズが必要な場合は、管理画面から手動で設定できます。 + +**14. Slack以外のチャットツールと連携できますか?** +現時点では、Slackのみ連携可能です。Microsoft Teamsやその他のチャットツールへの対応は、今後のロードマップに含まれています。 + +--- + +### 制限と制約(Limits and Restrictions) + +**15. BackOffice Insightには何か制限がありますか?** +BackOffice Insightには、以下の制限があります: +- **対応する会計ソフト**: freee、マネーフォワード クラウド会計、弥生会計オンラインのみ。勘定奉行などのオンプレミス会計ソフトには対応していません。 +- **対応言語**: 日本語のみ。英語や他の言語には対応していません。 +- **電子帳簿保存法対応**: 対応していますが、タイムスタンプ機能は外部サービス(クラウドタイムスタンプ)を利用します。 +- **スケーラビリティ**: 従業員100名までは快適に動作しますが、それを超える場合はグロースプラン以上への移行が必要です。 + +**16. 請求書の自動取り込みに対応していますか?** +はい、BackOffice Insightは請求書の自動取り込みに対応しています。専用メールアドレスに請求書PDFを転送、またはGoogle Drive / Dropboxの特定フォルダに保存すると、AI-OCRが請求書番号・請求元・金額・支払期限・振込先を自動抽出します。 + +ただし、現時点では日本語の請求書フォーマットのみ対応しています。英語の請求書や海外の請求書には対応していません。 + +**17. 従業員100名以上の企業でも使えますか?** +はい、グロースプラン(月額5.9万円、従業員100名まで)をご利用いただけます。それを超える規模の企業には、エンタープライズプランをご用意しています。詳細はお問い合わせください。 + +--- + +### パフォーマンス(Performance) + +**18. 経費精算1件あたりの処理時間はどのくらいですか?** +BackOffice Insight導入前は、経費精算1件あたり平均15分かかっていましたが、導入後は平均4分に短縮されます(73%削減)。内訳は以下の通りです: +- 領収書撮影〜AI-OCR認識: 3秒 +- 勘定科目の自動提案: 1秒 +- 従業員による確認・送信: 2分 +- 経理担当者による承認: 2分 + +従来は、領収書の手入力(5分)、勘定科目の選択(3分)、会計ソフトへの二重入力(5分)、差し戻し対応(2分)で合計15分かかっていましたが、AI-OCRと会計ソフト連携により、これらが大幅に短縮されます。 + +**19. 月次決算はどのくらい改善されますか?** +BackOffice Insight導入前は、月次決算の確定に平均15日かかっていましたが、導入後は7日に短縮されます(53%改善)。これにより、経営判断のスピードが飛躍的に向上します。 + +改善の内訳: +- 経費精算の締め処理: 3日 → 1日(経理担当者の確認作業が自動化されるため) +- 請求書の支払処理: 2日 → 0.5日(支払期限の自動リマインダーにより、支払漏れがゼロに) +- データ集計と確認: 2日 → ゼロ(リアルタイムダッシュボードで常に最新の状況が把握できるため) +- 会計ソフトへの仕訳入力: 3日 → ゼロ(自動連携により二重入力が撤廃) +- その他調整: 5日 → 5.5日(若干増えるが、全体としては大幅短縮) + +**20. 応答速度はどのくらいですか?** +BackOffice Insightは、AWS Lambdaベースのサーバーレスアーキテクチャを採用しているため、高速な応答を実現しています: +- 経費精算の申請: 平均200ms以内 +- AI-OCR処理: 平均3秒以内 +- ダッシュボードの読み込み: 平均500ms以内 +- 会計ソフトへの仕訳送信: 平均1秒以内 + +初回アクセス時やサービス未使用時の起動時(コールドスタート)は、若干遅延する場合がありますが、通常使用時は非常に高速です。 + +--- + +## 社内向けFAQ(Internal FAQs) + +### 1. いつ顧客にBackOffice Insightを勧める/勧めないべきですか? + +**BackOffice Insightを勧めるべき顧客**: +- **従業員20〜50名の成長期スタートアップのCFO・経理責任者**: シリーズA〜B調達済み、次ラウンド準備中またはIPO準備を見据えた段階 +- **月次決算の遅延に悩んでいる顧客**: 月次決算が毎月15日までかかり、経営判断が遅れている +- **経理担当者の残業が多い顧客**: 経費精算・請求書処理で毎月40時間以上の残業が発生している +- **内部統制の整備が必要な顧客**: VCから内部統制の整備を求められている +- **既にfreee、マネーフォワード、弥生会計を使っている顧客**: 会計ソフト連携がスムーズ +- **バックオフィス業務の効率化とコスト削減を実現したい顧客**: 年間約320万円相当のコスト削減を見込める + +**BackOffice Insightを勧めるべきでない顧客**: +- **従業員10名未満の超小規模企業**: 経費精算・請求書処理の件数が少なく、ROIが見込めない +- **従業員100名以上の大企業**: 楽楽精算などの大規模カスタマイズ対応ツールの方が適している +- **オンプレミス会計ソフト(勘定奉行等)を使っている顧客**: BackOffice Insightはクラウド会計ソフトのみ対応 +- **複雑な承認フローや組織構造を持つ顧客**: 現時点でのカスタマイズ性は限定的(ゼロコンフィグ設計のため) +- **英語や他の言語での利用を希望する顧客**: 現時点では日本語のみ対応 +- **「設定の柔軟性」を重視する顧客**: BackOffice Insightは「設定の不要性」で差別化しているため、細かい設定を求める顧客には不向き + +--- + +### 2. BackOffice Insightの指針(Tenets)は何ですか? + +私たちの指針は、より良いものを知らない限り、以下の通りです: + +* **リアルタイム可視化で、問題が顕在化する前に改善する** – 従来の「月末に振り返って工数を集計する」という後追い型の管理から、「リアルタイムで業務を可視化する」先回り型の管理に転換します。ボトルネックを即座に発見し、予防的な改善ができる環境を提供します。 + +* **設定の不要性で、導入初日から価値を提供する** – 「設定項目が多い」という従来のツールの弱点を、「AIが自動設定するため、ユーザーは何も考えなくていい」という差別化の源泉に転換します。ゼロコンフィグ設計により、会計ソフトに接続するだけで1時間で使い始められます。 + +* **AIが人間には気づきにくいパターンを発見する** – 単なる時間記録ではなく、「なぜこの経費精算に15分もかかったのか?」を分析し、原因を自動特定して改善提案を行います。AIの力で、継続的な業務改善サイクルを実現します。 + +* **CFOと経理担当者の両方に価値を提供する** – CFOには経営判断のための早期データ提供、経理担当者には単純作業からの解放を提供します。バックオフィス業務を「コストセンター」から「戦略的パートナー」に変革します。 + +* **実装可能性とスケーラビリティを両立する** – AWS既存技術を活用し、3名体制・6ヶ月で実装可能な設計を維持します。サーバーレスアーキテクチャにより、従業員10名から100名まで、同じ品質のサービスを提供します。 + +--- + +### 3. 顧客体験を改善するために測定・最適化する運用指標は何ですか? + +私たちは、BackOffice Insightの顧客体験を以下の3つの重要な次元で最適化します:_処理時間削減率_、_月次決算早期化日数_、_ボトルネック検知速度_。また、4つ目の指標として_顧客満足度(NPS)_を監視し、顧客体験を保護します。 + +**処理時間削減率** +- 内部指標: 経費精算1件あたりの処理時間(目標: 4分以内)、請求書処理1件あたりの処理時間(目標: 2分以内) +- 顧客に公開する指標: 「導入前と比較して処理時間XX%削減」をダッシュボードで表示 +- 測定方法: AI-OCRの処理開始〜完了までの時間を自動記録し、日次・週次・月次で集計 +- Phase 1のカスタマージャーニーで特定された「経費精算1件15分、月300件で75時間」という課題の解決度合いを測定 + +**月次決算早期化日数** +- 内部指標: 月末から月次決算確定までの日数(目標: 7日以内) +- 顧客に公開する指標: 「導入前と比較して月次決算がXX日早まりました」をダッシュボードで表示 +- 測定方法: 会計ソフトへの仕訳送信完了日を基準に、月次決算確定日までの日数を測定 +- Phase 3-Top 1の問い「なぜExcelで手作業集計せずに、自動で工数を可視化できないのか?」の解決効果を測定 + +**ボトルネック検知速度** +- 内部指標: ボトルネック発生から検知までの時間(目標: リアルタイム、つまり0秒) +- 顧客に公開する指標: 「今週のボトルネック: 経費精算の承認待ち時間が平均2時間増加」をダッシュボードで表示 +- 測定方法: AIが処理時間の異常値を検知し、アラートを発するまでの時間を測定 +- Phase 5の新しい価値提案「リアルタイム業務トラッキング」の実現度合いを測定 + +**顧客満足度(NPS)** +- 内部指標: Net Promoter Score(目標: 50以上) +- 測定方法: 四半期ごとにNPSアンケートを実施し、「BackOffice Insightを友人や同僚に勧める可能性は?」を10点満点で評価 +- 顧客の声を収集し、プロダクト改善に反映 + +--- + +### 4. BackOffice Insightはどのようにして顧客のコストを削減できますか? + +BackOffice Insightは、fine-grained(きめ細かい)な従業員数ベースの価格設定を提供します。年間約856時間(≒ 月71時間)、金額換算で約320万円相当のリソース削減により、顧客は月次決算準備に2日(16時間)かかっていた工数をゼロに、経費精算処理時間を月75時間から20時間に、請求書処理時間を月25時間から10時間に削減できます。 + +**小〜中規模の顧客**(従業員20〜50名)は、月額2.9万円の定額制の恩恵を受けます。従業員数が増えても価格が跳ね上がらないため、成長期のスタートアップにとって予算管理がしやすくなります。経費精算・請求書処理の件数が少ない時期でも、リアルタイム可視化機能を犠牲にすることなく、定額で利用できます。 + +**大規模顧客**(従業員50〜100名)は、グロースプラン(月額5.9万円)の恩恵を受けます。サーバーレスアーキテクチャにより、従業員数が増えてもパフォーマンスが劣化しません。スパイキーなワークロード(月末の経費精算集中)や異種混在のワークロード(経費精算と請求書処理)も、AWS Lambdaの自動スケーリングにより効率的に処理でき、年間約320万円相当のリソース削減を実現できます。 + +BackOffice Insightはまた、AI-OCR、会計ソフト連携、リアルタイムダッシュボードを統合することで、Phase 1で要していた「複数ツールの使い分け」(Excel、会計ソフト、メール、Slack)を撤廃し、TCO(総所有コスト)を下げることができます。従業員20〜50名の成長期スタートアップのCFO・経理責任者にとって、「月次決算の遅延」「経理担当者の過剰な残業」「内部統制の未整備」は大きな課題でしたが、BackOffice Insightはリアルタイム業務トラッキングにより、年間約320万円相当のリソース削減を実現します。 + +投資回収期間は約1.3ヶ月で、初月からROIを実感できます。 + +--- + +## 終わりに + +BackOffice Insightは、従業員20〜50名の成長期スタートアップのCFO・経理責任者が、バックオフィス業務の効率化とコスト削減を実現し、月次決算の早期化と経営判断の迅速化を図るための、リアルタイム業務トラッキング・ダッシュボードです。 + +「なぜExcelで手作業集計せずに、自動で工数を可視化できないのか?」という問いに答え、AI-OCRと機械学習を活用し、問題が顕在化する前にボトルネックを発見する「先回り型」の管理を実現します。 + +年間約856時間(≒ 月71時間)、金額換算で約320万円相当のリソース削減を実現し、投資回収期間は約1.3ヶ月です。 + +今すぐ https://backoffice-insight.example.com から無料トライアルを開始できます。 \ No newline at end of file diff --git a/yourwork_1shot/sample/invoice_SaaS/solutions.md b/yourwork_1shot/sample/invoice_SaaS/solutions.md new file mode 100644 index 0000000..5d289bd --- /dev/null +++ b/yourwork_1shot/sample/invoice_SaaS/solutions.md @@ -0,0 +1,153 @@ +# 顧客の課題に対する解決策候補一覧 + +### **1. AI-OCR自動化アプローチ** + +**いつ使う?** +経理担当者が月に200〜500件の経費申請を手作業で処理し、1件あたり15〜20分かかっている状況で選択すべきアプローチだ。特に、領収書の写真が不鮮明で確認に時間がかかり、月末月初に経理担当者が毎日2〜3時間の残業を強いられている場合に最大の効果を発揮する。従業員からの「経費申請が面倒すぎる」という不満が上がり、差し戻し率が20%を超えている状況において、業務効率化の第一歩となる。 + +**どう課題を解決した?** +スマホで領収書を撮影すると、AI-OCRが3秒以内に金額・日付・店舗名・品目を自動抽出し、経費申請データを作成する。過去の申請履歴と店舗・品目情報から最適な勘定科目を自動提案する機械学習モデルを実装し、選択ミスを90%削減した。画像補正機能により、斜めや暗い写真でも高精度で読み取りが可能になり、再提出依頼が80%減少した。経理担当者は自動抽出されたデータを確認するだけで済むため、1件あたりの処理時間が15分から3分に短縮された。 + +**どんな効果が出た?** +導入後3ヶ月で、経費精算処理時間が月40時間から12時間に70%削減され、経理担当者の残業がほぼゼロになった。差し戻し率が20%から4%に低下し、従業員と経理担当者双方のストレスが大幅に軽減された。従業員からの「経費申請が楽になった」という声が増え、申請〜承認までの時間が平均2日から半日に短縮された。空いた時間を月次決算準備や経営分析に充てられるようになり、CFOから高く評価された。 + +**どう実現している?** +Amazon Textract、Google Cloud Vision API、またはAzure Form RecognizerなどのクラウドベースのOCRサービスを活用し、高精度な文字認識を実現する。独自の機械学習モデルを構築し、過去の申請データから勘定科目推論エンジンを学習させ、使えば使うほど精度が向上する仕組みを実装する。プログレッシブWebアプリ(PWA)またはネイティブアプリでモバイルファースト体験を提供し、オフラインでも撮影・入力が可能な設計とする。電子帳簿保存法に対応するため、タイムスタンプ自動付与と法令要件を満たした原本管理機能を実装する。 + +**参考リソース**: +- Amazon Textract: https://aws.amazon.com/jp/textract/ +- 電子帳簿保存法ガイドライン: https://www.nta.go.jp/law/joho-zeikaishaku/sonota/jirei/02.htm + +--- + +### **2. 請求書自動管理・支払アラートアプローチ** + +**いつ使う?** +月に50〜150件の請求書をPDFやメールで受け取り、手動でスプレッドシートに記録している状況で選択すべきだ。特に、請求書の支払漏れが年に数回発生し、取引先からのクレームで信頼を損ねているケースや、支払期限の管理が属人化し、経営者が「今月の支払予定額はいくら?」と聞かれても即答できない場合に必須となる。電子帳簿保存法対応の準備が不十分で、何から始めればいいか分からない企業にとって、最優先で取り組むべきアプローチだ。 + +**どう課題を解決した?** +受け取った請求書を専用メールアドレスに転送、またはPDF/画像をアップロードすると、AI-OCRが請求書番号・請求元・金額・支払期限・振込先を自動抽出し、支払管理台帳に登録される。過去の取引実績と比較し、金額の異常や重複を自動検知してアラートを発する。支払期限の7日前、3日前、当日にメールとSlackで自動リマインダーを送信し、支払漏れをゼロにした。支払予定額の月次・週次サマリーをダッシュボードで可視化し、キャッシュフロー予測が可能になった。 + +**どんな効果が出た?** +導入後、請求書の支払漏れがゼロになり、取引先からのクレームが完全に消失した。請求書処理時間が1件あたり10分から2分に80%削減され、月に約20時間の工数削減を実現した。経営者が「今月の支払予定は?」と質問された際、ダッシュボードを見せて即座に回答できるようになり、経営判断のスピードが向上した。電子帳簿保存法に完全対応し、監査時の証憑提示が容易になり、IPO準備の基盤が整った。 + +**どう実現している?** +メール自動取り込み機能として、専用メールアドレス宛に送信された請求書PDFを自動で取り込むAPIを構築する。クラウドストレージ(Google Drive、Dropbox)と連携し、特定フォルダに保存された請求書を自動同期する機能を実装する。多様な請求書フォーマットに対応するため、ディープラーニングモデルを活用し、学習データを増やすことで精度を継続的に向上させる。支払スケジュール管理には、カレンダー統合とリマインダー機能を実装し、Slack、メール、プッシュ通知で期限前にアラートを送信する。 + +**参考リソース**: +- 請求書管理のベストプラクティス: https://www.freee.co.jp/kb/kb-invoice/ +- 電子帳簿保存法対応ガイド: https://www.soumu.go.jp/main_sosiki/joho_tsusin/denshichoubo/ + +--- + +### **3. 会計ソフト連携・自動仕訳アプローチ** + +**いつ使う?** +経費精算システムと会計ソフトが連携しておらず、同じデータを複数のシステムに手入力している状況で選択すべきだ。特に、月次決算のためのデータ集計に2〜3日かかり、CSVエクスポート・インポートを毎月手作業で行っている場合に最大の効果を発揮する。転記ミスによる会計データの不整合が頻発し、経理担当者が「なぜ二重入力が必要なのか」と疑問を感じている状況において、業務の根本的な効率化を実現するアプローチだ。 + +**どう課題を解決した?** +主要な会計ソフト(freee、マネーフォワード クラウド会計、弥生会計オンライン等)とAPIで双方向連携し、経費・請求書データを自動で会計ソフトに仕訳として送信する機能を実装した。勘定科目マッピングは初回設定時に行い、その後は機械学習により自動で最適な勘定科目を選択する。補助科目・部門・プロジェクトの同期により、プロジェクト別のコスト管理が可能になった。リアルタイム連携またはスケジュール連携を選択でき、企業の運用フローに合わせた柔軟な設定が可能だ。 + +**どんな効果が出た?** +導入後、会計ソフトへの二重入力が完全に撤廃され、月次決算完了までの日数が10日から5日に短縮された。転記ミスがゼロになり、会計データの整合性が劇的に向上した。経理担当者が「データ転記」という単純作業から解放され、経営分析や予算管理といった戦略的業務に時間を割けるようになった。VCから求められていた内部統制の整備が進み、次回ラウンドの資金調達に向けた準備が加速した。 + +**どう実現している?** +各会計ソフトの公式APIを活用し、OAuth 2.0による安全な認証を実装する。エラーハンドリングと自動リトライ機能を組み込み、API通信の失敗時にも確実にデータを同期できる仕組みを構築する。連携ログを完全記録し、どのデータがいつ連携されたかを可視化することで、トラブルシューティングを容易にする。勘定科目マッピングのUI/UXを工夫し、経理の専門知識がなくても直感的に設定できるインターフェースを提供する。 + +**参考リソース**: +- freee API: https://developer.freee.co.jp/ +- マネーフォワード クラウド API: https://developer.moneyforward.com/ + +--- + +### **4. リアルタイム・ダッシュボード可視化アプローチ** + +**いつ使う?** +経営会議で「各部門の経費状況を報告して」と言われても、集計に丸一日かかり、即座に答えられない状況で選択すべきだ。特に、経費や仕入れの傾向分析ができておらず、部門別・プロジェクト別のコスト把握が困難で、予算管理が感覚的になっている場合に最大の効果を発揮する。経営者が「どの経費項目が増えているのか」をすぐに把握したいと考えており、データドリブンな経営判断を実現したいニーズがある企業に最適だ。 + +**どう課題を解決した?** +今月の経費・請求書の支払総額、部門別・プロジェクト別の経費推移、前年同月比・予算比を自動計算し、リアルタイムダッシュボードで可視化した。「今月は交通費が先月比で30%増加しています」「来月の支払予定額が通常より50万円多くなります」といったAIインサイトを自動生成し、異常の早期検知が可能になった。ドラッグ&ドロップで簡単にカスタムレポートを作成でき、PDF/Excel出力で経営会議資料として即座に活用できる機能を提供した。 + +**どんな効果が出た?** +導入後、経営会議での財務報告準備時間が1日から30分に短縮され、経営判断のスピードが飛躍的に向上した。部門別の経費状況をリアルタイムで把握できるようになり、予算超過の部門に対して即座にアラートを出し、コスト管理が強化された。「会議費の80%がカフェでの打ち合わせ」といったインサイトから、オンライン会議の推奨により月10万円のコスト削減を実現した。CFOがダッシュボードを投資家に見せることで、財務状況の透明性が評価され、資金調達が円滑に進んだ。 + +**どう実現している?** +BIツール並みの分析機能を、シンプルなUI/UXで提供する設計を採用する。自然言語での質問に対応し、「先月の交通費は?」と入力すると結果を表示するチャットボット機能を実装する。グラフの種類(棒グラフ、折れ線グラフ、円グラフ等)を自動提案し、データの特性に応じた最適な可視化を提供する。モバイルでも快適に閲覧可能なレスポンシブデザインを採用し、経営者が外出先でもダッシュボードを確認できる環境を整える。 + +**参考リソース**: +- ダッシュボードデザインのベストプラクティス: https://www.tableau.com/ja-jp/learn/articles/dashboard-design-best-practices +- データ可視化ガイド: https://www.interaction-design.org/literature/article/data-visualization + +--- + +### **5. モバイルファースト・承認フローアプローチ** + +**いつ使う?** +リモートワーク・ハイブリッドワークを導入しており、従業員が外出先や移動中に経費申請を行いたいというニーズが高まっている状況で選択すべきだ。特に、承認者が出張中で承認が遅延し、申請から承認まで平均2日以上かかっている場合に最大の効果を発揮する。従業員から「スマホで完結したい」「わざわざPCを開くのが面倒」という声が上がっており、ユーザー体験の向上が急務となっている企業に最適だ。 + +**どう課題を解決した?** +スマホアプリで、いつでもどこでも経費精算・承認が完結する体験を提供した。オフライン対応により、ネット環境がなくても撮影・入力でき、接続時に自動同期される。事前に設定した金額・部門に応じた承認ルートを自動判定し、Slackと連携して承認依頼通知を送信する。承認者はSlack上またはアプリ内でワンクリック承認でき、承認状況をリアルタイムで可視化した。音声入力機能により、「1,200円、タクシー代」と話すだけで申請が作成される。 + +**どんな効果が出た?** +導入後、申請から承認までの時間が平均2日から半日に短縮され、従業員満足度が大幅に向上した。承認者が出張中でも、スマホでワンクリック承認できるため、承認待ちによる業務停滞がなくなった。オフライン対応により、飛行機や新幹線の移動中でも経費申請が可能になり、月末の申請集中が緩和された。音声入力機能が好評で、特に営業職から「移動中にすぐ申請できて助かる」という声が多数寄せられた。 + +**どう実現している?** +プログレッシブWebアプリ(PWA)またはネイティブアプリ(iOS/Android)を開発し、ネイティブアプリのような操作感を提供する。オフライン対応には、Service WorkerとIndexedDBを活用し、ローカルストレージにデータを一時保存する仕組みを実装する。プッシュ通知機能により、承認依頼、支払期限、異常検知をリアルタイムで通知する。ウィジェット機能により、ホーム画面から経費申請や承認がワンタップで起動できるUXを実現する。 + +**参考リソース**: +- PWA開発ガイド: https://web.dev/progressive-web-apps/ +- モバイルUXベストプラクティス: https://www.nngroup.com/articles/mobile-ux/ + +--- + +### **6. マネーフォワード クラウド経費アプローチ(競合A)** + +**いつ使う?** +既にマネーフォワード クラウド会計を導入しており、バックオフィス業務を統合的に効率化したい企業が選択すべきアプローチだ。特に、従業員50名以上の中堅企業で、会計・給与・請求書などの関連業務を一つのプラットフォームで管理したいニーズがある場合に最適となる。ブランド力と導入実績を重視し、「安心感」「信頼性」を最優先する企業にとって第一選択肢となる。多機能で複雑な業務フローにも対応できるため、将来的な事業拡大を見据えて「しっかりしたシステム」を導入したい場合に有効だ。 + +**どう課題を解決した?** +レシート撮影によるOCR入力、交通系ICカード連携、クレジットカード明細自動取り込みにより、経費精算の入力工数を削減した。マネーフォワード クラウド会計との自動仕訳連携により、会計ソフトへの二重入力を撤廃し、月次決算の効率化を実現した。柔軟な承認ルート設定により、複雑な組織構造にも対応可能となった。電子帳簿保存法に完全対応し、タイムスタンプ機能により法令要件を満たした。関連製品(給与計算、請求書発行等)とのシームレス連携により、バックオフィス業務を一気通貫で効率化できる環境を提供した。 + +**どんな効果が出た?** +13万事業所という圧倒的な導入実績により、顧客からの信頼が厚く、「安心して導入できる」という評価を得ている。マネーフォワードのエコシステムに参加することで、バックオフィス業務全体の効率化が進み、複数のツールを使い分ける手間が削減された。充実したカスタマーサポートと豊富なヘルプドキュメントにより、導入後の問い合わせ対応がスムーズになった。定期的なウェビナー開催により、製品の活用度が向上し、顧客満足度が高まった。継続的な機能改善により、ユーザーフィードバックが製品に反映され、使い勝手が向上し続けている。 + +**どう実現している?** +OCR技術により、レシートや領収書の画像から金額・日付・店舗名を自動抽出する。交通系ICカード(Suica、PASMO等)との連携により、交通費の自動取り込みを実現する。マネーフォワード クラウド会計のAPIを活用し、経費データを自動で仕訳として会計ソフトに送信する仕組みを構築する。承認ワークフロー機能により、部門・金額に応じた柔軟な承認ルート設定を可能にする。電子帳簿保存法対応のため、タイムスタンプ自動付与と法令要件を満たしたデータ保存を実装する。関連製品との統合プラットフォームにより、データの一元管理とシームレスな連携を実現する。 + +**参考リソース**: +- 公式サイト: https://biz.moneyforward.com/expense +- 導入事例: https://biz.moneyforward.com/case + +**価格と導入ハードル**: +- **月額3,980円〜**: 小規模スタートアップには手頃だが、従業員数が増えると従量課金で価格が上昇 +- **多機能ゆえの複雑さ**: 初期設定が煩雑で、「オーバースペック」と感じる小規模企業もある +- **会計ソフトの制約**: マネーフォワード以外の会計ソフト(freee、弥生等)との連携が限定的 +- **UI/UX**: 画面遷移が多く、初めてのユーザーには分かりにくいという声がある + +--- + +### **7. 楽楽精算アプローチ(競合B)** + +**いつ使う?** +従業員100名以上の中堅・大企業で、複雑な承認フローや組織構造に対応する必要がある場合に選択すべきアプローチだ。特に、企業ごとの業務フローに合わせた高度なカスタマイズが必要で、導入時の手厚いサポートを重視する企業に最適となる。「しっかりしたシステムを導入したい」「専任の導入コンサルタントに支援してほしい」というニーズがある企業にとって第一選択肢となる。長期的に安定した運用を目指し、初期投資を惜しまない姿勢がある場合に有効だ。 + +**どう課題を解決した?** +レシート・領収書の自動読み取り、交通費自動計算、クレジットカード連携により、経費精算の入力工数を削減した。乗換案内連携と定期区間自動控除により、交通費精算の正確性が向上した。高度なカスタマイズが可能な承認ルート設定により、複雑な組織構造にも柔軟に対応できるようになった。主要会計ソフト(freee、マネーフォワード、勘定奉行等)との連携により、会計データの二重入力を削減した。専任の導入コンサルタントによる設定から運用開始までのサポートにより、導入後の定着率が高まった。 + +**どんな効果が出た?** +15,000社以上という豊富な導入実績により、中堅・大企業からの信頼が厚く、「安定したシステム」として評価されている。カスタマイズ性の高さにより、企業固有の業務フローにフィットし、業務効率化が実現された。専任の導入コンサルタントによるサポートにより、導入時のトラブルが最小化され、スムーズな運用開始が可能になった。1,000名以上の大規模企業での導入実績により、スケーラビリティが証明され、将来的な組織拡大にも対応可能だという安心感を提供した。電話サポート(平日9:00〜18:00)により、緊急時の対応が迅速になり、顧客満足度が向上した。 + +**どう実現している?** +OCR技術により、レシートや領収書の画像から金額・日付・店舗名を自動抽出する。乗換案内APIと連携し、出発地と目的地を入力すると交通費を自動計算する仕組みを構築する。ICカード読み取り機能により、交通系ICカードの利用履歴を直接取り込む。承認フロー、入力項目、勘定科目など、企業ごとの業務フローに合わせた柔軟なカスタマイズ機能を提供する。主要会計ソフトのAPIを活用し、経費データを会計ソフトに自動連携する。専任の導入コンサルタントによる初期設定支援、従業員向けトレーニング、運用定着支援を実施する。 + +**参考リソース**: +- 公式サイト: https://www.rakurakuseisan.jp/ +- 導入事例: https://www.rakurakuseisan.jp/case/ + +**価格と導入ハードル**: +- **初期費用10万円〜、月額3万円〜**: スタートアップには高額で、導入ハードルが高い +- **小規模企業向けプランなし**: 20〜50名規模の企業には不向き +- **モバイル対応の弱さ**: スマホアプリの機能が限定的で、モバイルでの使い勝手が劣る +- **AI機能の弱さ**: OCRの精度や勘定科目の自動提案が競合と比べて見劣りする +- **請求書管理は別製品**: 経費精算に特化しており、ワンストップ性に欠ける +- **UI/UXの古さ**: デザインがやや古臭く、若手従業員からは「使いにくい」という声も \ No newline at end of file From 22d90916d43c6877e2045848dddbeca2a0bee436 Mon Sep 17 00:00:00 2001 From: yutaokos Date: Mon, 10 Nov 2025 10:39:36 +0900 Subject: [PATCH 5/6] Adds Phase 7 tasks for mock validation Defines Phase 7 tasks for the product manager/UX designer role to extract key customer experiences from PR/FAQ and create mockups for validation. Includes detailed instructions, output format, and completion criteria for defining the validation target, hypothesis, mockup, and validation method. --- .../prompt/workingbackwards-prompt.md | 241 +++++++++++++++++- 1 file changed, 238 insertions(+), 3 deletions(-) diff --git a/yourwork_1shot/prompt/workingbackwards-prompt.md b/yourwork_1shot/prompt/workingbackwards-prompt.md index 8b904b0..1a87ef2 100644 --- a/yourwork_1shot/prompt/workingbackwards-prompt.md +++ b/yourwork_1shot/prompt/workingbackwards-prompt.md @@ -6,14 +6,16 @@ -1. チーム規模と役割構成: エンジニア10名 -2. 技術スタック経験: AWSの実装経験あり +1. チーム規模と役割構成: エンジニア1名 +2. 技術スタック経験: Next.js、Vercelの実装経験あり 3. プロダクト開発経験: 0->1,1->10のプロダクト開発経験あり 4. 学習・適応能力: 新技術習得は可能だが、既存技術を優先 -5. 開発期間・リソース: 6ヶ月、3名 +5. 開発期間・リソース: 1ヶ月、1名 +6. 予算制約: 月額コスト1万円以内 + @@ -661,4 +663,237 @@ _"[サービス名]は、私たちのチームが[Phase1の課題]を克服す このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから Phase7 に進んでください。 + + + +あなたはプロダクトマネージャー兼UXデザイナーです。Phase6で作成したPR/FAQから最も重要な顧客体験を抽出し、モックアップで検証可能な形に落とし込みます。 + + +Phase6で作成したPR/FAQの内容を基に、モックアップで仮説検証するべき顧客体験を1つ定義してください。 + +**選定の優先順位**: +1. Phase5でブレイクスルーアイデア(🎯マーク付き)を採用した場合は、それを優先的に選択 +2. Phase3-Top1の問いを解決する体験 +3. Phase1のカスタマージャーニーで最も感情スコアが低かった(ペインが大きかった)ステップの改善体験 + +定義した内容を discovery/README.md の Validate セクションに記載してください。 + + + +## Validate: 検証 + +### 検証対象の顧客体験 + +**体験名**: [具体的な体験の名前] + +**対象ペルソナ**: [customer.md で定義されたペルソナ名] + +**解決する課題**: [Phase3-Top1の問いまたはPhase1の最大ペインポイント] + +**Before(現在の体験)**: +[Phase1のカスタマージャーニーから該当ステップを引用] +- 所要時間: X時間/Y日 +- 費用: Z円 +- 感情スコア: 😟 2/5 +- 顧客の声: 「[Phase1で記載した実際の声]」 + +**After(提案する体験)**: +[Phase6のPR/FAQで説明した新しい体験を3-5ステップで] +1. [ステップ1] - 所要時間: X分 +2. [ステップ2] - 所要時間: Y分 +3. [ステップ3] - 所要時間: Z分 +... + +- 合計所要時間: X分(現在比Y%削減) +- 費用: Z円(現在比Y%削減) +- 期待感情スコア: 😊 4-5/5 + +--- + +### 検証する仮説 + +**価値仮説**: +[customer.mdのペルソナ]は、[Phase3-Top1の問いに関連する課題]に対して、[Phase5の新しい価値提案]を提供すれば、[Phase3で算出した定量的な効果]を達成でき、[Phase6で定義した指標1]が改善されると考える。 + +**使いやすさ仮説**: +[customer.mdのペルソナ]は、[提案する体験のステップ数]ステップで[Phase3-Top1の問いを解決する行動]を完了でき、[Phase6のFAQ「導入にどのくらい時間がかかりますか?」の回答]で使い始められると考える。 + +**魅力度仮説**: +[customer.mdのペルソナ]は、[Phase5のブレイクスルー要素またはPhase6のPR見出し]を見て、[感情的な反応:驚き、共感、期待など]を示し、[Phase6の顧客の声に近い反応]をすると考える。 + +--- + +### モックアップの定義 + +**モックアップの種類**: [静的画面モック/クリック可能プロトタイプ/ビデオモック] + +**モックアップの範囲**: +[Afterで定義した3-5ステップを以下の形式で] + +| 画面番号 | 画面名 | 目的 | 主要UI要素 | ユーザーアクション | +|---------|--------|------|-----------|------------------| +| 1 | [画面名] | [この画面で達成すること] | - [要素1]
- [要素2]
- [要素3] | [ユーザーが行う操作] | +| 2 | [画面名] | [この画面で達成すること] | - [要素1]
- [要素2]
- [要素3] | [ユーザーが行う操作] | +| 3 | [画面名] | [この画面で達成すること] | - [要素1]
- [要素2]
- [要素3] | [ユーザーが行う操作] | + +**デザイン要件**: +- フィデリティ: [Hi-Fi(高忠実度)/Mid-Fi(中忠実度)/Lo-Fi(低忠実度)] +- デザインシステム: [使用するUIライブラリやデザインシステム(該当する場合)] +- 実装しないが見せる機能: [Phase5の全機能のうち、MVP外だがモックで見せる必要があるもの] +- 強調するブレイクスルー要素: [Phase5でブレイクスルーアイデアを採用した場合、どの要素を視覚的に強調するか] + +**モックアップ作成に必要な情報**: +- ブランドカラー: [メイン色、アクセント色] +- ターゲットデバイス: [デスクトップ/モバイル/両方] +- 参考にするデザイン: [Phase4のsolutions.mdで評価した既存ソリューションのうち、UIの参考にするもの] + +--- + +### 検証方法 + +**検証手法**: [ユーザーインタビュー/アンケート/ユーザビリティテスト/A/Bテスト] + +**参加者**: +- ターゲット人数: X名 +- リクルート条件: [customer.mdのペルソナの特徴を具体的に。例:役職、業界、チーム規模、Phase1の課題を持っているか] +- 除外条件: [Phase6の社内向けFAQ「勧めるべきでない顧客」に該当する人] + +**検証シナリオ**: +1. **コンテキスト設定**: 「あなたは[customer.mdのペルソナの状況]で、[Phase1の課題]に直面しています」 +2. **モックアップ提示**: [モックアップをどのように見せるか:順番、説明の有無] +3. **観察ポイント**: + - [価値仮説の検証項目] + - [使いやすさ仮説の検証項目] + - [魅力度仮説の検証項目] +4. **質問リスト**: + - 「この体験のどの部分が最も価値があると感じましたか?」 + - 「[Phase5のブレイクスルー要素]について、どう思いましたか?」 + - 「[Phase3で算出した削減時間・費用]のために、[Phase6の価格]を支払いますか?」 + - 「どのステップが分かりにくかったですか?」 + - 「[Phase1で記載した顧客の声]と比べて、この体験は改善されていますか?」 + +--- + +### 成功基準 + +**定量基準**: +- [ ] 価値仮説: X%以上の参加者が「[Phase3の定量的な効果]が達成できそう」と回答 +- [ ] 使いやすさ仮説: X%以上の参加者が「[Afterのステップ数]ステップで完了できる」と感じる +- [ ] 魅力度仮説: X%以上の参加者が「試してみたい」または「導入を検討したい」と回答 +- [ ] WTP(支払意思額): X%以上の参加者が[Phase6の価格]以上の支払意思を示す + +**定性基準**: +- [ ] 参加者が[Phase5のブレイクスルー要素]に「驚き」または「なるほど」という反応を示す +- [ ] Phase1の「顧客の声」と同様のペインが、Afterで解決されていることを参加者が認識する +- [ ] 「既存の[Phase4のsolutions.md記載のソリューション]と何が違うのか」を参加者が言語化できる +- [ ] Phase6のPRの見出し(1行の価値提案)を聞いて、参加者が興味を示す + +**撤退基準(Pivot判断)**: +以下の場合、Phase2に戻り問いの再定義、またはPhase5に戻り発明の再検討を行う: +- [ ] 50%以上の参加者が「[Phase3-Top1の問いに関連する課題]は重要でない」と回答 +- [ ] 70%以上の参加者が「使い方が分からない」と回答 +- [ ] 80%以上の参加者が[Phase6の価格]に対してWTPを示さない +- [ ] Phase5のブレイクスルーアイデアが「意味が分からない」「不要」と評価される + +--- + +### 次のアクション + +検証完了後、以下の情報を discovery/README.md の Validate セクションに追記してください: + +**検証結果サマリー**: +- 実施日: YYYY/MM/DD +- 参加者数: X名 +- 成功基準達成率: X/Y項目 +- 主要インサイト(箇条書き3-5個) +- 学習した内容(仮説と異なった点) +- 次のステップ(実装Go/Pivot/追加検証) + +
+ + +このフェーズは以下の条件を全て満たした場合に完了とします: + +【必須条件:検証対象の定義】 +[] 検証対象の顧客体験が1つ明確に定義されている +[] Phase6のPR/FAQから論理的に導出された体験が選ばれている +[] ブレイクスルーアイデアが存在する場合は優先的に選定されている +[] Before(現在の体験)がPhase1のカスタマージャーニーから具体的に引用されている +[] After(提案する体験)がPhase6のPR/FAQの「使い方はシンプル」段落と整合している +[] Before→Afterの改善が定量的に示されている(時間、費用、感情スコア) + +【必須条件:仮説の定義】 +[] 価値仮説が明確に記載されている(Phase3の定量効果と紐付いている) +[] 使いやすさ仮説が明確に記載されている(ステップ数、導入時間が具体的) +[] 魅力度仮説が明確に記載されている(Phase5のブレイクスルー要素またはPR見出しと紐付いている) +[] 各仮説が「検証可能」である(Yes/Noまたは数値で判断できる) +[] 仮説がcustomer.mdのペルソナに紐付いている + +【必須条件:モックアップの定義】 +[] モックアップの範囲が画面単位で定義されている(最低3画面) +[] 各画面に「目的」「主要UI要素」「ユーザーアクション」が記載されている +[] デザイン要件(フィデリティ、デザインシステム、デバイス)が明確 +[] Phase5で定義した機能のうち、モックアップで見せる範囲が明確 +[] モックアップ作成に必要な情報(色、デバイス、参考デザイン)が揃っている +[] ブレイクスルーアイデアがある場合、どの画面・要素で強調するかが明記されている + +【必須条件:検証方法】 +[] 検証手法が明確(インタビュー/テスト/アンケートなど) +[] 参加者のリクルート条件がcustomer.mdのペルソナに基づいて具体的 +[] 検証シナリオが4つの要素(コンテキスト設定、提示方法、観察ポイント、質問)で構成されている +[] 質問リストが5つ以上あり、3つの仮説を検証できる内容になっている +[] Phase1の顧客の声、Phase3の削減効果、Phase5のブレイクスルー要素に関する質問が含まれている + +【必須条件:成功基準】 +[] 定量基準が4つ以上定義されている(価値、使いやすさ、魅力度、WTP) +[] 各定量基準に具体的な%目標が設定されている +[] 定性基準が4つ以上定義されている +[] 撤退基準(Pivot判断)が3つ以上定義されている +[] Phase6の価格設定とWTP基準が整合している + +【品質基準:Phase1-6との一貫性】 +[] 検証対象がPhase3-Top1の問いまたはPhase1の最大ペインポイントに対応している +[] Before→Afterの改善がPhase3で算出した削減効果と一致している +[] モックアップの画面がPhase6の「使い方はシンプル」の3-5ステップと対応している +[] 検証シナリオがPhase1のカスタマージャーニーの文脈を反映している +[] 成功基準がPhase6の社内向けFAQ「測定する運用指標」と整合している + +【品質基準:実行可能性】 +[] モックアップの範囲がで実装可能 +[] デザイン要件がで定義された技術スタックで実現可能 +[] リクルート条件が現実的で、参加者を見つけられる +[] 検証シナリオが1名あたり30-60分で完了できる内容 +[] 質問が誘導的でなく、客観的なフィードバックが得られる内容 + +【品質基準:仮説検証の明確さ】 +[] 各仮説が「何を学びたいか」が明確(機能の有無、価格、使いやすさなど) +[] 成功基準が達成された場合の「次のステップ」が明確(実装Go) +[] 撤退基準に該当した場合の「次のステップ」が明確(Phase2/5に戻る) +[] 定量基準と定性基準が補完的で、両面から仮説を検証できる +[] ブレイクスルーアイデアの場合、「驚き」が伝わるかを検証する項目がある + +【品質基準:モックアップの品質】 +[] 画面遷移の流れが論理的で、ユーザーが迷わない設計 +[] 各画面の「主要UI要素」が具体的で、モックアップ作成者が理解できる +[] Phase5のブレイクスルー要素が視覚的に強調される設計 +[] 「実装しないが見せる機能」が明記され、期待値調整ができる +[] 参考デザインがPhase4で評価した既存ソリューションから選ばれている + +【次フェーズへの準備(オプション)】 +[] 検証後にPhase8(実装計画)に進むための情報が揃っている +[] モックアップの画面定義が開発チームに渡せるレベルで具体的 +[] 成功基準がPhase6の社内向けFAQ「指針(Tenets)」と整合している +[] 検証結果を記録するテンプレート(検証結果サマリー)が用意されている + +このチェックリストを確認し、全ての項目にチェックが入ったことを宣言してから、モックアップ作成または検証実施に進んでください。 + +**モックアップ作成の推奨ツール**: +- v0.dev: React/Next.jsベースのモダンUIを素早く生成 +- Figma: 詳細なデザインとプロトタイピング +- PowerPoint/Keynote: Lo-Fiモックやビデオモック +- Loom: 画面操作を説明するビデオモック + +**注**: Phase7で定義したモックアップ定義を、v0-mock-builder-prompt.md に渡すことで、AI支援でモックアップを構築できます。 + +
\ No newline at end of file From 3f96c60e924b80bb3a55476ea711b1a85ae546d2 Mon Sep 17 00:00:00 2001 From: yutaokos Date: Mon, 10 Nov 2025 10:47:18 +0900 Subject: [PATCH 6/6] Updates output file path in prompts Refactors the prompts to point to the correct output file (`discovery/output.md`) instead of the README for storing generated content. This ensures that the AI writes its results to the designated location. --- yourwork_1shot/README.md | 109 ++++++++++++++++++ .../prompt/workingbackwards-prompt.md | 12 +- 2 files changed, 115 insertions(+), 6 deletions(-) create mode 100644 yourwork_1shot/README.md diff --git a/yourwork_1shot/README.md b/yourwork_1shot/README.md new file mode 100644 index 0000000..1732eed --- /dev/null +++ b/yourwork_1shot/README.md @@ -0,0 +1,109 @@ +# Working Backwards 1-Shot Generator + +このフォルダーは、AmazonのWorking Backwards手法に基づいて、生成AIが顧客起点のプロダクト開発を支援するツールセットです。 + +## 概要 + +Working Backwardsは、Amazonが実践する「顧客から逆算する」プロダクト開発手法です。このツールセットでは、顧客情報と既存ソリューションを入力するだけで、AIが以下を自動生成します: + +- 📊 **カスタマージャーニー分析** (Phase 1) +- ❓ **問いの抽出** (Phase 2) +- 🎯 **課題の優先順位付け** (Phase 3) +- 🔧 **実装難易度評価** (Phase 4) +- 💡 **ブレイクスルーアイデア発明** (Phase 5) +- 📰 **PR/FAQ作成** (Phase 6) +- ✅ **モックアップ検証計画** (Phase 7) + +## ファイル構成 + +``` +yourwork_1shot/ +├── discovery/ +│ ├── customer.md # ターゲット顧客の定義(目的・背景・属性) +│ ├── solutions.md # 既存ソリューションの分析(4つ以上推奨) +│ └── output.md # 生成されたPR/FAQ(AIが自動作成) +├── prompt/ +│ ├── workingbackwards-prompt.md # PR/FAQ生成用プロンプト +│ └── v0-mock-builder-prompt.md # モックアップ生成用プロンプト +└── sample/ # 生成例(参考用) + ├── ai_development_tool/ + ├── invoice_SaaS/ + └── security/ +``` + +## 使い方 + +### ステップ1: 顧客を定義する + +`discovery/customer.md` に以下を記載: +- **目的**: 顧客が達成したいこと +- **背景**: 顧客が直面している状況(具体的に) +- **属性**: 企業規模、フェーズ、意思決定権限など + +### ステップ2: 既存ソリューションを調査する + +`discovery/solutions.md` に以下を記載: +- いつ使う?(どんな状況で選ばれるか) +- どう課題を解決した?(解決のアプローチ) +- どんな効果が出た?(定量的な成果) +- どう実現している?(技術的な実装方法) + +**最低4つ以上のソリューションを調査してください** + +### ステップ3: AIにPR/FAQを生成させる + +生成AIに以下を入力: + +``` +@discovery/customer.md と @discovery/solutions.md を読み込んで、 +@prompt/workingbackwards-prompt.md の指示に従って +PR/FAQを生成してください。 +``` + +AIが `discovery/README.md` に以下を順次生成します: +- Phase 1: カスタマージャーニー(Listen) +- Phase 2: 問いの抽出(Define) +- Phase 3: 課題の優先順位付け(Top 3) +- Phase 4: 実装難易度評価(solutions.mdに追記) +- Phase 5: ブレイクスルーアイデア(Invent) +- Phase 6: PR/FAQ(Refine) +- Phase 7: モックアップ検証計画(Validate) + +### ステップ4: モックアップを作成する(オプション) + +Phase 7の検証計画が完成したら、`v0-mock-builder-prompt.md` を使用してモックアップを生成できます。 + +## 出力例 + +生成されるPR/FAQには以下が含まれます: + +✅ **プレスリリース本文**(Amazonスタイル) +✅ **顧客向けFAQ**(15個以上) +✅ **社内向けFAQ**(指針、運用指標、コスト削減戦略) +✅ **モックアップ検証計画**(画面定義、仮説、成功基準) + +## サンプル + +`sample/` フォルダーに以下の生成例があります: + +- **ai_development_tool**: AI開発支援ツールの事例 +- **invoice_SaaS**: 請求書SaaSの事例 +- **security**: セキュリティ製品の事例 + +これらを参考に、自分のプロダクトのPR/FAQを作成できます。 + +## Tips + +💡 **品質を高めるコツ** +- `customer.md` の「背景」をできるだけ具体的に(実際の会話、数値を含める) +- `solutions.md` で「どんな効果が出た?」に定量データを入れる(○○%向上、○○時間削減など) +- Phase完了ごとに、AIが生成した内容をレビューし、必要に応じて修正を依頼する + +## 開発期間 + +通常、Phase 1-7の完了までに**1-2時間**程度です。 + +--- + +**作成者向けメモ**: このツールセットは、aws-ml-enablement-workshopの一部として、プロダクト開発の初期段階(Day 0)でアイデアを言語化するために設計されています。 + diff --git a/yourwork_1shot/prompt/workingbackwards-prompt.md b/yourwork_1shot/prompt/workingbackwards-prompt.md index 1a87ef2..5c18a53 100644 --- a/yourwork_1shot/prompt/workingbackwards-prompt.md +++ b/yourwork_1shot/prompt/workingbackwards-prompt.md @@ -24,7 +24,7 @@ あなたはユーザーリサーチの専門家です。 -discovery/customer.md に定義された顧客のうち、目的を達成できた顧客のインタビュー結果をまとめています。目的を達成できた顧客のインタビュー結果をまとめています。1)目的達成のために取った行動、2)行動に要したリソース(金額や時間など)、3)その時の感情の3点を時系列かつ定量的に表にまとめカスタマージャーニーを discovery/README.md の Listen セクションに記載してください。 +discovery/customer.md に定義された顧客のうち、目的を達成できた顧客のインタビュー結果をまとめています。目的を達成できた顧客のインタビュー結果をまとめています。1)目的達成のために取った行動、2)行動に要したリソース(金額や時間など)、3)その時の感情の3点を時系列かつ定量的に表にまとめカスタマージャーニーを discovery/output.md の Listen セクションに記載してください。 加えて、各行動ステップで顧客が実際に口にしそうな言葉(ペインポイント)を引用形式で追記してください。 例:「Slackのメッセージが多すぎて、重要な情報を見逃してしまう」 @@ -66,7 +66,7 @@ discovery/customer.md に定義された顧客のうち、目的を達成でき あなたは貪欲な研究者として、顧客が常識と思う行動に対しても常に問いを投げかけます。 -discovery/README.md の Listen セクションに記載されているユーザーの行動一つ一つについて、必要なリソースと前後の行動をもとに 2 種類の常識を疑う問いを立ててください。各行動に対し立てた問いを Define セクションに表にまとめてください。 +discovery/output.md の Listen セクションに記載されているユーザーの行動一つ一つについて、必要なリソースと前後の行動をもとに 2 種類の常識を疑う問いを立ててください。各行動に対し立てた問いを Define セクションに表にまとめてください。 * 「なぜ〇〇せずに□□ができないのか? 」 * 「なぜ○○と○○は同時にできないのか?」 @@ -197,7 +197,7 @@ solutions.md の各ソリューションに以下を追記: -Phase3で選定した Top3 の問いそれぞれに対して、discovery/solutions.md に記載したソリューションを2-3個組み合わせた解決策を考案し、discovery/README.md の Invent セクションに追記してください。 +Phase3で選定した Top3 の問いそれぞれに対して、discovery/solutions.md に記載したソリューションを2-3個組み合わせた解決策を考案し、discovery/output.md の Invent セクションに追記してください。 **重要**: 提案する発明のうち、最低3つは以下の「ブレイクスルーアイデアフレームワーク」を適用した、あっと驚くような独自のアイデアを含めてください。 @@ -322,7 +322,7 @@ Phase3で選定した Top3 の問いそれぞれに対して、discovery/solutio あなたはAmazon の広報担当です。 -discovery/README.md の Invent セクションにある発明について誠実なプレスリリースを執筆します。 +discovery/output.md の Invent セクションにある発明について誠実なプレスリリースを執筆します。 **優先順位**: ブレイクスルーアイデア(🎯マーク付き)が存在する場合は、それを優先的にプレスリリースの対象として選択してください。ブレイクスルーアイデアの「驚き」を前面に押し出した内容にすることで、メディアやユーザーの注目を集めやすくします。 @@ -676,7 +676,7 @@ Phase6で作成したPR/FAQの内容を基に、モックアップで仮説検 2. Phase3-Top1の問いを解決する体験 3. Phase1のカスタマージャーニーで最も感情スコアが低かった(ペインが大きかった)ステップの改善体験 -定義した内容を discovery/README.md の Validate セクションに記載してください。 +定義した内容を discovery/output.md の Validate セクションに記載してください。 @@ -799,7 +799,7 @@ Phase6で作成したPR/FAQの内容を基に、モックアップで仮説検 ### 次のアクション -検証完了後、以下の情報を discovery/README.md の Validate セクションに追記してください: +検証完了後、以下の情報を discovery/output.md の Validate セクションに追記してください: **検証結果サマリー**: - 実施日: YYYY/MM/DD