diff --git a/ai-analysis-reports/repo_analysis_1dc5da6b-030b-4d18-bc7a-2a1edaabef57_20251023_073304_analysis.pdf b/ai-analysis-reports/repo_analysis_1dc5da6b-030b-4d18-bc7a-2a1edaabef57_20251023_073304_analysis.pdf deleted file mode 100644 index 4f27641..0000000 --- a/ai-analysis-reports/repo_analysis_1dc5da6b-030b-4d18-bc7a-2a1edaabef57_20251023_073304_analysis.pdf +++ /dev/null @@ -1,131 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 11 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 12 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 13 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -8 0 obj -<< -/PageMode /UseNone /Pages 10 0 R /Type /Catalog ->> -endobj -9 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251023073304+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251023073304+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -10 0 obj -<< -/Count 4 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R ] /Type /Pages ->> -endobj -11 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 375 ->> -stream -Gat=eh+e#+&;BTI.F'4XWL\4E/_jc&6fLnk^;'db0^c+32DMkXmBWB-nUaH_MpBP7DpAo=#\r7"!F/c4h@N5n^4K7K_VS^;PL"on8o:58^l0.uck-nL88"n+'8hQ0QC1E[KmJja1"tk"%U0'U!Kfik+el?j9LYe>S>/$3oZ-&K05#0_BD57\.pphBN6;'Hh5m&$fJhH(OHN;+ZtkPQ[GU-CA2kNAfguD?V\"4M=n[JtQrendstream -endobj -12 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 307 ->> -stream -Gar'#gJ3DU&;KY!MZ7]SS(_S,<\H>B0o#?4l2rkZ6!Ph\607JcoaoqQdPUPk^TU#_^*oL?$X@G:D$_J\92NiAkR8CN]ghWW.2?B`0W!'[J)LK!,h#kIM1kaI93!HPK"d+)N.1SofQst+V1G`annRc)MeT9M/FocW9g>785=;%qc3I_V]gR@_49W\CMSD9 GuOGd_3$@@V&oTcR$Pm7UqZ]1:QIIZU>+)`ob;DDVfkg=bEd;@(R0)-9P0=rNIii4=-A`m443ICNSEq>09tX)#Dlf!q?mVp7dkq;(Gc2MaNt=c?Sk~>endstream -endobj -13 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1585 ->> -stream -GatmF$.'sGoA:R1`@KgG-HIKW/qH&.Nu2GAJNlM0s=R8-[?8SlS+J>\6K3bp-6*pgGOmC6H:f5TX^\='!@JQj;Eo>V6k"qC\Tn5.-%>H6JBKL-=Vf1\DG>RR8YlZOmb%d*c5"-53f8='r.R_?A6Mg)n?B8plp%4h-DnB<\>R9La[&sls%gKD";t:CjN@!IE8a)gcndu<4'YVr2Dug9PDg^iRgGraUd^[,,&S'77,0-MhID`M?GgEEDn#86F%CKW>sFL[`UmmpJmJg-5T,)ZYF0sW*(dBM=SJZ4)`EIK.I7Y5$#!D!uE)\%5296KMeU]`31B7Kq_BK9F^@BM^,;5Ep/iMkV?GVL:LRML"]`q-TU7gS.mf>s1Y7iePX9`1.UTKWTouFhQNs(>.;IEq^KZD:o/&j!sisREB\@D@7mR(H=/ac3r21e6s57:B%%lP[C81SZu3m"eZFDP%H2;o6hdh]n=)"me=r4k4o@g9'eQhKB:7tVlVn$0^4^cnX02?!aLf%+)K4?P%a#">FO2lV%T0i@4QL3qf[cs0b]Y7&3Mpj"Ehk$TRP7=.Y@.a`5Z),dqFNiI&;.jhX[BhTL;euldb/VC92XBp+FV1_,h3tIWmpsh;)C#Nr70V1J:JuR/q?[c@Ybj#4t;<+Jpsn0cJrp`Z=e`f$F@#7k=l;c:PdP-RY(kb+IE6QVU3DQ46>QQ7&q2k>;knk,DSj>MY"Wf4jdia`t<(nfX-A"sN?SS=YR9"dpl%&uT*nI,Oe!%UL7OEI!$!;7g>q9Ct?Pi2X=nG>;k3U\d4r'=X9j7OO6b/Oa+rokL'>-td'CRd6>>N57tj)F@Q9Md7u*PV$>oTk)"(ofX_nq_n3?"&X47~>endstream -endobj -14 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1271 ->> -stream -Gatm;gN)%,&:N/3m%^&L.,9'jS!,8b[!%pBbVP$?+IO!:W$GYMIp[^-#XpX)_pN.6?kru,35@/OMZLpADZ6h\J56b.^1+k\U+Kd80So.))9r/K@?#AWa.n(`/d\'k#Qm(]N]Nk0>S_o)#)J"%[/lsRPe1'AV\.(%"UO7j;f^N>R%\+T3Naf`L66.5Bf(Ja&4.P_iTbs*f/2%;=.17VL1?dc4F61FP]P\tupH!Go]c=u_4\k5/YSouPMT_#Q4*^AH9=5nP$e/V6kN@Z4Z.r.qu38;tD,*HYPN[u5Co^ol3"Y=5]jGKqr3]+-u6pc@nPKH&"*N;fY9#^r`tW@D4UMfi#Ong#e,g$)P4-[oC(\qOfki-#J7a+\du&ES@SAYd;"s5uMpITTRRX1LJt.+8*j=IcX?j_KoPaOcTFU(Z6!1]p[F_,T)1kZ-j.sil")).5i:^c#ZE@CoXmDCI>3mNP<@Dlkukj)(V#0oZ=+ZXYhf5Wa9K6Lp>*/CLr5poi`k#CoZ)j;9O\F>A2)EbN0Zmh_M`saL+.[d*OS7QGda`N3,)fe_2f&qF&G$-Ul_1WnOf.-i0Wq[Jo"[Ck\U@'4d#bM]q6Co=@@r2tOj/E_6=lGOgMf=^ku7.cj`iY=+t,;l0\t9Y'tO+5qdS74rA:9i@m`3;9^;Rpt`s@QL]Bh@Rd9%,#sj#!;>D;S_uPbG8Vqfs+."fSU;"]M>8DD]gX3FSAc/o2C,_5Ih7gE@:>+lgSCFOe5p7+5r(SmT'$r0\-39lgXdMrQi4g^Gj^CK'Vp<;uJA^%R6HJIi)I(!sEgrPpr0eS+HFqQL_9s>PTj7Lp@5!l.Z@JVn1hG?LT_LV-6a3?gClXnl!1g^WQ:E-:pcendstream -endobj -xref -0 15 -0000000000 65535 f -0000000073 00000 n -0000000114 00000 n -0000000221 00000 n -0000000333 00000 n -0000000538 00000 n -0000000743 00000 n -0000000948 00000 n -0000001153 00000 n -0000001222 00000 n -0000001505 00000 n -0000001583 00000 n -0000002049 00000 n -0000002447 00000 n -0000004124 00000 n -trailer -<< -/ID -[] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 9 0 R -/Root 8 0 R -/Size 15 ->> -startxref -5487 -%%EOF diff --git a/ai-analysis-reports/repo_analysis_1dc5da6b-030b-4d18-bc7a-2a1edaabef57_20251023_073918_analysis.pdf b/ai-analysis-reports/repo_analysis_1dc5da6b-030b-4d18-bc7a-2a1edaabef57_20251023_073918_analysis.pdf deleted file mode 100644 index 4b68316..0000000 --- a/ai-analysis-reports/repo_analysis_1dc5da6b-030b-4d18-bc7a-2a1edaabef57_20251023_073918_analysis.pdf +++ /dev/null @@ -1,131 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 11 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 12 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 13 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -8 0 obj -<< -/PageMode /UseNone /Pages 10 0 R /Type /Catalog ->> -endobj -9 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251023073918+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251023073918+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -10 0 obj -<< -/Count 4 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R ] /Type /Pages ->> -endobj -11 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 375 ->> -stream -Gat=eb>,r/&4Q?hMRtEq)NPoZ:3T,@S=qk]pIEc.W2=HeBD59494'V.%'/B9eLoT4fJhH(OHN;+FOLp3)o'Yja`*P]\WI4l$0#q2hF05-;ljsD*D5L(=4>&S?+DQE;4pmZ3-FNqXpa^t%XsrEHK#hKGnKrj$AA`:".B0^,NXb=\#saG!1@89`.d#YLZ@2ZnZloC/+L%>$f&?LfQVk#j;ZF'T*k~>endstream -endobj -12 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 275 ->> -stream -Garo;_+qm%%#45!MZ3qfATcQ^JKrTd)@&ZTJ>c,AZ6Y.$"nqZ"&OM#$/6T4uIpYMj3@O&K!-\X:4b4kP#HC/qF26'8Y6B@1<#Vd:L"82O2g?I$<)Y4O=dRnWNGbPl1%b^fkaTo:^hae+jX=)ChEdrF5Z3IYt$_^;k$EgZ`h@e";Dip]SM2;K)~>endstream -endobj -13 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1412 ->> -stream -Gatm;gN)=4%"7kOn>.r*:88pkR]#V'iTU/p(o6Y`@,1;N^kWT-i=I1q-BLST#+=NI*YfY0b7Q-I>Q(3L"l0k):[@_>k,V#JQBuTV(E<#@].DfK\c*J#hba)>=abhXc8$&nkCS!*o`gi1i)C71N\S,B!Yl?]Hl>"rTUZ2,$%2(D<'>ZpDXi<:G^),kL^!\p1>;UP1=X7=6d\7b;]N"/AQ?\?%ZLsSi[sMh.&gb_Kf,[6"BMe`&eD@,0X%2Rh8P4%d;9XFRt'P:DV#lf`t9A%Un`#EB:q)26(db&[-KP]#^'ufWN-W[,#0A-bEF>Yf$RB]G+Id6;tc[Alg,F0*u1se=P56E%9Md--&M=34k*=A=.9l.ctA$LD[>d(<3lH/J)<_W@60I>!3uqfGVYOtkj`lL?FRJ1l>2#?JnA2@NEjbi3Y#]QJQH7eq-G]53ZVbfS?T@KlFRO<]LYOsTe,5A\*0."JYE%B\[m^A$:X7R/E7@KUTubiOAuuB-$4t3Ffa:b%G+5\4QVLe>6ErlMZr=QR'5LAcDqk2)\s]c?7JKCfD(C3$df9m(Z0&#(Da-3mbhHpZJJO7^W1^`?."V5c8)Ps$7>*%\iM]3)Ru1Vm=Yqo1:Ja9"sFu!5:#q^)Ao`=V]OOf^T*oE^W.dak+T'_p`iG%c_(6I*B\4WN^G!OH2@=R$A?HH^rZ4nbSF0lgj0uM6^2qP?K:prN3qlAXgNHbg(t66#6tRb!oLS]PXZKSm=j)Dl4J0J`ZJH+#0jC%bR:/9W?=,l<^Jkh;LrIqW$'8e*J-I$sI(ipV4t;XT*.7AGs>;angXV2KJ0=ChK.SJ*W,"^Z5S^b'BSqm'2AH37%G&.iS?k$T0?m~>endstream -endobj -14 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 295 ->> -stream -Gatna_+qok&-h'>TAi)8Z'BmGcomi!?;-:s?3%HVXm(GGm(p/tX[_=l4HP;N"2k$Y,XYsRdCeoX^obGt*J$1D#HFgCjoHE"]GL3g;e[XOQ.Cpi*N?j:_RM6s0E&hcJAYG&S"oa-k^k:#Num+s(gt#t5,Ncq(Ikbag4!umH9_*"QT/9f]Y[pEm&.5iqP)+(q(b-8RD)eC-^j5NbP4bAqJm0tV18I8P0+fiZ7N9N/OG5pHOF=O3r/Lb13X)oSTgigl*nLhE>QO!)o9KN39(W0JuQ.ketgW:'VG-BjmE~>endstream -endobj -xref -0 15 -0000000000 65535 f -0000000073 00000 n -0000000114 00000 n -0000000221 00000 n -0000000333 00000 n -0000000538 00000 n -0000000743 00000 n -0000000948 00000 n -0000001153 00000 n -0000001222 00000 n -0000001505 00000 n -0000001583 00000 n -0000002049 00000 n -0000002415 00000 n -0000003919 00000 n -trailer -<< -/ID -[<969a69451c0c58848b7c828fb0bea293><969a69451c0c58848b7c828fb0bea293>] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 9 0 R -/Root 8 0 R -/Size 15 ->> -startxref -4305 -%%EOF diff --git a/ai-analysis-reports/repo_analysis_1dc5da6b-030b-4d18-bc7a-2a1edaabef57_20251023_084808_analysis.pdf b/ai-analysis-reports/repo_analysis_1dc5da6b-030b-4d18-bc7a-2a1edaabef57_20251023_084808_analysis.pdf deleted file mode 100644 index a96a619..0000000 --- a/ai-analysis-reports/repo_analysis_1dc5da6b-030b-4d18-bc7a-2a1edaabef57_20251023_084808_analysis.pdf +++ /dev/null @@ -1,131 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 11 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 12 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 13 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -8 0 obj -<< -/PageMode /UseNone /Pages 10 0 R /Type /Catalog ->> -endobj -9 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251023084808+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251023084808+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -10 0 obj -<< -/Count 4 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R ] /Type /Pages ->> -endobj -11 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 375 ->> -stream -Gat=eh+e#+&;BTI.F'4XWL[q=/_jc&6fLnk^;'db0^c+32DMkXmBWB-nUaH_MpBP7DpAo=#\r7"!F/c4h@N5n^4IVoY]gr=j>3L4;B'9f0Ok;6FG'cAd[ATm6LjQc16W$H:bRtS7QZ%7@>c6\+Cl0&,"`6f<)a4H3I7GlIp=VtEouM/Frs_jnlendstream -endobj -12 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 275 ->> -stream -Garo;_+qm%%#45!MZ3qfKfZ#(i/"b2`W6Ym+R7CT/5MW(Vh2W0[=MAD0]p[M%rMXs>q6@-X-.7m2RV$LVQO;DIIijd0O'.obVh!I@e8QJAa\Gendstream -endobj -13 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1570 ->> -stream -GatmLhqh-TMJd.2VG@#WC1LN7s;^C;aOUCQmXj`>88<*hSm[s3tbGdu=LL^!]k12?Q+A>kM]MkZ+hP8qnd7%$Q'(6')ci[sN30WmeOKb^ER"CA@dPN+/,5ur^p\r'roTSkXc2o!;ZlrP\LHlV,i7Trh?;$p@1B/Ibs_JE3;Yj[ehP?hoRbVYBD&0CHh9OFgh720@7>2q>c9=&d;*SlDEgCdO6%uu7b$ju#sm24Y\@2tQ%Nc6BecZ4be&Wun_0Dtbc5a&*GZ@#1obi$WSY+^WciV'iSY='ZF/7LG719PB?1o\o3XU].7,!Qge/oRfTE91[H=hq19\Rih9%O-$Zb*[,*M4[R<"4b@@"Uhu3.+l*Hc1_/YoVT-HNs&G%g-5KVbV#bc,`TG/?g$Hl`FHJ4_UJ`Yc$MN%(82gFH+GF[q^E4k?$l!j!/5U@VW^e>FpWIlh`bd_^dcB[!K[T7-rX_kKS51+i"IblZO:/r/QqbKheNE(Qct;c&Fgi,a%Y)N-2VZ':ZZ!:nEe@@]GOXpmW:nFV*bE!:Y$Eu6lQn$u&dI^#WpH/s)n[484"+m;h*G+04:;ZokE=i(EQ1;3&8+Yq[<``tcXr6uGqct#:+h.'Q#mH'NGA25X9`McFZL?OV]R.C1G\O74[RWJ^^t_OEtM>)KL_"L)E!srZ7t[QG5T'ft&"a`F8UTD%aaR-g>=#P?Ff'2D_\eOAfsPbfIdM"u`MVq3n/CiG-n;8K0W\8`RB1Buh_q)J5e`l7s=7?&n)l=7ahqmH*@VkY*e7E]VH%cu[G_=MJah:,E'Q-e%D/pi\R`GSbQ"`F%Y!YMjNbZsVA4'1H9[cYZ^?V_!0FL81asZUEmG3"+2\/lpq#:*K4/Sit%:)(rf^/4:]KGTqFahNarkuO7aSXV?X7'o'F2f+endstream -endobj -14 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 721 ->> -stream -Gatn%gQ'uA&;KY!MRfO`@XO(#ls1.g8o;%;BmPa?Qn:s?dh&nGm5n(qJ2jNcU*r_-HgK'grWt9OGd6OTQ32M.@/.NfEC^k\,a"19K2L(ogLL-)8/!;V!R3JV-8mgm7nKe-,\%t%Td&VB)D33^SpLsF#mJaR(gnmG/FIhk=q+!r5Z@4JSqc5D:'$CuaeAajQZhZmC,>dph3:+4`?b&SRhU%:mW.X9ah$ujbiZec&(ZF\KY2ru"d6K]2*#MSrU!Y2^Ubq@VTBKDnB4Bi2G'@a+etCQ,]D,`jU;=hUsSYq_rmp0alh:!W2DbS`G0k.%"4$R9$mT<_>,k&(glc]l(K%1f+EK)'MT])9#e5inKSOY<]6V4f4N+^(CItk5mjk/%h`^n*'DDRB!:/\X`7Oj%C&LcHNl^+/S$GfGhp*W4"`Q&u2MO,4eO758^W;:UNbJ2;r^r)!=+#krS[=AQ8d/Rj)0X`d0UTrur\b'c\FQR5*6I$2=\@9aKf\?&FCOJZ[]QLI2Af7Bsc$#T<"r=q'\Ll9AB'6C?S)s76nhsiC/c!$u4r5gHU)Q:+/bu[cIMBgSq,'(ue(0#K)np4U5MZcU[Ip0VL**hr?ec)t[.PN9h/%V\fA=X^Dendstream -endobj -xref -0 15 -0000000000 65535 f -0000000073 00000 n -0000000114 00000 n -0000000221 00000 n -0000000333 00000 n -0000000538 00000 n -0000000743 00000 n -0000000948 00000 n -0000001153 00000 n -0000001222 00000 n -0000001505 00000 n -0000001583 00000 n -0000002049 00000 n -0000002415 00000 n -0000004077 00000 n -trailer -<< -/ID -[] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 9 0 R -/Root 8 0 R -/Size 15 ->> -startxref -4889 -%%EOF diff --git a/ai-analysis-reports/repo_analysis_21dc31a1-4ff3-4a88-b0c2-a20a03472612_20251023_120649_analysis.pdf b/ai-analysis-reports/repo_analysis_21dc31a1-4ff3-4a88-b0c2-a20a03472612_20251023_120649_analysis.pdf deleted file mode 100644 index 72d5ee0..0000000 --- a/ai-analysis-reports/repo_analysis_21dc31a1-4ff3-4a88-b0c2-a20a03472612_20251023_120649_analysis.pdf +++ /dev/null @@ -1,150 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 12 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 11 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 13 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 11 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 11 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/Contents 15 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 11 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -8 0 obj -<< -/Contents 16 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 11 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -9 0 obj -<< -/PageMode /UseNone /Pages 11 0 R /Type /Catalog ->> -endobj -10 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251023120936+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251023120936+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -11 0 obj -<< -/Count 5 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R ] /Type /Pages ->> -endobj -12 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 434 ->> -stream -Gat=fb>,r/&4Q?hMHL]_*8>`ukq7dD.Y6;?p5ti3-Db^>@gV8cZ-rrb<%P&3]^QqKSN@kofG#4KU&hdM^j@=l-tMd3!Ydon%$Sp2FND1[`P>#ri])e>$R6c\=;3GS1rSMd7<(^u#\rH<1NN,c(p_/K;kS\!VpnmKL-k3:`"GQ(e=F[5X)G'tRZX"k::CIn)lag6dk>nh6!k?V0i7Ueh8kK]Rmo*k*>a*k)1,qG)qQ^1priMeL>ucd9K'#5[)^,6~>endstream -endobj -13 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 271 ->> -stream -Garo;cUu,0&;T_&MVh9bf$#sFi_a,IGnKWLZ(":[frf$jm+\!=+tC[L*9PTAbn*8LWd.:RS]17bJJ^:qA1(e-Yd;SY6XQ&25g,iWk/NXFdccLoOr>>OU=;58'^GeqV("+pjqhJVC^-l]2J;U"m_b*`284E"SPjKR]7bTd]fJ4s9DnL(s2-@%iu_!@5u\:pc0`>AgCb<]F#m'Fom;?P6QsCi08KjDJ"2k8c?TN@IdG0R.mrN)l&9>K`Q5/kiC#=V/)id+UA4rG+\qJ~>endstream -endobj -14 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 2495 ->> -stream -Gatm;gN)%<&q/A5oLir`PR%@6#a0Lt.6CC!g8/@untHp+(m5OA/is/s7=Y9-*aD:+/gZclfn:8,I6E")k`LdaBE+#kU(;$cs2cM3VtGeW^^4]Q5TeTZs1@h?c.SV!_:4n!(NZ+^$chjN@5&qHT=U+EiB6aF;psDN)"TfcYaE;9:L7^Oce7mQ8JJ^tAZh*dT=rTu.1Yf[r?n^sB!7iskrf8--_.u#3!nL'5/XA=Ju5\D@t-sOd,sLAB/0"U_1J2rgmp!Drgs"N:4MEXqY75d;%%d:A8Lm\Ac/DXK+p\A#Fsi<;3Y8(K/#Xc*iVa?Zs9Z[H@f5mZDZs(RTS`aV!+"A_U*-8WT.'B>kZnl$GWbV;W&"C50+.%o*m;C6sR1RSFL7.-*.$`C94d9,BW`)b-kHXLpOIT't:K*R&/7*q$R/PNcEkDH,-Nj86"ipB98-V(f7VC@c`_H_J072K+V'd+.9s19XH9+6#%ddm:%F&irLU0Hkq()ShKA=Z_n`b3eW;6fBV/NpjIRhLu6uQl(>,Bnak!VseC*Y(L%;oD9pK=f$'-hjg)5fRKYRT/`$-rY`JqPX"5a2u0Vah+Op6:?YGW--,uKn'VEERTf@B@7V"^3i@s4V1/6b3D0r84/W@MSPo[73f`/P>j41f#!;tqE/[CncbhL%*DQI9G',i)UCWJ!$0<%i4$cK9ZG`@jgZ1DT8dTd:o=[gcE_SWh`P2gM[)5:k'otMG2U\O^PbP6`^EY>i4G>Vs`lnm;%^k&kbArl;ZI7`eeqcV(ZBSJ)-B9i:eJ:f`A>`TZfRV9m`CfX3k'6'iW6JSr6'aUTElqb_19V*X@k+SM7$JnXoFN.[[V9Dh?>5&("-pn.8qe#b8N??XIR&Ya)MO=0RN@khDk^>jfggGE0[c'9jcs;M-+sSAOXWo"iB3UUoX0"o4nf<%8AC_Ri$&KOhlL1"\;"5>.(6HDgFC+t!ESfRgl6(=+J?7.?Fo`:jCTYgmgsDs$<=,*P7fQ*!`_?POnA9@GA+!2<$4\hL-/YOUj])UHTK#QXkX`%%N#PXlaqlYFXg$B7Wh_e6X%&+D":&':96h_f/WDh.pR/!=)[R%ROik.;Ia(@o45[*@2WN$&(SmQnK02&4Mt1%V_B7]5W;L>0/@)rWOnm\W`9H(4=jJ6Rq)$PY%(-CO-^4.kMrLGC`psW7nKDpM$<(#?a,YokJ;>!Q5suSPYG!):o&kY7].F*EB,(@pg2)3=CS57us9[TAOY-l>AQ\%MK3Z;!-PL!?C0]:K#->0s6NW&2U,)"=+@mQ=[Ni:ln"]YKpD1t3r&5P4aD]+@:r87nN^X0dP2S-,NZip*i`QB5oWbWj;%>S1eG02'V2k>pYSh8Z6*W9\.s-Ced"A2G)>%C#+E-\p&mV,@"9`kM/iY32W.=?KP:X'\@!@rI>69G/[uLEpp>oN\EU2;m*?::DffPl(2or,/Z(hqIKt$YalT[]W(ZH08R9FZa/!r1Dt7""unoKVWlAk=36GXO4\EBUZ^$k]8'rZNkC;Iarg[u1LT3ZbQuHbIl(a/U80g*0n#NCZG'J8Rlmj4/Oq7uRbQQ.C3#OVfP#R1IX+G;/;1=DOCNrf>>P+$RIldbHX=6#<:?g@H-BD8gTog!&+sIX;E*Ge.:5^NJZ&"[6AR*9oJu;PXSB)5O,e/b[g*=\!Lgh#"4c<9]*WEQH&49VF*3Q>:PrEJ(9mJ3a1?J8)K(-Nf\,KqM&SWL*pWQO/$#W+gqA9HUC?Z&FR,8:fqN-7"^r&u[aJhld5lHQ6S(;V/nKnE.&"i08nA>`%c:*m:A^L(LD\'SOF,(7!bn&(.Aendstream -endobj -15 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 2981 ->> -stream -GasIi>BAQ-&q801fZB&81DV2a^-ut#U*T.uCtDS>QcsOo&sQ4V!!A=Kh-YZG"aGT/[qD4UbR=.@mC0]tcknt\s#Vfh5-F,*k6Xk[[*!*'P+9na)_G*oI_M8XDk:=_g#PM@EUhuh-h(O1+5"ggS=T<3-LYr]%)U"jfT\h<=_QDh8YRU]2.bHSQ&8`_mAP";D_,Uc9Z^DjWm+RJgAH1gX0&\\W"QOfU-%K)l+>;O,>5$%)3*jca]-Ltn`F2cq@C9=UB=-?Ear;o6>)P)9'T+8<(Vko=(PBV;'b?+&"qX^%cNq"c9J8/8b"a!H3JM5dhKY7:Xi@3W21;8M)sI=ch:=SiPAEhNE*4FP=Z^Zl0Vp>k>pU?]2jl+hs2"WVGLTV=28ui#TqgW8YUNhF&/s),mg&Y<@u[g6bH>TXJ$X&3AS14NO\<.RNhH8AW,&A1HCPW'WbOH0DQ_X&u6'fNuY^15AE0DFuMHO>2@bR_<"XJl;uF8stfDS#.O2YT'Dt;;+$t6-)DlBPGFh'rhb#rbN,j$O8c4,I%o<;q_q6]Ti-K1j1+NqE()6a&^#k^9'5&M#h3@'q-nCl(a[L,=On1rLc+Ub.1!Q@oDu^UXV1Nc;AGW'YksmLH(4!kGQWSEZ,4(8s;&,O;FK20B3tblkBD;L0_H)jl^:V`lBI)(GG@L8)[9@-K(I'=(SnM&fG:p0d_HXD[_EJ0lo@*#=,p_!nE]$kG$BZpAdP>RGi(3L`$](ai^6SO.'i%M/tJW52BE6(XCLpW=$dc)[eI_N#MaP=*I^fIp62aJ+5J3?-O2;b=*hu]>`m0mgInuf5*@:`B4s@fOEc_!JWrD@Xt6;2@ZDLbKn;Ak#aJU)=ZV+!W?_NZf@D,p?>d$o+FuYCV:%*)i.,/Z3spYE@>VbRnVI.r@P?(d;2(KM>!\04mVe7ik=$!d]@m)$Y6j!VD+JeVX=#I(([-Qg5bn2F)n0h0;;&_t,:4_5!PK@;?"@AiQB1=qZjfJNt,03em7XtN`_Lm,obtI8X'2r%6$EKoV^ep,$`gFQ:q[E1?#'67hY]gP^6Me31aN#H-4q@\#bjnsb7+Wi)Z9GoSK=B$nUG^b0Tg7P=Xd76e(`KpM.F>Y;pH7,P^#U'Dh^8Mb&M(GLRi=Gplk2N%Hh]m2@'P?Ofd%ND3"C5nP&):eONq*%rf?&ucq9nIt.!-"s"qM]D!b`[qU/i,nVe;8TURS.SBI*CUi@SSZ/HGtX=QdD;0`NPSf[tEQ3iH[V[>2.S[P^.,H%0#g6\EV&oRVEa]a0qHDc0Y>DiE2lQ;#^7$'S2EOSY.c3n^`WFPXA#7YK6/b5>_#.CTenoY[GW\fuV9E2CQb3llXhCl8n19=C1=S<.SKR5'O[DG*&8sC'Ihko-o_\iHeM,"\o/KEZ;Y0NODJP\m+[9?9oS7:`7_1kpg#0HN&.E9X9a/:\_F$PEVX,=2E11%E_naVX0l'H#E&3IK6Nm''U=iM;fL>"8Tn]+s=n4DCs%7*M*"(KDg-(E1m-PDEa4k$*d9H)'hC_73#0Zs3Qt;RB(dGA(6(@pTE/sB>0N'YPkFUs4k=?Hf3>U!d\JG`N:pdt1?F9(>DEH>qHQIGQVPYa)MVI3JMo+G!W2IXhVHe'i"&jX:\k]muoP.9SG`CNpnQ<&ZH&+Kdi$o6HOoKuL\>;Y?'MA0\#\#FGJq7YIB_a%nd4O!Y6he<1\^M4==!JdMo](p)2T]rpoeT$eB@S,2mDq3lr:-*5E7Ir)c+dRkIp%02@J48n1C7'??.AM_h@d:oUs/X7&PqkD*Mj$6Mk7GhFiu[B*?f^rL_Ii.6PjJa!bO]^g@%&LFJ5G[K#>eH8I2p],1R4'=V_##R@mtEN_)^PG$8:L`Vs9h$\IDrD98o;&Ba057K4?a=kWn!WO&.`f\Mj/&sQEnu#oXk&>ZWqR/K4T=:Zd6W"l(+mK8eo2TGSlcYt\YRN7-r(b(AS;bM;naqK8]7[r_Fb%>Gkko+FbXY9\.!S'T"/<'sKr)4nQG,`&C?t2f_TH!d>Bl1m[#_oOXu.OO&Y@lajNPLH&c0QL]^7sB48:e"Cd?Ggbsg&X8&\[s*]@1phJgGq6?kR0T:Clg?>ld>gk%W>ddKF0`D=LkAi!+sN24CA;2d_@%GqD']s85%A^/C7=Qt\mjXM'EQeifZRhq8YBIIT((po.[+48<&GYPnd"'n^c~>endstream -endobj -16 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 2194 ->> -stream -Gatmt-TP[TQL*_FJ-@*#Y#u<]&R0]loB"YdZbT.-VJI5H]]jMr`$,?O_)?bq6tcs`@fiVd$56&B,O@cUrl,7ll;4XnK\]Mb>flAfRl"b[Su9_.(0jQQ,SJlUT27?3CJc>3m7u?r6CUX!#4*Cihp5N;IOapABm,#HSB_F(0[T^"*O@dC>)W(aCG>2Y,Vn!HDL>fWa15=TLH_LkCg(o'Zk%7q%WUl9r;i"no`&6"oX;&-G5_#H.mA-[gf!EnA`k<>la^$8rlk'O(s-Y"7X.\aVN6"XF@,Dq%-ER8HFX,GI`O9(<@I"%sF9T:t7^&&t`eVO`r6t&gAs?D_Pke(2/QU$k3eVlN`M=d,cLUlUaT]OJ[F1Ig>Vd@BP36*;=]q([<^Qt[sNBpL$05X@4)D/8&`sRKKrmS<[%-5cC;,VIEiConHmLHgZBZ*mq:.B"kROpHV.?hu7<6dZcCV(!-kmY0)r%\YSVba>@`/pX=Nfd5"[CPq5K8@H0m3k+="[k2^.Tl),s>%0(6:Woj?5Ep]](eJ"772nCG>HtT,NV*38)[3jQZKlsk7q+-:M8?qGC`%C&KA)HbnE`=3L,K%p.d57u1DZ*?95#pf3dedPFB-*[KihZ5/ZN&U\h;3RSlKG/U.qkO)&NJ0)7V'BedS`[8VG,J[M?5p&HbjC*.M8oVtHmWDR`EGZngi-#Zt+C^NsUniAHq*It,;tE"Q6h?p&+dt=mE'/(C-^aP(h$U@"Y7UlGlfk!-/aP$EN1N,/Xa3fikZ`-0XL%IG98)45r=tcP(H3KqMd1;ajrf%bVSG"5mYjo*Q.-eabe-3X*'9MZsnL3bB(KslFCATA:3hT3&h479AMQ?'Po=qHcrInb!gTO[O[,#0"h3+eJ.saqSZ-uHc1`:JhM2XUtA`+(\lGS:P-"8d#3@><^4Mr4"q4euj\a]YVnt6RTidha^oH4Y1r;7q?Ib!hX_`kRF7t#>siA3YWO^gR7YsBJ+;9eY-'JbX&aW3h6[`NkP[!Y*TDa_2;]6TJ%LUQa9[Zf0=`bt1Bn&G9XOhOLPqfjE(#At5Oc025@STPhuTc:m:1H(9K(`o-N;=)%oA:\HB`l**ehn7YT*Q3GfLn[dEmo7[/O8krdVm.8)]*,giLMt0TM1.8pKVi_Kk&spT^O4iA9X#G/`mToq\j4GbVJ4"CmRDU9W)P`kpts`ZhU5otf,>%OZFiDO8V5Z$?jfc_;puE/.lr;G25\`i[OWFkbBQ'[N[?LekrNpA.kE4^Cg%ZFgi4SBEFZkgJHCR7XsD/%O=OQo=^gK7WbuW[H9M)jU0cN7i+]62EkB5KCG-jHSp\11!e/E&'/@Y/-~>endstream -endobj -xref -0 17 -0000000000 65535 f -0000000073 00000 n -0000000114 00000 n -0000000221 00000 n -0000000333 00000 n -0000000538 00000 n -0000000743 00000 n -0000000948 00000 n -0000001153 00000 n -0000001358 00000 n -0000001427 00000 n -0000001711 00000 n -0000001795 00000 n -0000002320 00000 n -0000002682 00000 n -0000005269 00000 n -0000008342 00000 n -trailer -<< -/ID -[<67658a8ea194f62293bcda563fd11283><67658a8ea194f62293bcda563fd11283>] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 10 0 R -/Root 9 0 R -/Size 17 ->> -startxref -10628 -%%EOF diff --git a/ai-analysis-reports/repo_analysis_21dc31a1-4ff3-4a88-b0c2-a20a03472612_20251024_031900_analysis.pdf b/ai-analysis-reports/repo_analysis_21dc31a1-4ff3-4a88-b0c2-a20a03472612_20251024_031900_analysis.pdf deleted file mode 100644 index 8dc708a..0000000 --- a/ai-analysis-reports/repo_analysis_21dc31a1-4ff3-4a88-b0c2-a20a03472612_20251024_031900_analysis.pdf +++ /dev/null @@ -1,131 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 11 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 12 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 13 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -8 0 obj -<< -/PageMode /UseNone /Pages 10 0 R /Type /Catalog ->> -endobj -9 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251024031900+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251024031900+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -10 0 obj -<< -/Count 4 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R ] /Type /Pages ->> -endobj -11 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 434 ->> -stream -Gat=f9i&Y\%#46L'g<*qdj4l_]3>jL9`f0ahQ*^eCWDm(1_T)g-g#ri])chLIiUT=;3GS1rSMe7<(^u#\rH<0lkdA(p_/;;kS[VVpn=;L-hqOOsQ(8WB64WQ\?jHendstream -endobj -12 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 271 ->> -stream -Garo;cUu,0&;T_&MVh9bf$#sFi_a,IGnKWLZ(":[frf$jm+\!=+tC[L*9PTAbn*8LWd.:RS]17bJJ^:qA1(e-Yd;SY6XQ&25g,iWk/NXFdccLoOr>>OU=;58'^GeqV("+pjqhJVC^-l]2J;U"m_b*`284E"SPjKR]7bTd]fJ4s9DnL(s2-@%iu_!@5u\:pc0`>AgCb<]F#m'Fom;?P6QsCi08KjDJ"2k8c?TN@IdG0R.mrN)l&9>K`Q5/kiC#=V/)id+UA4rG+\qJ~>endstream -endobj -13 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1581 ->> -stream -Gb"/&a`?E"&A@B[qD+0hQ#H^7gjG;3H,_HiZ:(URPDc,BR1:NX\9LS[r]L]'PUK\-A]MiUb!Sk_Tbm3@Z^V$4+"dL%k5\"9Ho\&h)>L[+\\Z*HK;%2uhOt;@\DV>LE*^f/'=_IIlIakmK38=gL@*^=YooT[:`3R'7u_T>c%+NEDHCR:(lMsg7_iTAP`XT3=s\JfQ<1*UP<=Z[3/U-/]gWJss"1*o]BYKk)driH%Ad^b!gP+AcqgN*Y>_!#%bGE+Ar.A$d6,4RHkn8F75,CC?Dfh]/H/fuNshLbWru#B"E@[m$!0P,8,75L%?tLe]O*($THqKOnaF2E]IMTEGfV2Jn]<)j@/LbK+)=?j99.pSL.Ng=8jkQ_%7mo&iZ,8*P2W.$=^9'f;9MX;a`(,#0S(\k/h.`;7bHG9eQ*%!m%Nb3g"N_OpS7;jq*(I&QrL][7@QcaP71M7(A*gF`e3a)r^M7(f"+eAZ\%Xf<'5Ut>sea\,jgkBLp*G2gQCfIaHeGRK6tb42Cgtp;K7%u`fg)^c9D7>==X9eV]54Pke`Md2AVlMSm1LRRgEf2/<[E>IKs[h@.3Vn'GLR(>41`#>RJ0R$@j8c6h6U^dAJ<1i[_/TSbblp\ei?ZA;SuBT5Fbl@_/4]Edchn`dkjW>`!U[DN5g/Es)dkqV/Yn\i3ODWI9<.$>eQJX*(mJ]CqNWEQp9C*`lJJM/-O<"6.iad;kl/@/C.G%uF:%tk6R_>/O&*g0VnqE\\'`)=^!<8b`FVdl4]m[-k)>?aBr7p@l1--==[UC4"7SlHYM84#rol-Y+\uajh0OH$m`l$ZkI+T>>hd]uV0dn#WM*XF6Ma>1d0eh,ZT(IdSP@;Y1C$k)o_KgIJ'nVTM4BFM>oA$="JFVacYjYBAahK4tX.`mA=!dP6A,_B:IoH@t9BWr=L2s]Tn#dsWT4i2o?7k\^O[h=MBdqdXVkn4A=-g/Z?F_o)CRe`._N]gl_aBWg7\+Hc_j'>#/Zh'Lkkkg7e;X\~>endstream -endobj -14 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 705 ->> -stream -Gat=(>uTK3&:Dg-fLO(@7Zq?+k,kJ2Baa;Br!+3G$%c8OD$;9d^8H?SJBZO'Z#=5mV*3_<`51ZrX)HMg?OL+DF)Z\>!\P^SiYJ:un9;Z,bX=m6X>22l6s5gg[#D:fY!aIT7!Zf3>_JK$3'fVHfWZoZbSZ'K>E-c#J?=!ilp`[5l%tBOt2:K:DhX+Z#F"0Z:Z1fZ8jhph09dB-,&Ep>\>/V3sAd6MOEW&;c)>*DsE9`-Tqf<=C'nn)@N$VlS3X@J"1sob.#1E_WZtW%P9#>7d&X9(i/Ssr*h]C2DaB[0G^3`[$@Mh@I?2:?#0)sZ#eI%hB]tZFpkm6r1h80QRtmdB0H!f(2^+S&*8ILjlXb;9HQF!o;9q`lX>3YR/[,iP.[t-<=^f!Irst>[')iP_]_aJL7;"&F4Y^LEj?&*f:P"UlSnKlL7)*=#%i#c$OUi6~>endstream -endobj -xref -0 15 -0000000000 65535 f -0000000073 00000 n -0000000114 00000 n -0000000221 00000 n -0000000333 00000 n -0000000538 00000 n -0000000743 00000 n -0000000948 00000 n -0000001153 00000 n -0000001222 00000 n -0000001505 00000 n -0000001583 00000 n -0000002108 00000 n -0000002470 00000 n -0000004143 00000 n -trailer -<< -/ID -[] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 9 0 R -/Root 8 0 R -/Size 15 ->> -startxref -4939 -%%EOF diff --git a/ai-analysis-reports/repo_analysis_21dc31a1-4ff3-4a88-b0c2-a20a03472612_20251024_032028_analysis.pdf b/ai-analysis-reports/repo_analysis_21dc31a1-4ff3-4a88-b0c2-a20a03472612_20251024_032028_analysis.pdf deleted file mode 100644 index a984155..0000000 --- a/ai-analysis-reports/repo_analysis_21dc31a1-4ff3-4a88-b0c2-a20a03472612_20251024_032028_analysis.pdf +++ /dev/null @@ -1,131 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 11 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 12 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 13 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -8 0 obj -<< -/PageMode /UseNone /Pages 10 0 R /Type /Catalog ->> -endobj -9 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251024032029+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251024032029+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -10 0 obj -<< -/Count 4 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R ] /Type /Pages ->> -endobj -11 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 434 ->> -stream -Gat=f9i&Y\%#46L'g<*qdj.YWDRUeoRKONN]iS>UerDU.BdD2X:XX[,`l);kPXB9%H=#>/YRNA#70@Lu6#]VM:rqLE0Z5)\KPBRsH=U+!'B!D[P%:*8%\#_:n.Q;3GRo]9F.^AER]":BkKFJm`3m&##=oMCn7,5T-FYe;PM(bpF"ALn^'/Y?b`/;6)!TU(Jm$e+MFe.=\Lrs4j*D8n8K-,lu3F'eosSAn5YqbSn)>$It@m]2tl(8*<~>endstream -endobj -12 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 271 ->> -stream -Garo;cUu,0&;T_&MVh9bf$#sFi_a,IGnKWLZ(":[frf$jm+\!=+tC[L*9PTAbn*8LWd.:RS]17bJJ^:qA1(e-Yd;SY6XQ&25g,iWk/NXFdccLoOr>>OU=;58'^GeqV("+pjqhJVC^-l]2J;U"m_b*`284E"SPjKR]7bTd]fJ4s9DnL(s2-@%iu_!@5u\:pc0`>AgCb<]F#m'Fom;?P6QsCi08KjDJ"2k8c?TN@IdG0R.mrN)l&9>K`Q5/kiC#=V/)id+UA4rG+\qJ~>endstream -endobj -13 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1581 ->> -stream -Gb"/&>?BQ=&:Vs/R$V^CSm>E\jVr-"KEi]hC1DC,oB^p!p#<86hV]uP5_;l@[2`OKc0UQsrG,R_g/i_WA>h=&e"E#'@3];2t?ku%r@CnF=/4a@n<(9sc;<&X=1SAobgQe6%`aTg`@2:4dE,dOoqbTEQ$Bm+sq'`@Oiiff7*Q'e_]PZ@aR:"l$cNB(:pmjF,#e9ic0g(4og]PH8M_!#%bGE+Aq:dFiS;J_4S0Grgn0F&Y>_"5(]Q,ILP8L,a."@N3M$Wj[KU!m%JRqCi!77qd+R(Hlm-CJ7][6eAcdsMQM7(A*gF`b2`AJA(,21=#l=)mNi]jhpk%-efr9kY/UC9rn\4O:Q7])p$QT_*2*\MhDd]QAlWTgjF:J-kT@c=X'YXZU@@;W^K[[O>[h/-"OE&9ASO7UT5?(H1+`lY!e@!44XhICa'a3bNo"_Hn'35cC$/G)O>dHiCq-'DLMGE:A81Y,]Nkd"C>71AJnNr'__.4ilV",33SVK-(4%L[7doQT_rRiaitB_tYh9DH7@6>>n7I/;GGm6CH.pUGl^r+bZ6hZ5dZSDX:bkpJuI==o4g7s,eJKnoP:KN4p)qA05'b_=Cn)7>>_2e[f=kBu8oY4r3H))@kQ@Dp0^m%Zcj!Htk^&Q6r5eE_n1D)Yr'W^9Of5[2]e:-"p<0)C3iMkccu`HhKp2_jGH'9,'$3[r.C(!^pn!@rt;OS.:7,>\QmF@nH7f.)UJanXrdH?+'*\MXGBIk_"YZS\i,#V*n'&_O5!*_pfgQSj$[k=amlG];"o)mmW#GF6um$jt$Y@Si/Q@Seaq$r"'Z-b[@leY$L%[!)%GiB4g6$:2cASgtf0H1$na_"co2d$n:JPCH*jQUAOMXpXI_`r'INri5s!QHjbQ%-;6;hlS2FT4i3*?7#+kO[n!CBdqdVVkn49=-g/:?F_c%D4IbW@ELsGk+TmsUX%Jc@ENXl9?YU!3^3XXj,E(~>endstream -endobj -14 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 705 ->> -stream -Gat=(>uTK3&:Dg-fLO(@7Zq?+k,kJ2Baa;Br!+3G$%c8OD$;9d^8H?SJBZO'Z#=5mV*3_<`51ZrX)HMg?OL+DF)Z\>!\P^SiYJ:un9;Z,bX=m6X>22l6s5gg[#D:fY!aIT7!Zf3>_JK$3'fVHfWZoZbSZ'K>E-c#J?=!ilp`[5l%tBOt2:K:DhX+Z#F"0Z:Z1fZ8jhph09dB-,&Ep>\>/V3sAd6MOEW&;c)>*DsE9`-Tqf<=C'nn)@N$VlS3X@J"1sob.#1E_WZtW%P9#>7d&X9(i/Ssr*h]C2DaB[0G^3`[$@Mh@I?2:?#0)sZ#eI%hB]tZFpkm6r1h80QRtmdB0H!f(2^+S&*8ILjlXb;9HQF!o;9q`lX>3YR/[,iP.[t-<=^f!Irst>[')iP_]_aJL7;"&F4Y^LEj?&*f:P"UlSnYKW[,!V72i#c$pUiQ~>endstream -endobj -xref -0 15 -0000000000 65535 f -0000000073 00000 n -0000000114 00000 n -0000000221 00000 n -0000000333 00000 n -0000000538 00000 n -0000000743 00000 n -0000000948 00000 n -0000001153 00000 n -0000001222 00000 n -0000001505 00000 n -0000001583 00000 n -0000002108 00000 n -0000002470 00000 n -0000004143 00000 n -trailer -<< -/ID -[] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 9 0 R -/Root 8 0 R -/Size 15 ->> -startxref -4939 -%%EOF diff --git a/ai-analysis-reports/repo_analysis_21dc31a1-4ff3-4a88-b0c2-a20a03472612_20251024_032255_analysis.pdf b/ai-analysis-reports/repo_analysis_21dc31a1-4ff3-4a88-b0c2-a20a03472612_20251024_032255_analysis.pdf deleted file mode 100644 index 1a62b56..0000000 --- a/ai-analysis-reports/repo_analysis_21dc31a1-4ff3-4a88-b0c2-a20a03472612_20251024_032255_analysis.pdf +++ /dev/null @@ -1,131 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 11 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 12 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 13 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -8 0 obj -<< -/PageMode /UseNone /Pages 10 0 R /Type /Catalog ->> -endobj -9 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251024032255+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251024032255+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -10 0 obj -<< -/Count 4 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R ] /Type /Pages ->> -endobj -11 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 434 ->> -stream -Gat=f9i&Y\%#46L'g<*qdj.YWDRUeoRKONN]iS>UerDU.BdD2X:XX[,`l);kPXB9%H=#>/YRNA#70@Lu6#]VM:rqLE0Z5)\KPBRsH=U+!'B!D[P%:*8%\#_:n.Q;3GRo]9F.^AER]":BkKFJm`3m&##=oMCn7,5T-FYe;PM(bpF"ALn^'/Y?b`/;6)!TU(Jm$e+MFe.=\Lrs4j*D8n8K-,lu3F'eosSAn5YqbSn)>$It@m]2u#>>*r~>endstream -endobj -12 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 271 ->> -stream -Garo;cUu,0&;T_&MVh9bf$#sFi_a,IGnKWLZ(":[frf$jm+\!=+tC[L*9PTAbn*8LWd.:RS]17bJJ^:qA1(e-Yd;SY6XQ&25g,iWk/NXFdccLoOr>>OU=;58'^GeqV("+pjqhJVC^-l]2J;U"m_b*`284E"SPjKR]7bTd]fJ4s9DnL(s2-@%iu_!@5u\:pc0`>AgCb<]F#m'Fom;?P6QsCi08KjDJ"2k8c?TN@IdG0R.mrN)l&9>K`Q5/kiC#=V/)id+UA4rG+\qJ~>endstream -endobj -13 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1580 ->> -stream -Gb"/&=]='G&:XAWka05(.]^dP7MfuN9EN1ACpR,eU(hl,b3Eqf5fd"*qt;dO2=<=qV7$F3\qA=Y:lD?i98#q,l(uT??T8k?s#1HeLgu'kLKAj33UIQ'IEP^V"iOYV=-ZHtre?QOd#."TX%,81X@mN$ATea4/NuDNXc%+N5DHCT0)iI.RLIIXp_WAJPmR-O6#>DnMoRjMsKtimamMNBhk&&T(aaA]<4:`u0i(rK#-K+SbcgVodE=WK(-)S`Ddq.YSn$!^kcPhjgJ\O75b5;$IR(AVbLc2bJ`jg4FMC]0>@C/:Y/7F&(;(5Zs;F)3oBU.d5=^Iq6RML>Ta'g663(Wu2nX#X-mA`PIG(^^u?PJ<=R+joP^.Zbp8+%;H]E)la3=?Lc^5]m:Qqh^IO8lG!is1\5hi^/]P!YYmPd*9[\a/UPgb&cZH9lT3NE1:O^,3ApX?@?OG"&&NXtt&NU?ucl0#iN^jW9FEN3ln#blp6j.)0A'I9^-B_eKH!Pob:N_]!Ei-sSQ6fme3:ehZ>9?)*Z[E[&=dhX,'l4s0NV*APknfBgdGK_nOF-qec!nGq'di[r[b4A%IZu$0DA9HtJ$0r(5a^.9q_]tQ6A?@U^c+LKP<]+o:o#O.aP.mB56qf1`LXdtHZ>CKM_K[6d>7n!8GK`GGq*5I4Ia683"2Q19]euX\5b0DR?(>b@p,%!E$l1H-?Gs^)ae9Y%;4*8r8.sWFDsB,%Bo4Jhb*Lmq/uQ,pri"\mJlU%$+?gCL<8;R;`qi,_EnAoM7%[hFtgs`/N_ObrQgT*a:Ms/3ef=XhhiS_&$FYpq6#`GJT!'j\n.jT_W0'.(@)tZ%c#!@bR6HAO48E%C-%B8-D-HI:oN@lq8Jo=Z#-..GHLb2[?.]/h[VI<$J)RFP9A+,=ufg':\)/';nL_n\GC08H9<'M*Y!$?O)G5h(J!)0W=a>J2!RWpU`b:j37H7[X<j3,p1?omO!s,PmtO*@dGX<'7cH9LO0"Dk;RSS\9A*p\/7k>'JQEq\MBrN$e~>endstream -endobj -14 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 705 ->> -stream -Gat=(gJ6c_&:O"KS4=?3KC.<2_V6\Id,)0l*sd]2L;rX./uX97j'HD!T[H;,1=DS#T?5<^3>ao,orVHVF,@4r%PCRQ_.=ffrkPkD;;s>Q#FUg!'P358/b:&ho=t!Mr.<:^i,0!l`$JjOZ`FV&?c7l-J),*grCpb3n2hLit:MeMdgra3T-sN3H:Hj4&3D%re"3Lk5V[#&p[`!lHFT0t,6d)sG6GLc9jd)SQG/i4i/1J"Y^.3uRqF9qkLcU_+Xf)\f)BpV&c?4m-.nW%0>/JXh)`,A@!O4d"MX^l*60ncKj8hoX2(uri\Cj[E1K1ggA)&MkNJr)_s/_gJbi?4PDVPJr/D'boLd*@H&u"OHO_!cQX@Ks0`?8Xac7T9F[MjQ87t:*c/9,NAhmUN^.o@O`BH-3f8t5#fDom>mI\aSR-r^3u4W!*_W<7F)rW-*6UiZ~>endstream -endobj -xref -0 15 -0000000000 65535 f -0000000073 00000 n -0000000114 00000 n -0000000221 00000 n -0000000333 00000 n -0000000538 00000 n -0000000743 00000 n -0000000948 00000 n -0000001153 00000 n -0000001222 00000 n -0000001505 00000 n -0000001583 00000 n -0000002108 00000 n -0000002470 00000 n -0000004142 00000 n -trailer -<< -/ID -[] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 9 0 R -/Root 8 0 R -/Size 15 ->> -startxref -4938 -%%EOF diff --git a/ai-analysis-reports/repo_analysis_21dc31a1-4ff3-4a88-b0c2-a20a03472612_20251024_032707_analysis.pdf b/ai-analysis-reports/repo_analysis_21dc31a1-4ff3-4a88-b0c2-a20a03472612_20251024_032707_analysis.pdf deleted file mode 100644 index 1b55d19..0000000 --- a/ai-analysis-reports/repo_analysis_21dc31a1-4ff3-4a88-b0c2-a20a03472612_20251024_032707_analysis.pdf +++ /dev/null @@ -1,131 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 11 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 12 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 13 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -8 0 obj -<< -/PageMode /UseNone /Pages 10 0 R /Type /Catalog ->> -endobj -9 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251024032707+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251024032707+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -10 0 obj -<< -/Count 4 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R ] /Type /Pages ->> -endobj -11 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 434 ->> -stream -Gat=f9i&Y\%#46L'g<*qdj.YWDRUeoRKONN]iS>UerDU.BdD2X:XX[,`l);kPXB9%H=#>/YRNA#70@Lu6#]VM:rqLE0Z5)\KPBRsH=U+!'B!D[P%:*8%\#_:n.Q;3GRo]9F.^AER]":BkKFJm`3m&##=oMCn7,5T-FYe;PM(bpF"ALn^'/Y?b`/;6)!TU(Jm$e+MFe.=\Lrs4j*D8n8K-,lu3F'eosSAn5YqbSn)>$It@m]2uAuM,Q~>endstream -endobj -12 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 271 ->> -stream -Garo;cUu,0&;T_&MVh9bf$#sFi_a,IGnKWLZ(":[frf$jm+\!=+tC[L*9PTAbn*8LWd.:RS]17bJJ^:qA1(e-Yd;SY6XQ&25g,iWk/NXFdccLoOr>>OU=;58'^GeqV("+pjqhJVC^-l]2J;U"m_b*`284E"SPjKR]7bTd]fJ4s9DnL(s2-@%iu_!@5u\:pc0`>AgCb<]F#m'Fom;?P6QsCi08KjDJ"2k8c?TN@IdG0R.mrN)l&9>K`Q5/kiC#=V/)id+UA4rG+\qJ~>endstream -endobj -13 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1579 ->> -stream -Gb"/&>?BiC&:Vs/R$V[RT%5F6nr5R6@EU9i&41a?`,Qe0]_*TG!i8'Wh`J.*fEmZHPfK@8f%SNL\]EZeB.+>hdH]U3"ur-hVdg'u_<_pc2`T#V@6>La&#_fU/i_WA>h=&e"E#'@3];2t?ku%r@CnF=/BAS/<(9sc;.GQr),Rrnm7PWM;mB$fYXl)J\9JS<6RX"*K\8;OI?[bcn^gt,Na\DjhDXblbU7YXo=uOQIV'(#!cC44%*r>tpV?9'@X:^3?"U8/%]f-pXRUNOpoB%H]WZ7.WI*l_BS4K>N-f33aMOS`7L-lQ$MLMBQ(imT'r8*f`hBrYBRg?$46FNj+)`NmcB16)EftN7,8`lVqMa_f].N=Wo+p)#O)o:]4g$q?rGOFfH*dnn4+L-9Ah@"d5\OUT!_r/k\D9Ml3-cW6QN25>fip8W%r4^Ma58RS9h93\FY%<79m[6iQ$o3j_D'*I-Gb25!0&'K2Fqs&jbDdT2CdkGq<-%Ap\T;IZ2fri^jBA,4Z@Po9\I!BG[5d&*Aqf'q7&lQ)>2HGoco@^[S6qH!CM3,$f&g:he&j_dLg/Z4YOL;qWFbAG/Y&84@]iX%"&j_rQ=>S=0M.C9OYNrC_WQpVaB:;NZ=RtR/1CnQ:p$kC1hhQ3;V&9D<_=j#==>/U)@I^]=_gN@/\MsGc=mU@@_W1aN2S[API4=aH7R8!fpP(C,KR#/S^S`A]a=osgpqr0j,S5JI'PRmdo!V**%g%DOE@:8!?JK,V1(<)KEalg0&q2H@O\47/cfX^!*/7<)-B"-Dga\YKbf;2lYq4'L\L3)SlrpPS<3kCo329jm0s'*Rse(MXliP#1Lr8.;`CfA@_PJ(1uG^prjKadqQ?>oeb'hc?n&b>QfBa/+28eiP].\;B+1=*,E'WU]c5FsgH_7r>5'o?+D$&;*G4jXf!IJ>6(2MpEn8*'o"84+]@ja)qJ`!O4;hEENGgG0DakQ+8(XN(&besUl:CB>+G3]Se'SE%+I5=EB7l1/'hm(*g"9T2+O4WKPJc_>anb,V#Sd9W#SbS4\0`G6+>6,jp\&nmdFDORpb+j<,4DDhK;5bmD[_#KGtl;OE3(Dk"aMO$"k1K,<"!q+)P:ArHR;I&2pW5adlX]DPe>qb_D.VE:-A_R0>endstream -endobj -14 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 705 ->> -stream -Gat=(>uTK3&:Dg-fLO(@7Zq?+k,kJ2Baa;Br!+3G$%c8OD$;9d^8H?SJBZO'Z#=5mV*3_<`51ZrX)HMg?OL+DF)Z\>!\P^SiYJ:un9;Z,bX=m6X>22l6s5gg[#D:fY!aIT7!Zf3>_JK$3'fVHfWZoZbSZ'K>E-c#J?=!ilp`[5l%tBOt2:K:DhX+Z#F"0Z:Z1fZ8jhph09dB-,&Ep>\>/V3sAd6MOEW&;c)>*DsE9`-Tqf<=C'nn)@N$VlS3X@J"1sob.#1E_WZtW%P9#>7d&X9(i/Ssr*h]C2DaB[0G^3`[$@Mh@I?2:?#0)sZ#eI%hB]tZFpkm6r1h80QRtmdB0H!f(2^+S&*8ILjlXb;9HQF!o;9q`lX>3YR/[,iP.[t-<=^f!Irst>[')iP_]_aJL7;"&F4Y^LEj?&*f:P"UlSnYK'K9HD5bn./UdUil~>endstream -endobj -xref -0 15 -0000000000 65535 f -0000000073 00000 n -0000000114 00000 n -0000000221 00000 n -0000000333 00000 n -0000000538 00000 n -0000000743 00000 n -0000000948 00000 n -0000001153 00000 n -0000001222 00000 n -0000001505 00000 n -0000001583 00000 n -0000002108 00000 n -0000002470 00000 n -0000004141 00000 n -trailer -<< -/ID -[<3a601c66a91aff42152c500d2d658d6a><3a601c66a91aff42152c500d2d658d6a>] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 9 0 R -/Root 8 0 R -/Size 15 ->> -startxref -4937 -%%EOF diff --git a/ai-analysis-reports/repo_analysis_21dc31a1-4ff3-4a88-b0c2-a20a03472612_20251024_033049_analysis.pdf b/ai-analysis-reports/repo_analysis_21dc31a1-4ff3-4a88-b0c2-a20a03472612_20251024_033049_analysis.pdf deleted file mode 100644 index 2dd327f..0000000 --- a/ai-analysis-reports/repo_analysis_21dc31a1-4ff3-4a88-b0c2-a20a03472612_20251024_033049_analysis.pdf +++ /dev/null @@ -1,131 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 11 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 12 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 13 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -8 0 obj -<< -/PageMode /UseNone /Pages 10 0 R /Type /Catalog ->> -endobj -9 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251024033049+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251024033049+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -10 0 obj -<< -/Count 4 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R ] /Type /Pages ->> -endobj -11 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 434 ->> -stream -Gat=f9i&Y\%#46L'g<*qdj.YWDRUeoRKONN]iS>UerDU.BdD2X:XX[,`l);kPXB9%H=#>/YRNA#70@Lu6#]VM:rqLE0Z5)\KPBRsH=U+!'B!D[P%:*8%\#_:n.Q;3GRo]9F.^AER]":BkKFJm`3m&##=oMCn7,5T-FYe;PM(bpF"ALn^'/Y?b`/;6)!TU(Jm$e+MFe.=\Lrs4j*Dendstream -endobj -12 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 271 ->> -stream -Garo;cUu,0&;T_&MVh9bf$#sFi_a,IGnKWLZ(":[frf$jm+\!=+tC[L*9PTAbn*8LWd.:RS]17bJJ^:qA1(e-Yd;SY6XQ&25g,iWk/NXFdccLoOr>>OU=;58'^GeqV("+pjqhJVC^-l]2J;U"m_b*`284E"SPjKR]7bTd]fJ4s9DnL(s2-@%iu_!@5u\:pc0`>AgCb<]F#m'Fom;?P6QsCi08KjDJ"2k8c?TN@IdG0R.mrN)l&9>K`Q5/kiC#=V/)id+UA4rG+\qJ~>endstream -endobj -13 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1579 ->> -stream -Gb"/&968iG&AII3lm7pdBc-mR?bY4!S1&j.17ai)4=gZZF=C)G_iEKnJ+%sl,t\qdg@__GEJQ/0li[0/\P%M3O-]g#F+?V"4rmRp%/a>&gu.+__U.b"mnnd\>]@2a\?>#S$/@3_F_pJr_(:0n_ffnZ=HLgSW/RnOUW,=ZAjG`][js?)9uJg/U-)#>i8R%u&!;,7(&WFJ5>%uCpfgtbNa\DjhDXarjqi9bo=uOQIV0.d!cC6r%*r>tpV?9'@X:^3?"U8/%]f*oXRLHNpoAuq]ru=.WI&?4BS4K>N-f1]:SY-+7K^TM$MH'-$dh5%&lMq#X$gmJnk'XGOp<]]8$U.n?kL=QIuC;_Xu^+^7bGLj6g8-CJ7][7@QcdsMQM7(A*gF`e3a)rjQ7(f"+eAZ\%Xf<%eUt>sea\,j4>B::;Z0d@#.eRohPh+9$#T#*Hd"hNim8=k.OjP\.W54G,uQpfgITs/T9o-o;TlpFjAL)e?BY.%qcYhE#[_jFLi"#1egjRZ%D?fUTn.@5Q1Lo.Jiqg(NQ_Z>J8[-Cdj6eAD?`'(#KC]jYmNM]>)si@mHF5')P0sTS4(9,_nU:3*:h8d"=GP+@b5M#m=[mE6.JNIbF>)1g*9k*/mAlN+3H1!bR:BNU^fh^VF7la3eA)159#PEg?o3Ke\m)ObS)N:h;C#B&N[jqSnl7k-Vb2'#1[P>=b-.$S_2KD\L%f[eE\]@MDT)G&Q=mtR6X%BE^(X"[+&=ufg)7p/l/W86lH>^a+W24b4/NeTJ/a#AX/o:tW&Dp2E4)Khiu;NO0pSE]5>@ZS3ju"$/_QfCD']c)-'MKGJ;_?p@0Kd)g[S3,j2pW5adlX]DPe>qb_D.VE:,N/J0"qf#r`)&U4*&(SqDEIs;SO1BT3_8nqHmAdk@HB4X3H*;/WoouK<+]\M-#TtZ8kZQg%IBWA_Xo(P\p0;V:f/7o\(+Y4CfBPRTq`8Hm9Q,4D/GDeQG9.?cP0bIf~>endstream -endobj -14 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 705 ->> -stream -Gat=(>uTK3&:Dg-fLO(@7Zq?+k,kJ2Baa;Br!+3G$%c8OD$;9d^8H?SJBZO'Z#=5mV*3_<`51ZrX)HMg?OL+DF)Z\>!\P^SiYJ:un9;Z,bX=m6X>22l6s5gg[#D:fY!aIT7!Zf3>_JK$3'fVHfWZoZbSZ'K>E-c#J?=!ilp`[5l%tBOt2:K:DhX+Z#F"0Z:Z1fZ8jhph09dB-,&Ep>\>/V3sAd6MOEW&;c)>*DsE9`-Tqf<=C'nn)@N$VlS3X@J"1sob.#1E_WZtW%P9#>7d&X9(i/Ssr*h]C2DaB[0G^3`[$@Mh@I?2:?#0)sZ#eI%hB]tZFpkm6r1h80QRtmdB0H!f(2^+S&*8ILjlXb;9HQF!o;9q`lX>3YR/[,iP.[t-<=^f!Irst>[')iP_]_aJL7;"&F4Y^LEj?&*f:P"UlSnR]osAUYnc_*;#XUil~>endstream -endobj -xref -0 15 -0000000000 65535 f -0000000073 00000 n -0000000114 00000 n -0000000221 00000 n -0000000333 00000 n -0000000538 00000 n -0000000743 00000 n -0000000948 00000 n -0000001153 00000 n -0000001222 00000 n -0000001505 00000 n -0000001583 00000 n -0000002108 00000 n -0000002470 00000 n -0000004141 00000 n -trailer -<< -/ID -[<6d32623e06a225f1f6d5579fde62bbe7><6d32623e06a225f1f6d5579fde62bbe7>] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 9 0 R -/Root 8 0 R -/Size 15 ->> -startxref -4937 -%%EOF diff --git a/ai-analysis-reports/repo_analysis_40c108dc-16a2-491e-8b0f-255769a3327f_20251023_070802_analysis.pdf b/ai-analysis-reports/repo_analysis_40c108dc-16a2-491e-8b0f-255769a3327f_20251023_070802_analysis.pdf deleted file mode 100644 index a2da3ae..0000000 --- a/ai-analysis-reports/repo_analysis_40c108dc-16a2-491e-8b0f-255769a3327f_20251023_070802_analysis.pdf +++ /dev/null @@ -1,150 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 12 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 11 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 13 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 11 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 11 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/Contents 15 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 11 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -8 0 obj -<< -/Contents 16 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 11 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -9 0 obj -<< -/PageMode /UseNone /Pages 11 0 R /Type /Catalog ->> -endobj -10 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251023070932+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251023070932+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -11 0 obj -<< -/Count 5 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R ] /Type /Pages ->> -endobj -12 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 412 ->> -stream -Gat=f92EGZ&;9NJ'ltp^\6_C/VmdiWWWYXRmO1fb#9mkR/YW/jSFci9MF4e7&)Qj?Rp?\P.-f*P!j4?OD[@\N9gOXcAG6pPd76SdV6M_=12Bf-?A&M-15Rbo6M#0:&t90%dEJ=m7L+FZO]B5&5cE7=Lt5`HVH]tF/C>Dsj&%tclb\p3G,s_NiKqdn_`E;)X;C11A8fOA6!?$Xea?9bD#D!`PN=>QEb?9:T0aRW-cn=Hn!5jrOra/'ps_U=+c*TNGZW.+9rZ4&$66?`j0!&A0K!&@Z3_;j*&@V;u)IiR:nBD3?`B;OH]4a[pTNcfEj,&3%.DIhJS=%pe%h-L6h;`(Qp9)9q_U%c1W\EXDBSaA&r`H0?~>endstream -endobj -13 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 272 ->> -stream -Garo;9hWDY&;KZP(%5"RekDO9*Ym7i(GUE4As4OhCtH$Ep>;>K+tC[L*9Q:,AdGI@ea*ofDfPY>+:]>UU(ablf\,DhTs%%)TS;`k),/^3NK-O[U![l%9!)#]E@m:`9nC\N^CX=PF-*D+5r1b\oYc?Y^F*AV%D2AYUS5,8Tr>oCmkRlh8(W7Q(5Kui+kIa)78'L=*95endstream -endobj -14 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 2505 ->> -stream -GatmVc!Dk8jfAG'8;i3Ho8YoZJU;05_:7j_#*DqWbaT%mn6pEla]:U=*@X?m-1_.Ot]V;$iDuOqoeX!O%c,PrT5$uO="##6SRSCgY$K=X5[9u%f`j5u>m1#RSXabT>iB*oMl@%"3oAEL6$`dN@:A"ELRY-dDn*0X$HN&JjI`,"uGruJ3,D;\LVJcgFZ"pV;8Jol0Sro/Bq;EZ&bi6`h6,@"ONYX@!cJqc;5Dq%=HrfsV!^B[>55P\T\Ak@HifrS8Y&Wqs3hqjE)*O`SCsDqj=Xe\uTf6[0+_l6bdU_.biB@=k-LnFV9"l_I0BqlB+fmdU9J:L<;R.)rji-F4H"dp3#.JD3G+`-j"GY*Cm^K7Y2CIu-bgGJ9B"Prc_Pm_[s_Xg[>'HKD)/9GnBe7rVY(iKRPbLO[>'HO/Zs`E?'(*`UVp(FF]3DPC,2:Y>P$\>#MiT7Xj*\c=(aXQj(cZUo@]UgHlg[KndRqr7(k`I^NIUfd%C\>Vk-.J>q:2^g$j2O9qP2Ud09Z'G;'nlU4h/F>tP7'>tP7'[1X)%%\pbU\6b-+`E..k4Iod,NH)W+[rgY%-Dc!_Afrk-J\XP)8+)F0(MFLYX&.u#1\agLR8Ta#m3H6m6jEHmmm4_DTN5qN+PGr4O-)'('G[P&[jB,-i1ODVh5g=#n0*bLA[Yq,d/\@d"E(#/>8gb:mkoP$uftdk!qcf@I8?tu-Vt:`T9"TV&/WM6sgnK*3VM2DR4%D9)NR1Em%uPV:;C<*dJMtrMbVX'Z;4&lQ(Bm/qg!;RL5F't(c0RhCgA%.oWh;6*<=ekD3?CWGjpfG'p9[4.b.TFV*H[1.NEidG*^S0N+YSF@*JE3j4T[Qi?"rH1;P4;hSKsQ%`!b$,"D.,(k-\$_P`E.h%TrfN4jCL_i-a0Xsq(c:kHEA&cob-?;A4irNQfF'[V8bASeRIf,"U>KuC`*DjD.5[MjW[p<=`2g2j,]m-EGL/jTWBCsI[c"<$3dRZ1o&:?s.i3_,bh"`qZdTEG\cVUoX'4@2.>W6\!C"#;VX1uf9T^hc.onpMk^qAf?V(1Hk/QLZePC5AiXUFt":dXRCr*XtdWS1kC-AAD3G!u,1%b8Kc#;O1?M@>`9Ml;;HB9Gei!10#>R0%n3LhFj&",rs_/Z4&9j&NAGh#[u@dDlTmR`p^a!@puso=k!IFqD=;M2RoTM`16NtX*_0)FStBM)@,mWS=m8==GQ4fj/Y4sj@&IM@^i@&r&]q2??BK]HRWu=fI)[lEg1.Ab)8$QVWeX7%te/\8uJ\90YckRW>4Q@CLPA;-,bJX2HQBo_e4ht^Dd5]"XaE%WN!]&Fd_ap*G>%QFCl^%DW.72XAJ"q.M!4Fn*Z]M^uptILdDddD"(W^-4G3j>&)(+\j4\33*4l]3p&o_4Tl">:UPcp*tm"j^YQpqc,:Qb+"qV6A4Cem3nGCI=ib@NQek<-L!kMFU%rUoMRcd&H)_eP0]3H@;*jB>fXU$':!(F+e(X6rBj\Dku^rrJp4)(k~>endstream -endobj -15 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 3121 ->> -stream -Gas1a?$"c/&q/*0^g!"_`(3Mu&\kl:F6gBYe?qI,93r_RU(Dq["+YFA?f/0tO9FrE-Ve--^j_k<]?@TaiQmtm/K5j^HOt*[Xi5T2*d2#k^3D:P5)\`^=5RAee&eq;EH;&]3'[F^NZ35IiWlW8KtHYJh"kh5*h"Kn`POMYlLbtJl7tf\)YKG_dE*PG8e3W)m3oGV1m<]R9h[-3V=U*]\2r`ecGkb:OQ:ADMpNP0phtp08g@ejo1?a?#>1)_!?i(tT7f0l\P?.WecZgrgg#1F]ZI;6<"NaI@3n4c&9'tSL%=92jg/Z[44Sn3@-kI@;.6WJDeCI!B:EEIj=Q94%Z^,Y]I2?UFggja3r&G/&3it+^D9=b'bKH1&RU5g0(12>4`Xt.,gTSi!i"%)+&KecE[:SI"k'kmWD?;^mtf$&[fGXj2Et0H%g8o>.17oBZV^+2Feq0o[GBnQZ1qJ0k,5,eQ'a[A1j\GJA*^J"aKU:'4?DGH!H/p?]5#*n!'T#B65hSDp/+o[68T(mmG7r]e@KMFZP:;`V"&b"kBqKWqY/KSA(<)s/]H+,SO@;H(V('tAlCqd&&#K+2c`C7;[]MAj]A[j7KWe87Y:U3_nr:KFBB^kNt@JW/>5att;>/]?+EKD;h"a^]J-524$,-#.4rZ%`XkJJG3?[h`K%OnbVt'\PHQa^:h\PJW\+TYMS%8^F123HGVKnC6AYA5[@">7(ZGER.Ma8jOd:YoKS"l-;V`)mU\:DufB*r2mD;83^P>:f#Y*?DJo9oV[/">TF5M:eTds4>0MG+Z20U$rSi@4K9Q?GCun!n[6tQM#V!27No;58brDlL*Tf(b`Z.cG6O.ddI[rNb?"WVUIb+7#>@;1P@?RBA[XHdma*GO71h,nhQO+-L)4"(@g1[o?[hon>r:*`2ZrQE?%,U:+U!ADFI7b9=\M]U:=,JF,U-PH164lr(t$JN9kPr0Hm1S%#a$jV5[I&LCHe\VFM+CYN.sqa2RO_7NZDs"KJ`*p_ABj=NoWC8[V'[UOp4'WOQI:^B+-_1FF7Sf@Gct)LobXAU*YfM0Qnf](kKRFc9@CbW#KhmZ4]OPcYT.1nCPr\]GaJ)j&JUEmY(S/3TJc9PAJ8Z47uL,GII\4I+/s@;YrYXqA4qV"O-o\Meg@-[#tRtqAt/]`b#6.Y`+ZrPbAAG6@bteSQ=pp(T\;BRkGqNSCtKUeTB6?UC#FVWkeq^@&DW:/OqDjlK7N#98VQWLRe+nmV5m-E[^(:M`R^rb`I:9I[BiZakrpI-Y3('j"[OgGb)+ZYP(m;TQPg?K"H?(=J,gKSBdc5oHr#UJKUJ5D7VjkN?GZLmGkub?kq`QQ.PO1gXlE23S;cr7Ub[d9(4K*^`A8VSlendstream -endobj -16 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 2357 ->> -stream -Gatm<9lo&K'#"0DoPKd@R@u%o_mq(R1[CT*`Ncglaort4&hsQ1!72YGfC*L*U+"bgAmAOm7gdo4ce#@i*`J#iZ2Zc;&A;H!Ru_%t-a[.-3/pg>I\Nn)fq2p;:3+(AF?5EtMi.aVi'H]OR,SNua1]&U$l,8)/G@4!T,)fQ3Q&Ns4trm,Q2@Ob5KMHTWMI]Q0(ADcm]P`@]LbIdSa8_c2h8j.@c($_jPqZ2][7/\M>p][Foi7XV8_%egPIJeYn5;7*)Qm68VDjH?_ZS\klND1>5l"Z"7@\j)>UUjq:\B7A&A;E[AiBS2=DKHiG\668"d1#oiHi!CP5qopa,8e>Pk5A0[_Dh5`bp#cpX\Plm+%+/g'lE-hmm;rLqs5K2-=&\G'f)'C(lK/*7\omr!1=%6abEE61Rh\g[2q,%5:BHGJ+=_@'!!Jb-oqeYDB._e/Jk9^.jIlB9&3-T4Aa>p)U7i'BHNW[.R1D%b^dn'fJ02*5fB;[U0qoLYZJi[r4hd0l;2IKRNPP4>3gK%/U3YK,,770IlF"Dsk/BEP"]gSfa58=p@HmErU5LQZon\3HYhFkRXK4U9CaF;OdrA>HF'%\f50W%.\AN*b=lpUp=Yh`9G'@-t-QLm3p=81JA@!;fC;i+>U&g7$WKAOBJLKJnEM@IX3jq3#/3rY5\Z<`!tRC]-e>`kM(70_[X)f:cppMk)F!r`t(#6f;nkpO8KXk!N/Ug&ql#C)^p.]%4"WE!es1E23`e6M<5"!KlCL2$5(B(t&0<=79d/Qk/"X`:r)lS.SbP@rN/>m9f2rsNqPXf+-inUZ\$&rSHD-m"Fq'3fJ*P-=tUsfR*dT-":>LRjSS$3!7o!]Uc\@!/P\qoSjCF6CF05&\O4IN&_'O<8oIO>!'81)%J1_'$N%.[NmnIre0rX[S/GW5tL7^E7g)5=\SXrKhbOA"S>nrqEhMt3GN>T>CE^@XZdb>-T=f\drBOddjTZ$4s@oHmSuD'0r&:ETD,NSVk*9%J*MD/Qd/A'hMM0SpJ1(NmrSLGD&bFFds_P$YYUnb3_2t@fOCcAJ'7$N':67Ds+B3IBBW=PO3n-B1J[J.El6>mYB[_9pZTV@*PPKpkKi/U-pB[0LkLOZm\+R:)8>I`-F<+K?hS+TTQ#W=i@Kh<6N6endstream -endobj -xref -0 17 -0000000000 65535 f -0000000073 00000 n -0000000114 00000 n -0000000221 00000 n -0000000333 00000 n -0000000538 00000 n -0000000743 00000 n -0000000948 00000 n -0000001153 00000 n -0000001358 00000 n -0000001427 00000 n -0000001711 00000 n -0000001795 00000 n -0000002298 00000 n -0000002661 00000 n -0000005258 00000 n -0000008471 00000 n -trailer -<< -/ID -[<25365a5755a2ff85115601d84997a50d><25365a5755a2ff85115601d84997a50d>] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 10 0 R -/Root 9 0 R -/Size 17 ->> -startxref -10920 -%%EOF diff --git a/ai-analysis-reports/repo_analysis_49a8f03e-779e-414c-b15e-f55b3b53ba0f_20251027_123604_analysis.pdf b/ai-analysis-reports/repo_analysis_49a8f03e-779e-414c-b15e-f55b3b53ba0f_20251027_123604_analysis.pdf new file mode 100644 index 0000000..5dbf94e --- /dev/null +++ b/ai-analysis-reports/repo_analysis_49a8f03e-779e-414c-b15e-f55b3b53ba0f_20251027_123604_analysis.pdf @@ -0,0 +1,238 @@ +%PDF-1.4 +%東京 ReportLab Generated PDF document http://www.reportlab.com +1 0 obj +<< +/F1 2 0 R /F2 3 0 R /F3 6 0 R /F4 9 0 R +>> +endobj +2 0 obj +<< +/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font +>> +endobj +3 0 obj +<< +/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font +>> +endobj +4 0 obj +<< +/Contents 18 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +5 0 obj +<< +/Contents 19 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +6 0 obj +<< +/BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font +>> +endobj +7 0 obj +<< +/Contents 20 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +8 0 obj +<< +/Contents 21 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +9 0 obj +<< +/BaseFont /Helvetica-BoldOblique /Encoding /WinAnsiEncoding /Name /F4 /Subtype /Type1 /Type /Font +>> +endobj +10 0 obj +<< +/Contents 22 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +11 0 obj +<< +/Contents 23 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +12 0 obj +<< +/Contents 24 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +13 0 obj +<< +/Contents 25 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +14 0 obj +<< +/Contents 26 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +15 0 obj +<< +/PageMode /UseNone /Pages 17 0 R /Type /Catalog +>> +endobj +16 0 obj +<< +/Author (\(anonymous\)) /CreationDate (D:20251027123835+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251027123835+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) + /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False +>> +endobj +17 0 obj +<< +/Count 9 /Kids [ 4 0 R 5 0 R 7 0 R 8 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R ] /Type /Pages +>> +endobj +18 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 417 +>> +stream +Gat=f?VeNm'ZJu(.IJE!l.58u$Z?m0OD'U,pSD[@VKC%bM=U&I*=N+.&*,'ckd`kPSU4!Q_P5jh(k?B.i@P5U5e[:o8-8?'VD@oPkcU*Wi,hA?(^YS@!hkik#m\>q#k(;21<*7sMZD#chOd4Z%@T(\M)T(k>;K#Pmt>-VK?7phXd?%?F:$:)=gsZ#gC6hk[G%ufHNE[Hj<`/0-F$*bO*m^F]f)Z1+sS/t/.qgelMs/mIdiDpPlF@!aRAY5#OOn*aG5S_ZAU6HB`IUZjbD_RUHf+0O(enG5YQ!;+X2E:"I1^LerVLbt^~>endstream +endobj +19 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 281 +>> +stream +Garo;b>,r/&4Q?hMRs"e"HOY0ZUJV1/3rt8S7#Da:=D6Q,(GYh+Tt>LUfkq%S/DCO5p[$Tn6g7N-P2%B+PB<<8*k&7Y39Y!)ec2h@lff4Ehaf+Xjh$o@_('sVWCu)*NBOCDgj$.RE\$7@@JeCB(t8>bUVendstream +endobj +20 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1835 +>> +stream +Gatm<8WR(E&AJ$CoE?[3P>53PIO%1?:_64&\0)8n`X/5]$+;3iq"9$J4T"q+1U]-F@e\BQY-"b=WdZ3-5*Wgc=$jQgMO1M<&<#cX5t2bII3X32:B$YXjn(i`@q>p#?j@`D,4CI,P-"d[]&;4FZ2HY50KR:1`"cgh+I?Yp,l--jq<-"?Z/9Bd`NNY2gFnK\f5JY#<_T,5Xmba>C,TBZ%J7gY%qHmWuM?]Y>)g]?U1E5es:ebu_"G>qN7uh>5S=IuPnc=\?iUoYnXraR]7WU6><]hLV8+,`BqJ:Tik<.=>Vl%.Lh;jL+4]1/..B;&j@djf;Z)U@WX0+c6MYm;\aeG#NCNX%OL_uh0uV3O-W"PCY.-c'VDV1ek\F3KsOZ:X$?RdmAf0\1<(D%$$&QBM+B\>aCHZ0I2Tul:>-j!,62o90+j`FCjiZFpiR&9p[a@r@>@)KhaalKQ=lp,R+[jXg`NM$Oe8k.6+GU8W3b^uU@+Cn6'd_t&g.#=RLM*qJ#F9_XAT"KB@@kAFUcQKVG86TR*Nu*(O=ZQ^JaV\`%8m*o#K2Nhk+LQiHE[3Z\ACtVSH5m2WgT'J%#AQk$=U7(kA@?A08*%Z,!:T-$r(bMK$:)7?[ieHqXQ_"#4J9@niq1?"8;.,,`ZUBXFT*CL][SN_ZmRQij>#Kb%$PS0GK$-\.s6Js-b42!!/\;.LK4F.2;cTbS3#28[9[*Y!T4"[b^nlj+9dP3KL(18q1%9dn7+%!"(+0"QVlJn.R60.B=EL9n.Z>!2^kFH1b.n>Ei&r!60mnhoAP7HJ2lt%l+6eOeTjKnAM=kD>).A?h9t`9&"9_l[J_&E971Y_"Ru(\MVHRn[P[W``4Im$frXAZOq%61@bNA1a0U7"@\4Y(eVc;/$$:#k^g\soOQ6,*(q.H^&G:Zkj&>j%.^7#c8DT5DcI2;1,4^i1Fe\3'td>qU_UJG8o<8W;K6=VlYg%Yb.UIY,Ik33/Kb""9t*B_0BIZUI!RW!p`0n_ld9a.NGCl@?'RE'h>!@?Z@>ppD$2mF^K-!-&iD7p<\XZ>cHMQ(9eO;rrLqDE2*~>endstream +endobj +21 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 899 +>> +stream +Gatm9a_oiu%))NgGU\^maE0DRN_Rk(KaZD4Dab1&XLJbQTQ]+`Ip^JJbDR&pO9Ji5lB..g]V,os>o8%ZQN/rXGkVdN"\]s;'iQe(_2$.jcN"X,3j;44k6a^#oR\5iUF\*m3SBd>7T^+hfmnZ_'qZ[&.CK45+h%!)YAVt@'#qPq`VesB]\dVMm<2X8T&.?F&LKlk4Jlo?N^>EE.0lVJV]8aujq+?NE%NVW8pD0_=CHna"gGj`=U9M$6<8?5,+e37O.J@3'M=2K&ZIdu3i-CWK/(*mX'F8Tr*(dg-.VMKW#dIpa6e1s:j`^$N"<$GnlrZ8VafLear6cTCsJ6=o;4X8A_)IM&F8q8p,d1Z6^e0M6"N14L(kZm6KeiQXg2lj,8Fju)+"P_f5`q0/NY8?4OCJ`OC1C0hNWO8omdOVdJEYbEm',,B\l/ER,L)Y%Z.lJ^X2^p5cd8>X<='S7pDW/#DO/G!?uEn4Dn>S`&!O:(@*rMepieA]lmP5%?`ak[Iqi2Fu4*V%KE3VW$I4g[\Rr\R^FY(8s1B\o:?s_FQm]DMFi(YDnStk[Al"MP4DDiu]!m5%cufBIEN]b4'[N!&:$MFgEkj\.lt_^-B.ueU"oE%.!d0s1kg$?*63%D[Hs*g+SG/jBb2B6p8_Lahe_VUG)J`L=,3H$O*.Oc)N3f^4a$HgDOIh97K;YP]>$2HEG^kgId6?>1p`(ojI`&*S;l1"I\]:c;($k/L]$i5p.VL@8?4?,D[8a3Cot,!akgadX3C_0RoUM1>JFS8+0S&(g]~>endstream +endobj +22 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1565 +>> +stream +GauHL966jf&AI=/oJ&/0,9mL+bUpFg%rY1BAn(3\(C[UO$kES^P54k,!X*aX)pD9X-jQU!X\W<5e>PgP_M;0A_Z\oD--SPOTF@-%TJj&`q$fM>Y9'l\UFA;:[R31'pWrt'#c5DG"VBfu-mPnX1>tL4\\c0r4$J[li7JI:>E/%7Ofq!M=;Gj'+876dklu%J;Pp;5dW_pCJE;-;r<&YoI+S+>pf>r8$I5dDOGd,tYmPE[Q*AQn3.'4ilO&%Z4@rXHR=^;QpfbcFJcbLd<[p[OUk2K2@-.]pTKkANPZt,-Gh`P/.Y!k#?Pd.:bMj%'pW6%iOKCe``El2h1kIDSG-QE\"%ZsjX0<`94]bdh-)uKTHG\p2=Yms.#)-4csA`8at6lP]MkA&YrSL.(pX$7f>OYdh-Yb[aa%O/3.:g07sZOj\ZF)h+8"ngMmX@X_VL=6*dbhBP^-MBlk^7Bl$9OTq83IM`dNoba>5o@uK#I=h;_-EZYNIiSJ0D&.d/E,E8C0FJmJA[c?S^IS4Td.a6[G'n]38nXJG":1E3hYkb7sDm3LYrX:^U6_&ipOiYAjq?RgKr:W(\PGgGWCk'V'd5?\$q+[1T>0'Mn]"ofbnTht7:85`]a:"4na/CRi,4g(/PHLa((5YZAtcU8[(YW;[lJjc@^rrq+.e?]Z'l^%:_UQtIn;@BPMtq+OgTH'X7'T,>N=]HAgt$SHiBRjp,L<)JY`N]TEl\C2+EHU3+bS'sZ(b`_>>eI/\eW,WP$3jh3fruVlJC-Y\r:F#U9eGA1K&%s;JmF&[TY,&N>,Sd9!QsKV7P2L4bKV9Xjf4A]%'DiK;MkTPSl=6C8FshAp%e$!V8B(@A$#Dj;9#;_r1fSpJ>$)K>C[W>&)5@.Fc>_o0*^$]q9jNAIR]a1Vj:YHbF4,N-X7&Eh(1+th_]6N8HIp)C^V(RtD.fco*0uXgiPEE*)M4S)XNn)mJ?,D!d%:-hG>Wq>ShR^DE-(Mb:jZ_K:Y4IsnE35>n-YR);]".8Khm_5Mj3'HL=l;)MY6X]h/_K8:Ni[l0^Z(@`Kl9?E=ETR~>endstream +endobj +23 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 2634 +>> +stream +Gatm\j=GPM^_`SWghe^0OMbCW@4j,H2Y:f>L*b:bb`VJa%ALD-2panSB4?pA9,@/$7Yt_S9M[aKpd,s-:^1>ClT4C-!AOj(If1i[:CdZ[;(rFIoX,LF=MDbCo(/mM8<5`?DN+%W:)9H;dpM_hSG1h@Ef3l.?-3f#[I]hT'LfLd8MQ,@7W7\)9Eb/0(<'*%ihsWN`P:np'RMJZ'RFefSm-$;'+/'YggLSVT5B"e7,=j4Q9jfTlOS*Y8BYR%(2Y&SWlYN>i9hl$=H"8OgH#eYXgG6qCq;S3N=rY=X+e8,ip=]^^-W96K=p+HO/Sl68]T=Jj#*N^p5Ep;Ve6X$nY=#7)gJ$;#Lhg6.rYL^+Ds=XqpMYB"`UCe)?GX\^N>9nru?N\NrWh1D-,+(oFjXhh2%\ZE.Pemu-T;ZDmQWRDC!`q2$qY](PM+$fQM3p9/g$;%\BJsn597pT1D"JO".mEg(Q-iOG)E+K#_htq'k"lW-8(HC-LEmR"^N,lk[,GGq5Rm)hOasMFmmJJ63`H)^(U3JAO.U,t&9VFhHXb7,m_]/`^NAAqUSC9oG``^>]:O,H#W4Auc.M0kn/nZ"*28%bb;D"%(p6n1?<#r4!FKf"@.o_Mr_Adn!+>e;4p4ssh;(X`Vbr'].LIl#QY@f)TT/$XDp7A1up,H'%q-R$(5?Bsq(n'Ro*N<&ACcrDl#`^^AfbN[tK1BNJSnda?`Bu/Dqf"<:_Be%um]=q=#DY;VN-cdQ;+A]aZW'RpE9]e@68Bs2Y^m?>l]9,`9WT?G$KP^V2PW1.)1<&scrMBu4;MRf=%,=$SL^naqD0BeW.WN5<'%T^Btb#UG!Q(LV9.FIXAD?"$OWr=^2FG9XS3eqhV%'2"Ve79!bP^s/4t?@b3Bq[^';F\;d#V\N,?Vo/o)"CTT&eJ/R!)Li5jh^.PmhXg2<201fh$bp1Z:cuY[:*B+A)UCnZTL2l$@N:\52s#K/]cA7PoZ%^63=$UaEBpMhcR*U;Kod=p7ZY6$N6c+E-Pp%.YPXJEBVL-nMUSilcibQblpi_5hGNnYqi/GCEsF*:X-%Bg,*p6L8Bb*dp>&7j'dn4jZqE>[>>r'#@.^^V`i<#h=6EUNW>oZHOb.OH@dD\0C,3mn4Q"b3D922LnJ+F:OYb_&Tr]$s)s9#c3Bt4Rahp9@2G@<0Wa%_om\Sqf#LU"6X@UZ#DrH,500Y>=78[_N;)!g>Z(/,-m+G)We1IdVaV#KKGYHnI)=[,u:?.8-OSU<7Oih'N^)Y4qbRV=b4PC0uqW2L"hQ9$m_^PC.!R^/]-qFp1AF']J/921#i$oKHeluB;f.DW*G:-.^`aUj?dsHg4QWV[k,j:tX/Yj*?AL9b^=u8f,eKoq)U6?Sc9FX>@mq"]FM#GKtN5GLr^%'cn]tStK!&1j]Ab)Ep.Mr:AXbLDk*B#0(R&13'`4`5L`T$UZa4h-SX5;)e7O<*9I5T2_icbXi)SgG[A@Ke_BOXiV_etuar\BEI'=l`!,+*"JO_=PO0!*]AG?RZ*Fb)Ubq'5hIW+4Mrr)Y'.4+MiiNAjRmL.U+M5$%Mgjf$*).`7Z0`jq]ARX;4M?rgCqnln!rj^SJRk3S+)CeS$GR1Hf/W\HGcuI&I#,e)\IEHt=nZ)U/FfoFlnFa0@;:iW>RrH1noT7'jiG`5kVfY5:O=Xc85i5s$A(=W&Z=q4!b'Q2"-"RiQHhQu37*?OREZMh\(I2iB&\Q%:?J%c1M:'=UDHRcnuo?5^kHFUglqY80E[bWj=@>K4l]g0;*VZ"1t]\5._nK7,-N?\YW89imks8#1<0q#>)/s8$a"08SG2%hCKr1@V7)H:MIkT-`9R5$COBCoJapr\.4t?@K\,-*B`.GI?U?3RKi8g0,Di?@"%c+Aa>XbN1f?PBL^cmQtJ`8b(g9^51Y0]MdO.0#Xet7Hr(s!#l9,('~>endstream +endobj +24 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 3282 +>> +stream +GarnY?#p^h&q/qEFR^",f'^O)J77=TE,JA95k%Z1&%lRg['RV*UI!>\?@Mi9h3-o1+[m.(Z)$eOIJS%YB69"qBC^8o&H0&2?[b57ZY-YudFn-AF4smJjlX\:-YI/Tq("LU]mBA:p%_8I^b8IE(Tr(9]k>6&0@-o2M2.YE@F+_IPM_VV-/"U$?;p%R]d`KXe"-.Y=Ebl0>[N0@Bi8f)T2[L.R)1LiYFY[7j"i,clqPj>9\#rOfA8Ht%:j[1ma&996C\#%noT$Nm+FB=h)s$jN.&O.24^l56i9/c%UHI5Tm,ukYA(=%0[Y#H3D[K>(;HceDG@8/F);7D"S^AZ$`_IBXq+Y,;6(mOe#-[G0#&[IEa8+_'QV@`qnL_SM%_;'D7_S=a/eui9_i'ee[9hpEerQq$H&C&i'^1455'=h%sp4M0q-=*Y,$_q/ruBd`F'1;98OpM,Y?\R&P:^\e!P%cB4gp6.i'[do]qCk!!di=.b1CBZU2@MlF*;7gWmf('no![8Eq'4'2bL^-\cV)@o2`UX)!l2>_?&*+?++sn/FESE(XJ=Zpepp8\$p.1PnUmr9[i0Z!AQW(CDT-.kBZuVBoCk4"(>g5-!=<_'eE04P=7ij1VFL;8*mQp6U^X+aT;6YY(_8=c>-hh1fI\HgR8Xe6LJbEM(u`bloal(c&1C8J>1)rl84Cm!D:t2,^iom.\/47FDpTG"d6arS/oE:S#()7D:>UBI8C,ubiq2=]RUE20Ga\e2%;NpS"$SCFgqEcU3s``2iN_[&SNCl24SZ(?C"JtkC099*HF*=Qm[/pf,hP/!f.(2N\gDnOcS;aJH_"hmB7/87JLFin+)P"C5X5\b'p$b!1'(g\+AJjk'-\cVLT\s$I$;g#2*`JXX_&jC("!Vn3D_(m]G@i![lJ]q5:*pPM`[]W=l'tE.>O%KYlU(R+94e%`]D/g/="8P..sqdllD?G7`G!''e!Ga5i$`em@cX00$K/S^k/n@[:`UZfFt.R_].IYFh^@"h=:Km5.$FT/gUs0YiHbe'['5rj&2=+Ka1f$fi09<=^+Tjjql?N^O.3rl]Uj:le#pL;+RP[E.F>/ZQ;R!TA`p6X4>0uBu281<)n3FJ(1MY>Hc$M4NT2$d,'lC3ePGlS=1(Q"!?`-.[etst=3!(Y<\;9qP*jDspB3(dU6BeFe+q=]$^(&H_/KE`'SpuYuWE5rm0o>!IfHpNR?^VoZ0(8:$W&q!Q0_+t@%ealra!4j@RD+M6c$47IM:,-WEN937SP7J/m;;=Tr`O8iEg'I`;#oJ]mS]f3ZoD(P)3i.^.,OW>NT0kniW-Ond!Z:ZE#?IqSdH%;QBL-p-(h/)eD_CbpH>M\Xi2NG?keU5/hJbafMcYCSraQo;$:+cVnaaGu\,Atb8jJ%8\QETm.>0+Nfe+*H7$1>Fg3qiW`-j)CMDTF3dpRXpI9+mC1T2:SUeo@$?"nU'6%71@a#,Kb_8uMq:qVfZ,DnbB\sNBMq:]/,X*!i=J*"t`gp7tdbj-V2N45J=n/)e5GL,3X?b"?7:S-i^W>I0fi?fRX*!g:dVdN*nM6X'U3uQt@b">MJ?+`^QH,cDi$G\&b8'CEoqc^hmLQD%F0+!%Wpp$Gc.1KMe6F+J)tnPEQG2lY2/)FJ'R#bkKkn&U2Fb8h-,5_=3DD5bClN<-kpH3b=Mg``a&@pZQS9Gu7=I/,s"mo;6OXplZje@(],(g\J*:s6KaRI9l&qauDa*%'9&jD_j["Fj/./uP?&CGi"_p,IKmK*@K19@WdSOY\iQC@8G@0LnI:'Tr-,j#jBHgg26Sdn6`S7\lP>(IS::U&g&=/&^ld*C'>[!T5@`kY->H3F006>l[CTq*DjXl0]@GjU_j1:#+XZKStfCW8#DKtb87pb`Q?1hmj.Z'q@B&F#V7P$#&U'p-P2(`Zj\B_\8Bsp?rj>B/bU^k!Y!NMnOA8?TaFplk>Mu-NnkZQO?#:Gcc?4Fn=i5=-"A]^@adVj'<)_Gcf5/6-cDS"@4+Q(>Gltt4c_(kKkln'bI>CHe^g-t6(?_JD%+c]m2-6X%7u+E-QFpXRl"iG/%Xcg7[)$Da3OPW*f1&agtO8*Ccs9h8uLM;<>8[T&t&[jTR]3BrB2Cn'9pjO!8Ol<$g+g%=uH8%9_/*L@N*dd;)^EPNQ/>+5^kjeU1HJ-od@.!IY3F"^#2c'Fm++!L-e$endstream +endobj +25 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 2082 +>> +stream +Gatn(9llga&;KZQ'n+7qfaN]*]d9.YbI^>_'$kPN)UQ^L#/h_*pAFf)$&KNI6"&'bUY]\*=>MJkQ0*V"HrTOY@mYBZ-dm'6;XroXag/t/@j#B>jpJ[Lb&eu\+cK.FH?4WIXu%F@HqC>-!,b#.[5f!hl4$a3dkZALRL[\AD6kkDmm^;3u!]PGYbn.OH4p3Zn+9iX6u`N1@+5Jp\Zk*6QE'1GhoVkeC]tJp09HF;E'BUgp3Z0!dcNpY2NTF`P+A7YOUI4"5Z;h<+!QZ$;iSRpHU7c+"s=b]]nsIDYRU)#4(!p/nI=!F4Z';?6L+ECiV0=<='TKU&cTf\uE3pX6t1@F-&PFg-)K)X+h(1Lbli/ob(B5VbLSRa73]$>kWL/\mj!4UcENjG6[B=Q?K,,d'g'<:=8C4h]A!pG+Eln8Po78UY:A'b4Qm&edKLN2uGgq[3RiQg5i_;pacie+@q\E"cpScg:S\(8/hLBQXg@p!^WQu1=K\-M,t*1K2tLa8FU(0"^/+R2+1*S[GU75gR+t*2oP_UX2T'n4F-cm@<8ZLNif='Q'7+X8rdG<5t.Z9=r]n=mL8`2ikRb745JaZu'\r!:\JE^=@TEVtWfqTM&-l4$DD<;rpP$%j]RjJD-/Z;h0M+)Jo.P(WUg=-.4,dSU_2[MhA=:8Y@XRNdMM?Z"d\\a-fY/e3e\jm1f=a[?q&9"Jj;>MV,.4=i"_2_`W=&<,&2b"aG,H5S#MI5e`VZLaWV9]UupU%HJ[+.0V[TPPfrhtE[&2Yb.3;_*7N(7s!i)0SMI:$taA;'m"q=8XE85i%2;I>/ToOp_8NU8`lGVs`r4BZ3ZJdL[bPaQp,J6M2ZjOPIJ[Z`@"0,Os32odZ2qmO9S,^EIXr6[,>Z2YI%9?IIXbkT.dV+Vr[:3jWP/ph31g4mhN>5+;8i#^,Pt#P(]rBFnNNG->)Qf_+VFmU@Yhi@$>(bUV;l.m1=`:;s=qg3rPt#P"]rBFn-.\P8NE1Q$k+B@N^r*a3foea"nbVsf&hdJ?Deb(IOLkuR]Z@;]HN0a\He/<1dP5jj,pFg]Cmn]#->mJ\Am*C.A+M[io&Uendstream +endobj +26 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 401 +>> +stream +Gat=e9hrS[&;Bj=`S2+=$#r;#UcUgF+X&"*0&Xa5`lO!hm?[J>3,QW1(L9ubH/U^Rk*m6CfE^0EFU-]'\9VUm$*"3r2S)?MJpA)Y#4.G>(W\BJ'h):#$89=Z_(5[qbC8fj6+==\G?2h!FAYGNmVB3C"HJ<]>8oR^WVZu?8P5Z'"q,I3%/;Nl3c,.OE6uP9g;l/TD<+U_E+cpNUH\$8@>B<5p*FG!.M^5)=']27OB]ZN/%9]f6,DJnkm1YiP:">s#43keTgXj[L`bH$98O9'rN:9c!bl*D+^83tjX`6d5KmFb=lVZuPS"V^SE2H=j3*lH/h[`H[g&g?F;Uendstream +endobj +xref +0 27 +0000000000 65535 f +0000000073 00000 n +0000000134 00000 n +0000000241 00000 n +0000000353 00000 n +0000000558 00000 n +0000000763 00000 n +0000000872 00000 n +0000001077 00000 n +0000001282 00000 n +0000001401 00000 n +0000001607 00000 n +0000001813 00000 n +0000002019 00000 n +0000002225 00000 n +0000002431 00000 n +0000002501 00000 n +0000002785 00000 n +0000002898 00000 n +0000003406 00000 n +0000003778 00000 n +0000005705 00000 n +0000006695 00000 n +0000008352 00000 n +0000011078 00000 n +0000014452 00000 n +0000016626 00000 n +trailer +<< +/ID +[] +% ReportLab generated PDF document -- digest (http://www.reportlab.com) + +/Info 16 0 R +/Root 15 0 R +/Size 27 +>> +startxref +17118 +%%EOF diff --git a/ai-analysis-reports/repo_analysis_556d0cea-fd62-4042-aa74-74ceb4c83020_20251024_062301_analysis.pdf b/ai-analysis-reports/repo_analysis_556d0cea-fd62-4042-aa74-74ceb4c83020_20251024_062301_analysis.pdf deleted file mode 100644 index 7c5c713..0000000 --- a/ai-analysis-reports/repo_analysis_556d0cea-fd62-4042-aa74-74ceb4c83020_20251024_062301_analysis.pdf +++ /dev/null @@ -1,169 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 13 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 15 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/Contents 16 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -8 0 obj -<< -/Contents 17 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -9 0 obj -<< -/Contents 18 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -10 0 obj -<< -/PageMode /UseNone /Pages 12 0 R /Type /Catalog ->> -endobj -11 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251024062340+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251024062340+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -12 0 obj -<< -/Count 6 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R ] /Type /Pages ->> -endobj -13 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 419 ->> -stream -Gat=fb>,r/&4Q?hMHL!):<%S3mB27s.M_KPpQ:r4-AWqdYlslLm.:<1'oQfP00IifBC6T[["ZDcf)R`2Jia+2+C5(Y&qcRh<-TK+DO$.__\(jT`9dre+G_S.)%`6ip5Yq2V(;Y\nuN_srFlP3[cS9;m*$o$es)<83SA!F(R(7OD+`LBWdknnDS+&u\q`j%htsSA/j[.$\,o>J'(L5Da9f9-omGgD)6mjjC!iPi*T3j[&,pQ!@D=-NjELAY5eA0nF@1^Kl.(MtK0(,NL(jm;"U(]/#LXHWQ`BP_;[2i:,ocd)ZDZQDDo$.")@4eHNW,c2U,-NOendstream -endobj -14 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 274 ->> -stream -Garo;9hrS[&4ZCS`O>uG(jkQ#mZL1R`LUfkpfHSY`9KW*QO?tXKZ-m/e=J<3IA5%/B!F!JCG[=OVa1M1FF7VOP"[#u>d3aQPp)+D,(4uj90@.18Dk7YPC[/&\B[IK]3//=@L`B1=*1&+XkW778+'^o"MH\+J[E`L>C?`X:oOc!ts1&ff-S`qCQN~>endstream -endobj -15 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 2552 ->> -stream -Gatm!MB'qNLGuogZCGH,?H\KiqiVb7"sdX'KaV9Z1LInpJ[pUm]hU&ROuS-rqJuH)Bi#Cqpkde`Zlj\d7'GK:'ZK^OVC2``HFfm+Vi1R]7*X$QK'(03==faGSA:%*MWV6U:-guOYnkP!ZZnY[]t&ZuW3["m"`23nc(+/)>J>KH]?2O+kp(W/9>+Etn0:)EU8OX9lUUmFSs+FRS&"u=1A`]u,u-%Y1^ueja)f[lej!FCbBZ3EQ4tkdiFEhtk9?L>qrb6AO&*M4=Q%4Ij.c:h`!n>O'PFdD3605:dV>$WdMQeX_f"4I,-U*9=6R*"T&;IgmqK@T-Cu\;EdFX(C$<,Bq=+u`SbLkY>/jq,18?*5=M7WZXB',JWA8bUBQIc@$DZgTh0@rQghTmq'`(RhRp'X(3H);cYrgZV@kD_4O5BrWV\%'Y8)[hl1[cF\rH&(O3Dp#R:b5<0R5!sjiFfeeZpZDaFmtLAUK\+qV=<0\@#KO1iZ-&&fC7.i9p9/u&+/(]eu[i(>shup2*CZA\8`/U:-P7k(,o7C2q?$Nl$W#F[JR0LFDZsnVN@W;g[\2]qjpS!oC),C77<@(TBLPClLs90ch@8>Ou0#gbRpeulV?kZrcPY<$flr?2CECB\idmkGfHVEG3?Qg.=ab:r$B=4FO'&dYPt7SgM]#>[%%A@h!P^!7(?>%ZZ+Xc$Gmn!^+forPbMmVpG,Zinc.BSn0ICXA9lHbVGKBl[nS6djBM]/hknTcWl'$@pUcX2[s^3IB#4D#^FC42CZ5&DLS7E2d]%2->PuY\kF>*4g8RX4g8RX4=sjq[@k\f>N17er?i5e%,d[;,j[eCmhk_:F"Z>U,;Z>lZiCJ9iBmA/*`CdfjG"U%s9.g,Xo(=rgA.oJfe*lT%+cru]lhA@\OC>9.+8;)LZC"6D/CrDHOfdEX72\ubY=h&68=ofekTF+?-"8H$B(90-/Olmqelo+!^O,VV3l2k!4RAu@U'AAlZVTr2!pfFD\.n1lI%]54cjTb_L49KQJ#7roD((h30"8`t6hds4!o+JmB'N@@ij22HZj(_c"4(hb'k?'8+RF[=^4mmiSigRKJWBJ[1)dHX-Eg$5=X?f*N(]X9p?cke06=O/MYsJ03h"qX&QQ=!W7p&XOo,er<&_YsjRB!5BtmeYS[74#tkI7nL&9;NnchQ;8;&c>nFTM5W4A*DIDq=p*"?+Kc:;>HZ&^Hpt2!=1;O7Yb'fGX(%F=079?YFqs9nY&eUP#U$RqV3_#oJ^Q,"._2fB!Msc-Do7j7&!*9FpJk8W^n^#!"d,1KV$.T5l+G(LfT(DM"&n#Z)!=#rM&-?%o*!=%3fV$"$BnVK+aBYQm>@dlcC[$(DkOhp'`uY^aq3of91jut0.K=:]r\La@4OC9hVc6Zrk%kAF?o'f+stUZA(7uJmt$brc%i!J!hU#HTLhE#2(Y'Kl^Y23S*d;FY3f2lNioRqSKKX8J8GI#`%%gg'8OcgUGkb1MJ/AD34#;ED0BGfckOa1$Qh49B3Tu9_Y,*M@%JJ2>O=L1[GdLESnu?0#oJ$=.[H+^L'1;\\8(n%STWr(Vf'M8RjC[g^iT`2@R)ScF&_Qb4JhR`!1'n(oO*Q#s?-AMIGF=#+GT*V/,BX3(4LV>%S3g0dP-EjTZ;C!PK4K%"'cc3e-oc[hn:kIW[d<)i`':VHbt#q"1^R4e*RpV)a!A1HmkqDi$9GJi,:gcn,D&qPQG6P6EfV=f*'7^Y1`#+lomQ&/I8\77lfiCOhPsDhd;pXE#F!2!lN`pp7V<&*EkhbWrjI);:IoqITN@^c9p@gM\H.,,,J=[3]CpEPNr5#$BC%jmQc;s0&:rUGLDf2O.m],7Vr\fT=f+endstream -endobj -16 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 3037 ->> -stream -GasIigN)%.&q/)-FNmIA/VUHG7oo2Hg[8Tq[`5Z)A#cs[Z6^Y@!GI^o)VMW/BK!7l[oqFNMBD_XY*$7&1aR2UL2-&G;WS!H(4mf>GHXfj+NdYcsWNE=GLF38m^:pE;I?Wj<,$K&Llbr=ASNF)NEW-Cg>R^V>_'*W4=HtQj%8^\fFEWsX$&[T4[ZN"!/0Ea835_(.^d"<[$YKB?(.[DpudUZ=P[EJh'A;!78!dW,F3^1mjAI<7;3_)MV]?b6%f-sUJ.##MWh@-PM[gTjSZ38mh_W-VK<\`X:Q!.bh":"c?WYH'Z>#Cd^b+a]_b0tWSNnJ]WS^!$(N`eRn=JT]ZL6QkCeH/3*C`GPdQ_bh>BX>SKdo'br?5J^."q)t:3'_U:@_I]FjEm+^+i+0tif6n'=qb2gsNHkUa`1Ai9kq([Wf]^ABGh;1JL-^L)aMg^e/2ZZc[]pI8HCQcG?UXt'&DdOBM&uiNdT]f&o'aYhA#TBUK!4H=rpd$(:Y[bZ]Q+LA&K?]O`De6>6Uh+kCpV:pU%?Al(m_!i&JZ]frI9^CPa,oG+e%2cdJ\TK39i#<7I:)23m3YRHCsl=H#`SQHFMcC_cagQ2;,Lb3?KteK!gYg8:0&/MISI5NtL;$':t-5h&[O*Q.K'Rk:.u&_Bg(6:fT)@#Xk7C.e+8.@S4-"NeUaSlNgU_Tg2I&Q"d]E!T]a]b"XRPUbEB*_752K1?>eJPWs="K[sX6U]S0&Kpl]4/0S?/E5>3oJ!ImZNm:0]&qLGkW7udo%raP&UX$R:5D3;1>kJfedtsq;Z2[KCU.()i7bXL-S_e&EgbAEZ#'!9Htj(p>n;tQ*-2KH*eR-^/tSG.OEn22uL@M/JA"Q`TE+Nn/I&.k1iG^\%RDor/N[%5@>CoAuLhDLUL%2M.hu]%h>c*7!O%_dfSm4dqon`flmbKJ;Sq!%`X;L&-eMVp+fBr_AYM?#>69o?j+q3>A\fiSH@(LX/Vkp-#t(!qL627Da$H/%MCu+H,>'$blKiE@0=fbh>i]Rk,GAI@5'1Khl'ee+Vh;FMBUfJ]DD1((]+8]XW;hF#[i$G>7?(68(]EWULJ=#.Wp*"5PY=j$eYt9e3,n;DkauTC`CG:s(Zu.W%KAAkcN4-Fh'>EjMF=YLfkZ/[#d?BHAfDK?nLk]j;>FhdZUQ>$'YS06A!&cE?Ddh3$;UHP&W9j/kenW//lOF^GF\gWk>7UB\n0+3&^lj\j>?\#NgZT(:Y+P01%%ZX/iS;g.hE&$"]mq0a0[b/-@hr114ck9XGgce)'JS&+]ji"IfR!@?[`8dbW=SO$nj#kd48fhfofp#ilN=CoPTF`9H%[c)8aj!!/XcdoDWm=\OFP(@pRFd`[%C)I=5c*2EX.m<\.-c=N@p%Mm"dD.Kp]q+f\*9s5'O7A(U/j@brC]PB;cT9<'I%SU;0qFc!X]C_sfrf;USWo)gK&BbY-CL>rGCa_h*mrPS$->5pGiP'7"(8&U0__bL^cl.GRrq'^7>iR;7"r\S;tR?,4F==%jKVAd^+`-=`3iituVAEcX%@ITZUnmjU!i\RU!=@;DfO41noG/IR]XK.#d"m4=AkLTPbn4opbEAH3n,Tm)i'S]4!!V5,7%s!7t6"G-=@k_Xs3n]oJ`3$VhhRRu,`f_E?pYZtl2est#X)`2c)9O>PekZA#W-cWI(38La6Xj+dFbaGI'D1p>!l-47*1gRV"[lp7^'iIu;qsiig*4`4SCD_,PN(c"iQb]h":Cj;V"D>F'jbmM8-PGR3)2UFAURR[?8!sDrFqebi_ghc4P]Pa)17r3-*2c;LpV)_gi;%"BFD)[C90O-b`YAEhb.ou1Dn2EH#khaQn/iCQ2W/=d\8llCkgAK;OtFS!2*pBQr-HYKYKFNR$EC>:1$26)JlG#B42DX_`#pORNpe(nl_*u;HU8gfM=6-DiaY3k1B1-6e"[^I6,T&!9#Pq8!mSNoJ#8`)g;X*7<@El/ZaI+T=3"PTTRgbM]ESD-jT$Q`ORUPg_sr\fXUlYIL(+]T9:eV!"F&YK_V:endstream -endobj -17 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 2876 ->> -stream -Gasaq?$"c1%Xl[,^tW^M'%N0,YC12mm;D?6VeM@.:S%$s&oFn97$jX2Aq0bB+K5l1[Hu#BQ77p2!H8%c+\hGBgAfWbkhSD8q%-F@dJ]BJ3/Hhu,JCk,pjNg$ai0G&E#(!kX!MrI`PfL;]*ms7]Aod;-/FpUY_bLoihKi%\o'nVckX7=1+hd[9J.`[]:>mug^$Vh92::R7=2-pKd[TZ;qfA\eZIm3m.#ts8Xc1#CKX68?3?CD5"'QAi!)BH0sZlF&l"W0W@DgP!g$uM_jr4lTb^?3mAX.U]!jVk'N"f@n7!`EoXRoj[rj+2MdbM-qnder:!^Bk<-FGSeEg6g^,JsEPr^T`%(kJ!mMQ,>ctU"EYqj4"DV(Z5VF_+-'qSB9G?_CbXl*qZ$RfLhI2)(3NU+9V%8Q]SjV3IfT#MKkK1,&E]iXPU#W4J)*X)#VqmV(QrB;Vc)kFh5Wi[Xio'=\/i#f'2b4*-!:"q5&T@a,lB$+*`CXG?B+\$@-6&9mX@FNn05csfWaTO*!rdSN2%KNl!X0f]_2i??o+(.>83'q__.0B8fWBG.or$#Si@*JiN%gA3F#ju(`iZL$,cPnZpmpoM8/iB7mFTt-I+cYJUKudgoCF%H9+Tl``c1&LnqeD$%?KudG+q^d6+gOS_Jg^L^I%Li@!muLd2!6P))6@M5_R$IVmVTsK&5A@d"?SOg/BT=&gNSAa6X"DmL[&i3%Yg1))^IMJ?,P!$1#rd*;6d(JeiXL4,c)$4%AY*\ef?OdRc"a8T$=g[rT=NaKjb'?hE=+?-b[s&;oM2).$/ZQ3e+*AURCdJfb?pL[Ki$ArN9-IkR/l(GD8gQla#o!>Jo/?:KX:=FVlBn95S^])H\4h,5Xf_jL@1p>=,fA-tR#F[%t89N8B,9XXe"Q:.k&PoReB^Z`a$cI=3Dn?#WBe+)_EkFPR-b@CVXf5s^<[1[+/jJ0Z-(5CqFd)Q('mWh=PY4*hJ-83!\Fnkp`<@^]!>eY=OWn0U(27j_1XK7@/+$]*4@&ijW`>4]qkH^Ga'XOMlta'OZSY9V:\qU!./9kCA9@3&9&P&EU+#MNo7_CsnGMPh9HdH$--]*l,R7Z/AF\[BeF%(0%*+\BWWk"sJCFbPumTYt$2N8kWG30i!Q'qNJ`/ISK;]IiM4#;;eCpgefq"fc/\3'S)Mf)neL6]>,UZ;$*IlWOI)lS`b@>`khm:YC9TTcpu2cSsUi0-ON''S_Os#D9jO;P^[EFGqC,[(q??pOHHO&.:<=Qc\51>3!<"nlX&a;A$D^,NJe?1n`56;:219[m'%VrWAQ)s7"2jgko.g6sCR03%sA;5cWNZ5KqPCPm]nKs@X-qJ'+Z%rQap+nQ=0j!III%9.-^6g-odN^_a;DMh>NkQ_*2F"6SeTCI,EGF5Q0]>MsuArFL5+pc**4C1hqbpHO#k0&%WR(^"B7.-?Q;)l%oN2=4!I,KkJ/ZQrLAep?7#]NW_2%+`n;])a/Zi7rAPQ;NbSVIn4-Zg(T&7!rgFqLekd4AU$YZaf!X,'!,dBqdbNVs&D\/i'tiQi[Q&-`ps(cfAlV^T"J.>R7J1&1go5VSZ!U*#S6f:Xu@O^&AA_>X5^@ahh'qsnJ)o>oh3KsM@Be+:ZfTRCUakE[N5/qSqkAe8%RuJ$!bJ^;tGe#&1A591sqCd>;4-!lp*p:5hCcYJ6]Z`37N?[n%iSk.+k-X>$^\.>ZX6tEkMIpiLmCcVL,UjSSi]PXB:2kY'N^Ej7B5<`Ju]#lA>O,g2Wa7iQ^G,M`W9RP2lN@bkCKep(9)tpHQ"[TBQ63EA0%pnJre#H)W^U\1NE[A'g-DGj,/\rdDDoW,Lkp@"mio'&te1JY0[SM:YPZN*k;4SY$8#Z`=b@%9N?'jG9=Qf<4W(n)a&gXlAL&=7OeCL:D96T]`frEZ3BN6X19s[mJXOf7FeP$3O3[LngB]As.T=s\;n'U@7UXRkto&mgcOnWtIYCendstream -endobj -18 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1181 ->> -stream -Gat=*9lo&I&A@C2m*WpS&-.;h\YZFf\o$G@_V?oATd>M(9S*ZZ7Fo6BJc\Bk2G'/Y>G)`BGl,!QlnY7/@EnO-#P^0.`g4MHC14%+"Z/`O-Ao2YN#cSE9q]Q!gq_VdH,+A*)otWS!DAW/B=n5Q"+ed+-=r\`oL6,YFNs(X%B*n5&"0!34g[GQ.SN867e')kcg.')=:1I.f?N=s!(R66^;Ct5PAe;Rib$_l$d2eUV1tQ(tX4N(>%T.;.^Df7%&ac5%Pcsa(L_c]CdeZFM0F7:0*!%Z4"]^A7=mklElWb,o5&N,N88F=^<*m]?P#B`*aW*?/iF7@E]Y>?V/\+ic6OtHV^Kg8fQkT@7fFLe*HABRn`"t9X.=IcJ!s0b3+1(jL0`-pI*,rcm=Ydrn:>Np@fjS17Hi5Q[&YTo'C!I@%a8_"LVS!B2h/poI$X(Ba6R+Hla0KTEI[5;F4nW>[O!S_YVDkXRrZCPo))2C!DLL"*ij^ZA]I(lmS>+g'?HP&Oj'4Y7\,BHir>4!OA.!A-]n.&%u6^Q7gN5CFF1@]]$uFi(-@Gs7k<&o26e`H,m&(nbH]$R_endstream -endobj -xref -0 19 -0000000000 65535 f -0000000073 00000 n -0000000114 00000 n -0000000221 00000 n -0000000333 00000 n -0000000538 00000 n -0000000743 00000 n -0000000948 00000 n -0000001153 00000 n -0000001358 00000 n -0000001563 00000 n -0000001633 00000 n -0000001917 00000 n -0000002007 00000 n -0000002517 00000 n -0000002882 00000 n -0000005526 00000 n -0000008655 00000 n -0000011623 00000 n -trailer -<< -/ID -[] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 11 0 R -/Root 10 0 R -/Size 19 ->> -startxref -12896 -%%EOF diff --git a/ai-analysis-reports/repo_analysis_556d0cea-fd62-4042-aa74-74ceb4c83020_20251024_062914_analysis.pdf b/ai-analysis-reports/repo_analysis_556d0cea-fd62-4042-aa74-74ceb4c83020_20251024_062914_analysis.pdf deleted file mode 100644 index e157f80..0000000 --- a/ai-analysis-reports/repo_analysis_556d0cea-fd62-4042-aa74-74ceb4c83020_20251024_062914_analysis.pdf +++ /dev/null @@ -1,169 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 13 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 15 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/Contents 16 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -8 0 obj -<< -/Contents 17 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -9 0 obj -<< -/Contents 18 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -10 0 obj -<< -/PageMode /UseNone /Pages 12 0 R /Type /Catalog ->> -endobj -11 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251024062951+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251024062951+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -12 0 obj -<< -/Count 6 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R ] /Type /Pages ->> -endobj -13 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 420 ->> -stream -Gat=fb>,r/&4Q?hMHL]_S;d'Ddp3Oh<@WUKlm"GD9b9mR@gV`#f]`KA.MgQ*??iWVcJ1.+D[M7UY5rN>nEpmM6M_$+Oq?&%9N1,l_4?a/@$hMN'5h-D#!ld>aFMXY2g6P00kCrq[:@GMi(nblCL^+jL=VkmCJ>\'XHR?60Ug5@BiBm9QNb%C:"r[ZMSb!18HmC7cendstream -endobj -14 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 274 ->> -stream -Garo;9hrS[&4ZCS`O>uG(jkQ#mZL1R`LUfkpfHSY`9KW*QO?tXKZ-m/e=J<3IA5%/B!F!JCG[=OVa1M1FF7VOP"[#u>d3aQPp)+D,(4uj90@.18Dk7YPC[/&\B[IK]3//=@L`B1=*1&+XkW778+'^o"MH\+J[E`L>C?`X:oOc!ts1&ff-S`qCQN~>endstream -endobj -15 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 2411 ->> -stream -Gatm,,2:,j4`HFnYjO`k2XUbQ%M'nR/H&u7>n$ufgF>Esnp^,`j8P\nq:-\^l:_;'&8O;E+1k2//o;hmt"c_Vg6K;b?9d\u]b]<#:RPP/D)P,+f1f_3JtCR!V;\gad]?"$AZ*eEiN41)Qi)S*BCfe90$reeTi[L]8UK-+ZX^EZ9:i7$bC9l#S.+^HC8+iN(T"d&rA&Ado:0BEM&ek\Sq-/^Wko>agY5Y.rl`ZKrR#\j6D!h0/&PaZZm#O1Xci2)Vr!E[f[(t_-S=AHmQu#4&)^P?.jOL2n>JM)3e59EjW+/Uk&%`<6YfqgfPI?;QHFdpP&^i6&Z,-`5AOLK8/J)m*#up9iLhc&+qDmh=^0icYX9Uf)X('NPtZ*VE[)*O)6TG:K^^PJ2'OJG+i?_`-(uBY?Wj[i6@1?U9I)::0LL4u92d,h@&:s\\YP3=V/=B)5p_>:JUY.AUf)*gg6P@7J6-;2$Kj*>OZffY0qgDmT5sd6qD>=1@T7bJS]EimL_#.7:_F4W4U7G;L1CW`A$&LG36$8!\YUt+'CiRVLl0'-NA4:47J,`q$W8\YJVdkCbfBYMAA)5,RBq"o'4G9m1_*]L+1F>I"0kI,L*7!+'Nf@B#.0@[Q:pDrI5Kr;B;>U9)<0Z6[Kmq=uTeT.XP.cXCRPU!FG^YBu[e^_TWh.4sqjudFTaut6.!Ce?%BC&fpB(("Ir`'KP?2[hd3cO@.6ungID[W'(+Ek)5`eOS@pi8K]+>SG7EHrW_KF<<"'_%DF8MK(Qg(Ln6BBhotC0_N&f-2_G.NrM"_5q5A\C'`krb@rP6+6g%4NV\NfPC>:b%An;<:r;I\p(]37luE_2hi/Q#B;g:4$iNj(E)V^lmj&;$\g`XDb8ZB9PP6KACQj0TVCHY6\p%DMZ]:$UQ%8Vnf0Li.>Ju#JC68NK=ue*9T/2b2'$q'i!3UDK<;&:l>M&n2*D.R)]KoeA<k[BJ@`N-+EU0&go-;Ckp7(n3j4s8@TaNjcq`s^Ac^RtKThh&YJi>Ft3n>8Q0%db6*>f4?E\AJQ)3C\q(IY1>kl:r`%W'*VW`[?Rd(h.S0UQpgBe#(trDOp^NPigD34OUg(Hb/\BOIsBXC3#_%/p,'nVN/ZRm#WWaJ4gPd=8Z2(gL[!7udBMp\al=_.c"lg#Eu6aX)69mnO?c^0#?dAaa5mc5I=;Z+?sl*C\j>ksR?);V3/[q"f(Z_?eTsje+'&/!nb$f?eH_TFU*D3i*LtakYf@kH%nA68Vb_Seq`i$OGA'X9IR8jFlfgni`U[a2C%%Bg(JsI#eDX%\,9:6TsVq':d1H34o%9ec,Xk,9tM~>endstream -endobj -16 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 3136 ->> -stream -Gas1agN)%.&q/)-FNmIK/Vt_JWqah1]J\B1e9YTk>H5+S&g@p?"9X1;[9p\H!Uq9^Q-,q>M?*^Gf6?keu2.#EOR>.do4"^4t7s"N3[p%@gn`46;=\7TB6>@AZDQU]Y\TCeuHUlE[M"1dS9BT;RhUDBCXhW?]+*@e!c.ADU37)sM5/6U!\/U+'d-ksej];47q#kG31cs#?D$1jGcOSVqLHftgU()WcriK6)@%G&(ng^9UX]WXV;XDnI5n^lmCmW($.L8SAanMu89P.#"pd,]``lnr@"q8.jh=B5N?;@[?XXm\DaXaIpPn*rcd^h-*t'`i5LKihYST,!rYKLKMP$Hnmg/63\i`n/r;Y@`K-WP1U/#1-.p;9,eRbdZ6!#/l?1jR31XNBLE_QGCNR_0fT1:E]1n^qBg>:g+@sQU:6sE\)KVkmu>^<)UWh/,Fr(QNVk%h.?m/4Bg%krE7/r3b@?/NUA`9"AWMEr6P#6q[:[l29q)9qX:qcbFEn>j#:U.u#%qGc*Y/?M1Oh^%Xtb$Fk"SfgUF4%U\nPO<^@sc>4h"hf[+9(M8>>`O&Y?UQlM$o1TGt69);5:nh;#[L1=KDLXNbYBeRqAEJ=P%]/=0k3P3Gl,m^V=4jZ$[5CiN(4JDMq3YAH@G-1@ZpJmXq^BR[Sk$EKT6FRQ.CeM!2uq!h.%1I3qs%h]%j;DiN;]6f`U6-%2D7'i^@/_P[O'tMs_ko@+nd]bIt/6)1mtBgI='8JY+jEkef7)gEem%28:ZX:3_^SA&XV7^n2.$V[o\k4:PaT[VN\4!jZ-SXIdfWI`K6he;,O]e,.1bI_1\ERE\8N90Zec8>"96K8R]B+mk4P$L,@E>dY=H.UOq1@(Qo4fghAV@63a!YbC-<7k&W1+aY$2(V)tOHOs_M)$AfmaK*-MHtLet-hVZ.].:g^M$H6:EE`@u6mC.56[4>f1$CmH:NHM$+`eG.#V&#UM4qAniG1'VBZqKZbDe50F5G:+/A0[.e]bdSi3!hKg_::/Dc%,''R6Sb@WK,Y9h.#r,G#\u#%KN2e*2I7cQ_`/c9Z+f'$qb:E"5_CIQuMPe'=T54j1'U0k8)J0-7@goKA*n7BJSaOa`^GoBe[:QOsm-aFB.;V=;9Ai/HucNk'_-CHeaBocC\Lq/E1%_^q$nWB6c0&uq*2];RNPMK<++ge%97oEsWkBN5I2[><-WAJ[jQT+B^HMMadGa.Cpg6:h,3lrXQ%4[.9YgUh:7;i5kk9a%hdWGdPng&lgYitfC#]QJZr!TZRi37P'V*G03)2I+Tr4K=*!=('ATV4TIK'uDX1[NhK]TWhc+:Zl8G`9`iXaY]KZcFe."7661l4T`#r\*3q9h;(bb'3IKR\?q%Q\SK&e&ok5&=n*K_YE=N!hi#I+=un%/<@pq,.7(E$NhMNTendstream -endobj -17 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 2755 ->> -stream -GasargN)%.&q0LUoOBXf0d9&Cd_7$QA\=;-c,Db?WD_+h,U"K@"X*2W^OAt2!(fm/;PgZ&2]LS$qM#1pdN"n+rm"-12g=oZI7Rd7G<6/l+Juc3o^;/4a&V=_P;U=K9s@rBf%>NYF8J5kYHTtP`'m=8/R)Y).kG.,05aa#A1f\r7TOk^Pe(b\JjbuT,fZRId/#oP7)-*8q>NhqUn%go^.>iO/Zf3IcAQZ"eH>[cQNHZh\Mkf9n6SfUhX]+lE'GWO\c@N(sNKFXf[L7"eB8mN"OdcWG3%u1H6&2J#9c_TuBbE[%UDcM/OL`tk.eAQ(P"ZGf`SPN`,@YN7EbR_[09Mphcl@'ChT;L+%.E$'SCinB=6LXfu4_!hq:OW"Q#@W.Y9$@\p6c>#4(qOFR8E?[33''A("Zu_SBTA#++jmPm&\rc&^gMY;>Cft">XY8*0c+g4sI8Y*VHYa=*BHu<\LXoUR58rsic[E"[*gGWZH37?BCR7%pVh9lXJig<;ni!nZq(\Lab&ED-hbG[7O/bI%=bj9LBU:V9\?]\2$ZoKgo3G=4Y>/q!mE[+l.^t.JE2H(9Z5KCeNfE(/@>9^E(6H6t8O.JRB*TO=N&[c5aQ["B1s6LONspf;G?ULE:gb$NPdQdia/R_bP?+7HKtrc23Cd22bZV9<8[)C6JG#H*-`\Zu.dU=i6]0K:RRIPQ<;":3YXpPED(+&SA@fr)2@%+#D"UNt2^&bXkNl^d!>%lhsqc0s=$ER4@3(&HNu:gp9gER_>P)Uk44*KJ<**NqukL'oNl?<47-WFrBL0Lh&[G'f7q38:GFe;c2>7NadaAMATKc:>*"^@:kJ.uH7.%`fS_=^);p\X`uO"7^`8J9\eIEup/#R0(gY3X[3)3["/knZYG`kBJ6C>:1RS^A(BB=@B45Wo*E=c*M@,No=u%DYo/;W.3ACka\Nj'1>G1[l$Z5AYNij*I[q8U!skF'9Ips)r^Wq8U4?ZcPf>bm[q[\3YQPYSo1g)N[BFVFLB\U]XLX>`_4'OCEGRebDa:>2Pc'EEf@S4.H7W:dZ<\Tljb:h`1(BOQUchAqps6Ugkf\jb6O7=7^9*"hZ!KWkaH[f`_o"6I9X/4*-)cHJ,r!Zs0bZ":RJE+PIUV\UCMNt)/laU`I^U?0qEM1pOrj~>endstream -endobj -18 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 931 ->> -stream -Gat=*hc$:(&:X(TZ&dGGVF_%)I(LKNna=me`A_EL`3c0K\3R7ghqs/4mAOmj(g<5CG4Y)RhepSeil0VuS-+-F@=$(HE;?dciE0UPiG=;KWOOOTHQ'+3]R)MUkRk$`p$58Xn_>JOGgYHhV"-bAYn'Fo,$KltZ+O"9lOQpPC/s82N9O6Ie7J*P&]huP2WDU4SF[bS^q?Xqc#`mkZ_J-d0;EsJVV0CS6hN!##iJ?@--$7;na(BoFg;jBap3EK[Zr$Kh`s(Tnb%>i5SQ"4k8[0Y"cAW"?Zfk'mA^Qq5bee:b#pHoj5%GiJRb2iqR+PMf'8Z9*p`/kAZ7X=#[H1qur#NOJ,NQ&KI2C!tOgY=f@*JB'q@&]l/TE6#C\hX^K*k7\X0T$4DH+!pi8QgKa6RjBn>^!(e)A2Ja6@n7.skpciUZ@V*O/XK\VZDliUC1LX1^D3N6U\1:%Q))EnPVCgO]\Q#^(Q&`aSjTB,]C@AQPImSJ.Q]l2-Lq];3('Y]&=>_M-qNs8_"/SHj^Op`)X8TM!'_'ch4?u5Q<@9+=B;D-5lI3^n>;2P[f6!P4Gq\G3;HD%1.o@UjQu3_`Pq37gZS)(lLJO?(1k*IXcPpG4IJlNL1aaG7par%!G_endstream -endobj -xref -0 19 -0000000000 65535 f -0000000073 00000 n -0000000114 00000 n -0000000221 00000 n -0000000333 00000 n -0000000538 00000 n -0000000743 00000 n -0000000948 00000 n -0000001153 00000 n -0000001358 00000 n -0000001563 00000 n -0000001633 00000 n -0000001917 00000 n -0000002007 00000 n -0000002518 00000 n -0000002883 00000 n -0000005386 00000 n -0000008614 00000 n -0000011461 00000 n -trailer -<< -/ID -[] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 11 0 R -/Root 10 0 R -/Size 19 ->> -startxref -12483 -%%EOF diff --git a/ai-analysis-reports/repo_analysis_556d0cea-fd62-4042-aa74-74ceb4c83020_20251024_063221_analysis.pdf b/ai-analysis-reports/repo_analysis_556d0cea-fd62-4042-aa74-74ceb4c83020_20251024_063221_analysis.pdf deleted file mode 100644 index f20842e..0000000 --- a/ai-analysis-reports/repo_analysis_556d0cea-fd62-4042-aa74-74ceb4c83020_20251024_063221_analysis.pdf +++ /dev/null @@ -1,169 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 13 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 15 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/Contents 16 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -8 0 obj -<< -/Contents 17 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -9 0 obj -<< -/Contents 18 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -10 0 obj -<< -/PageMode /UseNone /Pages 12 0 R /Type /Catalog ->> -endobj -11 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251024063259+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251024063259+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -12 0 obj -<< -/Count 6 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R ] /Type /Pages ->> -endobj -13 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 419 ->> -stream -Gat=fb>,r/&4Q?hMHL!):<%S3mB27s.M_KPpQ:r4-AWqdYlslLm.:<1'oQfP00IifBC6T[["ZDcf)R`2Jia+2+C5(Y&qcRh<-TK+DO$.__\(jT`9dre+G_S.)%`6ip5Yq2V(;Y\nuN_srFlP3[cS9;m*$o$es)<83SA!F(R(7OD+`LBWdknnDS+&u\q`j%htsSA/j[.$\,o>J'(L5Da9f9-omGgD)6mjjC!iPi*T3j[&,pQ!@D=-NjELAY5eA0nF@1^Kl.(MtK0(,NL(jm;"U(]/#LXHWQ`BP_;[2i:,ocd)ZDZQDDo$.")@4f37/s*?U,-NOendstream -endobj -14 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 274 ->> -stream -Garo;9hrS[&4ZCS`O>uG(jkQ#mZL1R`LUfkpfHSY`9KW*QO?tXKZ-m/e=J<3IA5%/B!F!JCG[=OVa1M1FF7VOP"[#u>d3aQPp)+D,(4uj90@.18Dk7YPC[/&\B[IK]3//=@L`B1=*1&+XkW778+'^o"MH\+J[E`L>C?`X:oOc!ts1&ff-S`qCQN~>endstream -endobj -15 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 2477 ->> -stream -Gatm<9lo&I&A@sBm%kB)A$I:J;3GjXS$qQ@NFTTfV&,SR,fCt$JtO+FfCpl40?]KIFug[7b]9t\Dr3mA.)\pBrllsff6?lcNtFf8h5r(tJqWQpkfqr*?RJ^O3FC,qR0AMfEe+mK&Ob#/:$*/.ZOjDb?)7"<7V7&M@o7.d(+\$t.8$/u"^=1(&R/O6X3I6mmtB@cnb=]lIAFLDf]re?%%`Z.OA=auSYfcU?K'CS8[C+H8N\@FB_C1QYaib?A4aUX&PeZIIkK_pYr-)8hm/2_E"4%'@t6PPf?6C%XYV@Za(/fXjF%hT&;IgmV0+O-LS7c9);DNU8A<`Q2An%3:=7=[#Dc$P#;pPXBnI%X*R4$\e)oA[V)IM@2'`g)c*$M[?4ID7UK_Ah.1:u+1Ksqf^A,rX#"M?K@5g*pmCHS3]D(pO856TK8cY./7%W7Tufo@pFd6#V\#Z]8)[!sOnT645Fqjm%TL7W&.9/!-B(!sq$F5H4.oR`3d<(;f#bd0'L%Y<<;apPk5[\!_a>f@-*7RdSSXb'1-BY6ba"OR_9:ih8N]!.E%kEW<7*C!#Hqb2`W%g`j*o?D?&Q:sKX+*<5)Ni7o>tJ@eMFsrBKH#,1QRDSI=2%KR@f(oAsB/&5[@\t@OK;OUFfXl+*=nREN'n""NbZ+VNXdH>*p:`_USK2`W1/,kM<6=/D$AXLE]pIK/i;k_]oaG(-rkaHEA=fk0&WR(n_W28A>glCoVu*O2[<)-^*RGs4B[.XAbT_KB]W@(r,I&?g5V7Epg?!l-$eFXYcDpo3[=VBWW9Rn1^^G(*+#XYMrnQ46K.dAVVPIZ9sd_=\fZ-CG6YGN*B^Q#f".p8NK)U*(dg@^R4%^jGit-epur&PT?OIcLZ9W#"R-%oral]cKXYr('SD@FsEsRr+(KkE+B:Li\FTl?6D#i4=8\L\&**gE#[p[3dH-3Cf9?FGkBrpHHeKTO6>']@i:QoJG"nqIm(ENP85]8'ZMWAK<3LU\)\D2NaSLHg>V!GDU)&o=mWp4(86`6:9t>0nU?"80HHL(nP:qfN!*[7fi[Vr=1Fp?/op7/:S'\n^&EeRB**D[pUVC$'^l-:X55BlVeJZef&S4`K)MV*_=c12fe.V^hm_3C(A$32\=RJQV?;27iD\(7EE\nG6A6]qY81PB+SRaR+/jQmKG^8i$(ob,8`N0=:Qn'p44S<;9>:JCW,SK*@@E`]shFGU_D%Cg,>6.qCT)J@7nb]`Ca`t!oGYhbUTY;$9f:m=FIb5%\[3O,gQs9=Omq^aW<:f!\m'CgmC!A^+G/d^7)2@IL=RO/E*ic6"h`.P8O(Z'a"udhEAO#YmDn4gFbW0b8-jPXT4lR%*n%lm-DO)9Jn`=pQV?sHMEDjAg2[$1l&A4KIB%#K/E3HRi4h%n.9SY;uWmE5Lmo*L2?1CrVDe_42b$P-q2ilC)3dac'f.a1.Gk[uS9Ce0thC-%^?/endstream -endobj -16 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 3101 ->> -stream -Gas1agN)%.&q/)-FNmIK/X_a^lhJ^r]Gp<7C-?(oS#]Eu#uQLMJcS0jR]kVt%1o>"bZ&1POTb=Lo]^6EBT>:bq)bd:5-3uH58U\/dV;.-oB_uJ^X:m&c1a/TGk1-g0!::RWe!`kL2Zb64*oC:/,X&g2WeF%k(ZWpZ;5eE/)*Pji#/W]_R2L2.sk3.Gb`r\#A88U(lfHJ-h!:6pmANi"Bf38f;bF@)8-=43L6i^X0;H3m9i\^h]@9nh@A*LP/0+I=FWmOSD9nf6[L@A^=FN6jG_lbugLg$,ZEW-2%MUAr,4/=ntcmkZ+nRW"sI^V<2H--DR\3WYYeEKPYC>#N=0kV,Y,.#D(9Q#GX"&MoWc=B`e"(\dgHtUF5eqf;7M,*c$9-,h$Z4lhgDu5>c3"5pr(uG9a*g,Sh]KUZF`nMKSatg!(AY*.OG_s(k@@6AnZ#Y+ZHI[M*Qj1&g!CI)-ZS;[tn?8F$I`J(uk&EC>O5lju(R)Rr/J_ESk?!m"0BW$^]=bj_?=!KUBU5@:/89)QD<>$Ubj?*+\#C_RcEP[FXtKaWX.:o15OE2-&]eI&!?kJ.?p:Wt56SBiiTfXh]mPE`CN)og6BR].cCsk8L'"#$J<_dTDlm_#)Wc3?ako/1p'[K5,_qo=BYFs%m=P1S*?n;r1KpQ+#T%/5UQ8#kgjr23jcB6Q9F][_1fjpN@fKPTTT,BFTB@aTI1X`'&KfMOjP)pIF;?lY;%W;+MiNQ=Kd4uHua\(aN`kmp&4aNAXdiG?t03#I$gjqpRQQ4Eei9W+NQl\,f"+jle(6Mq-tU1?#g^-mn9BVFFuoWYL-hh)\Ng6J90XI+DlIqO!M0LiG5SVBO!VKf5#/o:K?lN.5UBTFqb*0b:";A'@EUN85;1aoPkoQbT+"H)rldY,Q>GN38%d'T:)-A>ZQU"BGge/ECL0#Wu1*T1VY=3RcuOFgBK^KAu/<@(_.,IL#Bd=a13C>9Et/p8>m.[MJ@TJtI44&W3SR-K)JRC1Vj^]Td/)H?q*MbB=,m>`33bL#8=-):'j*\d_r#q!A+@Y+h;d<^EG=b\2V2GuB+*t(rD8*eZnr+p4f5#J##$2@p=E]Xj<:eOb@S?M8>>!K7K*@16ZZm(6;m%LSj()!egW;RRa!!lF;D0of!FrM4FOB[\n<'.S\7J2Sbl@B*]>qLO1:)5!8V=(j$r3`Tck^q/:*"MD8;FFme>B=RhQq'tW$FY.),7rCqJq%eBc2eCdEdi`"c.=/3=mc#Q?1Hbj;"oBKFT%WIMq2#!3:4Ar0_pf]O.>bdR.jYEG65"'TVlqNu6K+="Pn0NR$]&fMk[*p?cAL?AO.0#QuH5?''I7j#U,=X0JUp\b!"&KtE*qASL91ID,AQ#)_oa96gS0kp-P_j[+WA.RL_$^tqS_fno54eU5F,:td:$4M[%gQWc"`b(H#Xm<2Hrdr7@n*6%STU_@4=/aS1H8-iCS^[U>djADiToOC8C.0IRP@N?b\?*Lg-:[<=##Y3/?sdZ=)lUIKU$=p/"qf`[>UhGi>j8IKVmVR67>DEHh$`i#";F._2Df\^X-7%U_g_;)eH9endstream -endobj -17 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 2716 ->> -stream -Gasaq9lo&K'#"0Di93kfN(?g?1q+`ob[rA0jWr\C\Om$fOG&uH(kAuprUp%+"@tSY8`%6JRW!_8/LfZX\\8C[#X#j9BENJC#IrC-,JZJ>K%DV=3Ib!dJrR\d#@daYW<=t@i-]ZbE3(f.OpL7)#aW\slQ]ur0s[mF3!(mc,(--O68C%lT;%D2YVmf.f/Up3amXHfYqXV`CV7G?6hPl]W(]O;m]\Wcn[F4t+'i?dAcZcL/d)F;p`T'p2B%"jP6I$.ZuK_,VTT=C2797S#o]KCb%c;KpaN'6^DBhoXEf.b7nl(,VFDC@o$:mmTsq4b:2doCD4!>F/uB;R.6%l+Z];C:$Td29T_\ZATXh&-@=h$IhRJqu6p8k1i@&r+)Ap!AcO>3pJ@+0t_c$Fh%(2]r<&E$NJ;Kut=\-:T)574'ia[G\G%#r;b2F#k^+oW]E>IT60+#^0CA?)eO>WssEc(;W2EYs.XSE5UPgI:c[\KK!]/7cgatNQ$U+)9s&:`Aa5pL5li94V'sk>iaJ?<(h/plMB>L?BYd=6MB5p[GgVhp__jmC;4Pi>X10m?C5/AmV*=S28RtS'`K(#S$#QN'W?@LN>#CN2D(YI9#m85`aSZ/Yb)kYn/Vg+&%kQ`uB9cMRZ(Xn=,(".'ELYerJTR/@q0f4Vnpe?YWjd\!Wi]gm7-EN"#[q+d2+W@X"$-H6(DdYYBN&YIKeJA"LRY#be.I!F*hpe.Fml#*he)r'(QhB)?h6?ds#@`.V/8<^=i;6POk&JTNQ'YS1".Bh4/g,X6P"dB1!KXl%YuKb3"ZN0;;LpMi?@fVlkEFV@XZRX,hXidt:suk+K1'-16speM%,cU#61VGt:&m8b[G*BfTt:D4kCni0)?E@b+kQML.qVZHn)mC7N2rlT<9\==VF(3gN%B\!N!LX54I9kJ?P1bQfc@7,"#^6h2!^iBGe%a3K:bH4#"\A9o/^\/pTUi<,,>/gI7@rkp$g;97gs@S+dls%eHjuMDImWqq3F[%lY6],oa#J[VR$/(d`FOC,Y:$@gEqF*TG_Q\N#]@d2S$2)e-I@EHBOH/7I^X0LRFt!E9AZ%efCTO$cDWaQ.9:m3ptKC'o._1,?,XpP)@/JV\4bJ'cQinHFqU;S;BO3(s3WssNtH-@nBI>;$c'oKoI;`l&f9H.-oL?,F"L\$b8.*d9Ng_F6H(LV=0fD9#9_eBddn4!t=&=/@saRH3=GkGp#t]>5k/LON26bN*Prf2]ItO&HB=CCD8.c;[Fc]PK"[A=]L&:<"0Vb>Z`DR`rG;kbV&@esD@$j+"2RZX5EQVp<[D-'u"E#?rP\8MIr;1Et25Fm8+7TmZr2$+!j7p*]r[=NR;->6';?[1m$C7:a;gNUZY^&;bbhHjMB:=*Of7&)Wp:8)MXT,^2P)sqIXFQ#7$r?4=C?(2;bg;K4pfo4jHHE:L,X-__V5p$1-NIO0qnG7(\nUi^Uph)=1A,6JH^AX&3a6pXUYV5RSb1V!N42]ooLRui;i7_gmLVRf1)fYGNlN_WnWNH2Hk78Ok3('DKjZGS+YLd?J2pAQ$?;#YA)r1/I"E*>WC*Y.IfHn=W8+Pm3<@VpdHjq2il^!qAmL8EcI*8h66O5?2YiQ&!A(~>endstream -endobj -18 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 931 ->> -stream -Gat=*hc$:(&:X(TZ&dGGVF_%)I(LKNna=me`A_EL`3c0K\3R7ghqs/4mAOmj(g<5CG4Y)RhepSeil0VuS-+-F@=$(HE;?dciE0UPiG=;KWOOOTHQ'+3]R)MUkRk$`p$58Xn_>JOGgYHhV"-bAYn'Fo,$KltZ+O"9lOQpPC/s82N9O6Ie7J*P&]huP2WDU4SF[bS^q?Xqc#`mkZ_J-d0;EsJVV0CS6hN!##iJ?@--$7;na(BoFg;jBap3EK[Zr$Kh`s(Tnb%>i5SQ"4k8[0Y"cAW"?Zfk'mA^Qq5bee:b#pHoj5%GiJRb2iqR+PMf'8Z9*p`/kAZ7X=#[H1qur#NOJ,NQ&KI2C!tOgY=f@*JB'q@&]l/TE6#C\hX^K*k7\X0T$4DH+!pi8QgKa6RjBn>^!(e)A2Ja6@n7.skpciUZ@V*O/XK\VZDliUC1LX1^D3N6U\1:%Q))EnPVCgO]\Q#^(Q&`aSjTB,]C@AQPImSJ.Q]l2-Lq];3('Y]&=>_M-qNs8_"/SHj^Op`)X8TM!'_'ch4?u5Q<@9+=B;D-5lI3^n>;2P[f6!P4Gq\G3;HD%1.o@UjQu3_`Pq37gZS)(lLJO?(1k*IXcPpG4IJlNL1aaG7par%!G_endstream -endobj -xref -0 19 -0000000000 65535 f -0000000073 00000 n -0000000114 00000 n -0000000221 00000 n -0000000333 00000 n -0000000538 00000 n -0000000743 00000 n -0000000948 00000 n -0000001153 00000 n -0000001358 00000 n -0000001563 00000 n -0000001633 00000 n -0000001917 00000 n -0000002007 00000 n -0000002517 00000 n -0000002882 00000 n -0000005451 00000 n -0000008644 00000 n -0000011452 00000 n -trailer -<< -/ID -[] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 11 0 R -/Root 10 0 R -/Size 19 ->> -startxref -12474 -%%EOF diff --git a/ai-analysis-reports/repo_analysis_556d0cea-fd62-4042-aa74-74ceb4c83020_20251024_063326_analysis.pdf b/ai-analysis-reports/repo_analysis_556d0cea-fd62-4042-aa74-74ceb4c83020_20251024_063326_analysis.pdf deleted file mode 100644 index 2629f6f..0000000 --- a/ai-analysis-reports/repo_analysis_556d0cea-fd62-4042-aa74-74ceb4c83020_20251024_063326_analysis.pdf +++ /dev/null @@ -1,175 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R /F3 7 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 13 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 15 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 13 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 16 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 13 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/BaseFont /ZapfDingbats /Name /F3 /Subtype /Type1 /Type /Font ->> -endobj -8 0 obj -<< -/Contents 17 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 13 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -9 0 obj -<< -/Contents 18 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 13 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -10 0 obj -<< -/Contents 19 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 13 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -11 0 obj -<< -/PageMode /UseNone /Pages 13 0 R /Type /Catalog ->> -endobj -12 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251024063403+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251024063403+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -13 0 obj -<< -/Count 6 /Kids [ 4 0 R 5 0 R 6 0 R 8 0 R 9 0 R 10 0 R ] /Type /Pages ->> -endobj -14 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 420 ->> -stream -Gat=fb>,r/&4Q?hMHL!):<&.N[(@LhW`6p3hFDHmRNRb-`tIJ%Z-rrb<%P&3]^T05S[i6`ck[+(?3Asg#jr7cJp7HX8IT&<;rN.L\5i)630$OuN`,bk2@(L&@Le'sd,'m19djYI=.V:e]furleCL,kNL`)+cC/djSX2]^FWc[+H)V-X4(U*a=0fZG/:6YVff&gRf@ASs=]W_GfaW"c5%\FOmUCiRC"-M4a5"$pV`(A'V.g:Y8X5h8--mIOmTp"A@>i0/GdYj)EoZM_Lnk*ejjE3I00M;YW;~>endstream -endobj -15 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 274 ->> -stream -Garo;9hrS[&4ZCS`O>uG(jkQ#mZL1R`LUfkpfHSY`9KW*QO?tXKZ-m/e=J<3IA5%/B!F!JCG[=OVa1M1FF7VOP"[#u>d3aQPp)+D,(4uj90@.18Dk7YPC[/&\B[IK]3//=@L`B1=*1&+XkW778+'^o"MH\+J[E`L>C?`X:oOc!ts1&ff-S`qCQN~>endstream -endobj -16 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 2481 ->> -stream -GatmAo7q,&IU*RLaC"fBC9H?Vt?h+8^OG&:r!h^8#l['D[>.2kde+))MJA>L:SimHA+&PgF]SP.JoP/gEk=*bc>V'S$c+W4Z[DWBan:G$[7gnn)\W8U$?H1r5:3q6f@mP#T(3A+<.>XP^-!S*pQW7aa/bP6TgIo4]o'h7^T4n0dH[U[A_/m!QiYgOlZhU$F(HAg+dG4J1)D4QRg3eD/XVTkX>*69tqQj2CT?D3)mpCamIXF'NJH^LkA6ea911?*a.)hR>&a+E3.MOjVK)PD3r^OWFIbl$:&2TiLmcQC+CSAG&t&'_T[:0Bf[aL^c$?AWM<\buAMKmipfs$g4F@cg@1o[lHd:6u*FpdZ/9A)F]38af*kqbMPCaVN&GW#+be.K5QX1`oOG0B3RP*_kuUljl2bVIMpLKr\&R=Lqk!(:!UiWg)HM+]"m_7Nl_.qq_@CP,Y'B*ur`W!O-jn[ds^G5:BPbN$Z[k^s+r_Mr:GbXUoZo[@l;^e/[gZC;1FtNdWDqjB_jl)]!2nPj*4g8RX4g8RX4=t^LSCG6SE%,8a?=F@+Yh6O\NgGH_HeCL&dW1U^][:[0H\HM[R]qD%SG9aiZqJ>"V^u>/L5.Mo*Vf?QOnB]bRR2h=^HSLEGOhr9u\YCD%^ri&]EHG*=30'!=?NeR`>23n-WBbdo@M-.fau^^#ROq>5"?B=jc"?PeW<2o$jQ>kA2Z+b!>&0]1[mUljaEVD/j9eif;m12m=[q^Yn9j2au8g@Jm/(I:?fe"4X"$]N:4?+ZiN_$3o,SB3O6Hr-E:aqAM&(19k\TCADMEZt'uL/o05e>j>M`(H7\cQ5brO^>RP:R7B3/!]s,0X#4h+C"_HGH>bGUI6^]$&m:N$k(Q7:D/tG%28\.FmDS1@%Auc^-25hM8TI"UN2X)3&qGmfY7gN4IVTJlI;Td+\->ScAG"iR1jL8g/qE)oYjjkPjs39[VNHG;pD#H>>$K%W'reRLV^hBo]NPgma)q(U":6*l2fnKI\7[`agjm$nb_:2iEhapM_=fuFJBfZ4t+'SSHLSe:ll2nB[o29jK$(aA3[fSPFI-*Ds"4('$/lkF6AC8Yq3DN>35X21R5-j:;AL*@8NSdLBUmqf7NjS^cQ\M8Z6`o$>V@Vj`_)AcN#&a@!sp7!l;WcdaqSpZ"JlDj#^?[O3N%jE[$MQ-2$hsQm?.>AioHR0?2P-_f/>V~>endstream -endobj -17 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 3112 ->> -stream -Gau0D>>s<<&q801:nd^4-$'965*/T/lqsCE_Od`PKU*Qlh1H>0N&6A$Pq_/sicU^RD'cB+&^"2U<.s^Fuen*tJ+!.pl`RHk85D5XZWH*O;mo'")qYo%*'PM5Bc/S+9g3WgcW2aop[&fiHN-hld?+btMf7=)ENg$6Ng*\]AW]KJ^""]_4-YF@OhBIj:9:`:@hU:GtqDF0)b2R5AoqpYk+DH2D1X!JP3O;8L5JBgjB"[r92RSh'9KHY\5>Q+0k!XWGdP\S1RWjIe'5FlUt@)6^LV:=)%1f0WN'OASQ?K[_L/8>CV#iK=Hcpb5m?M+cl5Vsn!sd5]l/2gWt_[0aNFA3%?/:B)3hj;XBAHQfX9U74d;9!#.).m2K#a?#L+l[:*P3;GiE.B]0M.]9b.\dRt82eD)5GqM#K@3VYCNS4cM;cKcIc-EcZ`jXj:>=4,Mn]KpqCY3O1ObH@.J.Lub"ij3_'pGG&?msHgQ3OKTkcho"8o5l9_ZH:iDF?l=IlHGl6Gtk);Jl!$Q!5sV.8D4%"lMNi_@D/O+F1%jP'OB1I#-FDY-jeOIJ,.i@(B*[a5Qb9$9UYcph1o<)XC":sQC%!sh1elST*=TKJLGlF8J."8rE[:k\n8jS3CB4Z-!O0>NVpUSa9OOM8X3U4BG=m(dMB"so8X80>ZY-9Bn=*&7&r1jTUuR/iakd$*:k*M^3cqTq]IYflDLlo!^!YEWNDl8@rNAr!;)Vh]>uHiQ]lb`f.re5Gh\KX"KLeu8P?CG:m",dB*#OWq&dMi%r+RZD%n:mo=L]n`]8.$?)d8"$NBOaqr.i5)JCC`s*Q%uFTD`.Dr*D/H\?Z&9dmKql'SJY1clFu$M8Vk<*i-_2o[cd,@IcU;quEenqml/M@!m,V;"9TAO4bYPb]0";L"3)Bn2(1gpMgKti,@-)%!^ZrGOe89]^GMbt&QF8M!9uK)$(HA)aVnfi$)FMX)2N)17,<;B&"8!?Tk:"f"Zl9,jT,CBX3E[=LR,l>e9;%!Imk%?G]h#@!k@1#[fmP)s=a!NhI+::1Us?r"6dTQd,oneh$K'53W[`$OV:F1ra'G3?F_HZ2JDBB9`%hC^lJuteNrWaQX%Ei`e;B&+3oaE']L!hV/bOap%*p%3-&h36PKPlPhf\U8:M"*limA7k.,eYp'.]/+!\FfAB&^L'-lJ05Aj_XE&\S:PC[QQ[4AGZn.R@`6[.1WRpBmFA2@))i"tTmfipe"<%Mu4\6=NWgGu!<(VA[d>f.6-U"?U)<6uB:SjTmM&L5K4kX)0/=XS">7q\CcY-+OLWN\$Ba/ET\<*Y[L6OJ^.-$E&-^6?W#u;c4)OCq5<#j)\27g:6@^o81&dU-=XO`0GbQu_s8IPX\Zj6.ASJ?%kG>6E%B=]+-T9kXbi=`d@l+a0KRK#^/6nQ\6-4p&MMTid-$r8I0@BgXM&71-PPue#p7&qF9G[F1/<8,D_gi9F!:+B8S!pX$D@j".AFL0P`!m^MY^F`G'aoZUF'2hk@L3KMU5mhXr*cnmVN@-TUD\4!tm<,$_U2XjPh__D-"bH#:2PXX/.A%7m;](Vn3XcA@Y_b;P4>uChRV!Nk&o*StjPiI/M0tYHAZsst&!\&J+A)5$_.7\\%?:]O`Puid4lo!m=$"4!Fi7Xc"1qZL)M4#GAl:Bos2NY%MEWAJF="6<\2)>3G\6*_sF58T/%q-Y"!uh&HiP><3?u+?)CnnCjW_#(D$CIJCm1BJI[SrTr`cr,_K*XI-XbR%poJdLCP@.-Ui\,#[l+`4_,`]d<_hRW'C^rdH"$imkUaK[1:>VkJl6iSOd<-bY8..EJ8b=5WZ5rbMHZ-7>KDFJ$$Q5!/g3Y[Q#[lB\Up+)i7s:B2'Gul!N2":h47u/8pVf@=\Ik_#.?m(8,m*p:RPD[-jQC/o`s(Mq*P:-5l?49Z=?Em(G)+)lf7]&>U=<4PB==W64i3rqepQ7)W*8&AY-Dd#<0%YII&_dW<7N]X;*QD(fLlF8HD$SL556Q3569mlBq2fY[8u@d17"F:lPV9PLTdH\->SiT\cXQ+S&Ab3U0_M4:R%)VRb"mCL$Eq!dB#j^Ko]$ms@(;_O2M/JuHHr[/Au*a>C*078@EZRPX"PLuk;'bLFnMp7-5IMtuhk<^An9Y#WuCeiB+e)QG74?_bHqC?);Adn2H\nVCE(78Jjq@)=n0sorqNi"ig>7hn8/$)JNQgq)1PFbUX;`9GE4N=Y(S"DtdifGn/.#?9AEQb&SdTsdE&0<]*WfUPsjqBW%nPh@a)ss@[nc'bd'ccTGogpC_7s5*8:NM-ZM`4,6bNa[f\hAMV[Vb7!#:qo8%\JiCkDPOK-;4iojcC\1"GU'5\AUQO'#tKNb**%^r9)[tqn&c$pN3l1VrVJf+r9.,Zq!1@lG0liCMh(SS_bm64%pW#Kendstream -endobj -18 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 2762 ->> -stream -GasaqgN)%.&q0LUi,,#6>:(dkPkH[fcX\P)Q&BFM;Pet984#u_$38f-If5iB!E,MBUe9_[!=ud=oF1e1(?$(AJ+JQ&2\59C5%\fO*d0)0B.83&aPK-drO@_J10_"P*7%Zdoa35=,'#@/rX*H$:0`rK7+DX&S?RZ7?10VR`3[mQm+\q8m:SBEGd>3=Dm("]$hgZu's+C2AMe2T:2)&"IUFMSnn?].HS$a,]2u"O+I9&UU%r"KX-fh[UW"bWn=;`?_610o-/ZjCg67^R\.NQ/=C>7-$Fu?\[o1b2$!?[lj\7%9l_aXj?#R./Y_PS7Fk#CNl1.EM0CN8_qtp>n.QT^S=UHL)*_S,$=mqbA#^4__]?'BS$p-BDW/S5p7bHkEA8SDcEi8ZORFN-0J)AK[Kds",3q]UL4-!D=*J*N.P,@+pY-4&Dr7gp4?>D+]q&N(s0$%X?AHncru_%PWurFn`>bj-ap6'MfQ+kPV&bXP7qLWhaij7n$?7WIaghWgab:l_%m@2`04MtCX!et5o*$`%SLDl8pb)c3,BG/nc*]=HB1(V68t]FiOAdj[*4SHL)XA$MdtL2.8dMt=D\1Pk,f4WI9!7nTG7qYrQh&P#0QLE7S@aKH*D`?bb-"!'kSo`qeW,"&[q/o]<$J=H%Du]qNLei`D%P@W%T!(CCsR,LIt=X]S55\>32drE\+"6E-kA`E,djWmoSI?T[MT3mZiV+F,XMd[>FD1J:kI9K^ipXk?>HY;$goQ;-D$d>O(uE?_=:MO*;\$UgR,c.SJQdLAu),r?tCjj:O2#CVeQU'&;iejRheHO72Es&5M.23r@7@B^%"MaHkB.P4EjCZK+,.89+=K6L%]r^T/hAHF0Sa1&aASEpu,@:rN\'p.&EA&_AL7?]kX!"u>#6)WI:\hf_$Ru7Kp9b6e3QVXMNG0_c$$aVG2\p*#r3QrbuFZS/'ss<8"p?Qd9\i:3HQA)^6(1V5eR@X.%I/hdJ2>@W/Ku'npQ*:HjH8[%OiOl@SoQG.'Q=SC^FsWKO\!XfB[;PeX/Af7o[HJQB3:/t]/R*D11daa!19gY_a\Gf,bmMtN`dlVbds\RHB%=PKFW[[(D/+@TNR1h[[b6cF[Gr2jcfd'7pbX'[/L*el3p7>Y2@.ZBb1*r-6AV2dK(I=>Oi%_%ij7h"([SN@\P*co=cI9KZt$sK<<;d.*XF2"p$[6%0C.)LW9j*;;?AJHg*^qdD`b[],`M;\G_CcMD&`R!B4PhUD.'Y.-P1N;-IVmN7d6kk=&*WhKj9B-[+h!NX+TrQ7P,`&`Deh]'cWABUH*Kg4P/4ZXFd*A^)BfkRG_AemOOXqY3MRndSG6A[8u8E8Y/_O\W-nX:[!2qEWcDJ\A;VJ)]CC)r?A1.#[`'7c7_F#`J>\2NU\)$/1Q:O)FTthhq:([4u^j5383Eb6u;tROjh:["d=6B\U]X&#&BN2HVY=Gj)b=Ic/qK%HZ<^.H.QgJhQDoK"7shIdmVj#l"r0^0fjqn*]tW2/`=hMJ#O'!SE`'nbTf.pK-c,:SX)$FgD\Bc=c?h1k9B!Kc0_*i,KTVZZ(hp`@/qWX-K=g)NO'J7UXfX^KF9;a'!8>8!lo^!ffq"Q-gi\sZf=aH[Y3q72aqUs3_a0,CPS6:pC~>endstream -endobj -19 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 931 ->> -stream -Gat=*D,]1C%0#*jToXn3?/'?3LMqMg*8>u_KQ#Xc+h15hDfa^!r;4TM8:*VV/XJ@fA]^"/4Hdm;?dciE0UPiG=;KWOOOTHQ'+3]kf'Jc2ckNk'IG69K)+qm[_(L5#:Ne=hP$Y6(!Zp?5a]Ia+YBQ_\k(g+d\ab)b32^eH`_`M;lt(?R$sBYEs1G8KZA!hiO%KS=ZdM^Wn:`-HTUr+Kd1mOQd@1V+.ERcBHn%tgZOjad6cZi+tbSt;Dl(mka\Zm,itUC3\qiDcD!*TPXT5n1CLs'-A:`Gq2gFqBO^!b?t*X59cto,_<6oHQ>L?5l7FAVjmVtm)BjSnm^l"jMR4*H"_57Of4VV+C5GS,?dgrd)cToP>EtJeEhfAB"rH0"3F8W$LK>L[SIQam3_n<(=kPn.%[V,&k_QXpb"[Q%$]"K!?gY8c?u0.FDOU=eP0:<2g(m*O5e)_0!og=4[Vjl%0+-K8IX9.fH#4d!gW8CsWe"q#QT;M;@q=#nfR=A"KAtW!AU?bV"2Y@52\T]F#ibbReI$*t5opca.*J'm@*B\u`Wq#kG9E:Es'Ta&$j74G^a'j)jphC_L(_ED!9Ob;Lels;de5tALPq5g7>Q4"^58H\Q^6`o>o%P6?gb9DoVGDn&,nk'NSc`=-13"`AKlG_D]i&RTK\/VVLPM@1d;;(aO2N`KF`u.L_JA;<)6p[8C-(aR%0,G!r)_aie"+DFR]01qJWj8c]YcQ;_!TlD]i,p!]bendstream -endobj -xref -0 20 -0000000000 65535 f -0000000073 00000 n -0000000124 00000 n -0000000231 00000 n -0000000343 00000 n -0000000548 00000 n -0000000753 00000 n -0000000958 00000 n -0000001041 00000 n -0000001246 00000 n -0000001451 00000 n -0000001657 00000 n -0000001727 00000 n -0000002011 00000 n -0000002102 00000 n -0000002613 00000 n -0000002978 00000 n -0000005551 00000 n -0000008755 00000 n -0000011609 00000 n -trailer -<< -/ID -[<8d020becd1c122161dd9bd693fd0157d><8d020becd1c122161dd9bd693fd0157d>] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 12 0 R -/Root 11 0 R -/Size 20 ->> -startxref -12631 -%%EOF diff --git a/ai-analysis-reports/repo_analysis_556d0cea-fd62-4042-aa74-74ceb4c83020_20251024_063801_analysis.pdf b/ai-analysis-reports/repo_analysis_556d0cea-fd62-4042-aa74-74ceb4c83020_20251024_063801_analysis.pdf deleted file mode 100644 index 7119410..0000000 --- a/ai-analysis-reports/repo_analysis_556d0cea-fd62-4042-aa74-74ceb4c83020_20251024_063801_analysis.pdf +++ /dev/null @@ -1,169 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 13 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 15 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/Contents 16 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -8 0 obj -<< -/Contents 17 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -9 0 obj -<< -/Contents 18 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -10 0 obj -<< -/PageMode /UseNone /Pages 12 0 R /Type /Catalog ->> -endobj -11 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251024063838+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251024063838+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -12 0 obj -<< -/Count 6 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R ] /Type /Pages ->> -endobj -13 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 419 ->> -stream -Gat=fb>,r/&4Q?hMHL!)NlQFtmB27s.M_Jep5ti3-AWqdYlslLm.:<1'oQfP00IifBC6Ufg;;gmCOhlgJia*GOM1cc,_C+Je("9aE3&%$30&e+,@Os3#!q.[g,kIRK^foOb-P]ipLb2gg6sg*OY^Xo=Yif^k@C%c>YJc/ZmfRMWrcVW]'Uurl5h:3I.+\I]7fecdOW*m,b^%&O.9%9?-c#,abY^V98idclMs.@IdiD&1&j,a+htq8!SS!6e."^!d]3hr#'W2&$n2[T$OBG>%\tg703-tHV[V_T8iHI0AP]uggW!U]\ltRUbA(0;]4"I_8+E"'],9L-)YKHf0fSJtBtKsP].=_M1dI7E./p%L__Z#pendstream -endobj -14 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 274 ->> -stream -Garo;9hrS[&4ZCS`O>uG(jkQ#mZL1R`LUfkpfHSY`9KW*QO?tXKZ-m/e=J<3IA5%/B!F!JCG[=OVa1M1FF7VOP"[#u>d3aQPp)+D,(4uj90@.18Dk7YPC[/&\B[IK]3//=@L`B1=*1&+XkW778+'^o"MH\+J[E`L>C?`X:oOc!ts1&ff-S`qCQN~>endstream -endobj -15 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 2351 ->> -stream -GatmB:7qP/HU85F^:>2T*9G?10^@VRQ+UJH..KE(<^V4>Hn06OXh+gK#LpL@Qp$BLE+cZ!uh7mYio]D9Br>8ELdGp,$3/HhhNnup*r-8m#c.SV!nMHWZ(NZ+^M]`F@8N`ajRZ8O!P'I\bVPMf[0G\j*@Bk@MLr.*`T!ROZHb$8;ZB[W#Y$YSJ(Z6H1gI]MX/j1)br,3P3\Wl$V!\&8:^,.+bk/968si5I!B(9i[4P0#*Y$*Y4m^:7,"]XZbi_l4,S87%V$Cku00SAImZH9Tqf)]F)[]/OnSMq"oF>\2d@h$UAMJj#^l&dJZjc]l/I&39]9DV["RgHdVUZ1/M[k4uil;2)7;$Z>&Z:G\CZP`67YsatQnV$kJ=KnkPq9aet?Eih6_VTfRHVS^%2>SB]bjrE66]h]@Yo0aj_SeK:E?E'=eqn[-aP`nrq_(lnd+_N4dQ39MBm:c*%>VNYD./c`npTCTU/s!$WcG!,T/Dm,E/Zg[lDE<*+p_]KqS1r5nbioj@1QVYmeP$lrl8[.QG,ZrW[7-G)76\CL;7_S:/k(o5S3Tc-m`W*ms%l19[$X!S'k7`#t8itA:60TCaU82dO4?6J]KTR-P-/"8'e+sf,^D^ZsX/hf6THVI:M?Cu(>H*l=;b=ifTEeW"8lHPq]5in3<9b'4Um@A'X`l'`*,(PpS!O$;DBZSJ]lV82XlX=*")@;5cG@QpjWi&Prb["hoB&c/fP[P4L29:O8HfB&$S)>UI=jD/b)0.q?q):a>dRP.U,PQaQl92F*f1GC:g18)1)k5o>5!eeY+#fPn18hsBiBe-PJ^.b)u'_*j(0@u.Vat6:+X3*E5V"eo_YC$%!0!4#k_g>,;O70>A2:]90;]l@(:2+j9Rg'#'OY*.W.s&g8\#V6GH5"#5D3aBae2X_%'&f!1`mY#8iY/72taTGeG\lgKYl">$J72>%kP/Ss;g7l]LBBOVesI&7i[.T<"^ikX'B8s.4[CF2@J?'Th4npX22Z-=T8.l4%3jnXF@!7[BFg02C*Onpid][a)d*T_uL-,Zq_E3Nrs^OYOo!WJD4hlqcdeW/rOHP4PKV@D)ihqbJAY_L'Y'iskc=%EBM^HaXt!^6"`;JXOeUSEY*cj(RKiDu]As/pJno_KYj^>tdXAO)NI=F,f5r\AIk6WTVaEikk:&[j4G$A=)>sSO"%:aC(`WjTlt*2)N6@.E(d$rBg0nmMmb"P^F*%Q(gZYYD]+UZbX!_IHh"I].hL;e?/k&h>'dQitGp%Vj@&"g(#kKIA.;rgR[qMUYa9?%W*'>&QjfQHNj<`S03IRiKQPYrE,5qs[lj/f`>8tUn[1k(S*aE:+=sKL6?_DM;s\nneU#KGIb4m,!:JeY^TZ;FEGL]0Y="eia>2"'m/Z!Uo;u6T3+NP\QH@sAZopFcN$J/7IG0h]ZQ+ISq\?k2X0"0(GpH;.eF!P5LJ>+2!Fg>F%G'=24MmLFH5q4.S8Mkp-,m4_mJBtoDeZ8\&qri*,V&]>/&C]DFR_endstream -endobj -16 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 3057 ->> -stream -Gas1agN)%.&q/)-FNmIA/Xqmhpl`9MQ^RMa1@)3Q[4eN5!_GpL9G/[*/R??e3-7*jQ^[G_jCh[^>=<\92aa@q*9EI[nBOd<1SuY5o]@"Ugn+=p'W"=t#X26WYfEI:gM=fuD,gRNVM'Ao3_;,0gVA?;?9)D2bo'5>o%_V)7U/66JY_67J>r87u[ia4o!ZBKGN[fl4!49A^?E(VA?Cb6(Ff[=AqS-]lCNXt85&[g[Ao]SS!^pp"SS:,dKs(u%-T4%FXq"-T)m[$1#?b/qlcHW(eDT\][d%\VrDmh+_?@V5T?(r!I".WEk8NoU!N>9ML#5Vo?t2lZt2:$)7@uZICb%GsTbWZU\Yi11tYR7NknErL2-b>9DL-KGPiL""r&o!(/5K^j39NbSo=*!ns4+%ue440;3N+W/PHo(-TB/eM^nkZN,7&fLRrPhN@#skm#YMfg!r],Dn=8s3%,^/lQMkoem+fVPbYm6#b,*e__GhZCao>.Rr_fW'/mq/>u!,`DOOKaRlFl:QoDK4]HL'RsoqhWGEuI6[j2.2S)/i[(7)]`Ou'MIh-2KkrePYJ$iBjj02W<0@&H]:iUNa^pE%uo).S.m)aW;M:;!JQKL"D04d1N\S>oI],]J)Fak.YjXE:+3<-$fI#:1\)o`t17+sVnUnKY0B<^t.=H[&i>67Ud$@o[9M,N+$)RT[=e/UDtVk+$?]I4P.QZ![5>!:65MG$-Ba(_,;gh#tI6.M;*O5B=V@&n\t4l6YX1$SG>g4FuC[8p$N>2jloX(g"X#'5/":5t8Mip^Q@7A>F%44C)^0EfiM.Uj62)$4#;"NJ5W`dk@Q^I\GIT3(Bb87*h4`\G5a7AqSldi]g4Fr<)g&,/[nM+:ZXj8]D2jVq@(V^"jENP6s%9.ai+h:ZA*u3r#,;N6fFBLA0$AKr5Dr0Shk2]0;AO!*%&P7]S2V`&nbOC9R]+C7;NFp\\+ZLnU747+A.D.+j0U?#Uc;%n`Oh*uML2oBWk,+S=F:q;.!;nndi-,G>d-d3hZ=Olr_M]6RO'`T'aK/)-5ZpYYDh*Y*(?+gQJ1iJ6db2l9rO7K[;DoXddF?7?!NKUoLf'?!Q^5].fuI^@5gu8WJH_J`oP@nh"Wn3_*g:mj?2!k83q!:R!b2eT\=/<^#WhYguq$K,X.eT:L3Q;$SB]kH?/`c[p0d^b8hc:+Gd(ck!^Y4Jo"_VC1B&A@*TIN?qFapT`QfC@jY2r6PANf3uL$2[)Ia+'Trj#7CAs7R#%Jk[60re.kW2^0Y]N8+o0=FOXQ@.QK#Np/.`o7gDOY9pc=X*\hSG3!,g[0FGD'@OqU'mFFHqG:AQTD,`<_P*9#H'FIo/(fXs6X0%B*.2i5`ELuCA_JVT9BbL-e]f>BEghp[&lS'U"]&';fn_SI3XY,cd4)]I5*4dsH)%.*2!\!$e)L;MEe2Y5e(8-M1//k"7U."Y)AO-Y+?p!"pXio':PoJ4+\Yu*kL;3Ns,;h7hfs\lmh8i9=mLJ_;,3nbA$J&M8+^ZK4n%$S^l#Zsn/sQE"Y"S=d(7C;1:!she\E5)j*mVBRr1GtIJWf.0mW7`KPC^HHd0k%Z"a=]d8S`?#*d)`>-]IMji'JAQstP(Rk8bM>G?X!0A[60Z63(!2Erp-EgIQ+s/#r'3ZiK`H#]8]*:,5iji[/mk5Z=o]l:nL3f0rm3O?%O#]CmB/[CGPSO@@#a#d>7^FOOKGLX6W'fhWU8,)oiGljXY`2.`:GP@JRF*?b;l$P8OObA],.H(0gQqgJX2S\gCAnSf?UA:KFfI+1a>'-LII"%Zj/@?VhK.aE.TOuOd)5C8US`MVe?Kka!l(2M-pb-Vj<9'%@,9KE*<;X_NMDU'+UmlbV4?5Vf3L?"l2o0e$B`Q4IXI"8t"#k$6TsT\9T'se`%W;:Nb8)?MG'Yp2&U>9na0?@%DVA9f9*+i1.MUVlhDS4GC(t`Seg2sEVaFaXIR[#?endstream -endobj -17 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 2646 ->> -stream -GasaqCN%t;')eD/_2mD@lq"Eug&!@f_phanMFkP+5+p;`K,r(,*O=BLZ*?c>V32_(BSZOhHsZ/kg`*V<910e^aP+3eZ7H;b![ihc'gt6VM3HUmE1loAM)Q;.8hb@JnItSU"G$(DmrCU>3p$"(QLDP[$DHXFLC8`\r_8J,WHLBSC1'J`^;GN$`M9NX_O,W0[H&9)DR>M#1q?3opcl7-@H1:sD),N!Bgou-X+38i&i"b7"a9L=.6ch`]I^_#T4(.nRfL?u%d)"2B<6C]RRnQKMcoYdqH60YdZ;Kts9/8R#2h;C>@-#T"eXO%LP*O+!+hX`19DtR;Yj43CXfo?qBQOOsi=M6Vk-/e4p7(^Uk\hY^C?qLqJo[qOT@pDnC_,Ll^#Q*EPi]e/]>kDSD=!D*'jQLR+ORSj]+Ahik3RUu7V4!K9/!nIe27q"`(@+EjaL";,k4ENAjbrQA?71gp?j@/[Xr.`OtdJ?+JVI5h"BL*\)L[YFiIs92@dVV$0i@_VKeci6kq/,![PJ#m?<4^lD7#^88CWH>C^Pn43uaVgT/Ya:"b%;Z#:Mamj:E1_F<[k4g<%BV,841*D@@Q;R[4\WCq9qk/@^c?T1MVe1MZVVJ5`#G'#9IqZb*<>Z9ti#PbL$'uW)q+")&+,3KY=DsG^P%3pP]pTY$n$@I^a-1luY^Y[jqr;/TMqbM3jn*pAQ4\d&oFi`EdoeA2A=E$-TKmQ176F66Ur<,2W5aB$F2TX!pG:(T.[d98YDSWJ_9@#.`j[t^Y3!'[k%/o&9VW;=-VcZDfG[@QS-$D&bmc3-8d;NCq7g,@rG8/&W^LXB"4nbggi[9M6tONSMtUhcm:s>Lq/KIF]R9t9_Hbi-pdlnl@E-u"PJX5;WUYs?\ZPI*OmC;)@'H/VYi/oU5$N)C*/T:N)U0Faa)S;6;aD/S7E+OC;Oq'`PS+t(eN,s3fdN"mZ,T`q_Fk7;F0T^1,TH`_4f;s963NaSdd`\UWC*K"iL2mDuo)\A4k[\WV>q1L"K%P0J+&U?\DiL@,)jJc(13T^]5-aQLZl=QHV0?n-"A'Qn>P=;"GBf$>CRkC"b.%1)rpU!jp`574rHBr1.Gt4]ONOZ\Npu\\D$=p12=S$(7R,J%GM!QLIYlb]m2+(4"A\]Wi_J#&-rF3?1U3XC\e($4@XWmUI7^Hu"'Xo#pdI+fKL/6"6:cKBKE6'8q$T=J+M.t0"Nd#!b.52)ikXT`^L3KKn'68AOV!e!GYZ]bt^9m-_Ro!8^BT8bsI]HFhU@rhPV*T5a5W>2N*?/-dEEQ(Rj\2_A!T%uqASPb+[DbS^!+h(V:P5]%(uT.KiP._q/6^:]Ok7+,YL,&N7L+d[4_$l"/mS&_EL8I)?<8eB,k48\:%kgRg[/1Rj3JW\9Fk(-]14;Q>SI]FZC"K](=u>r^@ILd/ekM@WN6S>dBU;QWEL-7c_b1-%M?TEEVmbs38Am>d)d8@2I-ctEO[^e.6Kj2?/b8=ZeU3T+t$ANd`C4p;+_T?pEYN&ZoG8c*Nh?Ib_4Wpa1d8#Bi.UtZQS53P*JNmd:,DW#J$h8!GgH!"=$'nopPGUG41bFDmJD<5YjV^4J'%9!V[CCC^)G>ppY4DuY;])!hWP$piHr7&'Q7Pes?GZ,u5X7O>`@7:Qi*;'SV1Jc9XmGD<=P4RC[Ke8I:)Td9L+W9MRMkejrX7[7Rbt>]U'9tj1Mt;Z*$_%ZKK#N"p?np(7iiWaWKtag1l#*Of(@c[0^r!qh(@cZe+;Aq&$EV.,kO"1iiquO\A_(FEmeX3Zr1(QC#ZMJb"Lo[P@EXM1M;\J?5bk?ZuXT6jfHkP9:*pBXh8c7XO50`@qUd%?5bh>[.;Y\>73K-.q`\Kfh.d6UpDn%L?:uioI`83if,o:;:%ddI_/->2La%Fr+9q!V;J%M7lIMI-iILendstream -endobj -18 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 929 ->> -stream -Gat=*D,]1C%0#*jToXn3?/'?3BA`D\348iH#iE/P6?&DZhJgo.r;4TM8:*VVc'Pe0A]^"/4Hdm;?dciE0UPiG=;KWOOOTHOchdYkf'Jc2ckNk'IG69K)+qmG.Z^J%k'M%hP6e8(!Zp?5a]Ia4tWX'\k(g+dS5.VQ-k64G?R-_;lt(?1c8uRRNi([+Zt4[$)b[!bMoKL=2bY23S:Tt/K?KI\:dTprRag56Q:'r7tYJ%`[Z(jJI4[0"Gf1Y>%<9%tqPs,9YjS@dD$^oqK5rjejIGR+F4$1lXWsWEQf0ELC<`5"&+K(>J<:I8G<Cq)8@'2(IHic77JdFkp)QrfEuN3moV&-O$'L>j/+Y>*tWpC)&CA@$uaP(280+@pEHc.nSYMYHmTS7)5No09%CgSjU)Dg[Qb1P1u`a.Pj<*,k;K934@endstream -endobj -xref -0 19 -0000000000 65535 f -0000000073 00000 n -0000000114 00000 n -0000000221 00000 n -0000000333 00000 n -0000000538 00000 n -0000000743 00000 n -0000000948 00000 n -0000001153 00000 n -0000001358 00000 n -0000001563 00000 n -0000001633 00000 n -0000001917 00000 n -0000002007 00000 n -0000002517 00000 n -0000002882 00000 n -0000005325 00000 n -0000008474 00000 n -0000011212 00000 n -trailer -<< -/ID -[<64358549c17b6a359434f798aa54ee8b><64358549c17b6a359434f798aa54ee8b>] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 11 0 R -/Root 10 0 R -/Size 19 ->> -startxref -12232 -%%EOF diff --git a/ai-analysis-reports/repo_analysis_556d0cea-fd62-4042-aa74-74ceb4c83020_20251024_065306_analysis.pdf b/ai-analysis-reports/repo_analysis_556d0cea-fd62-4042-aa74-74ceb4c83020_20251024_065306_analysis.pdf deleted file mode 100644 index dcaf125..0000000 --- a/ai-analysis-reports/repo_analysis_556d0cea-fd62-4042-aa74-74ceb4c83020_20251024_065306_analysis.pdf +++ /dev/null @@ -1,169 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 13 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 15 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/Contents 16 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -8 0 obj -<< -/Contents 17 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -9 0 obj -<< -/Contents 18 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 12 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -10 0 obj -<< -/PageMode /UseNone /Pages 12 0 R /Type /Catalog ->> -endobj -11 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251024065344+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251024065344+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -12 0 obj -<< -/Count 6 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R 8 0 R 9 0 R ] /Type /Pages ->> -endobj -13 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 420 ->> -stream -Gat=fb>,r/&4Q?hMHL!)NlR":[(@LhW`6p3fgfphRNRb-`tIJ%Z-rrb<%P&3]^T05S[i55C(#eQY5rN=#jr7c62Cp*OU0Aq9N1Dt_lZf^+E0`3A$H%P/99m33GTrIG>>SL^r9jH:Rb6?\LQN+XkU!6XmTWGaS3EL\k>TO+M@j;+UO?GqoB)Og%B_d-lIk\CMD1gD&qQTnIPV=Mi1r+*V):>*2)+!8DOi!.)">2CiIDsb)kVU\U_KFlTc@5o26=;G044LY%3/l=n^@7Z>KM.Y,etpZE0?lZQ&$PIDjH"gr0Q.d\spFO1Atk9&'#DgLW)LdK#9I4T(Nm%*t`[=,kWDUk%Q`aS+M!1>AuS(4Bgp%A/n7iBc!PlQ\7U^&\:*YWD~>endstream -endobj -14 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 274 ->> -stream -Garo;9hrS[&4ZCS`O>uG(jkQ#mZL1R`LUfkpfHSY`9KW*QO?tXKZ-m/e=J<3IA5%/B!F!JCG[=OVa1M1FF7VOP"[#u>d3aQPp)+D,(4uj90@.18Dk7YPC[/&\B[IK]3//=@L`B1=*1&+XkW778+'^o"MH\+J[E`L>C?`X:oOc!ts1&ff-S`qCQN~>endstream -endobj -15 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 2457 ->> -stream -Gatmppjjn/'f.PFUk0,Q7C987=oICC9)EVT2neqfqYGMm0To/85^BK&q$\`"'Ec_Jh5j(DK9D$.a_(EZQfEUc0*/(4-#MR)=,9iS=99ZKKDX=d;J,V*<7]S^]_IpYXH[B6sK,;*X'D7ueD%Hj]ZEFT,#("a7"K1n.0P*%a]S>5rORX;927?;[q1:8Y(J^R*?tgFja`O)JZl>i=KU5:i+?"Ap7=A>kgLBQ,KH)0-9\p,cAOjQrSPD64JOWFFcl$;'-djf[sA57,(n9V,BGV.Nh;l9,udrs&Z1^V'@I\WmM\^N#E..jVi2N??[F5C]EUH6oZZ5?G;4;[*#&"gg9Qpe!T5)2#%)js>CbA?P;Yn5sCkgMa\BSU,mQW>:fe+\I\!lf>^?kE`pn),p,U=dsSf5I'_t%+\cU!6hABt[E&%!ebg+5Bh%^),uAfg>IfsNbA7QQ3"N%Cm^O^8iXD$G3P1;5b<)[:,RURI7i_]6F0Xr9qMX'D^FkC_[0WM*Z_*bEE4HD>PF8le-JuLQ(f(3tU6Y@tRAqV6.sMJo\D%V!cJ`7?7C19U2@ZPH!au#9._dS0hZWAKj6>1#>H<%Rq!Ob4%^7h"r56FV:%6SFj7"D`jVRf1PMijt-GaJq9nLuEP6bBJiQu#_/k5g!$_8N60@"^#3*Q8bS`NULO%O.5MaW^^,j7N0Wmp)3ITpVB8u3TVWh^tuC<0X3L*#cd7@F3RT_-LI#A-L2K'P*tX/(il)KH(]6=t?#$3-$VJK5&W#%>=4%lnot9OWht@'f@-VaBr5ZLU%2%jI&Q1X^QtZaOIdmCr!%n;s'5mTki,Sa[7A1rsAA(`CQi,i7c\\f^Q>4__OJpZ4napBZSGL[YUJN,?<7)9UfQhAn=X\NK'l$c]bWq"ni_FF0(XPVDY9P5#b(.ij.=EW?#6C%;mXk9oVF69i`$mdScOn2@>$kYRW\)=Ac`G"%o2(-8Wka5!*7-:jU8X5T[L">_qJXC)lGLM!j&&Jl.cr^HL;\3kY>KZoD,GorWiuJD"S0$WClWpgY]Wkif%"bl]D,,sT[jn%3<`rDk4K7q6-a7#f+7SR_hk#'AZd9Ehm-#.9`TV,F?Yh9(^55)lio^5#%abZ(;rlg4^Ldj*JcK/iFl92rDt-F^9[Xkklqa>t!(&U3%UAe(8^9fCb$CoLf-A9q(UJDU*>kM$T:Xj%sAis()fG_9Jfg45=B;L8[$q'W4SpR$6(:JYI1VO"d/g\Waij!QomNYOsS0(3.Shgc/Gf@7?/`aH92acXo/`J4nO7hpkI4A8R*cnN5a%_UZNDTV:\oTZ75TJrst3t4A!^3]:S'?Pg^=YkBn2O$iLfE82?@'s/:ahA-;q[J\'o-+IUVaUm>rM%Chg<]SQ"W;FdUaAA1]K!$m/)@iYhaL6i?eikBR/U1(pLl$DPnCl?LPdrm:d!Y$MM^ZN_fFG#F-#,HOr3Tf)IO9nZ_\p#j$K!Fq9NN?ZA;M*KgI?1uY@#L4Q5$e(.,n)&E~>endstream -endobj -16 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 3085 ->> -stream -Gas1agN)%.&q/)-T]TgU/W5`*?Sm4)iagZIafZuA]Xc/gOV!4$#qu?->Pn)?\cL[KeAR3E+q]5dIJSI%0uqUlJ*43N+#i38Q\ANm`F^J5(YOMpHki84Dgo?%UaN?Iic=]U>HN?Yi<6l^o,"QWK"7[]U4Pf\uAZ29Ft)YcK<8rZ*R1b%mpn1&@I%S+pfORJHa.lMm6bs0/"9`4.?#hE#t^Ypiu=pCP8h[p?Nao`TEQ#[/KLdPAajlEjJds0B[>B/PGfdIrL.E1dL#J5Sa?b=F/i+CBgV8X*E'EA.\NQX>ZS2(CP@:#:IBaqRuIk:VWD2gBXFa0[QYYf3fX:*E2/re@>2^J(e0"rDD$pR6#6Q7=Z;4%Ib%p\8gJj9K+r*6#pj9$c)=!-'_J4['Yed(Z0g@d*-ug&WM:_iMS]V<2$:/>Yp%;\eB*nYM^TiZ_+0;r,CfrDAd#a7lCcZ`J$7(&RQR.,3R8(]N_^&N4:b;?$@&gGG'Bopik+a]!QJYU8P\gl?)_Yh4!?,.c.`MBe(:$tM^KI6r!@f[VlMe%.^k",+-`j\`[!Nt@6hMgr3SoAIVQg4fkX[5esN#g0SLTp]Vj&"S8`FIb(s-/ULO`TlR_e5FrJiG#X(Il+%'S:RJ9Sm/lqQlG1mWa%OuM-k'Z/e)"#!@UGYeN55]Ei,ia0-#m[D6nKIDE3Ld5X9^udk!,s$Y?AU(,.I/kO%!X)&H2,dUnS/!Fmql8DA9gjFes$qI^[@+0<`16[?IVlBJ:FMmZeH7/4\[0e$t+kgJY20J\Jk1_kuZ'Od>H$]MsIF%CQU2%kP-U?>$W_`044+:A_]7K[84KZA&3&6:^']6GcfURpMto\UT#Fi-5Y<__[i[33K6WDQE$H,9OkF*Kni"N8H="&j0rZ+\0EAb"P]T$l5Q]2!o$!r9(.a!`^1h/,_m5#Qb6>=G%A">_n=TpbQ9^q[/<;M8d#Z".7AJcFi#N;!T?ui[K_uj`DX\#(,bokM'n)[o<@X3!hrR/\F(otf!UF4^jXLrD6mq!(r3R:'6AJqFHF97FVT'=u'jZQZhE%Ht,[jcr*(1qh0S/mr/mmWop'8`U0$F*ej3sj'3HG)7g8U*Aumt*b!h;`0u&+N\E#QqTOV5/pgrD1:fM5dluY[jFXI)tC#grm0T$'sB2XB-FG9$'eW\FC210`cg*UTq;f!#bNp0pU_-=1FYI`<'36@/>oA@B?8Kj)]YRG5j@k0'#dF7&9)jcC*:n:.jogpeiE0"3:\<.ucAAUu`"d(>8sZ`n(+Phb>cFUo+3r_U=76oGbX]FU+DscQqCpXaJ4),([>r5;Rgr4+?ePjp,useqYXUuDb-%%+BV21$m#XqGKrE@S<-h&uHgT1/N`u9SZ7mMfc9D+;Fs:;@c:$\*!RdMKEi1i\U9L'\(MR@-elrP5!T!X=!eb),2Q#[CY"9#m0eH'q:7T8Ap%rk#iU)G5]3RI^#a+=P%9&""7JRu,NN3)p=r9PF\?-!R9io/^J$a]_3Z%bJ&`+*JXQ%+iU*Iak3Ot)js'8(O(6S-4@.+<%I3U#A5\/FBp`j2nnl=uTc,i&/!A^o[4rhuIZA#[P9=Xu6(+XPFWLZWVcV\b^HqCPblrtQ6eOhSkU^:V3hcENlAFG^q^8e9#EC/E(K/(2!l=>FRj^Zt0Q/g;AV;.qp3bYNF$c=?K7oW1a%dkbZktGWAHQTLCM3$-Am8`=fkI0!Dn=6`%30<3>Z8inG(f5mGCErNV'+;j;or1r#b4#`l.~>endstream -endobj -17 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 2842 ->> -stream -GasaqgN)%.&q0LUi6dsuAD_n8,-^gBq7G>-L[_MaCG2nM9^%-G_Nt_C,]Cj+1KO;$_'tdLN/]O";7#)"sYV"djic[jTr!79-:]dKVH/$DA2V4rGUZhCB%O4qiWKk:7M_CP7$BRY$jea1[=:X@u7G;EX*sp=2nLVYQ4.&BZ@=p4*,A[+6j1ONF3M206Sr/M*:Y+dNK`t%%`AU[WQ*6`[poKE^W>6A:">;fOHX^TP\X3?&NY'3+>&@go4NJHg9I3RR.ZU(!3`i7k!6J@rG<(pDr-KU=!CI6i)@b4+'fK#P'*:>';ZN3RgM3Wo;;jD^eYZc1>\MM$^IY=]oT=R"1o.eB)d/73e=MejE50`Hj>DKMBF@DI(9b8__.GA\#"HHW0N1+\`FfUIIRm>LBGc[C1>e*u`>+.C$X_%qBIV9Pu;,NkOZiW#>ZCmMYRtrRA\BC7t1jM5@.V\f47$qHg!VG?q-'Td%=/gpWgj\Z<%ipM\shF[+\pN;C'5/RGH/bL/j4-QdG!9rtesWttJ"Bf]G`\N3RM+E1#Ie6R/llb0Rb;_(ijj791YoM'JS.WY/"6^hh;lmi6S[!O[In;%`8i0?^<4>u6J>jb+nNcXM)?;A5ba\@\8I!4DYU;NrmhR?>,0B%`Ihg/':F6C+QI%B`'WXW'JC:Ao;;Foj8RT51s+dn@ih6H_s:XM'Zhc[Aac#hrPde,Y5A'"OHVI,2?crT.-,?Ld&B9>jl0eA2k^pG*1tF)-d;%,I4'&"fN'rdNgodG%(-"S7@=p?.p+Vn_`o$+H/Es(=T7;a9PJM)SL<1W7fJK$%fUFLZM^Y"n3m"dN>f=L5S`?#ZNdIF'mVU((,A7?M$kcI*ZYn$Ol!ai%Q3#Z7(1Ri=3&R1\/7&Ns&g`JRl*m_X.`#5t@ac'T]8Gfn)9r![;;<4c7=,*R-iR:;(;e0A$7AVg0%b!K,c!#t:V=tKd$tA25qi'Hr6c]RB-`fkP,KPqmp`W5(]3"=3::RYcY/<5?MoF1bq$3"ZT*s$b5o-3bj*j%ns2p3EU>WcNWZfIRHfSGVAqkgjJ$;fZBL\PKA/'s_!:!tIhu7lBJo7/]Ye$b#-iej#D)Y+@mI\3\2k/=bDZJdFI`Su,TVt@;`q1uYNrb?Gh4(9H5Mf,4UT';,POnu,O-tKkd'@FEoDBG96=>.GIl(/$2Wf)Lp=,5)BZjVJdZq_aj#SZ`Q?&.31SbA)Hl!!m<]q]-I#rap@9;#MEa$(`llV>"&.j2B%,9Q)D;mRB,V:)Mn\_jmK%c'D\jafP_Y+>+!$'rjPhu7@1b(Dl[CL2[a)a83/#>cs.D+&9^A$k!1d'&UN1W!2BBthmYI5.7gfk#!XjbDF'bDbG"Ep(%_m+L:t&)MPuT^`oGOB\FCNPI6Dn1nJBEp$]8OM]1qJkjoX8?68<&\G^JS>suZ>7Fp(KPkqcGVH44_3,Il!&j_3M4V;6n'pDRH>m>Oj?/C^13,oT\7'AD%<])(&DTVBCe[_1OXr+(%\21!J-d!X&]%q0#NDQF\U8K)D/Zef%F_//?6#k'f635PY!O$BP5\)1T67'7USR1T$K=m)pLGq9V;!n*P`iXU=dPmKV<*h4`_Y1NMl$IYZba3'"(O?%g2a@c_g/jjNPEWnU7\pB0ea:Yp2-P.7TsmKA^Dj>g2-P.795fejhr+V).+J6p[:WqWp!Q\bnn"ni)K]?2?\*Fl`*3ot-j`+1qA66eSM7~>endstream -endobj -18 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 931 ->> -stream -Gat=*D,]1C%0#*jToXn3?/)UtLMqMg*8>u_KQ#Xc+h15hDbJlNr;4TM8:*VV/XJ@fA]^"/4Hdm5m;BGf!NHorGA*q&Kl]O>&7dJD8FgJb/E/&f.oY?'7JNg^qb$lp-C)kuDJEWebRjtR&0/IAcA29X*f\nlL!6E(67T1,b\.+5;j2QcpfX,g#nW2iBlGf4=W$4;Du.nka]f8`5S;n3]$3mcD!*TPXT5n1CLBl-A:`Gq2gFoBO^!b?t*X59d%Y%_;gUlQ>K3nlRaJWjmVtm)BjT9mR\ZS7G8*5JhbT*lSDdP[D\o'Xm)=l%4WocXiedm\P^a\K8]3"*4ODU_lJfs:59?q*N/6%XR)L'LWd/NFMq?sjX*=NKu89!YP-[l0K-,82U2,B8[@`t[KR6a&2(4W5hpM$erBRl7=j49:JWu)[r#Ye)gV?K2fPmo,/a,%$r'X\g[F*L:jdVaCeok25WGJ$An$]:6(C/r?@hJdaMN`M*^_\:Jp&6*6n.%P6?gb<1UkGDm5'H)1e:B4]d1S]=@87:"eP0Z0,G"%)_c80"+EQr]01qR/CUaUYcO%9!TlDYi2\b6A,YeuGo5eZEUog)AX%`4ak>:HMi69M\'Mnde`G%^/BW-q>+p]AGqtf'%*uFmNkDe("4Z[q6?klNI&:u^l8=1TE#"f#!NXJa-Tn'k^HlO`\gPod&`O6^N;`n-pM>E~>endstream -endobj -xref -0 19 -0000000000 65535 f -0000000073 00000 n -0000000114 00000 n -0000000221 00000 n -0000000333 00000 n -0000000538 00000 n -0000000743 00000 n -0000000948 00000 n -0000001153 00000 n -0000001358 00000 n -0000001563 00000 n -0000001633 00000 n -0000001917 00000 n -0000002007 00000 n -0000002518 00000 n -0000002883 00000 n -0000005432 00000 n -0000008609 00000 n -0000011543 00000 n -trailer -<< -/ID -[] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 11 0 R -/Root 10 0 R -/Size 19 ->> -startxref -12565 -%%EOF diff --git a/ai-analysis-reports/repo_analysis_6005b3fe-e792-4fd3-8c8d-646f73a94ea4_20251027_122146_analysis.pdf b/ai-analysis-reports/repo_analysis_6005b3fe-e792-4fd3-8c8d-646f73a94ea4_20251027_122146_analysis.pdf new file mode 100644 index 0000000..f81c730 --- /dev/null +++ b/ai-analysis-reports/repo_analysis_6005b3fe-e792-4fd3-8c8d-646f73a94ea4_20251027_122146_analysis.pdf @@ -0,0 +1,238 @@ +%PDF-1.4 +%東京 ReportLab Generated PDF document http://www.reportlab.com +1 0 obj +<< +/F1 2 0 R /F2 3 0 R /F3 6 0 R /F4 9 0 R +>> +endobj +2 0 obj +<< +/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font +>> +endobj +3 0 obj +<< +/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font +>> +endobj +4 0 obj +<< +/Contents 18 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +5 0 obj +<< +/Contents 19 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +6 0 obj +<< +/BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font +>> +endobj +7 0 obj +<< +/Contents 20 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +8 0 obj +<< +/Contents 21 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +9 0 obj +<< +/BaseFont /Helvetica-BoldOblique /Encoding /WinAnsiEncoding /Name /F4 /Subtype /Type1 /Type /Font +>> +endobj +10 0 obj +<< +/Contents 22 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +11 0 obj +<< +/Contents 23 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +12 0 obj +<< +/Contents 24 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +13 0 obj +<< +/Contents 25 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +14 0 obj +<< +/Contents 26 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 17 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +15 0 obj +<< +/PageMode /UseNone /Pages 17 0 R /Type /Catalog +>> +endobj +16 0 obj +<< +/Author (\(anonymous\)) /CreationDate (D:20251027122604+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251027122604+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) + /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False +>> +endobj +17 0 obj +<< +/Count 9 /Kids [ 4 0 R 5 0 R 7 0 R 8 0 R 10 0 R 11 0 R 12 0 R 13 0 R 14 0 R ] /Type /Pages +>> +endobj +18 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 431 +>> +stream +Gat=f9i&Y\%#46L'g<*qdjG#a[bD>q9`cJ-mT%hMCF5L91_SNW-g?MA&2-a+b.Nm1<\Tuf_jRZ]/nG1ofsSN!XkCQjMiV_YqA\?3i4"6C"=5VT2u,dM&%N7X(l`78QZVG0/l(p-r!36aQ-isa:AI%:*h^1Q*.&@h&8&VNf\oR0P[TG:bm5NJFHNe.PdRSZj"$ma>cjgd>J3j+WD$M17Z,WKIGK(;dd++O`YLufPWi3]kU"KV"?m5/*e]f.R9rVA/uL#?&D/_>oWe0qBDI!T(JlA8guQf.+SZ0!0")D~>endstream +endobj +19 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 281 +>> +stream +Garo;cVDD$&;T_&MVh9*MEiW;X3'eOK19/I>M*=k]1]cU^:c'P7SV)PF-o2L2o@mRYaWT84;clB)&S/!@"JZO8*iojDV3R:dSQYc=qA2\PQkPi8YJCo:J6[hJQcY@.(2Ck7YPC]_gZa[IK8%b']&%$pc1\Pn0,@HiJ?hqo+KV7Dig4WYFTm>;ZgrlT=S'aH>9:endstream +endobj +20 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 2085 +>> +stream +Gatm<>E;uG&:WMDi>8:f[B@Po5>n.FW/,>JGX4HFCt`LCV'O`[jk'*`O.Dddk;52!ZmmeO`q.I2A!9aaU\s#k6AUsQn_t8idUMiDOHik*?Afmq2uhZ0i=&QdlXYr'@L#(fU>Tl";EG&No[3!_`;9EAK[EOY,VC3D$h@GDAB@X(:-Ym>ZgDN+.";+O?%8;;5CY1QpLH5r\`:D><&tr&)K)m2OC8ig5sf?:;sp55Ad$?-aiL1KmIUmFZk0cQB#9/sTQh&l;RmP"SrrBXJl,`N.[>\e3gOa7I@OVK`!KAJ9@Fc/XMSQIsfq-,ctCM=4Midse9-Nt0JIJ3Lg'A>Vl/e`2kgNC#)e7+kM-cq?84;GeFjb4Yt^I5uA"f_*'b,E?_9IZ;s70K!c:*["rC,%Nc.mVFUoT$j;Yk7Kl*I>"jb%"P)G,ehD[g\decha9AQL*%`c.:6$TFLP:Rei6rqR/*h><7!&_jI5YC>&)#5i"=_02&UiAY#ra=,K%B9++R#5b*\9uqRV3)(eoCSb&YFSPbVVG6&c51j%4^J4Ud8+JcX^:s'\cgB*[d)a,D.f94;^YPkG^?B*i6qSe$t,hKS,7aW<50Rn*jZJ@cqkm%jq5BKVH3Uh2*gk))pL4#q&WWJJUIF:Xo+]A5aO+q9"d.l^06Sg76YkL97mI2Wqe:$hr6Yd5ldcj#Q&?edibJ)MIOIcoOu2h`93/erP]`&2Ela"'V%X06;.Mkb,C]mY?_Ui$csggF(I1?UOQMc.CF8ga*?YmU&3%H0q'NNiHQbWjnh$.Q6\ARp"",^9TN]pm%+Ya02Q^Ugd0JSITbnKrSA,jtm]0rrZT)?69~>endstream +endobj +21 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 875 +>> +stream +Gatm992F;-&AI=/bbYq@@_4GnoWb&Q<)KW/F/sUP?mph]8t`-_^9]J*'4PI5@jPHB^R9#s6'-J&r&nS-*N"@;u\t(:-4]bXgp5Bd:9/4DXEoJ`s1Y+NR*>$0s0'"*YP;2MRcN[^]l&"DFQI+"Zk$h4D#.IlP!Q]`/6*=0$MP>.-BaDddVhMuCFRkA/>&7)CGI_&>JZLDs:c#g,[t+:!*BSF=clj2gEg7,t+Y.,6tb%W?I+o0)%e0^"7$#Uqp$P>fH"S?N4!%DhIt\;o=Ym<'.AKh'JZ3%>h:[gsFo=%KX5ZnBFnA;;2H0XO1?3T.Gp^dQiFmGi9K:(V!Dm%a9k8lJ!E`1_[qnFp\;XKaQM_gO!lhfWU#92>i7cR72-`;F/aS-[OQ$8]HN0;`;ho:h2\J8]HN2_e]m"K9V(s(='An1lS;Q5K`1hfZEp[Y<]`?hL\(nj(kIcR+O(YD/&Fipb99[mq00_t.4frgE,N6C8hD_:G`Nj4a)&E>4sm%op,2C*C,Ara[fW#e'(-;>PD9Vtm:Bg0pfH5/+&5*Wo:-:+-%(Ob'eO`gQDt&SZj&=B1*WL[--]S:FKou(R.)\#\bC$(-7-(4KhP",eo<@NRZb8@ku]b5,2T&b[X5o@F+Zn%B8=CnL1#[p=$6*2q4u\,NRgTP&1V=VIeP[*?T3S4uISte\ebj(/r]9D;+iendstream +endobj +22 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1520 +>> +stream +GauHLgN)%,&:O:Sm%]bY+P]L!H#)6SE@7/o*;.Q4*_M#8\e8_@PjSBs(*l1DeI>tL*fWR,Z+C6R!N^f_5k2alhrtL+O"lSW1LM3BF't/%(k768j0PX>enD&hPRL(skm/lFK.s/hWIXJgU5Xb&aAi69r>@Y+XafuQ6Jibb=S[uYkO[$AdM-Y1T%6K)V"aA*=dl]kZLf/r+(5$'@XlGE#(ELn&"clC>B"#1LKnMHa"+gm_SA9<0!c@P2QtIDn[!e'0e"A($U.A1%,q?ZG#ZRuAS+M=)Mm5E?kO9SL5g4^OrU(EnM2PC\m_3Idk!GsDih,''9bdALSQ?LV0PK3=ICp?V?MP:4NVUo8IDt'SoH`$er9)E.2Na)E87<=pOJBY0oNW1ot)DC6@o)%F0@SuD/?T].4BT%$A/KQpLclE*_6`.7he,>B>d5OTVsZ>NC-<>qTZSGi.UZfAd:is99-otQsMP8n7'eQEM#>)TMAek.i(oKHOi;3b*;_"(oKHO.6A]lB_DB=ec'h`%o5"XKIimA-CILhQ`_^\j!)ZFr:BA`Nj2R_Gt/<>46hL#'CJOTm1d.rCS"$PCZqCB_Vl@\4U@C!1,sJ0=?c(&6G/(Ccb#NRS[&kYPW2-e_d1&ZSVs`BLZkptVW]Fo:E$rV*.i$K(Z.2HLkbQjO;MM[>>&%9D1id9^/P6Ce39Gqqf_p(.(-D\@(QIp\==i!;H6`RBko+U#5??aUpJ\hCPn1.8g?[pb?CYAOR[C$?=95HbeNI244.0;G\T*q@r4GRP)uendstream +endobj +23 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 2959 +>> +stream +Gatm<9lh8a&\\'CoZc)(aX-UKff-%oA6%_C1U`I[p]=p?+m^@+!AN$O^HSiPR/r'9-97l$AP;)XJ%gC1J/'[+Z\ne*"48dJo^cEk[(<'r*NcI\fC]!4hEAXMf;hpOjSFnff/JW"]/OqY"(*T[X7blQRMM5K9741X]t:s_hiOmG_:WM0%uU\F^80:r[!fu\00Ui<3?:k:n%J;kTM5-;T"iYD?eF]%nMB^JH;f,r`\5UXh-;Oq/#9G/XtHKM?\DJq=[QW$W6khjn>A0+lOG+PI,6o2e6ST)FK"`NISZ_l#3g(_b_mSOV_Cfg'qB@9hQjUa=0p:Um"^[0\I]Z*XL&9"]V8[VC)!MFCUj#D'jf'-IOA[Q&lgoI'??fo6PtEAb6@hknE3XCdFUn<0:%n&feiuig$/dL;s;j%)HB&e%b<)/<"QY2"'i>Un?1c?_T=sV,Ir%TdK)n$HaHqDR`c?1kcNC4[2M=#Xce!ci44>d6,2+iJBH,m0`rN7.H*::Bi-0h\@YoO/uCP4kper1:/@`UHq2TJ"L8=r]J)n;>P_g#10;kPB4,I>Gd,U?Y;n`qoX"Z":FMhI[2KTNa(]*u55MdUOrK<%!MtM\$@*TX%rC^JX^h3D!@d8@*WJ-tGKs>]Gd(q;n&q]2[$QdF#W=VU1.lKL_4%Bf#`dAJS_>US)=CpoZ>mc3'ht_nP`m"k!YR6/-KlJF4Rd9`+V=cP2L(WC(X)JtGm/qLTo1/LBqWVgHqP'PF+.?_tb(N7S8rL9dVA\(>Q$@Y/jmL]Z'sYBQLp1oGiuSfD,LI.:ZO"cfes*et.h'+K$T??h^r/63pjmIIPR2/TGmas5\FoSfJjNhh`(dD1JR=K]Yh/`VeViT=$u5`kRBZtC7_5Vp`F7J@Qp%fk`M;7"L)QNF'?$\.[4oZ((,njmL)G'&=;kJ^*oO4Lm>0(/[)#rE2K6o;L!1W%KR&Foc23#tO91AN`JOr:Pb:rtf;(PjK&LX/Ru]@OGhCfD+e_ER=-Zp;K%s_POggqc<*bC1WCR>D=6755b!8A(OfeP%[T39=SLPhY<6,1#8oVMK5$$LUSsV9W1)LN.([I(l@p>49>.g`FuA+=-q*1`&WUT;Cqnk9Wa4'ZQ8"ffH]k&Rfs-WCt>[WS@5TXIKEMt.+r_u=ZkBHbKDi$/@0$U.NRATQ1u+&Z(S[7^W]N]6!=s(MVmFcV<]C_R7./Uo)#@5o"LU=p8N,'_Q$;?RH4+fmP'pklB\S?PblIXM;nD7&3h!70G8e.nncXIecqf_k+(Cn4Udg8Q*#&ip_fXVIXrQ'O*Q6L:d=0El_%Trb5]g#CX&B$Vl@&p+p@^^:DiT9agM+eWqA7AHK1Vk5%PWRWTh@E^YC.-8tc@VclP0$D9ph@BFYCF]mL-YBHb::`BiKJe!c>auVZMB4,tZB!j'W1>nA.O0[VMrb?CT]!O!!E(P,P0ljYa]!mEHGT4"$_F^h3/*09l9'k;?h=r**=!U/kHp94>B=m$[jU9+3A1,I'A&no"DTLBWf)0s+g=j]rAL[X$0DRH?](_XJ!8&0ZunPf0OVl4`VL22[29;!bdgp@O`FlXZ,=N';Uer*J<%?POIgG*%+A1/_Utp9=\go\9\cq1gqkG%/?m1$AR*9;qAmo&j_-2GfFLlBae.HI'J92q2:dn/L#ft2@om\.G=LB3nTI12i;hu606Isqh^aJ!N%M<-t6g>RC7FH[D7Lm,/.`uV?rH@E[4;FM0=f6?_Z_Z/TfeiI/VSUYdirdWb7h3Ut:hsT=ODqOm^p-7BF?/>JRCU`8[%AeoJ>G&H*p<endstream +endobj +24 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 3307 +>> +stream +GasIi?$FdX&q/qEe/Mgl[n2)Z9\pBf1X(Lu6i&A2O;G=,G)OG-OlV2XfC,i)r"V3'-QsXMWBP3"h5^#P*TQHRI[1Gj`J0u!5G=8W[+WjKX5Xk2Y39otjP,l^I.HqLqX()'oB*O6Vmq9_a7@$t:N6&='R+j1&PWm]/Ab_tW:b.Mr:9XEl"f!8cr$d:ZEC(Yh!:9c?;p#meX&!)?\<-.B<3`L76qkumTYIA#J,bl]VEYsAU>/OCX6Zgn%EM3DQ>SiXAp/&p1SO2oM+RE(N5p/UWlloqu]Enc8Ao"``CD=qR3],Xj?2tD7,(^CC!tKVN7arY=?"kN7tGNP7'L(Ge2<%hNU'kd5Z7"jFHYD+j:q!OB=p]^NV_qQM$H5a30p]clpI9[7i#_=.1/o/f$l_D=lK9RHb_m#`4L@u&tt#2g1a)VE4XKlg:C&V5oI`4`N.JJ'>[Usa!7A6&s5fMMjDY2]iAAaFRDHl?#RiRX]PKEeo*PUXLJep'5YJs"`.6SH5"i[C,lJl3ig"KA,)_+UcJKW8d^5$2SLKQ(;]K4t=.L4;i3X&n6E)qm$Mjk]626AJaO@7HJM0jaTH]Z$B!P's0O)u5DG:ae(;"i2jiE(fW^b7UAO2_Ot-B)-6-rtpjPR^jTgV=\(4'.9c7Np@XV\1sXp-K!Z+hjf:Bo%jJ5%UWA,_oLtkKToS;$FfRQ/*K5fRi]VQXWL1n!1*->R?[#*2;8VH66(u,I/pJ#E88i+,OrcrIH1Ol,d,].G`i"<"C@m,3O"="JePP+Q`AtSdZ+FdP3ZuQVg\]T?cJpO]$_p`^R$CYPXD)9BioN)U)m;j?\AQb+jPp'm,(=R,)"HnVc:";\ade7YOu;6HAH8IdVb)[=,@b?B:J0\OC09DFpXSTgD%!Pqr.,X]IDXe$=kg'Z\PI)iu'+V?uVO0/I/;bOXeih.takV5?*^KfbMFkXDLkKQaCh.D\uT#rkri6W(/3f6Y\Con$7Y,+tVb&Vt?g9]-TjfsFnZ9PKIHhjM(%0hNjN6KO3m"016]`bioTB13L.Y:,-IH'-KP5RIhPZG9<`87V`Vk6>f/'6(5s_=QBt&24rkFUtfLRLjd98&@2;%+4-t\7#*KMNOE2UoN@I7#KH>]$,Xmf5W(Pg^TTgQ50+r[hY5KRK?ag'%27FoTqalUY'M#RdgSIUTP-,+f.B(JAle3:)iDB&)$S@e>!mCe/n^&4EgF)]%Os+A;T@Rs2gkXX.([VDY#QO],"6>8,Ri7t,u=nSjs6O"!IOE:KV`rLfO0Q/Ob[0!F4osrP&F[b099K%2Z4+&2$5M%;$L+[pj@Admc.m+<+60C-%9I+OW]E#K+"&roE/:(NdV.S;^^PNXd6AcdkH*#oO.mg*WgnMc7K.GYa,tA.q7SnXTMY2X0$i<-B94ocB3o]b8WaT(h_F(ZRMj61]`)U^c53gm-@k.#OWgrPMCE4(/TVrfZ26ig[e87UFm<7dn=R!95Z'JGCttRY2YnpSsE7SVS,K;Ef@C=7TVt/@$qR_5meh*ABL41=mp&iOt4/)#%Ya)$PhYZ++Q2/.BJ-kR$-KWP$JL?k@$),c:Zs'BYXU)<9Rjj0cAs/1[948S]5O5?Lc:35(g](Y6)L;@]FVp]$4K&`PE*BfSWr]/Md?EXRHC(srY[IW08Rloq'<;kDVa:>r""5!qbXsj#+!fa-156fY^#!O8"]mrQ)tI.!9+*O[lE'"0NY1/L7>rbp,IP^dP4;&E"/K_Cbk`g>)DOGFeTW!IT)2p/5:D5)u-VESZ;jN\n3Zh@kQ4mu3So1^Wi@&oUCWuOu2fj^7qU@f)*c@fL\H&Uu:6OlmK.6%4J?F-O6R]0I:%[n;3,oD73+iNeDhZTB*DS;h+MBeVo\fXQ$<$FpPefYGQY\!@dYo(R67_$ASp@2Do$&uiYIYK1dq'JCbiUCD-Sb/tlOYaK=U)(?KDRbpbs`ug1)&M=i3f!anN(5n3]UT-erd\Z4o_(R"hiGf0\J-1kd$O,0t3$Vj_)i>^1^J,*<=LM)\&_TXt2r3#CM8A*6VsI?OZqO]\3:/Uj<#m0rCJL)ZC#;6/HZ$j<(h%d%n*0Q/G`cG?f!3StTaQs*XZfeFQFZef?%-Di`b(GlIEmm5(!EU\^Qq8GX7GHQkM]7%NS=TK^^oSM.Dm!Vk]_:P^L6kcGiK$1X*@)eK#>G=T)\:E-W$8[E1bh]2+B)+.TB[<5'Z&=Y,.X3&)\-TA9!'?@R3TfZd*p9p/DD,-57r0@/$D;>u?a0tP\^RB1Ted$XI&BKX@@ofD&\'a+HGd4At?D8,13o2l)'Fu28hUOAeK5&'`/Y.)+CqBUd53m%R0g'CmSdcu>G`E&Q,@8$':+YON43?8`hj2s*GaLM,B=^:nk8i:CLAbau>U\Tb">kendstream +endobj +25 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1914 +>> +stream +Gatm=d,Gqt46F!(GQa^hPnK8^QaQB+K0j";`:)?r,i\VuRKY#&*Gjn*1A/3H(KO[H?9%(2@Gfe<$:!;^kpZM\mPaD>%kkZ?+^QU9UST%)U(C/juao#-Ke1`EF,8@"=g6)S]%.2qh]IY4'Qm"+Ur?*?U4!h^"5n^+&E\Pdh[=[#/84i<9"JXLbVDC^4MP,&jG"K[/9[*u:r$1hE=s!rp?jk%tL?(5XIguk',OB0<,o=nk>MaH0q>3*\[]#H>8A`^?PLBF`h(!X@fp[Y3,C=6t'P%TJ91F)RldJ#7;UM.A;5BXC-W7]!(QJAsu0!?/EY;uf>>>emdanctKg4iO*]UI^IN$P"X0)WluHjOi$/*-Y-7jh"hq!GNi#gpLEd%(YS-U;AeBgn4o_/X!tnqqU+q-'<0dIJnE\iQmQk,=JoS3\=$II9U(:^-qJRGGUA.Om&4Shj/EmN,u;G]&r8mU<=mXt!#Wg%"daAT3QjE10I`jLqdsHcW\ZP3i`jF%a]Yq>or^`Z_j..12Khe?]j.T%*W/B8`_E@,2R-ls5?/06`/!_s(#c-9r?OXCC76G1$u(p**IB/%W8@7Mokk,"jhlq-iurG&AbHKWuRAa?CRL0DN,lUjb2W$Ft.>$=Z_1!)Jrni`AtO4MLWnN:_mBsPIgBIL=Ejtn?'KJ@IGQPdJ.;^kCgCt3J$]c^Wg;Dcno\/41*"Z(=dPOPB:kfUEIBNt9jqotia>[L>pG+=X7/`jkaG,59*-:f9<:*30/iTi\>=9qfZsE;C=kL'0AU!&Hb>+/eHfuX%#")G^7_+OaX8`n@me)l.D0i1-\G1&ACNbZU/#KK>2n0D5p5$S`H_;hiu[C2ZL]Na,L&4Sgg.1UK*=$CM^4q1g*1TX>$*E,W&O=9ibA/D2"+WP16_Xd:>r[RiG/RaKWe6A.8s:*)0IMf]:+UEG!kaBX4Li9o^Q9CtRf^ZA+*.N[?82CiV@8rJAc`Z=SbA4)uX%.QK7QL+&LmiO"7oQANP!&:]Y?r'!T9k]i;TGR*2@Q/Aq'+?DI&d+J5Z#?n&/rB^i9VP%O60tR&.Bh.O58lROO.+Ya"m":'?4[YGeMG;Q:Zp.835V@qFM'f17p;MX>@7!!nX7%@LZ!.!o7D+@(58R-LL)ePl38Y4M!n3c=MY=pI1i,C+-)7Tc17@#Q[Za'*48/c2R"gY?N$*7e*9Itc?(=8>R/i&&;lbp*$L-`9u,CKT<#D28q51XTp*1b4%@%&4(WAK[O!`;*NPW!WL&o^oAe"2nj]\e4#o7cdP:)?'mDpdC!XeP+!8c>L\""`m+V!?.@6%Ll5%TP^S.8!UZl]b&?m>^H\;VOe.8['_s2r*DSAEI6D*SV*"&S69pQPuUendstream +endobj +26 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 201 +>> +stream +Gat=a5mkI_&4Q=R`F#X4RYe"<]+h7a6'PWI[](CVeWB[g[#1MLq(R_pq$_$%r+.YX5GUYE"(r:-oI^j#b"=6;>(HR(2&+=63M5hE&Y;GW&\k3endstream +endobj +xref +0 27 +0000000000 65535 f +0000000073 00000 n +0000000134 00000 n +0000000241 00000 n +0000000353 00000 n +0000000558 00000 n +0000000763 00000 n +0000000872 00000 n +0000001077 00000 n +0000001282 00000 n +0000001401 00000 n +0000001607 00000 n +0000001813 00000 n +0000002019 00000 n +0000002225 00000 n +0000002431 00000 n +0000002501 00000 n +0000002785 00000 n +0000002898 00000 n +0000003420 00000 n +0000003792 00000 n +0000005969 00000 n +0000006935 00000 n +0000008547 00000 n +0000011598 00000 n +0000014997 00000 n +0000017003 00000 n +trailer +<< +/ID +[<97a0b29f3c802c1732e0772462a8a760><97a0b29f3c802c1732e0772462a8a760>] +% ReportLab generated PDF document -- digest (http://www.reportlab.com) + +/Info 16 0 R +/Root 15 0 R +/Size 27 +>> +startxref +17295 +%%EOF diff --git a/ai-analysis-reports/repo_analysis_72feb962-4fa6-42cc-973c-5e158fc2fbc2_20251028_030630_analysis.pdf b/ai-analysis-reports/repo_analysis_72feb962-4fa6-42cc-973c-5e158fc2fbc2_20251028_030630_analysis.pdf new file mode 100644 index 0000000..ea07103 --- /dev/null +++ b/ai-analysis-reports/repo_analysis_72feb962-4fa6-42cc-973c-5e158fc2fbc2_20251028_030630_analysis.pdf @@ -0,0 +1,219 @@ +%PDF-1.4 +%東京 ReportLab Generated PDF document http://www.reportlab.com +1 0 obj +<< +/F1 2 0 R /F2 3 0 R /F3 6 0 R /F4 9 0 R +>> +endobj +2 0 obj +<< +/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font +>> +endobj +3 0 obj +<< +/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font +>> +endobj +4 0 obj +<< +/Contents 17 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 16 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +5 0 obj +<< +/Contents 18 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 16 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +6 0 obj +<< +/BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font +>> +endobj +7 0 obj +<< +/Contents 19 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 16 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +8 0 obj +<< +/Contents 20 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 16 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +9 0 obj +<< +/BaseFont /Helvetica-BoldOblique /Encoding /WinAnsiEncoding /Name /F4 /Subtype /Type1 /Type /Font +>> +endobj +10 0 obj +<< +/Contents 21 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 16 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +11 0 obj +<< +/Contents 22 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 16 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +12 0 obj +<< +/Contents 23 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 16 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +13 0 obj +<< +/Contents 24 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 16 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +14 0 obj +<< +/PageMode /UseNone /Pages 16 0 R /Type /Catalog +>> +endobj +15 0 obj +<< +/Author (\(anonymous\)) /CreationDate (D:20251028030755+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251028030755+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) + /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False +>> +endobj +16 0 obj +<< +/Count 8 /Kids [ 4 0 R 5 0 R 7 0 R 8 0 R 10 0 R 11 0 R 12 0 R 13 0 R ] /Type /Pages +>> +endobj +17 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 429 +>> +stream +Gat=fbtc/1&;9LtMEM_C*SZE\VmeoY<=,TP^.3'MRK,oP@L;_pZ-se.WAmj-q;>D:^0*)iCl@pu?3AtTnF$Yp$M"p&LdI16O@nuj,J-]'Jm%@oMUcC/dlSC])#olfR,?kd*nl;jfS.+h[EC/@(3e9'oMb+'#2ktsm42[G?Ku"P\k[b2Wd!!Y;'5pt,=^]E]:4f/8c"[s'02Op=fn]9TB^6OOBor=T-oS_d=6.K\QLM+$WPp6?_\$o!?@%Ps-G&~>endstream +endobj +18 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 279 +>> +stream +Garo;9hWDY&;KZP(%5"R`_JF!]aF)IK4=gF2C;'Bh6(Hnm(YJ2+tC[L*9Q:,AdDZOg9MfN4,_j?!cciu&kp))?uMODL;#"BJJOCde!mpG)iR<3R$FcE@gEX9K>d;-^8QkV_jHGWPTJ^^#H/M::5\#htDBZ>8]u#k]o:8ro[ZGT3lb?G5~>endstream +endobj +19 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1187 +>> +stream +Gatm:gMYb8&:N/3bY*K982`PVhoDU2$5>*2Va=aB5-Qg0d%DXcOr_&>TA>.io0%gC/+>D8T3H?Z(g=pYn;_VkOcrdICZtnb0N8+ei&h6kV4F*E@CjV0dWo>(+%fIJH^JF>X_1W,bNObBJk9U&q0RD>rg>rNCq4o<]SK:@fs!k*f?ECe&\Tmn6!m(/0rKi-i.[L9rX)PJk;4WgKN4sN-&k_BWQJ6iQ9^:(BT);`,5,>rBOMYWAZR8ffWJ/P6gF@eE3>WE.'upu%p%6gCQ42R[["]IFpYeg_dhoj.4!1K+Y6:ikY19&[tl(?U[(mIB=*ed*3c!';QU5cUoTi+"L5!0ZPj-KnI`O!f+q?(YZJGC>YIGendstream +endobj +20 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 916 +>> +stream +Gatm:9hu]_&A@7.bbYq@_Y&l&Ns52D'pT]+>L`h-Kn9T/"H*'E41<`[-Y0[og8qSqcd&$C)*^oK+Silr5?e1/0&YPU"=.)S!,A39E=peI7:6$t(eu>3Z%Q(%bT\AZoW1Y?`QJHOIJf\5""(Q!h`ZtYcJE<'3]iH:=>NJ?Ic9bgN+nJ.7:;BQbtf@6$R_SAoi'9'19$<>2t/u`A8@>IQHCMgI"l.=A/c&::"e+;K4'hs-78Df+D~>endstream +endobj +21 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1587 +>> +stream +Gb!#\968iI%)1n+i0\\rN(?gLhU9WVbt\eOlXONhMF?2mX[ad"O8\_Tp%CkqbceN]i\l14+[YaUGgQOUVp"j^&\7r_`k27T&qY^Tf*+j1$M!#\Ra7RhlB"J%'0,NQ>>_0QGVdunh'ciSorXP8Q0O0KG(5E(-qt[Z&[%k]%-.K.;oq-P3qGg5lO1*`AhA4lTkW4ZAYLTb#l=bC&TK[Da#SmhF>7$HhI+X6W-pLMW@]IN@db].r#J\:EAFSX^AE07Pq1$!^aG1YkiA7-CG?,=F[Ze?/FFCIiCZ1!i<%U"B:5cN(&CQdU];a2)YJMXZI>6]m`"AgZsJAj&!CMLOir8"0:!n@N>\Sl(/=-24Cp[DngZ_%`kA3h!'"is2DP>K7'N67V92W4\B'md$d:.V+^!EXO^-6BpteF_^*n#6gEub^P_sAhZuXV)+RjJSV4AuSV=FS3t3VZ9KE>TJ\O,=l@,?GjfpQt$!jAh$XL/`&isqbd1kL_?cL-*<@4TYW`8/SWg6B]jn,F7##nS'XF_]pToAXi8WTFeb2sD&Q0K?Rc3]?I*m?FbO.i__D"j!Sh(Ht'mn.S\-4'p2\TmnO=,%T.9%%EkrfEpf=2nM32lPJj6oP/5hMOC)FH4u5ipA_tD#;fB1n\i>FhVe1i]$Q5O(S#qlCAXqXf(E\]57=Gfac$$k%lb%X"A[3MaFA(GPANgIaWm=VZa:\;!L'BW:mY:DK4;Q?@soZ,]ENgmDbNRLg\1V51#9ugU_a\=:s&D3sk%29R8;"en1__g1e=8pcDfakL(?N%=srWQ&2LYAX)'(3mpmj"&[d+u=]#T`+']g;+p_&[Y<\.1ksO5.:@Pe)>3[]I438!Uc!Eb^udB,&K`(R\ZnjX/_og$)iBp&dNgJE8LUE#?9(ckG>GA$KgHMJQFqKa#j;]%CZs-Za(s"m2Zs$`!?3lhl10P\=1oUrb^jfe#aa8'6%=YI][7*-,1hEKc;5[Vk%+Q7d9"M_6>\#t":gD`h?8b)\=k9W_6Q"T%<"[REsem.I?]?q`@GDIYZgG=]G]s$:;e)&9>2endstream +endobj +22 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 2767 +>> +stream +Gatm<9lo>Q'"uVp^hoSnM6S%M`Abi/h0#!\`]M`uQWtXEP)o\F"otLIr;+&18._"J]6i2!W`1O4rUKaWlNS-k*<-fE^S50'QR2P!mgHS6@*:E3>ZR2-q92#Rhu3@gdD'sJbAJr9WnZ:#Dt*uPBP@@I;s>Igu]W9/[Be,Cgd-l/Ztl9>I&YM.RiN"33[buV>#s+ib6sc^Y]X_67u+(Q'Ns@>.gM+3_m-7X'crrM7DSQC+#EN)cO"kg-'Iq1V?AA[5F,tr2>6:@s9+t/#\pU8O.>=iEPrq%1uUQS%UW(-+6-C_T;eNa@/r3iX.*SS`H@J5VG`BW2`*UCXg`;h:81@S3<:KbAD7-j'!al`K35AM"P!K@@iXFd=,_Si/-.'$EH'ZgD-V'dV9m4PuXJn:4nDE;:a*uOb&jkY@h2@"5!6,O[1_Gm&aeLhIU8T&?Cq1=_j5XgJd8P4:cO20Ei0E_q[$QY+XjuK`i@H_edZ2=8F.H_DQ3Ai*>E"&I3)\fWj.>,&Q&QgW>RoXcR7j8Pn9KObj-\q[QFQ/5BOpJAjseB$47fbM.2`AHL#=)*L_De)a'b`L,f[BmI5/q<@V2Abo(??ngF>TC&1VoZ#>:%Zq9':hn`#YoMoQk)Ug!P1`I>'\QW31]&!%6m+uZPS-cd=N-2#;Z&k,_4c$%Q3p,/ST+Qr]B0Sma-]!T%",M%N_s7U]ns)=3Tk97acq:$?Y1([7mG'&h6;V(d#WF508UG<,6fIo,8RE:pJdh<%>"0:&[[&-a@&e![m$q=9BA_(pb,/bPq&,np/4r*a\8kRq$/Qg^-kiYhsgIGi,PW9cZnVr6^_Ud4@(F(QlTp8LJM=16'R_C#u%n+DD>j9fJ7b;^7XiFD1:Ze%S,^aN>TP,mdT=9PT=U%"A\ZSrq=6j9$o>D/;q4.@r@==8MGOB,%d>*_2YJGU*4+'->?f9K>#cg1a:C06Y`.$e8Ldi;b27dQF,imp;P[t3E]M737X&5O4j-SqahE7gqc?NX&.-U]P&9(Y5uLgRT'f3;IsKtSTh=Hi]oSrLZLWK1&J0GPm`@9K&.GB-^3-FANLG&%=h7#@'/iFp6/@hCQ`'I>7^S:mYj^%-'@8ph/#\q;"u-7U#R)@SsFbMMUC\3IbH%KcL^r6qpYImQ%='0#f?8).PNJTfumLbCp3FiHGi`1l1$A@APuYu_A1BT1]Xe!J5`T4VB7/`dP80G":'hb>8+WHqo.A>3K^B7FKOrEhe`oL)M"2)-f>fipq*k.B^?YEQAjR9EI:1Oe1g+da)P>kq-.?SK@Ka7MnO+q&N/khZ;YsN%LBajPMg)mc9S]Z7XHE;$(S;<0IR&_-iI,&"RUTZFN$h&[WeZ`6>SO7M%l9pCM_FiAqP!uVt>h!#6Jdl5sPNK7t_7Zt^=DnZO7=&I$qhF8dpn9@7?i_X*3*73V&b@g=PE^%d9ihT^e]+T[44dm/-SZK]gM5R6U19(957H)41;0_`sp1J\lF8^Tu]t?#$Z+b^?aklt"Cf#+)~>endstream +endobj +23 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 3234 +>> +stream +GasaqgN)(-&q0LUoNUCY)-YHL^?Eg]jK*NiN=qZ>]6N#.>^"CoSc#:rY/p;NG+&VJmnJLc4$?\aJoq=h_2W"CSL2lgpm2?-#?1I6?2`-YAF!D\4!@OJfjst>EcO=fIMVTg2=,X4S<5*iW"XB*JW.0EnD1IL3'-'mRo^(B*Xc-%0p[]q-Q*_I.\,l+'Kg;5;nMp\CZBUpe3]F>jq?O.XeL)4%P6j[U!fUgDCs59bpW[jL+E9GmN!0ltl&gVt\cuM$*!3*>=1=C"9Vgf,VAA$\Pst7"&`qbZR[k;RNn:;%9W73i;hs]H!%7T?lJ>%cT_qK.??Rnm8`!*5/$BcU906[b1\!,:mq#eDD4-Yk6dmnC:PB8RUC.k5boTXpZ7a$>iA=/4or)AL\jNq6Yq@5XH?\gt0G/cR4Ad,/9[RsPThDOkerY$<(<+BO*Bc"B$Nl;V\VYn`H7FJ^_Gd3ll4aj_jPo&9eZYQO),l/HYpRU+!Ck]ulB@pa9+.VW/cfo"/9p,^+Ui>GL@49UdD;7d&!^93Ml23hS52mX#$PDnN?jrYB^`C\!9C!IqRG0V/#ts7Pk**XS$qfiX-rkDKu(;SU$';S,*o,_8nP27:.T5/51lkKm-,c@L#!g,M8Fk[d%%;<6D%qXq\Zmuq04s0^ZQ3;l#J\0H1DFq0HXJPCm5`=q;gR:4mc^p&Qg.26;=V?&o?D+-$)LFJ'qCW`msbQC?qSBNSu6C"G+A<2^k]5rfm0TB=_5AGHAY3i;$KR!Ul'nY*fcf5`5n2h0gT5\le48`N45C\FLnG.,[*59WdjaFN)F=QC248'4+IUE5:JBsWKMeuZ,55+IaY[B$CBg0TY*]`)4nCpHbVa=gE;.;4A!!/3%fNT"$thX4,rq*fSr44ZB"uq6u;X.2[HqEJT3aR%sld:.#WcQFTniVY"<5:$6G%SI&"i\@uK&2?RiRlOB5YQHAL4O9FrmCGHS)827BWYu`o1"K+Oh8(pr6OQ?DX^!9`A;^B*Wf2)Wf=n2PE3'#Sj5=]uH,tG-1/nkh#('K5O$&jmV"!at4#@Mri]#ild57(oneN2>?rYL&9Au;Htb![r^BLfhMa-%CjFd!"7BsusG'(.sah`BA-5u19C/gfA78[feZPds#_b8#qp`QMM;1aV*-9B$fo1=/?=3aQ9[oM'uYr2$]a9dXV^,Z9_^$:2=//3G_9$L_I/Gd,na3D<2:O>7:4fU0Y/'Xd*LI1U(imbfdT=EtQI3(T05e-8SO4rc'8:YfHQ!HPa%f&.A0agg"qM[`(U@m[WY^84R7(cnCP![asu=_jc^d:&-l5juB#[NOp$Ga&6IHJf[I_/p6ilLMV76*BY'CNENIWd+Uj/P8@WF+KSo0fVNXKpoj$%5JOX$'0C7N+3)sS"-np#QcCormF^cAim.@%#&cn8.=(Ul+*>O_5]&2PSlgb.EtPQFrPDS9K*DhC5g;*aENf)("HA6lJgqF/g/l`4%JA,43^H!JsK\se&.&XaKR@WSJCACR/fLO*cHA"_u@1QO+s87*rX'Yf%,in4(uag@HglBQZr*\&?!-rG'!$f[lY-hrrKnH.hi"JQ!$ghLMJShlF\"DS:Q;9$`-ICpgS]Y";>j^\'Dn3"".9=OXRUodU.J%DDJQA;1UO>Wj0R(&nJJ*;Vg)"*YTL)f*P`X3BRb4"JhGCgs0)3.ue+%Oem=sQ6(@J[th6fH&Mi8P_IT5#]o#O3WP$gNm+RuI8cjJIq)jF`VF_#.0@!:Z;"-_?\;h<&$.U-*C-[@G`EgkX%6YK.pbg5k(5="gk)+%FIO?*(G,Z>ge6HRphQlJ_(rq'27\RG>P'qd`R?#m&+=ZbT$U*)2*^8QSWG_j?9ZaBWPUs,#*4NXu4nCendstream +endobj +24 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1445 +>> +stream +Gatm)9!0_M&43(N%8k!1_Y2M_R6ap7rdXaogKd+b]rt5bo_TS1)!J7\._jO8"F77Obr?dUb[^!ah!Q]FfI]bH^n!FOF)4)aqF6+ku1WY-/:![on.cmao/ddq>f%p6RUF1Y^M2l4(LZjBs*J=Td6R`6l-SacNWZh'KU*t[8NjQ/O>d`pj"\0gcOEL/*m1-,6H`_hs(=FeX3gc.CEQmSjqe^FXe>+^T)qX3K:0lc3;R"?/dWm"\Ug'_h2_!58YiIiEG+^:L(,rCZN`MPQI,1&S=.?h/&j,u_>9]V>A3-7L.P`#X;BhY[1;6tqKI.nd'@$hKgS,;5Ke?n0#cnC6h#[:MH*Yi`J8`X-Pth4B)cAH\)'^HDSM9qS2(bEJ<4se&-M=G4^IJQ('*BDSP-%F5PRkRRZ+l9)-t>M7&H^Q:jn5qg,+'p8o'"SX&2cU:$FeDiHghB%1$Peld"B><2/R39mWI@l'n:8pWBNYU(;m12oZ&lOD$PV(tUf5hP0O=Ri0MoA>1,J9Tu>+-DXoj$J(gk`/s$C9gDE]k4GRN%K9n1i8JW7=aY32YBdG`2mV!>J*%Du6l/fnYc`Og+u.aO4$kYLi88k2s.c>B*WR#.1m`6'J.5oVHCB"Hl@O1TT%H`e)1uEVJ+1Ubr_`",T2E_%61Bq@?%e$]G~>endstream +endobj +xref +0 25 +0000000000 65535 f +0000000073 00000 n +0000000134 00000 n +0000000241 00000 n +0000000353 00000 n +0000000558 00000 n +0000000763 00000 n +0000000872 00000 n +0000001077 00000 n +0000001282 00000 n +0000001401 00000 n +0000001607 00000 n +0000001813 00000 n +0000002019 00000 n +0000002225 00000 n +0000002295 00000 n +0000002579 00000 n +0000002685 00000 n +0000003205 00000 n +0000003575 00000 n +0000004854 00000 n +0000005861 00000 n +0000007540 00000 n +0000010399 00000 n +0000013725 00000 n +trailer +<< +/ID +[<64f3aa2c7fcda05dcdb63d75531c9a6c><64f3aa2c7fcda05dcdb63d75531c9a6c>] +% ReportLab generated PDF document -- digest (http://www.reportlab.com) + +/Info 15 0 R +/Root 14 0 R +/Size 25 +>> +startxref +15262 +%%EOF diff --git a/ai-analysis-reports/repo_analysis_bff23bba-e03c-40b1-9a2e-71f585ee640c_20251027_121559_analysis.pdf b/ai-analysis-reports/repo_analysis_bff23bba-e03c-40b1-9a2e-71f585ee640c_20251027_121559_analysis.pdf new file mode 100644 index 0000000..c131dc5 --- /dev/null +++ b/ai-analysis-reports/repo_analysis_bff23bba-e03c-40b1-9a2e-71f585ee640c_20251027_121559_analysis.pdf @@ -0,0 +1,219 @@ +%PDF-1.4 +%東京 ReportLab Generated PDF document http://www.reportlab.com +1 0 obj +<< +/F1 2 0 R /F2 3 0 R /F3 6 0 R /F4 9 0 R +>> +endobj +2 0 obj +<< +/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font +>> +endobj +3 0 obj +<< +/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font +>> +endobj +4 0 obj +<< +/Contents 17 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 16 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +5 0 obj +<< +/Contents 18 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 16 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +6 0 obj +<< +/BaseFont /Times-Roman /Encoding /WinAnsiEncoding /Name /F3 /Subtype /Type1 /Type /Font +>> +endobj +7 0 obj +<< +/Contents 19 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 16 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +8 0 obj +<< +/Contents 20 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 16 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +9 0 obj +<< +/BaseFont /Helvetica-BoldOblique /Encoding /WinAnsiEncoding /Name /F4 /Subtype /Type1 /Type /Font +>> +endobj +10 0 obj +<< +/Contents 21 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 16 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +11 0 obj +<< +/Contents 22 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 16 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +12 0 obj +<< +/Contents 23 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 16 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +13 0 obj +<< +/Contents 24 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 16 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page +>> +endobj +14 0 obj +<< +/PageMode /UseNone /Pages 16 0 R /Type /Catalog +>> +endobj +15 0 obj +<< +/Author (\(anonymous\)) /CreationDate (D:20251027122016+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251027122016+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) + /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False +>> +endobj +16 0 obj +<< +/Count 8 /Kids [ 4 0 R 5 0 R 7 0 R 8 0 R 10 0 R 11 0 R 12 0 R 13 0 R ] /Type /Pages +>> +endobj +17 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 431 +>> +stream +Gat=f9i&Y\%#46L'g<*qdjAq#CptPlRKPs9goIO$ekG^g1_SNW-gS'VuqD@4$TP!:MEU#DU9To.bG0/qG]g=ip^V)S84unVf./AfWicI+0MuLt[\!+K6/)`(LbuW)n#]&k:>q3,:"s'WQh?lIoS!enedKaH(2Aq\p(c&@[1(JeF[CRs^p7LKoX\N5dF%902]((FSu\p4IjdU?n5Q;gsdg#AA#Wa503HKN[alG.<_:AXMIR1P3^!>pQP;7A\/Rpr[9F<\%bX[TVgjd\b91UL[fN^1t8T2s[]0`o_OuF`Xd1d7[*8"?m5/*i)ecR9p?V/sUDa\oXns'Vok\',(=oWe0qBDI!T(JZ5th;lo/+SZ/r+LV^~>endstream +endobj +18 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 281 +>> +stream +Garo;cUu,0&;T_&MVh9bekDMjkuHA!Gu2]mUiit2dd:r+(&R]:Mhh]q0SfJqI5;"gK=3n$^k9W)Sj3q>K2e[T+0i/k\Y-,tD4jm-):P"dOW,$tDO![;)j+o9CKd\VUdL8QoZb_#0s`1)h:Uj^^=dr(E*:%>j5i%V0!2UeDm4FekAu[@?U2l:#$Po0K?N8bLjRo>j~>endstream +endobj +19 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 2085 +>> +stream +Gatm<>E;uG&:WMDi>8:f[B@Po5>n.FW/,>JGX4HFCt`LCV'O`[jk'*`O.Dddk;52!ZmmeO`q.I2A!9aaU\s#k6AUsQn_t8idUMiDOHik*?Afmq2uhZ0i=&QdlXYr'@L#(fU>Tl";EG&No[3!_`;9EAK[EOY,VC3D$h@GDAB@X(:-Ym>ZgDN+.";+O?%8;;5CY1QpLH5r\`:D><&tr&)K)m2OC8ig5sf?:;sp55Ad$?-aiL1KmIUmFZk0cQB#9/sTQh&l;RmP"SrrBXJl,`N.[>\e3gOa7I@OVK`!KAJ9@Fc/XMSQIsfq-,ctCM=4Midse9-Nt0JIJ3Lg'A>Vl/e`2kgNC#)e7+kM-cq?84;GeFjb4Yt^I5uA"f_*'b,E?_9IZ;s70K!c:*["rC,%Nc.mVFUoT$j;Yk7Kl*I>"jb%"P)G,ehD[g\decha9AQL*%`c.:6$TFLP:Rei6rqR/*h><7!&_jI5YC>&)#5i"=_02&UiAY#ra=,K%B9++R#5b*\9uqRV3)(eoCSb&YFSPbVVG6&c51j%4^J4Ud8+JcX^:s'\cgB*[d)a,D.f94;^YPkG^?B*i6qSe$t,hKS,7aW<50Rn*jZJ@cqkm%jq5BKVH3Uh2*gk))pL4#q&WWJJUIF:Xo+]A5aO+q9"d.l^06Sg76YkL97mI2Wqe:$hr6Yd5ldcj#Q&?edibJ)MIOIcoOu2h`93/erP]`&2Ela"'V%X06;.Mkb,C]mY?_Ui$csggF(I1?UOQMc.CF8ga*?YmU&3%H0q'NNiHQbWjnh$.Q6\ARp"",^9TN]pm%+Ya02Q^Ugd0JSITbnKrSA,jtm]0rrZT)?69~>endstream +endobj +20 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 879 +>> +stream +Gatm9gJ6Kg&:Ml+bY'7>`-,eelGnL&;+7=Yc!/^'"GVL6W!&"SpRSuXRh-Nk*%UPkHtL[Jm+F+Fj9t#:kn;on!Ui2r+Mm%W:^[_jA,*9qrL%(`3Y+t)iI0b>K-(@eB=.h-7^>`jDoim,]9mRlm,E*)--%>t)e8aVH10tjXG-Jfan=co5BsqH[B%i`]t&V#M^qor#Ne$RCN^s9B&R4hekcuj;m=]PR0uj';H1AL_6;O$Z90jB,V4JAal[hf].502?h+0+$D[*1sqq@WI4tK2MO?LYo-]hbML$MCIZ[0DTf^\@hF6$(-A[Lg!p;0F#5XO&?6,-e%HSo0$%[\[fJ6eOQ&:Dh(gK]ETj]L-s4(hn4S"R;]YDYRHDb9$uERr43`$OdE7,DZ0$)m>6^.HkAk*lQ3!;ha,/B>2R!__B:T"BsZdl_5qT8VUPJ?P2FQY*XdNEDYe>[0T0Q#L$WG1`XD107e5H!gnNW~>endstream +endobj +21 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 1519 +>> +stream +GauHLD,]1K&H9tYfT3C\'tKj4eChjpDrf(qmtC\5l&KpD,JH9V:tX@rXrk&HUG8U:WVQ_d9s,YR%2oH'mu/bXDdCuL.Qp[DlSnHpnMnW4-\n9BXG>oHgUX&\k0d2!Jn14CutCJ5)Wgk%0l1P`Jj]NnOC?CQ3QQNgp.5.HR[<5V#41eA1eZS+I$.n(XAI(D]2OW*-J]kQ.p5&DV\R^B@TN2##UU"*(:u'd!;n],MZU\):,'BgLo$l.VDaD"sU'"X%?$U^OBE,noL>3SLH[Ug4^l5W)!ML/rpFMFUU/^>*"AJQ#`#5-?_%T.@uE+nhl?g-D)"6c]o[8Sp3;&N=.CGNUA3$NNF9U/pb1Yd_$^'=e(g#RW"BGr,Pi!0D"N:.n38>3R"jMlG^-X*Q>Cjoj`jajY5.X@4YPl3T&''ib1LpLL)MNh,,^B>;)9n;LU0p=W+E';0:ZB-p$0='V2?J`DH"aMO%67%nXGSAek.Y(oKHQia-RZ,TZX4(7HPTI9/j?)j"/APr:06i*+PuGl])ljG1;&B'CID4D$jSFRci)@)Z#enE-qfr#8A;+m.Ftkp=*=?=;n#cq2s^Zo"[=IcD.I`]datI2?X)6bB-UEI2%R3\ii&+Ll(g:RV(?^d*'#Icqf+3qUK/9n1coHKTgQ/]<[o,Y*OSf5d-R]rdM@gcB\J%%%SJf1eKG)+.-PW'K+U82(;sX#?:WO0];Tc+89J8hJm)o]:AXp37m\W3ZQinV!\q:&,hqH]eaR:b.TZgIqV%b:fX>^UO,'/M6M)4%Y>OScIFkoHk8.n8JQFf-XpK4Xf6(0S,LgkuqVAu!E,iP:[Bn,#c'1Q7:Pj@O=Z/5=mMP=ZA's.\cu~>endstream +endobj +22 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 2935 +>> +stream +Gatm<9lh74'#"0DoZd(F3?_s^75mY9G#bpl>Y/^R3ClNYqI_OkuGDr)-*oLqLI]Vb?>4dWN>cd(eNmr\U-m[&.`[.\hpi1?K$6Dbt]"Z=AUTO,iqQnXf?^#aIR.g%BbT9<>)k[h#1VlDH_E>_J/Fmef"F%-`q&#)T1>IkBe^tkS[-OXckf4A4eW3SMImJN%!k8l&H/T?`\9$<2rEN5BL!=]^1SU?L9!u93"I/K.ZY2=>5/)QQ/N!Yg$i[Zm$m,K?'6)];JQ8jYDkDfM^q>sG\<8cW417.Qn[=e5jt6_"!?h1"KL.^d_F4C?5Ues'.,ij$6"M8jJC[eeFPbDG30hh8Z6K#mQW$;S33YUSai8n9EgG*;"TCD.kRmRof]c&dBOl%^)IP(Xc`[\\"53`B+h^^3)u.?Z^q*d0VNcT!.'Jb]W@OeqNZRQ8?Br=5PIW1%/#Uj-oJa)]a6\DF69%kFM.@dbgjgN5P6SA=:PhuUW0GSs^&Y-uoN??F+BWcZh5UGKg&Y>c4r2$k`>le9^0>oi//VHKh9)a9KP_3o%@7I))0'0N7@UtS4[4Sl#9Cq'DO7Bgm8+.6[7'k9D_5eA?knnNJIIb0-S6-ccnP>9gh(fZH'-MqC4N]Wl0gAO5oXV;^]ggm^n*e[4p4Tp$-qZ+d.pg.5pnB*g4JZbC2X:U*Y&e+"6[!Neqp#-o0C^!lm!:m]93?@Z"P7%`f=Z8RfhZR!<>;16K_ei_i>AbTpUZjO%(O*243^,(o(8f;Q"FTA6*7LqWm=hj!9A'GFR?*+%_`-.55_dTMpeMVl7K.&d*ua26G-1j"AFIA7@s\)2]LCD+rQb]g/-GI,G9GLA_qCG]f?_D^n2n*Dogm,=tW\S7sbA"Dj[BCqZ&a%%fL.1Zbne(#5QRl3l(b%SQ#ju%je)G1e`fp%.F!u6H0e.i^^$@p1T">iS>t>sY>A&?M9XB!Q,#Z@S$Fi6p2?c7Kiq8BMOtqOj!#1TY+418Z"_8PD6q_HR,'M(N0+LSDjYRL*/N3nD2P"fJV5*3^2lM6-:kS,#LK^:L$H&$edm]+h8"iUt60_63^d@jm#g_1iX>oWc4p;o)4_1C<(\m;8q\\V2O*qdCiN]mK@&iq:Lg3H%;.K@IiLKA96;1RhO8%bWN:^3/W%gPE!@;fqA?"?hX[lQTYhU"?pWRk6"JK72Q"[aNE(GIWBYZZBbH2h]t(HfnaAOiK(<=#1m3orMu#1V&AFc,"\Y#50?Hq`(sWSn,Hu2I;5P5]TX;6;:]fKEh[3cZ88M4/GN7n-6cZqOCWu7nPHuVk1UnkXB;ebO6u<[;$k[XQCK^"%T)OU0rP;44EP(I7=G'DJVJ6"T5$-U\4pWt3bQ@-+#[t`:I*^-FA/Q3]taj4&SE&%&D\,hM8h$pPmS+q2R5'53)VRLLh]Q,`d\djl9o"/JhfurcQJdZ>CMr`%snO20RAVUJ0EYk@6j+d(6*]B>V1PQ2!F)_j<"V@2d-X8/_5P9qbBHe\7q_'3\Nl:~>endstream +endobj +23 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 3224 +>> +stream +GarnYgNM)V&q/)-e/RAJDUSUj13qmmR*6h69:@["JJY_rG)OG-OlR"sf:Q=p?dr9-3C_HL/Ntndd,]"dD*j_fo-,&Z)XWG1BgWGtn^7^g-UFe(^]diJMXm&<_poi(^]V)]KnE)%RkdGeZX8Un>3aC#Nj7PkF9qP3U>FAAX?.%g(OOdcPr?")V%e#h<3AjjLiNFrC.ZF.OV_or?F6cJOK;)btqICnp^6Dt]V`?%kWCmDJ9+]U9raqRY6$M@7LXp@&C'pi:#A/n=ACK'mi[gek%Sg1^D$p"#?s=jcM7B-qOV]56],.?o_;:sbC-.B55XG83,Pm*]bC]r8IQ1D-`B:^b\%\pLjmJHHJM&/*M:Z)(]tQ&HpNhS^G;4:&ZK5S[NTU[n_dXc:K1*#m14K:d3NP1F)=Y6/Ef'+R$N1c@I(A#_(W,;]K+f4_JV4'uAMj>$rJqTI^TX^?lqY)h'lQs"-j@l])aQmN%n'o6]O65F+kK)iP6CNWj>'96#tS0rIbnFCgJU`$T@G^?:B!#4'Q5u.m"72XRp=Haje.D%l.3'Q@ae5E8oMgAXj`R+oCA)6Pe?3c'(f\5'':[OR/'Znj\Cf_.?@(4GS88G[^[?E>3=XiAfS>VH6A+n.`;,OYj>##u(R,\,7^!M/2M!*/)DA:\,[n2:V#63kF3(nceu=HMe[h_kru=\trh@TbC$_mr_OXu5[J^78K9#&GM#65#;P=T+5hf$i[,dN!(Rkgn733g#d5B#Ke&$f:@XdT$Q9F#\L^>phfYJ,F7Z**dZL"01^dBXoTncd#Tfc=hW%Voie?FI?956#U#]#=;[gc.TdLgaJNic6rgXJnE7Jo]L3-Rd!]dOp@cMQ0:UjTh:\8^js]KY0)4_]:]Vg']StN^j/6Gmas6H]O-7,Lom5K1(XOXVO7JnFdpku,*g`1F1Ih@7.m:J(*$g7?8F$t&k#LM\bLdFffsWac2hqtiM`S1L]LiNNd*QfZ2/OYAZ%OVFjF5I@L^Ebof6FQ\i)M>U4Qp/T!-].HoE.pcT30");i*@YDYOr5B7&0lMDk;WF4EHPh98B\6[3'*lBcciE":#",g/!S%IrJ2Y+e1`k,f\R"?+<\l\F9crA:)R]^Po`9`/37lga?%:mfJ@'5h3hOi`3n.OR?(6gTr\/>BCS>X#!T,BjKk]Uu,`&)Ok^Y-NI4,/mes_Q-8LraZ4PqXVE'gqU9",)>c?Oc/\?<8r&%oBQVN&-!PK)*;M3\A5V#l$WR$^92m)uhM8/G7CJP5HOlS"NX@S,FaX1='o9U]988nNR5W_1Ijh0=.\,7Bq,YXtA/"KB"A7.&I0]TsH@YR4?iK"]XU`a(kl)#IWdR6$]>hK9EYm/'$XF3oVU!q+)g3b6e8\SkTJWkk2;]bnDLnVLTbUiHKc6:.JQMFKO"`1V&+nBX2Zm[1u?0Z=0LJ")L+?"W4^f02:W?0;[V;ikGCPaG:!8L;:0-N*ifd!3&;%K\2N__?2Lr(5MTY?nk)@\+!WcpoQ4Jf9I@:*2A('MGR^RlY7$jrtlG"p55/o(h7?i`;DZ(Ge8_K4gtTn0VZE3Uc;h^j\D?a;KG[7"7EBP09CKmfIDCdPF^GI91E&d[O";.WEq=C-f+[V[\t,OV;V^8EC[Zfo]l+qUbZ`OX=CJ7JG5`AaHd4`R82`i/-.P4,7EAD\;P'R=UZ6IBAF_*!->^=[-^\;Y]1_Mdk%02/&$j6.e0W"kg/chi;)6CZkAAq3N-e?`[9YP,.9i,f;hkbde:6_H+h_ddYJ@l!G8^0r\W`2.0Q^.?gUEppSse%Z="9ZVt(r&01HD5%TJ*Z(M;U?SRnTU5A,QXAX#:o!M5X8[W[[Pat,KjsbA6J]F:OBBrLM-Wu(@iK(,q0d5fhjmS7HVd!CVC;Xl/.dUUi`4'u?\b-qU,CR!'!9o,c4&CYu#W%J*dE=TQ=inbf59WEZqsKW(@JR_$:QAumI&%rsca\m>neRDt.IMullsDG(ZIY6a+NdmbBeWL6L+E%';M=tjHn@&0o*gsTU*f,r_bc.#aBQ$--#>tRermdp8Hj/3iP@6c>Fj=)JK7e>8j*Pf8kAk,PF'%MR4.d";o*#]WI\R+i\_2lS6\t?X*q"PYa4Z5Ftd,UY*\$JRNh">W#8cS;N%;\@sPMlATF6?olph?GVBU01\8qc2719%/_6<0[BrA]rLqFK[S'!2rDEp)l>^@[9WK@$p!$kTNVUWdEq7I^mcep5n4S.P.Pg%OU%8!8&UBgq3F)7eY*_S`B2s,C!TLo_b?Dpl?Lq*#0[+FQ/SoZr*XCC\QEaer.TdTM]f!Vg`D2%,Y'gtJs=2CO/qdBWMTIeK@9Pj8G9N<$06W^5u6BpG[@!WrFQQ[2eZXD[0&Fe8J;:_#$_$XVN44TBH&j7Pud1DV9J-u^unL^fj;?/aAbnFCPR#Wj#uaBE0)m+Sr9_>$9S-0!>Br$r+1H)MUZ4TiB1!XYG&k*b2(86iE'TJK^h%Ihid-I5-:olk9)g%8t8*S!qToTV,7Uu8*QB+P7RG0oMPKj^1ff]`ZMTQSC#CX!@KQCD#~>endstream +endobj +24 0 obj +<< +/Filter [ /ASCII85Decode /FlateDecode ] /Length 2017 +>> +stream +Gatm&XCg!]?hWuL$W^=,DfBh(=0JIWYP?i9NY3uTd"!8.B,OP+XO*"N9RU$i"?I$nf-amjcm[,Rb>LRGW;KD)0M[]:e-%cKB&JF%CLEqdpkf.'S$U-k#.Yp5*LL+dEP'8'%nQX>oJINZ-aE.qqf"D#C/-pI(Y?P%miX*?\9fK=l89aQaID7pIelO!3QU#;Z)^fB[)g9-"79aW\A\Ha#]PDgHDsC?5p?j7Y)E5cgAs!/%gRG4eQQ&tl/)CX=&MqU*`1TXX9uLF;LFWdNRRf3p:!<*S/6FM+)XSZ?;/'bgTJ;ReJAt;C'`h1?:LI$Wq7V]?T&O.O;)Cgr#m1nS%EhkQ%LTKaPI+\lS0W_($bI22DD(^,NWGkV$)\aTlKi0l`cOFc\&foEao).k1QZI(D=NoCD%IC!C`#4LaiXB^n>b"NM/*hdOHA0m^B(dcZ)G=NIXa"/h0Xth#&Xf;g5)TROgSX*jQ3f'-^!80\)J_Eh%)s$H"uf71#UTh7>J@@TR[H6qPf?VE290*p_&,.h#9hEOa7ZjU>=*gfI98u"c,%Pabc`;sCV.Y*N72X^;+n4n;Gmo%./NJH>%ic<4<)%OIPoML$b:([.ENQp,fs@jb?62^>!$**7If+uHI4UAk=ma,jqejD-'i%96P>.n'1[2%ag3[d`72gorO/=%nbeQETpEa4R*7%IZ(mhB#Lu4D`oU@Xb.#JO$`@rm71%cR7711QLQ:@K,bR;+*0AYV;/'KpW"^rt@!)Kp*,cbK-n;9M/rK""IDYa7M3e](.51;!e.;(2PW^P,r.'9H+59a6eT[1O$GIsgY@[]aA03W*qf8QM?4Bdm)Ps^Tb0_UHWKH1RPg[oLEAU:-T=#A'7S6US9o_\W@^O8).#j0D3?"`Fd3_AYPSe7XA>CJ,g>lq3VFI$pNRHHmPG:tn)JsLO8u^2b8#+QU[J;n$R8K:;Ffj?S0s&Z,m:]:K`>i+%V?/Y<(hUs7Q]M`gXhrU!N6X/n,P@L@>fjcOb//L;@`#dPiFaV(YSl:p0"6oeSbQn4^*ufdq&-@*]^Z2k,oI\D4B6(1ZhMDl)WlfYuVbL6%n>Ip!g/aendstream +endobj +xref +0 25 +0000000000 65535 f +0000000073 00000 n +0000000134 00000 n +0000000241 00000 n +0000000353 00000 n +0000000558 00000 n +0000000763 00000 n +0000000872 00000 n +0000001077 00000 n +0000001282 00000 n +0000001401 00000 n +0000001607 00000 n +0000001813 00000 n +0000002019 00000 n +0000002225 00000 n +0000002295 00000 n +0000002579 00000 n +0000002685 00000 n +0000003207 00000 n +0000003579 00000 n +0000005756 00000 n +0000006726 00000 n +0000008337 00000 n +0000011364 00000 n +0000014680 00000 n +trailer +<< +/ID +[] +% ReportLab generated PDF document -- digest (http://www.reportlab.com) + +/Info 15 0 R +/Root 14 0 R +/Size 25 +>> +startxref +16789 +%%EOF diff --git a/ai-analysis-reports/repo_analysis_d78f14b7-ec2e-4d6f-b3c0-ab82641eafdb_20251017_123540_analysis.pdf b/ai-analysis-reports/repo_analysis_d78f14b7-ec2e-4d6f-b3c0-ab82641eafdb_20251017_123540_analysis.pdf deleted file mode 100644 index 2175b1c..0000000 --- a/ai-analysis-reports/repo_analysis_d78f14b7-ec2e-4d6f-b3c0-ab82641eafdb_20251017_123540_analysis.pdf +++ /dev/null @@ -1,131 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 11 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 12 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 13 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -8 0 obj -<< -/PageMode /UseNone /Pages 10 0 R /Type /Catalog ->> -endobj -9 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251017124602+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251017124602+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -10 0 obj -<< -/Count 4 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R ] /Type /Pages ->> -endobj -11 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 411 ->> -stream -Gat=f92EGZ&;9NJ'ltp^\66kUp/XRIPs>Vr*Tc7e73jIA-.IF*P68di,tK_@j;ubqp]tQ2e-;@2ba=O_078BaBdGSQQ]]$masaD=RX*i9khsc3,aC=Oi1`$j]X-ahaj/!e$OeAgE*=pC3k#9am<[;8h5].9;Q&uQG1g1EGscTYOthlSfKJMQNSF1o1(bJiG\?9gT6q[endstream -endobj -12 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 274 ->> -stream -Garo;cUu,0&;T_&MVler)Dc)r`1t1qnfm3"g,)qVc#u&5MLBiX777:sR)Ajt^)6u*6!JL=GdOu-,*71&%P]PQiA\8np'-nkru?.%sl+6WIOdbqI"7fE.j,[^hQ>p)i-sQMBnS*&\^NU%Qs\1*t<^\@ha`h1Ws4iIr'1rC(N;~>endstream -endobj -13 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1631 ->> -stream -Gb"/&9lo&I&A@C2m%m^NEG,=T^O3AYUeSmtb-@C1Hgrd(/CC.^"U+3BSc&4785Q*mJX04V3uj1JiaEXafNmiA+Sa=[2d$3P:#Yk!"j15!"-bkeVAJ`63r1V+"rW(*E6ej..)Zi[iD:Hf491.^"D*T8qCM,$c:=glDY0^D-0f)-rE=ED28Ao/<^iFV6E]:V4!F&jEW6\GDdiK?>J7tQZciNlGL=(lq?NG7EE*^(7gQb:!D!5M01SbO0TS`^6m6OpVV`P<2u%n\G^MGpr"f&aAEqu0?\Y!;d\H"na>M!SmtHp=d\G1l0sZ@YN3c.K:o&iQQI%+d>OnLl`O&H]#&hsaP]3)3g%qb:g$P4seD1Z*J^^4AM_mr+`=8=R1LX@"f!n5Q7r@T!8?,h-9(NDXBijgK)>0VpSs-so"q%;E%GB'%lFJY"*[8r20\(U?;L"_mQ/?ALTQW9QPC-D&pl8>0NN[a4d[-.CFJ%$YE\([gO#[NC.Hun[tnDS#M^2G$/=h>.R1:X>q`/)L#U^(T\+07imCLfDtdg2pjVTq/[#P%-aN^-7RQ6hVeT8&(Y';s^0g_?2/eTj+VXcM(cC390ed_S5oZl>V";QE:s^V0(i/Z[ZGSA%f'NtO:qk[_M%Q.0h\S/A*3=@iU$tV^1*f%&FOCCA7,YrJPDM='__ippC?0MmA'ZV]ReA>XPFBlr@FX2]6RlgBdOq'X)ir[mH+[+gW^=6[`K-2.&;9FbQq?!glj_-+4q22B@1cHN[p5ko"_&PQ_G,t*m-Fl386JJS0SQ'j:Lh7lJ&Z6:'&sWB$U$F4C'Q-"WAM@WDjt$*nYHkp\i.oYq_,r^,_U`NZ%!N(>*'RG$9lF3S0nAW#HB0p6bcV)`(>Q":^_h5^08TePpUH2H0;sg'6,I/?>.sof9YnNS>BASk4=QeS>oV2).ORS/uqSk$b`Jn=ZYS]8>4jQ3n%s*Mh:oFU.R2@j5T5*q&gqR@u8oi\sD$;[_0DTahA#2VXZ+-Z?u'aILn*V4rI,9dR[t+HMX>0In%/mNYZQjB+JIro?\kM8HVX:J3"cc>'!W1WkH@43c'dW#s[V)9cU_>#j.VeJk;C/!Zh^';=+$SskT>&)eO9=3b_O8_rtIendstream -endobj -14 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1277 ->> -stream -GatU3;0/3d&:XAWfZ.5E_+5[LH0e5ZC%(21:&XK'=LQb1j9f.as8B&b(cO@?,ND@K=!.>,-`sak!^;'(rBDe4hCi:9OT;)Z=9AlC&/Kc3LW/WCN&W)@4HcSAb1@c?`&M=dX`+`.!eE42s*b?oBfP?OK4,@ilcYK+Y>:2tLg73:A9URZTWp1q&&W8.`S2J@eLY`5>%m@F@c;H"jR0VN$rZWDqaBp]i@!^uF1Nf;[XffH%#p<^!t&_t!L_-3u[AoDCW=YN%t'iQ--I!XK`EolHbfZ8sToXj'Hf4#nk?q7A*(i>Cm;^/ip=]OY-@_pPDYAeOd9gnnhO$WG?;9;uI0>RnntIVu-+Yb"k(dN%8trXCsK&1'8X4f>,Y\o35TS?H/N*%^$\?_,*i;WhH$l8Z>R:>stVFjASjFUlETUgK\1gf!Nk871X=#,@NNuF0*3B1m>nco>Dp">n)L7[.]1Nu@^]k;'\?g@PaB$bCq"J9Q-'Zl7@D2<+6NoCM367(-?l",8cTMimZ$7a/p)K>&2PI9ffHiFZ+V\D6,$m*Db&1"D985P*Uas:#pKaU81O/r@R^cCoheB>7^#+e'@flrcCjBp+%]YqN]Z2S=I&DFp#Se4N_V=^uNZL24[A:Q4ML5lMMk1_X#Jn[[kUtTAg,P,1?^e0[*(e'JAnO7lTiZR\b5Gosb0'R#KI`V\XcGNVQFIFhVQNbB]TsTn,WKK/Jh`fU%^Og>^9pO,""ceX=@jI!2H#dri)9-F8]*Zh\+$jonMnV/VWJ586`u*Y7+19.V#H0M]q1n%9@.Le="fqKQk*)#k%f76M8u12dbO!AA`flZ:L+LseF;C;F\84J%'1-0+S36/$N!^d=rp\P2-T6m#s4n@-7oRHILff"J,L>O:9+;N&,7)_Zd7+g#`*tS7[0`DNPRF[P,YFCr9lHNii*e]r95XBn=Zs["cQ+`ki(J$52`a,5!Olb6-qA(`T4o.WThP.Ot$0`=3Ip(5b`V,nCZK(!YP8Gnjf=dU5.EOLe&:M~>endstream -endobj -xref -0 15 -0000000000 65535 f -0000000073 00000 n -0000000114 00000 n -0000000221 00000 n -0000000333 00000 n -0000000538 00000 n -0000000743 00000 n -0000000948 00000 n -0000001153 00000 n -0000001222 00000 n -0000001505 00000 n -0000001583 00000 n -0000002085 00000 n -0000002450 00000 n -0000004173 00000 n -trailer -<< -/ID -[<255ce026f9d4838ae2e209c093be3fe7><255ce026f9d4838ae2e209c093be3fe7>] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 9 0 R -/Root 8 0 R -/Size 15 ->> -startxref -5542 -%%EOF diff --git a/ai-analysis-reports/repo_analysis_e5dd2aee-8ba2-459e-9345-1f14fc726b5e_20251023_085637_analysis.pdf b/ai-analysis-reports/repo_analysis_e5dd2aee-8ba2-459e-9345-1f14fc726b5e_20251023_085637_analysis.pdf deleted file mode 100644 index 2459834..0000000 --- a/ai-analysis-reports/repo_analysis_e5dd2aee-8ba2-459e-9345-1f14fc726b5e_20251023_085637_analysis.pdf +++ /dev/null @@ -1,131 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 11 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 12 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 13 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -8 0 obj -<< -/PageMode /UseNone /Pages 10 0 R /Type /Catalog ->> -endobj -9 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251023085637+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251023085637+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -10 0 obj -<< -/Count 4 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R ] /Type /Pages ->> -endobj -11 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 375 ->> -stream -Gat=e9hrS[&;Bj=`EO*GNQ6lcVn4,[Wl0qu?Qa2Z>=9)p/>:oA4&$)7'oQfP00D%/^3N*(5,`hk-#dF7Gs`\To*S)l!cs-RM*<0L/!Yj`N+nhshr,6-8>V.E'9`5WQKhEtM.R?F1"tk"%T@[n!KdM)+bI't9Elf8/2.o:LQcJ@=*%U(fm_H4gPScI,Y#?'"J+r,FSO('?;KKgtKn/*i-UN0G[QFOE#\*j;+d5TC5T*k~>endstream -endobj -12 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 300 ->> -stream -Gar'#b>,r/&4Q?hMRtDf1*4V1>]q6tX)ro-(+cT;$)*@]E<>Obj+N2\)TgF?cLDHj$sMMf"7A$a[KI5i2+TJ/?"0Rm[tMIC$\^oZ9W>FW)mR58MHgp),3,rJEg;P,_pBY@7_ejllloYanqF2XnnN6OeMO`'(Ak)sb](:JIY#5)SI[ISH\q`Hq9le&OSn[f)u/D)Me?hB#ign+LGkgj]2rW8HU-BtEKHr5SIH"=+,tng]a_Hl,\7C\n]bU5\Zdm-n^)d\'Miqb1<$"QqDnNMo1IcdQt$)3S\)B6aX8fh>.+~>endstream -endobj -13 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1540 ->> -stream -Gau0D?$#$Q'Rf_Zi2&6o:8.^i#sDmaCd5q--F)B;IsisUCfrJphFYcJLg1tgjhSP70L6O>7/pO,#^r5/6QMWR]jY^iGC']%%^h^68a@tA+/"!J9X4lAao80"lO"dEN$"d+USbYc'BJ2=M(%iu,J9bE5hDkT:c4j's.PI4E(6,1+SqB_?/5GIsd2#j5C5/:eIRDhH+6MMsf7YNLh=-=\d0tO#4W[2uf0FH:$66;S'Q155^o_mda"+VKRYO8:NkkFX@WW/O4J(es#H^8sF$Hfa]PuVOiCD,i>S`X(enP#)5'*nGuoI!5li32YK4FtH"knPJ*Cm`&&WVf,E5JcYeRrX3X,&$%NVJXtQn=HH]l!D*g#AMiDTOD]-)&kE6/W>Vt)V,*-f%H_Dfr,3DGI6V-X(QoZOoX5JJnV1h:?A2o$o$^)S9kMkK2%n4X4L58q&&]#&GMBA"1#>]q$2nn9IS@d34=q:jdU^&,a<-o'$<*H$"_kK">LBXh]XjH\hbC(%Mm#9j^9oj0BJSC`O[+i)CdN1lUAQbh?;Q9S$Pn)e"TfYX%h0<$e3hE9A-1FhLJ(C>A$PVf!)tmTPlBTE)'6NhJIkIlG[hqb!ipsZ&P6KOM9]?05>g&n;)EU.M,FSVmbFVXIa\bW3@o'.T0i!t:q@l0+;-3D3FN.:N--.?_m'Glc@poZ/OPu[IG-lsO#e%k%q@57lQOf0n1ZD(4.+k%ArE[4G\(t%s.sG\HZ"UcRIJQ442J['APn^Kfj6l!?JXDm#)24WCcg=VV2)QHL6,3#NEQ$q,.\HlOMdF)jn4NfkHtd\+?eD4S+UQ-&1Z,@#^NYO2=A>XilX-]gUl7ZU3C`(?N`DL"BQuNUYC;K9`2K0$JK.lb"*9W9iVu3lGkI7W+Qcfu2GS)@&Zqb^6h2-Rk^%"cZ41_*3ln"e3-K,:iCN]&Lendstream -endobj -14 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1186 ->> -stream -GatU39lo&I&A@C2m*X'G'Y[+g\YZ^)R3\@tD=u7SLQu7KWC/3M'9E0A()0$>[^BY>dE$hSO8JRb`F>/9_[g\cY''f[/n&bEJI>T:"':>2j_)),cG%Q58#A>hUc+A0Ap_^.\\JD0e+it1W\T";U155R5,3@imW&YkY=KMu%/%mM6V>USTMb8WruQbHJ-to?=1A^"Yd/hg@V=1-J7C%[!cHA4aAjlueg24c[8e5laPfK`9nN>,ZX,,1NB`+I%22:)L+_j%_)c7RnmB[*mluB)2I)\g\_9HT39H"g-:d*Du*!>SB^mAlNL6F])qr$)P+4mk8U^P22SRj;m"iotThXYp=F:UnHS;a,KC.;@QVU1>!@;bQ.A)oZ!q)l4SB=.F6LuWTaFf:A`?WCjP^FbTBI`mICXc:GNsBYkUn3luoLS,daM_"o\!U.XJ*bc^lK.N&Os763fuO7UV)4[-N3\RNUrZMW;JBF!9%B.m8<)1dC0DLN`i:.:s28XdPA6`s-.'R;BI*]R4cDgr8RrqaDf\ER7ZAsq;Cj@/HHS->;FO-0UU9s*GJOU,O3g.9%fQ!P=f^F[d4"C69;c4XP'U-?Afh/;D2VZ+;E^=RO&P"H`d.aB.OBdBZ?K9XPM;O-0Ur3s?UGG^*_DmAX-G"iR'JM=F_ibr1J"k)?nuAVVQmt%T,11!`i"G#m&R\uZr"M(jK[\:_3WXe<_-9.QW6u_D/6d+hVq7^j\*u$1[icYS^c!L@J1?O]ZJk~>endstream -endobj -xref -0 15 -0000000000 65535 f -0000000073 00000 n -0000000114 00000 n -0000000221 00000 n -0000000333 00000 n -0000000538 00000 n -0000000743 00000 n -0000000948 00000 n -0000001153 00000 n -0000001222 00000 n -0000001505 00000 n -0000001583 00000 n -0000002049 00000 n -0000002440 00000 n -0000004072 00000 n -trailer -<< -/ID -[<2780f46538c3e05a4748032947cac680><2780f46538c3e05a4748032947cac680>] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 9 0 R -/Root 8 0 R -/Size 15 ->> -startxref -5350 -%%EOF diff --git a/ai-analysis-reports/repo_analysis_e5dd2aee-8ba2-459e-9345-1f14fc726b5e_20251023_085845_analysis.pdf b/ai-analysis-reports/repo_analysis_e5dd2aee-8ba2-459e-9345-1f14fc726b5e_20251023_085845_analysis.pdf deleted file mode 100644 index 3f00cfa..0000000 --- a/ai-analysis-reports/repo_analysis_e5dd2aee-8ba2-459e-9345-1f14fc726b5e_20251023_085845_analysis.pdf +++ /dev/null @@ -1,131 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 11 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 12 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 13 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -8 0 obj -<< -/PageMode /UseNone /Pages 10 0 R /Type /Catalog ->> -endobj -9 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251023085845+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251023085845+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -10 0 obj -<< -/Count 4 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R ] /Type /Pages ->> -endobj -11 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 375 ->> -stream -Gat=e9hrS[&;Bj=`EO*GNQ6lcVn4,[Wl0qu?Qa2Z>=9)p/>:oA4&$)7'oQfP00D%/^3N*(5,`hk-#dF7Gs`\To*S)l!cs-RM*<0L/!Yj`N+nhshr,6-8>V.E'9`5WQKhEtM.R?F1"tk"%T@[n!KdM)+bI't9Elf8/2.o:LQcJ@=*%U(fm_H4gPScI,Y#?'"J+r,H:^>M;o7`DJ`r(%oQeY`.d#Ya4&j5nZm&'/b-5h9AJ:MgNS1&kSqn6T+(~>endstream -endobj -12 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 275 ->> -stream -Garo;Yti1j&;KpA`BQ\C>b=Ssdg`*r8dC"c7OrVU:ck@jdaGVFYn-s^FHWK4htMOWJ]FL,efK(a=RQM@TGp_QEp*j7SXhP4\g\A)?8/2s<8<91,EcUj_*l-"N0UCWZG>+)&Ot[U8G&#r5\4E*Km^6*Yk:,$B8`,0HS\uHU#2MEMt8s[Dm-\NiT2N`7h`YQP=?hBc@cM$2sqTqJ9p_Rc;+(`Af+CV:q$~>endstream -endobj -13 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1420 ->> -stream -Gatm;gMYb*&:O:Sn7@/eZ!g1\&ueC18bV:SPLq;1VhN]6*-ER.eKoeDofJs?>F%u`mKQ-)@X'jgLR]4l.3e8Vk5R2,kktQgh,6WY>!*tN0h7->\lh_@:8gSgM$+?oPd,lV0S(Yf&Jk_ZOFRa011DFqja%!NkY=?UbX"0T1buY=epR"d^(aRN(ZcG2oqKTq<5&9i(8'"6S[S@p^V+22E"miu.#:?\hnZ6O7Nir=OpP);o^m$QA&1JQ,90>h`(YY,$[-d2>!.1:4R<7L=u++pG%[2uQO^t?8Zk'[go7kYQQ6tb&0j9ha!>G"#=T'>=TYYBD^gX)MFCAi)7iNula$;Vlj`+_a+/DYj)iX(#]I8aECj"=Srr';UBV7dF)sHo&eq&g1'-H\c.%Zo:.H7g^^!WbY4tgM#NWL:)/7XV+n&FAKT1ROq4S,rV,@ScSA1odkM`50Z+u;Y]I/u4PW0lG%Y`##Vh(@G3!u"kC6^^Q.._V9V`lgQ@)>9dU1D%?*PXMUB>s0bj5Cj?i@3o%PmrQ"gdE4m\j\rDqIO.ABd\tmR1c3)r=Yf8r=Yf8]+RE36J>G\XH;h'-gCnsKWf94(;El*R&adsNiX,P1?hhtDOMO_3m=%NgSCiHU9DilXjAAoSDfa5P;K>56@p^K"?6!q*QU#jU.,]$P6.9lMSCVFX2rNH#9a]NWD,Se>ro4qd]Gnha2qob:*4>32mkj&I#U#MS^s2:_P_q/u0%!6r_[,%M9Fe@10r\he_?-D?1D&oEiqG+p0^5'7WDn[bpO&jR"nDC:H3DeJFa/#?1BRA=r7-2C"Y3N(.S*BV%%F,4T>eA#KO+,du(iV]N$PAaGp52#5(.N^XC.*D*=1qJrFHAAo=&PMFVSBM*H]^Cf%=/;SSacu^i"HZUg_98C!#n?m7Af:B\>Fd^`oSZ:u?4ZmL4f;2@ab=r)o\R@ViQ3]sORfu\%qjCX3pR"!AhUbDF2Ud/7FHEKP3ddG51_?/m&bR5$4cUendstream -endobj -14 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 315 ->> -stream -GatUn_+qm%%#45!MZ3s,J6RYq%=ocu""LSXjrS<%]I3@CZIC9;AQga0W!J!B"oFI9>5GW7#.ne(0jDcAk^kR+g5]$i,?NIT^g39fDtgZs>M`]']YRiI^rI#dU%pGV.aNXf1(p%J!@8He/M]HY8';.E%K(#-cqHTUZfddJX6f"@YfJ'*.fQmbrDGGAK@^kZ`Ha]4&!:0/Oqr*qpA:=t:UdF/doLe@JToSV5^&ST;din~>endstream -endobj -xref -0 15 -0000000000 65535 f -0000000073 00000 n -0000000114 00000 n -0000000221 00000 n -0000000333 00000 n -0000000538 00000 n -0000000743 00000 n -0000000948 00000 n -0000001153 00000 n -0000001222 00000 n -0000001505 00000 n -0000001583 00000 n -0000002049 00000 n -0000002415 00000 n -0000003927 00000 n -trailer -<< -/ID -[] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 9 0 R -/Root 8 0 R -/Size 15 ->> -startxref -4333 -%%EOF diff --git a/ai-analysis-reports/repo_analysis_e9208906-40ca-4bb7-ad0b-dfa3935fea06_20251024_072825_analysis.pdf b/ai-analysis-reports/repo_analysis_e9208906-40ca-4bb7-ad0b-dfa3935fea06_20251024_072825_analysis.pdf deleted file mode 100644 index 39f2fd6..0000000 --- a/ai-analysis-reports/repo_analysis_e9208906-40ca-4bb7-ad0b-dfa3935fea06_20251024_072825_analysis.pdf +++ /dev/null @@ -1,112 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 10 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 9 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 11 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 9 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 12 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 9 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/PageMode /UseNone /Pages 9 0 R /Type /Catalog ->> -endobj -8 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251024072826+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251024072826+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -9 0 obj -<< -/Count 3 /Kids [ 4 0 R 5 0 R 6 0 R ] /Type /Pages ->> -endobj -10 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 429 ->> -stream -Gat=f9i&Y\%#46L'g<,GdNnc^\m&TSRKQ=^0"V:aO?9HI^PXV)OLEnmg/!h%b`)&D'1A!!PL?27Z%jp:2@*(aU`c8Qtb!)b9[Cr.BKfMV'Rpa8?F>o[(kd_9N2O6SGn_>MN):dSI-O)1ZXo[4dN%7A\/#G*W&1bBMW>EPM[6j+o%-IQ&3YPO'`fVd_R1o1%,endstream -endobj -11 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 256 ->> -stream -Garo;6#+:k&4Q=W`Esrp-lU(5e1LjF.[s=A5e++>OR0ok6ZW'!6n)uHHk9s\oA59G3L%i:!dfjmO['8^"dPg84lKe,CI);\[=Kq\@EaYg$#U"m?'cHrendstream -endobj -12 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1215 ->> -stream -Gatm;gN)%,&:N/3lq:u]9Z7!)J->K+>b#,b`YZ&O$jFgJ.5Kl$*r#!4!'uL*77GX<3&WLLZ[75amK(7WdDPAOA-MI?%WAL0E.n$ME8_+jcf!i2nmfNW1/nelkp[>rnt6;Mo.U_!GUOH_]KcW;8gp#>$HDu<'QHRH&U7\n.hha<c!jki%gA"kPt0`SC]d+h1u%6*sA.23<_#&iI.uXj"[+NBMA'cr,nF1@f"*N3+"T6;HMljS]BX`^No@6O2[A"A4e2o1:p#cC#U\GTD.^0qLkGf_h[P8"ni3"I@F&5g"Ps?W[&qT/PL0#m3e?OlKW(p.te*EgfYS;-FR>#5ha6,"BCc4+79^nao#R[=(po#shr,W8#ot5O*'/[;eY4Ts*`DhA=GVk(e'sR*_Qp?L'A?6rA`0,RgK1@G(86Ds?h$IoGhboFQN#_l/e90\N3`p<.?H?lj_'f=mmM,&L?cd6!D]d!)F.H;hM[a(NB?6.GH:B"7Bj3E?83?XacO,?1D$u$%D$u$%o`Ds85X#U4cA68r%b2+V32RSqUN?j]n(][1ekAejRJO!Z_.dEpk#!V`_8=/-)m`RtlG=XFYnXcp>i[2kPY+4$4JGY!:0U=a.R0K<:2b`/R7&=KqUBGWbA/EuSfki9L7%k4&G7iX_:_V*S`Zfe@/gY8IYdWJeZN8JOnZFaV+WS/8(Y'@QU^?AGMEHd``j[`'r4o4oQC,UYb-'XY=Pt_r%L9fIoDGqs183=BD2nTU%N=Le4UbA7`MIB2#0sN\*O@A4iUk-p0B[92!FQG'>,l9qXJh(GDBiCd&b?ZcZ'I\eed$#pD*I#I8A#$^^Rq&ek]FK5~>endstream -endobj -xref -0 13 -0000000000 65535 f -0000000073 00000 n -0000000114 00000 n -0000000221 00000 n -0000000333 00000 n -0000000537 00000 n -0000000741 00000 n -0000000945 00000 n -0000001013 00000 n -0000001296 00000 n -0000001367 00000 n -0000001887 00000 n -0000002234 00000 n -trailer -<< -/ID -[<0dc23ec5c36593acbd843d70137a208c><0dc23ec5c36593acbd843d70137a208c>] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 8 0 R -/Root 7 0 R -/Size 13 ->> -startxref -3541 -%%EOF diff --git a/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_092902_analysis.pdf b/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_092902_analysis.pdf deleted file mode 100644 index 942fbb5..0000000 --- a/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_092902_analysis.pdf +++ /dev/null @@ -1,131 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 11 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 12 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 13 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/Contents 14 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 10 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -8 0 obj -<< -/PageMode /UseNone /Pages 10 0 R /Type /Catalog ->> -endobj -9 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251023092903+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251023092903+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -10 0 obj -<< -/Count 4 /Kids [ 4 0 R 5 0 R 6 0 R 7 0 R ] /Type /Pages ->> -endobj -11 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 375 ->> -stream -Gat=eb>,r/&4Q?hMRtEq)NPQP:3T,@N'A^(:^i=\*j;+d5TE8T*t~>endstream -endobj -12 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 334 ->> -stream -Gar'#9i$Er&;KZOMYFWLVD&%hLVJK?&]u/5h?ldG9:j_2melOriJJ50jYRG=B\ZG/1N$`Kiai6j3pC#a&O?]Jknc-^,69)"BFgVs]=UE2"Tf'C[.8?,kn]%[%)bm5Z$^nf=uVli7_QluXSX2@!5W[Wtq&VQQ-#nI4C\id>o5])(kAqW%78`i4^009<`]?Tc0afuh]/)QAd-1SX6J=08RXU$;kAkbDn")EC3(V1rlH)D=DB3$=5TRX1.iS310?)8hYP:&eW=DB$cJp0Hd#BQm*#eA3mSH_iSe/mC3N)/b=`iD.UMLSN]"oAk=kSK&(,'Anpaci~>endstream -endobj -13 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1541 ->> -stream -GatmX?5QMa6KEh5q]XMIP56aoTJ[e)CHTN:4uF5TjU>.O%S9a'M:(kEOgWEgc2:n+T7a)%U->4!@DSdS.qMQ(MZ2gM]gi)MG)h56&fWc5#H42,$-0@%t[]>n3chjpN<8U6?!U\o+Crju,o8s`+ep?SN3daW5$[oJY>ji^2JbauW1(Si,tSUu@/hmXKaS]NK;KNuD'^6q_\o_B._hDZ=]2)tet'\sWE[N^)Aks=TiYP(6tehU>a1+G2*sAL[t>=BeO@(7)Ed#1I':-M^CPEh'WNRiC0*H3T28]-5EiqEig0fDr!gUU&N+h.IV\KNd$m!-_B_sqCS@>"H9Br<"?ud61[<#k6'jeYM+](ut5LhffLB^%CZ[XEjnm3=]TPK3)J3qc^+bC4")cnO2+>S;iG!hntEIE,HJ6#2;1GAG\sbq%WDt)##sH%`m5'aZio"gOp=O)b1:8+26HARY6t9RtR(:RtR*89nHK$Up#k`+mjqQ3X6=LX)fs5^/sL-;fS'ull+S5me;WgTtE.&=>sko;,O&YT;k=XTK+J?_^e_V8QnB?pg,8X;,hMM1r(hQI-D'$ce^6=Q[/LjPU\:9n82?jI/7/8MYb>B5#BlL-n=(*:jR#Za!U3Nn$TJs\%%tmV)\XOF=/%n,g[Rp%4;]qXPTTdN\b?Z/0nJh2Ir327-0&Je7kT#.-Bf44f"YSO2H@r_4&:10$\Km<^o1G?U[g4W#_I@EeLT&2gk).9%$^Z&Z&:]U\D':*4gm6h[PkrS1TWH&],:sGkc5_*&=o]kAX*#5G58^X"9<,d'.jld'+q87q`GtNCK\d73`3N=l`32(TVNoG0`,U$R4"n_Eq";BJd7J"SE5GMd\Z+Zfc>c/U6&p$hA_TmhTrdG7/Kg0'_]EgEbnY5)m!cSnrRHK(E51O5.).2LE>^'endstream -endobj -14 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1250 ->> -stream -GatU3?$G!^&:N_Cb[]A5#^uNLDj6WR2BghnH.]#9(I[6em*p3Ec+dW-Q>E#.1<1@E88!eoL^#Zp?6kF0i&(ocY]7RQA@V$s(=S>#hUI!GWNfk:-@At/1GaXTS0]BoiZIR3VrPomuIk78e;!Da8bA<%<3Hl&4EV\taJ%3r5aZN*"\MQ]uM]2p"4/M/@1J3838C5m=D[MoPC(dC='G%]Qks,$pTH@\'V.HTE%**YB;ZD(e:eH:;LP[g6#9d-UTkr,Fn"0tUb`hp!@P>?bWOT;sr$>\Er`,"3`U70tcHmb!fWQ]_@.BI1jcB(>[L=tD>n1:4q21,RE+K/gonYV5*):fl$*@MUS7_sZ_G/e\1eC0Q23)XrE[W#T-MJM%qERNkP4(OF^DBdZ\fF[[\Ud#9Y!I5^]1fV_a]9)\:9)50._i_fZE85JkK"\WbANKdOV?`bE-!0En#Ln8XoWZH\V47%;8&g3WNik>2V_Eae$h;/>[s$T@jSFmXfZ?h=FINURPe-4)QTAcXKb[@VIkf&2f-!8$Og1bEdjmjpgHD6V8*M*W`HZ6"j2(.^^!j?rI]ks&[6`UcE-l)>on[tUn1p\D2tm;Ll/Decl[5Z"$H>_:WP"\DWSI%/mbk.X_q@!=!]NI=E?\]/AWimF=nX0jc4@*5LR4/_7.ON7gIo[,5qnWc%.Vf1M":]A@_3WsAcB=lT6%9GOtpqu.6W6H3Wht,$)E4`,ipD8@PX%p5r*Z`9uJ*9%?qAp;>j4?*)j*T71n]92IbeZ9d]U&@W,pHH,I+Z\O.%Q5Cq<%RS^g,UjQiB&UXX1-!gP;$kH(>nTYJ94GL2%9XpuO00rcX;:&]aC0cWpjDcUo=UNc]1A`M@Gs;-P:E%p#`$O@"'+I-6p50n\rrX17.!#~>endstream -endobj -xref -0 15 -0000000000 65535 f -0000000073 00000 n -0000000114 00000 n -0000000221 00000 n -0000000333 00000 n -0000000538 00000 n -0000000743 00000 n -0000000948 00000 n -0000001153 00000 n -0000001222 00000 n -0000001505 00000 n -0000001583 00000 n -0000002049 00000 n -0000002474 00000 n -0000004107 00000 n -trailer -<< -/ID -[<6aac18669f25bfa33363440b72346609><6aac18669f25bfa33363440b72346609>] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 9 0 R -/Root 8 0 R -/Size 15 ->> -startxref -5449 -%%EOF diff --git a/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_101538_analysis.json b/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_101538_analysis.json deleted file mode 100644 index 901a876..0000000 --- a/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_101538_analysis.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "repository_id": "f5816b26-df0c-4a82-a14f-116e3df808fc", - "repo_path": "/tmp/attached-repos/python-trio__trio__main", - "total_files": 5, - "total_lines": 222, - "languages": { - "unknown": 5 - }, - "code_quality_score": 5.8, - "architecture_assessment": "Based on the limited information provided about this repository, I'll offer an architectural assessment to the best of my ability. However, please note that the analysis is constrained by the lack of detailed code content and specific file information.\n\n1. Project Type and Purpose:\nGiven the minimal repository structure and the absence of application code files, this appears to be a project configuration or template repository rather than a full-fledged application. The presence of files like .codecov.yml, .gitignore, and .pre-commit-config.yaml suggests that this repository is set up with various development tools and practices in mind. The purpose likely revolves around establishing a standardized project structure or serving as a starting point for other projects.\n\n2. Technology Stack Evaluation:\nWithout specific code files, it's challenging to determine the primary technology stack. However, we can infer some tools and practices from the configuration files:\n\n- Version Control: Git (evidenced by .gitignore and .gitattributes)\n- Code Coverage: Codecov (indicated by .codecov.yml)\n- Code Quality: Pre-commit hooks (shown by .pre-commit-config.yaml)\n\nThe absence of language-specific files or build configurations makes it impossible to identify the primary programming language or framework used.\n\n3. Code Organization and Structure:\nThe repository structure is minimal, containing only configuration files. This suggests that:\n\na) The project is in its initial setup phase.\nb) It's a template or boilerplate repository for initializing other projects.\nc) The actual code might be stored elsewhere, and this repository is for project management and CI/CD configurations.\n\nThe presence of these configuration files indicates a focus on code quality and development best practices.\n\n4. Scalability and Maintainability Concerns:\nGiven the limited information, it's challenging to assess scalability directly. However, some observations can be made:\n\n- The use of code coverage and pre-commit hooks suggests a commitment to code quality, which generally aids maintainability.\n- The .git-blame-ignore-revs file indicates an attempt to manage Git blame effectively, which can help in long-term code maintenance.\n- The absence of actual code or clear project structure makes it difficult to evaluate how well the project would scale or be maintained over time.\n\n5. Key Recommendations for Improvement:\n\na) Project Documentation:\n - Add a comprehensive README.md file explaining the purpose of the repository, how to use it, and any relevant setup instructions.\n - Include documentation on the development workflow, coding standards, and how to contribute to the project.\n\nb) Expand Configuration:\n - If this is a template repository, consider adding more common configuration files (e.g., EditorConfig, linting configurations) to further standardize development practices.\n\nc) Folder Structure:\n - Implement a clear folder structure that reflects best practices for the intended technology stack, even if it's just placeholder directories with README files explaining their purpose.\n\nd) Sample Code:\n - If appropriate, include sample code or modules that demonstrate the intended use of the repository and showcase best practices.\n\ne) Continuous Integration:\n - Add CI configuration files (e.g., GitHub Actions, Travis CI) to automate testing and deployment processes.\n\nf) Dependency Management:\n - Include appropriate dependency management files (e.g., package.json for Node.js, requirements.txt for Python) to clarify project dependencies and make setup easier.\n\ng) Security Considerations:\n - Implement security scanning tools in the pre-commit hooks or CI pipeline to catch potential vulnerabilities early.\n\nh) Code Quality Metrics:\n - Integrate tools for static code analysis and set up quality gates to maintain code standards.\n\ni) Versioning Strategy:\n - Establish a clear versioning strategy and document it, possibly using semantic versioning.\n\nj) Testing Framework:\n - Set up a testing framework appropriate for the intended technology stack, including unit tests, integration tests, and end-to-end tests.\n\nk) Environment Configuration:\n - Add templates for environment-specific configurations to ease deployment across different environments.\n\nl) API Documentation:\n - If the project is intended to have an API, include tools and templates for API documentation.\n\nm) Performance Monitoring:\n - Consider adding configuration for performance monitoring tools to help with future scalability concerns.\n\nn) Containerization:\n - If applicable, include Docker configurations to ensure consistent development and deployment environments.\n\no) Contribution Guidelines:\n - Create a CONTRIBUTING.md file to outline how others can contribute to the project effectively.\n\nGiven the current state of the repository, the primary focus should be on clarifying its purpose and expanding it to provide more value as either a project template or a fully-fledged project. The low average code quality score (5.8/10) suggests that even the existing configuration files could benefit from improvement and adherence to best practices.\n\nBy implementing these recommendations, the repository will become more robust, easier to understand, and more valuable as either a starting point for new projects or as a foundation for ongoing development. The key is to provide clear structure, documentation, and tooling that supports scalable and maintainable software development practices.", - "security_assessment": "Based on the limited information provided, here's a high-level security assessment and recommendations:\n\n1. Overall Security Posture:\nThe initial scan suggests a relatively clean security posture, with no obvious issues detected and no high-risk file types present. However, this surface-level analysis should not be considered comprehensive. A more thorough code review and architectural assessment is necessary to fully evaluate the security posture.\n\n2. Main Security Risks and Vulnerabilities:\nWhile no obvious issues were found, common risks in similar repositories often include:\n- Insecure dependency management\n- Lack of input validation and sanitization\n- Improper error handling and information disclosure\n- Insufficient logging and monitoring\n- Potential for injection attacks (SQL, XSS, etc.)\n\nRecommendation: Conduct a comprehensive vulnerability assessment, including static and dynamic code analysis, to identify any hidden vulnerabilities.\n\n3. Authentication and Authorization Concerns:\nWithout specific details on the authentication and authorization mechanisms, it's crucial to ensure:\n- Strong password policies are enforced\n- Multi-factor authentication (MFA) is implemented\n- Proper session management is in place\n- Least privilege principle is applied to all user roles\n- Regular access reviews are conducted\n\nRecommendation: Implement a robust Identity and Access Management (IAM) system if not already in place. Regularly audit access controls and user permissions.\n\n4. Data Protection and Privacy Issues:\nEnsure compliance with relevant data protection regulations (e.g., GDPR, CCPA). Key areas to focus on:\n- Data encryption at rest and in transit\n- Proper handling of personally identifiable information (PII)\n- Data retention and deletion policies\n- User consent management for data collection and processing\n\nRecommendation: Conduct a data flow analysis to map out how sensitive information is handled throughout the system. Implement encryption for all sensitive data and establish clear data handling procedures.\n\n5. Immediate Security Priorities:\na) Comprehensive Security Audit: Despite the initial clean scan, conduct a thorough security audit to uncover any hidden vulnerabilities or misconfigurations.\n\nb) Dependency Management: Implement a robust process for managing and updating dependencies, including regular vulnerability scans of third-party libraries.\n\nc) Secure Development Practices: Enforce secure coding practices and integrate security checks into the development pipeline (e.g., SAST, DAST, SCA tools).\n\nd) Logging and Monitoring: Enhance logging mechanisms to capture security-relevant events and implement real-time monitoring and alerting for potential security incidents.\n\ne) Incident Response Plan: Develop and regularly test an incident response plan to ensure quick and effective responses to potential security breaches.\n\nf) Security Training: Provide regular security awareness training for all developers and staff involved with the repository.\n\ng) API Security: If the repository includes API endpoints, ensure they are properly secured with authentication, rate limiting, and input validation.\n\nh) Secrets Management: Implement a secure secrets management solution to handle sensitive information like API keys and credentials.\n\ni) Regular Penetration Testing: Schedule regular penetration tests to identify vulnerabilities that automated scans might miss.\n\nj) Compliance Check: Ensure the codebase and associated processes comply with relevant industry standards and regulations (e.g., OWASP Top 10, NIST guidelines).\n\nAdditional Recommendations:\n1. Implement a bug bounty program to encourage responsible disclosure of vulnerabilities.\n2. Regularly review and update security policies and procedures.\n3. Consider implementing runtime application self-protection (RASP) for additional security layers.\n4. Ensure proper network segmentation and firewall rules if the application interfaces with other systems.\n5. Implement secure backup and disaster recovery procedures.\n\nWhile the initial scan shows no obvious security issues, it's crucial to maintain a proactive security stance. Regular assessments, continuous monitoring, and staying updated with the latest security best practices are essential for maintaining a robust security posture. Remember that security is an ongoing process, not a one-time effort.", - "executive_summary": "Analysis completed for 5 files in repository f5816b26-df0c-4a82-a14f-116e3df808fc", - "file_analyses": [ - { - "path": \ No newline at end of file diff --git a/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_102319_analysis.json b/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_102319_analysis.json deleted file mode 100644 index 1e10408..0000000 --- a/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_102319_analysis.json +++ /dev/null @@ -1,290 +0,0 @@ -{ - "repository_id": "f5816b26-df0c-4a82-a14f-116e3df808fc", - "repo_path": "/tmp/attached-repos/python-trio__trio__main", - "total_files": 21, - "total_lines": 1662, - "languages": { - "unknown": 21 - }, - "code_quality_score": 5.857142857142857, - "architecture_assessment": "Based on the provided repository structure and statistics, I'll offer an architectural assessment covering the requested areas:\n\n1. Project Type and Purpose:\nThis appears to be a open-source project, likely a library or framework, given the presence of documentation files, contribution guidelines, and CI/CD configuration. The exact purpose is unclear from the limited information, but it seems to be a software development tool or utility.\n\n2. Technology Stack Evaluation:\nThe technology stack is not immediately apparent from the provided information. All files are listed as \"unknown\" language, which is unusual and may indicate an issue with the analysis tool or a very specialized project. Key observations:\n\n- Presence of .yml files suggests use of YAML for configuration\n- CI/CD integration is evident (.codecov.yml, ci.sh)\n- Documentation is a focus (docs-requirements.in, .readthedocs.yml)\n- Git is used for version control\n\nWithout more details on actual code files, it's challenging to evaluate the core technology stack. This could be a configuration-heavy project or the analysis might be missing crucial information.\n\n3. Code Organization and Structure:\nThe repository structure shows a focus on project management and documentation rather than code:\n\n- Version control configuration (.gitignore, .gitattributes)\n- CI/CD and code quality tools (.codecov.yml, .pre-commit-config.yaml)\n- Community guidelines (CODE_OF_CONDUCT.md, CONTRIBUTING.md)\n- Documentation setup (docs-requirements.in, .readthedocs.yml)\n\nThe absence of visible source code directories (like src/, lib/, or test/) is concerning. This could indicate:\na) The analysis tool failed to detect or categorize code files\nb) The project is primarily configuration or documentation-driven\nc) The core code is contained in a single file or unconventional structure\n\n4. Scalability and Maintainability Concerns:\nGiven the limited information, several concerns arise:\n\na) Code Visibility: The lack of clear code structure makes it difficult to assess scalability or maintainability of the core functionality.\n\nb) Documentation: The presence of documentation files is positive, but their content and completeness cannot be evaluated from this overview.\n\nc) Code Quality: The average code quality score of 5.9/10 is mediocre, indicating room for improvement. However, without knowing what this score is based on, it's hard to pinpoint specific areas for enhancement.\n\nd) File Issues: Every listed file has at least one issue. This suggests a need for cleanup and adherence to best practices across the project.\n\ne) Language Detection: The failure to detect any programming languages is a red flag. This could severely impact tool integration, contributor onboarding, and overall project management.\n\n5. Key Recommendations for Improvement:\n\na) Code Structure Clarification:\n - If code exists but wasn't detected, reorganize into a clear structure (e.g., src/, test/, docs/)\n - If it's a configuration-centric project, clearly document this in the README\n\nb) Improve Code Quality:\n - Address the issues flagged in each file\n - Implement more stringent pre-commit hooks to catch issues early\n - Consider adding linting tools appropriate for the project's actual language(s)\n\nc) Enhance Documentation:\n - Ensure README.md clearly explains the project purpose, setup, and usage\n - Review and update all documentation files for completeness and accuracy\n\nd) CI/CD Enhancement:\n - Expand ci.sh to include more comprehensive checks and tests\n - Integrate additional code quality tools into the CI pipeline\n\ne) Language and Tool Configuration:\n - Properly configure .gitattributes to ensure correct language detection\n - If using a non-standard language, provide clear documentation on development environment setup\n\nf) Community Engagement:\n - Review and update CODE_OF_CONDUCT.md and CONTRIBUTING.md to ensure they're comprehensive and welcoming\n - Consider adding issue and pull request templates to streamline contributions\n\ng) Dependency Management:\n - If applicable, add clear dependency management files (e.g., requirements.txt for Python, package.json for Node.js)\n - Regularly update and audit dependencies for security and compatibility\n\nh) Testing Strategy:\n - If not present, introduce a testing framework and write unit tests\n - Aim for high test coverage, using .codecov.yml to enforce standards\n\ni) Scalability Planning:\n - Document the project's scalability strategy\n - If relevant, consider modularizing the codebase to allow for easier expansion\n\nj) Security Measures:\n - Implement security scanning in the CI/CD pipeline\n - Regularly update dependencies and address any vulnerabilities\n\nk) Performance Optimization:\n - If applicable, introduce performance benchmarks\n - Document performance considerations for contributors\n\nl) Versioning and Releases:\n - Implement clear versioning strategy (e.g., semantic versioning)\n - Set up automated release processes and changelog generation\n\nIn conclusion, this project shows signs of good practices in terms of community guidelines and CI/CD integration. However, the lack of visible code structure and the undetected programming languages are significant concerns. The primary focus should be on clarifying the project structure, improving code quality, and enhancing documentation to make the project more maintainable and contributor-friendly. Without addressing these fundamental issues, scaling the project or maintaining it long-term could prove challenging.", - "security_assessment": "Based on the limited information provided, here's a high-level security assessment and recommendations:\n\n1. Overall Security Posture:\nThe presence of cryptography and pyopenssl packages indicates some level of security awareness and implementation. However, the potential conflicts between these packages raise concerns about the overall security architecture. The lack of high-risk file types is positive, but a more comprehensive review is needed to fully assess the security posture.\n\n2. Main Security Risks and Vulnerabilities:\n- Package conflicts: Interdependencies between cryptography and pyopenssl could lead to version incompatibilities or improper implementations.\n- Potential for outdated dependencies: If packages are not regularly updated, known vulnerabilities could be exploited.\n- Lack of visibility into actual implementation: Without seeing the code, there may be improper use of cryptographic functions or insecure configurations.\n\n3. Authentication and Authorization Concerns:\n- Unknown authentication mechanisms: The repository doesn't provide clear information on how user authentication is handled.\n- Potential lack of proper authorization checks: There's no indication of role-based access control or least privilege principle implementation.\n\n4. Data Protection and Privacy Issues:\n- Encryption implementation: While cryptography packages are present, their correct usage for data-at-rest and data-in-transit protection needs verification.\n- Privacy considerations: Without more context, it's unclear if personal data handling complies with relevant regulations (e.g., GDPR, CCPA).\n\n5. Immediate Security Priorities:\n\na) Dependency Review and Update:\n - Conduct a thorough audit of all dependencies, especially cryptography and pyopenssl.\n - Resolve any conflicts and ensure all packages are up-to-date.\n - Implement a dependency management strategy to keep packages updated automatically.\n\nb) Code Review and Security Testing:\n - Perform a comprehensive code review focusing on cryptographic implementations.\n - Conduct static and dynamic application security testing (SAST/DAST).\n - Implement regular security scans as part of the CI/CD pipeline.\n\nc) Authentication and Authorization Enhancements:\n - Review and strengthen authentication mechanisms (e.g., implement MFA).\n - Implement proper authorization checks throughout the application.\n - Consider using a robust identity and access management (IAM) solution.\n\nd) Encryption and Data Protection:\n - Ensure proper implementation of encryption for data-at-rest and data-in-transit.\n - Review and enhance data classification and handling procedures.\n - Implement secure key management practices.\n\ne) Security Documentation and Training:\n - Develop comprehensive security documentation covering all aspects of the application.\n - Provide security training for developers focusing on secure coding practices and proper use of cryptographic libraries.\n\nf) Third-Party Security Assessment:\n - Consider engaging a third-party security firm for a thorough penetration test and security assessment.\n\ng) Implement Security Monitoring and Incident Response:\n - Set up logging and monitoring for security-related events.\n - Develop and test an incident response plan.\n\nh) Compliance Review:\n - Assess the application against relevant compliance requirements (e.g., GDPR, CCPA, PCI-DSS if applicable).\n - Implement necessary controls to ensure compliance.\n\ni) Secure Development Lifecycle:\n - Integrate security practices throughout the development process, from design to deployment.\n - Implement secure coding guidelines and enforce them through code reviews and automated checks.\n\nj) API Security:\n - If the application exposes APIs, ensure they are properly secured with authentication, rate limiting, and input validation.\n\nk) Container and Infrastructure Security:\n - If using containerization, implement container security best practices.\n - Review and harden the underlying infrastructure and network security.\n\nl) Secrets Management:\n - Implement a secure secrets management solution to handle sensitive information like API keys and passwords.\n\nm) Regular Security Assessments:\n - Establish a schedule for regular security assessments and vulnerability scans.\n\nThese recommendations provide a starting point for improving the security posture of the application. Given the limited context, it's crucial to perform a more in-depth analysis of the actual codebase and infrastructure to identify specific vulnerabilities and tailor the security strategy accordingly. Prioritize addressing the most critical issues first, such as resolving package conflicts and ensuring proper cryptographic implementations, while working towards a comprehensive security program that covers all aspects of the application lifecycle.", - "executive_summary": "Analysis completed for 21 files in repository f5816b26-df0c-4a82-a14f-116e3df808fc", - "file_analyses": [ - { - "path": ".codecov.yml", - "language": "unknown", - "lines_of_code": 34, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": ".git-blame-ignore-revs", - "language": "unknown", - "lines_of_code": 5, - "severity_score": 8.0, - "issues_found": [ - "No major issues found - file serves its intended purpose", - "Documentation could be more detailed about the commit purposes" - ], - "recommendations": [ - "Add more detailed comments explaining what each commit fixes/changes", - "Consider adding dates to the commit references", - "Consider grouping related commits under descriptive headers", - "Add a brief header comment explaining the purpose of this file" - ] - }, - { - "path": ".gitattributes", - "language": "unknown", - "lines_of_code": 5, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": ".gitignore", - "language": "unknown", - "lines_of_code": 81, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": ".pre-commit-config.yaml", - "language": "unknown", - "lines_of_code": 97, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": ".readthedocs.yml", - "language": "unknown", - "lines_of_code": 21, - "severity_score": 9.0, - "issues_found": [ - "No major issues found - configuration appears well-structured and follows ReadTheDocs standards", - "Build environment could potentially be more specific about tool versions" - ], - "recommendations": [ - "Consider pinning exact Python version if needed (e.g. 3.11.x)", - "Consider adding more output formats like PDF if needed", - "Consider specifying Python dependencies versions in docs-requirements.txt explicitly", - "Add comments explaining non-obvious configuration choices", - "Consider adding build job timeout settings" - ] - }, - { - "path": "ci.sh", - "language": "unknown", - "lines_of_code": 153, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "CODE_OF_CONDUCT.md", - "language": "unknown", - "lines_of_code": 3, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "CONTRIBUTING.md", - "language": "unknown", - "lines_of_code": 3, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "docs-requirements.in", - "language": "unknown", - "lines_of_code": 26, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "docs-requirements.txt", - "language": "unknown", - "lines_of_code": 110, - "severity_score": 8.0, - "issues_found": [ - "Some package versions are pinned to future dates (e.g., certifi==2025.8.3) which may indicate version typos", - "Multiple security-related packages (cryptography, pyopenssl) are being used but their interdependencies could create conflicts", - "Platform-specific dependencies (cffi, colorama) may cause inconsistencies across different environments" - ], - "recommendations": [ - "Verify and correct package versions that appear to have future dates", - "Consider using version ranges (e.g., >= notation) instead of exact pins for non-critical dependencies", - "Add comments explaining why specific versions are required for critical packages", - "Regularly update dependencies using automated tools like dependabot", - "Consider splitting platform-specific requirements into separate files", - "Add hashes for package integrity verification" - ] - }, - { - "path": "LICENSE", - "language": "unknown", - "lines_of_code": 4, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "LICENSE.APACHE2", - "language": "unknown", - "lines_of_code": 203, - "severity_score": 9.0, - "issues_found": [ - "None - this is a standard Apache 2.0 license text file and does not contain executable code", - "Template fields [yyyy] and [name of copyright owner] in the appendix are not filled in" - ], - "recommendations": [ - "Fill in the copyright year and owner information in the appendix section if this is being used in a project", - "Ensure the license text remains unmodified as per Apache License requirements", - "Include a corresponding NOTICE file if the project contains any additional attributions", - "Store this file in the root directory of the project", - "Name the file as 'LICENSE' or 'LICENSE.txt' rather than 'LICENSE.APACHE2' for better standard compliance" - ] - }, - { - "path": "LICENSE.MIT", - "language": "unknown", - "lines_of_code": 23, - "severity_score": 9.0, - "issues_found": [ - "None - This is a standard MIT license file with correct formatting and complete terms" - ], - "recommendations": [ - "Consider adding a year to the copyright notice for more precise attribution", - "Consider adding a link to the project's official website/repository", - "Consider adding a version number or date of the license" - ] - }, - { - "path": "MANIFEST.in", - "language": "unknown", - "lines_of_code": 15, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "pyproject.toml", - "language": "unknown", - "lines_of_code": 344, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "README.rst", - "language": "unknown", - "lines_of_code": 146, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "test-requirements.in", - "language": "unknown", - "lines_of_code": 42, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "test-requirements.txt", - "language": "unknown", - "lines_of_code": 212, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "tox.ini", - "language": "unknown", - "lines_of_code": 128, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "zizmor.yml", - "language": "unknown", - "lines_of_code": 7, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - } - ] -} \ No newline at end of file diff --git a/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_103018_analysis.json b/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_103018_analysis.json deleted file mode 100644 index ec1a827..0000000 --- a/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_103018_analysis.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "repository_id": "f5816b26-df0c-4a82-a14f-116e3df808fc", - "repo_path": "/tmp/attached-repos/python-trio__trio__main", - "total_files": 21, - "total_lines": 1662, - "languages": { - "unknown": 21 - }, - "code_quality_score": 5.857142857142857, - "architecture_assessment": "Based on the provided repository structure and statistics, I'll offer an architectural assessment covering the requested areas:\n\n1. Project Type and Purpose:\nThis appears to be a open-source project, likely a library or framework, given the presence of documentation files, contribution guidelines, and CI/CD configuration. The exact purpose is unclear from the limited information, but it seems to be a software development tool or utility.\n\n2. Technology Stack Evaluation:\nThe technology stack is not immediately apparent from the provided information. All files are listed as \"unknown\" language, which is unusual and may indicate an issue with the analysis tool or a very specialized project. Key observations:\n\n- Presence of .yml files suggests use of YAML for configuration\n- CI/CD integration is evident (.codecov.yml, ci.sh)\n- Documentation is a focus (docs-requirements.in, .readthedocs.yml)\n- Git is used for version control\n\nWithout more details on actual source code files, it's challenging to evaluate the core technology stack. This could be a configuration-heavy project, a documentation project, or the analysis might be missing crucial source code files.\n\n3. Code Organization and Structure:\nThe repository structure reveals a focus on project management and documentation rather than source code:\n\n- Version control configuration (.gitignore, .gitattributes)\n- CI/CD and code quality tools (.codecov.yml, .pre-commit-config.yaml)\n- Community guidelines (CODE_OF_CONDUCT.md, CONTRIBUTING.md)\n- Documentation setup (docs-requirements.in, .readthedocs.yml)\n\nThe absence of visible source code directories (like src/, lib/, or test/) is concerning. This could indicate:\na) The analysis tool failed to detect or categorize source files\nb) The project is primarily configuration or documentation-focused\nc) The repository structure is non-standard and needs reorganization\n\n4. Scalability and Maintainability Concerns:\nGiven the limited information, several concerns arise:\n\na) Code Quality: The average code quality score of 5.9/10 is mediocre, indicating room for improvement.\nb) Unknown Language Classification: All files being classified as \"unknown\" hinders automated analysis and potentially maintenance.\nc) Documentation: While documentation seems to be a focus, the quality and completeness are unclear.\nd) Testing: There's no clear indication of a testing framework or test files, which is crucial for maintainability.\ne) Dependency Management: No clear dependency management files (like package.json, requirements.txt, etc.) are visible, which could complicate scaling and maintaining dependencies.\n\n5. Key Recommendations for Improvement:\n\na) Code Structure Clarification:\n - If source code exists, reorganize into clear directories (src/, tests/, docs/, etc.)\n - If it's a configuration/documentation project, clarify this in the README\n\nb) Improve Code Quality:\n - Address issues in top files, particularly configuration files like .codecov.yml and .pre-commit-config.yaml\n - Implement or improve linting and code formatting tools\n\nc) Language and Technology Stack Clarification:\n - Ensure the primary programming language(s) are clearly identifiable\n - If it's a multi-language project, organize code into language-specific directories\n\nd) Testing and CI/CD:\n - Implement a comprehensive testing strategy if not present\n - Enhance CI/CD pipelines for automated testing, linting, and deployment\n\ne) Documentation:\n - Ensure a comprehensive README.md exists, explaining the project purpose, setup, and contribution guidelines\n - Improve inline code documentation if applicable\n\nf) Dependency Management:\n - Implement clear dependency management (e.g., requirements.txt for Python, package.json for Node.js)\n - Regular dependency updates and security audits\n\ng) Code Review Process:\n - Establish or improve code review guidelines\n - Use pull request templates to ensure consistency\n\nh) Monitoring and Logging:\n - If applicable, implement robust logging and monitoring solutions\n\ni) Security:\n - Conduct regular security audits\n - Implement security best practices relevant to the project type\n\nj) Performance Optimization:\n - Once core issues are addressed, focus on performance optimization\n\nk) Community Engagement:\n - Enhance contribution guidelines and code of conduct\n - Set up issue templates and project boards for better task management\n\nl) Versioning and Release Management:\n - Implement clear versioning strategy (e.g., semantic versioning)\n - Automate release processes and changelog generation\n\nm) Refactoring:\n - Plan for regular refactoring sprints to address technical debt\n\nn) Scalability Assessment:\n - Once the project structure is clarified, conduct a thorough scalability assessment\n\no) Accessibility and Internationalization:\n - If applicable, implement accessibility features and prepare for internationalization\n\nThese recommendations aim to address the observed issues and improve the overall architecture, maintainability, and scalability of the project. The primary focus should be on clarifying the project structure, improving code quality, and establishing robust development practices. Given the unusual nature of all files being classified as \"unknown,\" a thorough review of the repository contents and structure is crucial as the first step.", - "security_assessment": "Based on the limited information provided, here's a high-level security assessment and recommendations:\n\n1. Overall Security Posture:\nThe presence of cryptography and pyopenssl packages indicates some level of security awareness and implementation. However, the potential conflicts between these packages raise concerns about the overall security architecture. The lack of high-risk file types is positive, but a more comprehensive review is needed to fully assess the security posture.\n\n2. Main Security Risks and Vulnerabilities:\n- Package conflicts: Interdependencies between cryptography and pyopenssl could lead to version incompatibilities or improper implementations.\n- Potential for outdated dependencies: If packages are not regularly updated, known vulnerabilities could be exploited.\n- Lack of visibility into actual implementation: Without seeing the code, there may be insecure coding practices or misuse of cryptographic functions.\n\n3. Authentication and Authorization Concerns:\n- Unknown authentication mechanisms: The repository doesn't explicitly show authentication libraries, raising questions about how user identity is verified.\n- Authorization model unclear: There's no indication of role-based access control or least privilege principle implementation.\n\n4. Data Protection and Privacy Issues:\n- Encryption practices: While cryptography packages are present, their proper usage for data-at-rest and data-in-transit protection needs verification.\n- Privacy considerations: Without seeing data handling code, it's unclear if personal data is properly protected and if privacy regulations (e.g., GDPR) are being followed.\n\n5. Immediate Security Priorities:\n\na) Dependency Review and Update:\n - Conduct a thorough audit of all dependencies, especially cryptography and pyopenssl.\n - Resolve any conflicts and ensure all packages are up-to-date with the latest security patches.\n - Implement a dependency management strategy to keep packages updated automatically.\n\nb) Code Review and Security Testing:\n - Perform a comprehensive code review focusing on cryptographic implementations, authentication, and authorization logic.\n - Implement regular static code analysis to catch potential vulnerabilities early.\n - Conduct penetration testing to identify any exploitable weaknesses.\n\nc) Implement Secure Development Practices:\n - Establish secure coding guidelines for the team.\n - Integrate security checks into the CI/CD pipeline.\n - Implement peer code reviews with a security focus.\n\nd) Enhance Authentication and Authorization:\n - If not already in place, implement strong, multi-factor authentication.\n - Review and enforce the principle of least privilege across the application.\n - Consider implementing a robust identity and access management solution.\n\ne) Data Protection Enhancements:\n - Ensure all sensitive data is encrypted both at rest and in transit.\n - Implement proper key management practices.\n - Conduct a data flow analysis to identify and protect all sensitive information.\n\nf) Security Documentation and Training:\n - Create comprehensive security documentation covering all aspects of the application's security measures.\n - Provide regular security training for all developers and relevant staff.\n\ng) Incident Response Planning:\n - Develop and regularly test an incident response plan.\n - Implement logging and monitoring solutions to detect potential security incidents.\n\nh) Third-party Security Assessment:\n - Consider engaging a third-party security firm for a comprehensive security audit.\n - Address any findings from the audit promptly.\n\ni) Compliance Review:\n - Assess the application against relevant industry standards and regulations (e.g., OWASP Top 10, GDPR, HIPAA).\n - Implement necessary controls to ensure compliance.\n\nj) Regular Security Reviews:\n - Establish a schedule for regular security reviews and assessments.\n - Keep up-to-date with emerging threats and adjust security measures accordingly.\n\nThese recommendations provide a starting point for improving the security posture of the application. However, a more detailed analysis of the actual codebase, architecture, and deployment environment would be necessary to provide more specific and tailored security advice. Regular reassessment and continuous improvement of security measures are crucial in maintaining a strong security posture over time.", - "executive_summary": "Analysis completed for 21 files in repository f5816b26-df0c-4a82-a14f-116e3df808fc", - "file_analyses": [ - { - "path": \ No newline at end of file diff --git a/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_114401_analysis.json b/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_114401_analysis.json deleted file mode 100644 index 597999e..0000000 --- a/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_114401_analysis.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "repository_id": "f5816b26-df0c-4a82-a14f-116e3df808fc", - "repo_path": "/tmp/attached-repos/python-trio__trio__main", - "total_files": 21, - "total_lines": 1662, - "languages": { - "unknown": 21 - }, - "code_quality_score": 5.857142857142857, - "architecture_assessment": "Based on the provided repository structure and statistics, I'll offer an architectural assessment covering the requested areas:\n\n1. Project Type and Purpose:\nThis appears to be a open-source project, likely a library or framework, given the presence of documentation files, contribution guidelines, and CI/CD configuration. The exact purpose is unclear from the limited information, but it seems to be a software development tool or utility.\n\n2. Technology Stack Evaluation:\nThe technology stack is not immediately apparent from the provided information. All files are listed as \"unknown\" language, which is unusual and may indicate an issue with the analysis tool or a very specialized project. Key observations:\n\n- Presence of .yml files suggests use of YAML for configuration\n- CI/CD integration is evident (.codecov.yml, ci.sh)\n- Documentation is a focus (docs-requirements.in, .readthedocs.yml)\n- Git is used for version control\n\nWithout more details on actual code files, it's challenging to evaluate the core technology stack. This could be a configuration-heavy project, a documentation project, or the analysis might be missing crucial code files.\n\n3. Code Organization and Structure:\nThe repository structure shows a focus on project management and documentation rather than code:\n\n- Version control configuration (.gitignore, .gitattributes)\n- CI/CD and code quality tools (.codecov.yml, .pre-commit-config.yaml)\n- Community guidelines (CODE_OF_CONDUCT.md, CONTRIBUTING.md)\n- Documentation setup (docs-requirements.in, .readthedocs.yml)\n\nThe absence of visible source code directories (like src/, lib/, or test/) is concerning. This could indicate:\na) The analysis tool failed to detect or categorize code files\nb) The project is primarily configuration or documentation-focused\nc) The core code is contained in a single file not highlighted in the structure\n\n4. Scalability and Maintainability Concerns:\nGiven the limited information, several concerns arise:\n\n- Code Quality: The average code quality score of 5.9/10 is mediocre, indicating room for improvement.\n- Unknown Language: All files being categorized as \"unknown\" language is a red flag. This could hinder tool integration, automated analysis, and contributor onboarding.\n- Documentation: While documentation seems to be a focus, the quality and completeness are unclear.\n- Testing: There's no clear indication of a testing framework or test files, which is crucial for maintainability.\n- Dependency Management: No clear dependency management files (like package.json, requirements.txt, etc.) are visible, which could complicate project setup and updates.\n\n5. Key Recommendations for Improvement:\n\na) Code Structure and Organization:\n - Implement a clear directory structure (e.g., src/, tests/, docs/) if not already present.\n - Ensure source code files are properly detected and categorized by analysis tools.\n - Consider splitting large files into modules if the project is contained in a single file.\n\nb) Documentation:\n - Enhance the README.md (not visible in the structure) to clearly explain the project's purpose, setup, and usage.\n - Ensure API documentation is comprehensive if this is a library project.\n\nc) Testing:\n - Implement a robust testing suite if not already present.\n - Aim for high test coverage, using the codecov integration effectively.\n\nd) Code Quality:\n - Address issues in the files mentioned in \"TOP FILE ISSUES\".\n - Implement stricter linting rules to improve overall code quality.\n - Consider adding static type checking if the project is in a language that supports it.\n\ne) Dependency Management:\n - Implement clear dependency management (e.g., requirements.txt for Python, package.json for Node.js).\n - Regularly update and audit dependencies for security vulnerabilities.\n\nf) CI/CD:\n - Enhance the ci.sh script to include comprehensive checks (linting, testing, building).\n - Implement automated deployment if applicable.\n\ng) Community and Contribution:\n - Ensure the CODE_OF_CONDUCT.md and CONTRIBUTING.md are comprehensive and welcoming.\n - Consider adding issue and pull request templates to standardize contributions.\n\nh) Security:\n - Implement security scanning in the CI/CD pipeline.\n - Regularly audit and update dependencies.\n\ni) Performance:\n - If applicable, implement performance benchmarks and include them in CI/CD.\n\nj) Monitoring and Logging:\n - If this is an application, ensure proper logging and monitoring are in place.\n\nk) Scalability:\n - Review the architecture for potential scalability bottlenecks.\n - Consider implementing load testing if this is a server-side application.\n\nl) Code Reviews:\n - Implement mandatory code reviews for all changes.\n - Use tools like CODEOWNERS to ensure the right people review changes.\n\nm) Version Control:\n - Review and optimize .gitignore and .gitattributes for the project's needs.\n - Consider implementing git hooks for pre-commit checks.\n\nn) Documentation as Code:\n - Treat documentation as code, versioning it alongside the source code.\n - Implement automated checks for documentation quality and completeness.\n\no) Accessibility:\n - If this is a frontend project, ensure accessibility guidelines are followed and tested.\n\np) Internationalization:\n - If applicable, design the system with internationalization in mind from the start.\n\nq) API Design:\n - If this is an API, ensure it follows RESTful principles or GraphQL best practices.\n - Implement API versioning strategy.\n\nr) Error Handling:\n - Implement comprehensive error handling and logging throughout the codebase.\n\ns) Configuration Management:\n - Use environment variables or configuration files for environment-specific settings.\n - Avoid hardcoding sensitive information.\n\nt) Continuous Learning:\n - Regularly review and update the technology stack and best practices.\n - Encourage team knowledge sharing and learning.\n\nThese recommendations aim to address the observed issues and enhance the project's overall quality, maintainability, and scalability. However, a more detailed analysis of the actual codebase would be necessary to provide more specific, targeted recommendations.", - "security_assessment": "Based on the limited information provided, here's a high-level security assessment and recommendations:\n\n1. Overall Security Posture:\nThe presence of cryptography and pyopenssl packages indicates some level of security awareness and implementation. However, the potential conflicts between these packages raise concerns about the overall security architecture. The absence of high-risk file types is positive, but a more comprehensive review is needed to fully assess the security posture.\n\n2. Main Security Risks and Vulnerabilities:\n- Package Conflicts: The interdependencies between cryptography and pyopenssl could lead to version conflicts or inconsistent behavior, potentially introducing vulnerabilities.\n- Outdated Dependencies: If these packages or other dependencies are not regularly updated, known vulnerabilities could be exploited.\n- Improper Cryptographic Implementation: Without reviewing the actual code, there's a risk of improper use of cryptographic functions, weak key management, or insecure random number generation.\n\n3. Authentication and Authorization Concerns:\n- No specific information is provided about authentication mechanisms. Implement strong, multi-factor authentication if not already in place.\n- Ensure proper authorization checks are implemented throughout the application, following the principle of least privilege.\n- Implement secure session management with proper timeout and invalidation procedures.\n\n4. Data Protection and Privacy Issues:\n- Evaluate data handling practices, ensuring sensitive data is encrypted at rest and in transit.\n- Implement proper key management procedures for any encryption keys used.\n- Ensure compliance with relevant data protection regulations (e.g., GDPR, CCPA) if handling personal data.\n\n5. Immediate Security Priorities:\na) Dependency Audit:\n - Conduct a thorough audit of all dependencies, including cryptography and pyopenssl.\n - Resolve any conflicts and ensure all packages are up-to-date with the latest security patches.\n - Implement a process for regular dependency updates and security patch management.\n\nb) Code Review:\n - Perform a comprehensive security code review, focusing on cryptographic implementations.\n - Ensure proper use of cryptographic functions, secure key management, and adherence to cryptographic best practices.\n\nc) Security Testing:\n - Conduct penetration testing and vulnerability assessments to identify any exploitable weaknesses.\n - Implement automated security scanning in the CI/CD pipeline.\n\nd) Access Control Review:\n - Review and tighten access controls across the application.\n - Implement proper authentication mechanisms if not already in place.\n - Ensure authorization checks are consistently applied.\n\ne) Data Protection Enhancement:\n - Review data handling practices and implement encryption for sensitive data at rest and in transit.\n - Develop and implement a robust key management strategy.\n\nf) Security Documentation:\n - Create or update security documentation, including incident response plans and security policies.\n - Ensure all team members are trained on security best practices.\n\ng) Logging and Monitoring:\n - Implement comprehensive logging for security-relevant events.\n - Set up real-time monitoring and alerting for potential security incidents.\n\nh) Third-Party Security Assessment:\n - Consider engaging a third-party security firm for an independent assessment and penetration testing.\n\ni) Regular Security Reviews:\n - Establish a process for regular security reviews and updates to maintain a strong security posture over time.\n\nActionable Recommendations:\n1. Immediately audit and update all dependencies, resolving any conflicts between cryptography and pyopenssl packages.\n2. Conduct a thorough code review of all cryptographic implementations, ensuring adherence to best practices.\n3. Implement or enhance multi-factor authentication across the application.\n4. Review and strengthen access controls, applying the principle of least privilege.\n5. Encrypt all sensitive data at rest and in transit, implementing proper key management procedures.\n6. Set up automated security scanning in the development pipeline and regular vulnerability assessments.\n7. Develop and implement a comprehensive incident response plan.\n8. Provide security training to all team members involved in development and operations.\n9. Implement robust logging and monitoring for security-relevant events.\n10. Schedule regular security reviews and updates to maintain a strong security posture.\n\nBy addressing these priorities and implementing these recommendations, you can significantly enhance the security posture of your application. Remember that security is an ongoing process, requiring continuous attention and updates to stay ahead of evolving threats.", - "executive_summary": "Analysis completed for 21 files in repository f5816b26-df0c-4a82-a14f-116e3df808fc", - "file_analyses": [ - { - "path": \ No newline at end of file diff --git a/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_121154_analysis.json b/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_121154_analysis.json deleted file mode 100644 index 765a466..0000000 --- a/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_121154_analysis.json +++ /dev/null @@ -1,290 +0,0 @@ -{ - "repository_id": "f5816b26-df0c-4a82-a14f-116e3df808fc", - "repo_path": "/tmp/attached-repos/python-trio__trio__main", - "total_files": 21, - "total_lines": 1662, - "languages": { - "unknown": 21 - }, - "code_quality_score": 5.857142857142857, - "architecture_assessment": "Based on the provided repository structure and statistics, I'll offer an architectural assessment covering the requested areas:\n\n1. Project Type and Purpose:\nThis appears to be a open-source project, likely a library or framework, given the presence of documentation files, contribution guidelines, and CI/CD configuration. The exact purpose is unclear from the limited information, but it seems to be a software development tool or utility.\n\n2. Technology Stack Evaluation:\nThe technology stack is not immediately apparent from the provided information. All files are listed as \"unknown\" language, which is unusual and may indicate an issue with the analysis tool or a very specialized project. Key observations:\n\n- Presence of .yml files suggests use of YAML for configuration\n- CI/CD integration is evident (.codecov.yml, ci.sh)\n- Documentation is a focus (docs-requirements.in, .readthedocs.yml)\n- Git is used for version control\n\nWithout more details on actual code files, it's challenging to evaluate the core technology stack. This could be a configuration-heavy project or the analysis might be missing crucial information.\n\n3. Code Organization and Structure:\nThe repository structure shows a focus on project management and documentation rather than code:\n\n- Version control configuration (.gitignore, .gitattributes)\n- CI/CD and code quality tools (.codecov.yml, .pre-commit-config.yaml)\n- Community guidelines (CODE_OF_CONDUCT.md, CONTRIBUTING.md)\n- Documentation setup (docs-requirements.in, .readthedocs.yml)\n\nThe absence of visible source code directories (like src/, lib/, or test/) is concerning. This could indicate:\na) The analysis tool failed to detect or categorize code files\nb) The project is primarily configuration or documentation-driven\nc) The core code is contained in a single file or unconventional structure\n\n4. Scalability and Maintainability Concerns:\nGiven the limited information, several concerns arise:\n\na) Code Visibility: The lack of identifiable code files makes it difficult to assess scalability or maintainability of the core functionality.\n\nb) Documentation: The presence of documentation files is positive, but their content and completeness cannot be evaluated from this overview.\n\nc) Code Quality: The average code quality score of 5.9/10 is mediocre, indicating room for improvement. However, without knowing what this score is based on, it's hard to pinpoint specific areas for enhancement.\n\nd) File Issues: Several configuration and documentation files have reported issues, which could impact project setup, contribution processes, and overall maintainability.\n\ne) Language Ambiguity: The fact that all files are labeled as \"unknown\" language raises concerns about the project's clarity and potential issues with tooling or analysis.\n\n5. Key Recommendations for Improvement:\n\na) Code Structure Clarification:\n - If code files exist but weren't detected, reorganize the repository to clearly separate source code, tests, and documentation.\n - If this is truly a configuration-only project, clearly state this in the README and consider if a code-based approach might be more appropriate.\n\nb) Improve Code Quality:\n - Address the issues identified in configuration files to ensure smooth setup and contribution processes.\n - If there is actual code, focus on bringing the quality score up through refactoring, better documentation, and adherence to best practices for the relevant language(s).\n\nc) Enhanced Documentation:\n - Ensure there's a comprehensive README explaining the project's purpose, setup, and usage.\n - If this is a library or framework, provide clear API documentation and usage examples.\n\nd) Strengthen CI/CD:\n - Expand on the existing CI setup (evidenced by ci.sh and .codecov.yml) to include comprehensive testing, linting, and automated deployment if applicable.\n\ne) Clarify Language and Technologies:\n - If the \"unknown\" language classification is an error, investigate and fix the issue with the analysis tool.\n - Clearly specify the primary programming language(s) and key technologies used in the project documentation.\n\nf) Community Engagement:\n - The presence of CODE_OF_CONDUCT.md and CONTRIBUTING.md is positive. Ensure these are comprehensive and welcoming to potential contributors.\n - Consider adding issue and pull request templates to streamline contributions.\n\ng) Dependency Management:\n - If not already present, implement clear dependency management (e.g., package.json for Node.js, requirements.txt for Python).\n - Regularly update and audit dependencies for security and compatibility.\n\nh) Expand Testing:\n - If not already in place, implement a comprehensive test suite covering unit, integration, and possibly end-to-end tests.\n - Aim for high test coverage to ensure reliability and ease of future modifications.\n\ni) Modularization:\n - If this is a monolithic application or library, consider breaking it down into smaller, more manageable modules or microservices if appropriate for the project's goals.\n\nj) Performance Optimization:\n - Once core functionality and structure are solid, focus on performance optimizations, potentially using profiling tools to identify bottlenecks.\n\nk) Security Review:\n - Conduct a thorough security review, especially if the project handles sensitive data or operations.\n - Implement security best practices relevant to the project's domain and technologies.\n\nl) Scalability Planning:\n - If the project is intended for high scalability, review the architecture for potential bottlenecks and plan for horizontal scaling capabilities.\n\nIn conclusion, this project appears to have a strong focus on project management and community standards, which is commendable. However, the lack of visible code structure and the ambiguity in language classification are significant concerns. The primary focus should be on clarifying the project's core purpose and structure, improving code quality and visibility (if applicable), and enhancing documentation to facilitate better understanding and contribution to the project.", - "security_assessment": "Based on the limited information provided, here's a high-level security assessment and recommendations:\n\n1. Overall Security Posture:\nThe presence of cryptography and pyopenssl packages indicates some level of security awareness and implementation. However, the potential conflicts between these packages raise concerns about the overall security architecture. The lack of high-risk file types is positive, but a more comprehensive review is needed to fully assess the security posture.\n\n2. Main Security Risks and Vulnerabilities:\n- Package conflicts: Interdependencies between cryptography and pyopenssl could lead to version incompatibilities or improper implementations.\n- Potential for outdated dependencies: If packages are not regularly updated, known vulnerabilities could be exploited.\n- Lack of visibility into actual implementation: Without seeing the code, there may be improper use of cryptographic functions or insecure configurations.\n\n3. Authentication and Authorization Concerns:\n- Unknown authentication mechanisms: The repository doesn't provide clear information on how user authentication is handled.\n- Potential lack of proper authorization checks: There's no indication of role-based access control or least privilege principle implementation.\n\n4. Data Protection and Privacy Issues:\n- Encryption implementation: While cryptography packages are present, their correct usage for data-at-rest and data-in-transit protection needs verification.\n- Privacy considerations: Without more context, it's unclear if personal data handling complies with relevant regulations (e.g., GDPR, CCPA).\n\n5. Immediate Security Priorities:\n\na) Dependency Review and Update:\n - Conduct a thorough audit of all dependencies, especially cryptography and pyopenssl.\n - Resolve any conflicts and ensure all packages are up-to-date.\n - Implement a dependency management strategy to keep packages updated automatically.\n\nb) Code Review:\n - Perform a comprehensive security code review, focusing on:\n - Proper implementation of cryptographic functions\n - Secure handling of sensitive data\n - Input validation and output encoding\n - Use automated static analysis tools to identify potential vulnerabilities.\n\nc) Authentication and Authorization:\n - Implement or review existing multi-factor authentication.\n - Ensure proper session management and secure password storage (e.g., using bcrypt).\n - Implement strict authorization checks throughout the application.\n\nd) Secure Configuration:\n - Review and harden configurations for all components, including web servers, databases, and application frameworks.\n - Implement proper HTTPS configuration with strong cipher suites.\n\ne) Logging and Monitoring:\n - Enhance logging mechanisms to capture security-relevant events.\n - Implement real-time monitoring and alerting for suspicious activities.\n\nf) Data Protection:\n - Ensure sensitive data is encrypted both at rest and in transit.\n - Implement data classification and handling procedures.\n\ng) Security Testing:\n - Conduct regular penetration testing and vulnerability assessments.\n - Implement continuous security testing in the CI/CD pipeline.\n\nh) Incident Response Plan:\n - Develop and regularly test an incident response plan.\n - Ensure all team members are trained on security incident handling.\n\ni) Security Documentation:\n - Create and maintain comprehensive security documentation, including:\n - Security architecture diagrams\n - Data flow diagrams\n - Threat models\n - Security policies and procedures\n\nj) Third-party Assessment:\n - Consider engaging a third-party security firm for an independent assessment.\n\nk) Compliance Review:\n - Assess the application against relevant industry standards and regulations (e.g., OWASP Top 10, NIST guidelines).\n\nl) Security Training:\n - Provide regular security awareness training for all developers and stakeholders.\n\nm) API Security:\n - If APIs are present, ensure they are properly secured with authentication, rate limiting, and input validation.\n\nn) Container Security:\n - If using containerization, implement container-specific security measures (e.g., image scanning, runtime protection).\n\no) Secrets Management:\n - Implement a secure secrets management solution to handle sensitive credentials and keys.\n\nBy addressing these priorities, you can significantly improve the security posture of the repository. Remember that security is an ongoing process, and regular reassessments and updates to your security strategy are crucial.", - "executive_summary": "Analysis completed for 21 files in repository f5816b26-df0c-4a82-a14f-116e3df808fc", - "file_analyses": [ - { - "path": ".codecov.yml", - "language": "unknown", - "lines_of_code": 34, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": ".git-blame-ignore-revs", - "language": "unknown", - "lines_of_code": 5, - "severity_score": 8.0, - "issues_found": [ - "No major issues found - file serves its intended purpose", - "Documentation could be more detailed about the commit purposes" - ], - "recommendations": [ - "Add more detailed comments explaining what each commit fixes/changes", - "Consider adding dates to the commit references", - "Consider grouping related commits under descriptive headers", - "Add a brief header comment explaining the purpose of this file" - ] - }, - { - "path": ".gitattributes", - "language": "unknown", - "lines_of_code": 5, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": ".gitignore", - "language": "unknown", - "lines_of_code": 81, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": ".pre-commit-config.yaml", - "language": "unknown", - "lines_of_code": 97, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": ".readthedocs.yml", - "language": "unknown", - "lines_of_code": 21, - "severity_score": 9.0, - "issues_found": [ - "No major issues found - configuration appears well-structured and follows ReadTheDocs standards", - "Build environment could potentially be more specific about tool versions" - ], - "recommendations": [ - "Consider pinning exact Python version if needed (e.g. 3.11.x)", - "Consider adding more output formats like PDF if needed", - "Consider specifying Python dependencies versions in docs-requirements.txt explicitly", - "Add comments explaining non-obvious configuration choices", - "Consider adding build job timeout settings" - ] - }, - { - "path": "ci.sh", - "language": "unknown", - "lines_of_code": 153, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "CODE_OF_CONDUCT.md", - "language": "unknown", - "lines_of_code": 3, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "CONTRIBUTING.md", - "language": "unknown", - "lines_of_code": 3, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "docs-requirements.in", - "language": "unknown", - "lines_of_code": 26, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "docs-requirements.txt", - "language": "unknown", - "lines_of_code": 110, - "severity_score": 8.0, - "issues_found": [ - "Some package versions are pinned to future dates (e.g., certifi==2025.8.3) which may indicate version typos", - "Multiple security-related packages (cryptography, pyopenssl) are being used but their interdependencies could create conflicts", - "Platform-specific dependencies (cffi, colorama) may cause inconsistencies across different environments" - ], - "recommendations": [ - "Verify and correct package versions that appear to have future dates", - "Consider using version ranges (e.g., >= notation) instead of exact pins for non-critical dependencies", - "Add comments explaining why specific versions are required for critical packages", - "Regularly update dependencies using automated tools like dependabot", - "Consider splitting platform-specific requirements into separate files", - "Add hashes for package integrity verification" - ] - }, - { - "path": "LICENSE", - "language": "unknown", - "lines_of_code": 4, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "LICENSE.APACHE2", - "language": "unknown", - "lines_of_code": 203, - "severity_score": 9.0, - "issues_found": [ - "None - this is a standard Apache 2.0 license text file and does not contain executable code", - "Template fields [yyyy] and [name of copyright owner] in the appendix are not filled in" - ], - "recommendations": [ - "Fill in the copyright year and owner information in the appendix section if this is being used in a project", - "Ensure the license text remains unmodified as per Apache License requirements", - "Include a corresponding NOTICE file if the project contains any additional attributions", - "Store this file in the root directory of the project", - "Name the file as 'LICENSE' or 'LICENSE.txt' rather than 'LICENSE.APACHE2' for better standard compliance" - ] - }, - { - "path": "LICENSE.MIT", - "language": "unknown", - "lines_of_code": 23, - "severity_score": 9.0, - "issues_found": [ - "None - This is a standard MIT license file with correct formatting and complete terms" - ], - "recommendations": [ - "Consider adding a year to the copyright notice for more precise attribution", - "Consider adding a link to the project's official website/repository", - "Consider adding a version number or date of the license" - ] - }, - { - "path": "MANIFEST.in", - "language": "unknown", - "lines_of_code": 15, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "pyproject.toml", - "language": "unknown", - "lines_of_code": 344, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "README.rst", - "language": "unknown", - "lines_of_code": 146, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "test-requirements.in", - "language": "unknown", - "lines_of_code": 42, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "test-requirements.txt", - "language": "unknown", - "lines_of_code": 212, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "tox.ini", - "language": "unknown", - "lines_of_code": 128, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "zizmor.yml", - "language": "unknown", - "lines_of_code": 7, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - } - ] -} \ No newline at end of file diff --git a/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_121327_analysis.json b/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_121327_analysis.json deleted file mode 100644 index 24bc2d5..0000000 --- a/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_121327_analysis.json +++ /dev/null @@ -1,290 +0,0 @@ -{ - "repository_id": "f5816b26-df0c-4a82-a14f-116e3df808fc", - "repo_path": "/tmp/attached-repos/python-trio__trio__main", - "total_files": 21, - "total_lines": 1662, - "languages": { - "unknown": 21 - }, - "code_quality_score": 5.857142857142857, - "architecture_assessment": "Based on the provided repository structure and statistics, I'll offer an architectural assessment covering the requested areas:\n\n1. Project Type and Purpose:\nThis appears to be a open-source project, likely a library or framework, given the presence of documentation files, contribution guidelines, and CI/CD configuration. The exact purpose is unclear from the limited information, but it seems to be a software development tool or utility.\n\n2. Technology Stack Evaluation:\nThe technology stack is not immediately apparent from the provided information. All files are listed as \"unknown\" language, which is unusual and may indicate an issue with the analysis tool or a very specialized project. Key observations:\n\n- Presence of .yml files suggests use of YAML for configuration\n- CI/CD integration is evident (.codecov.yml, ci.sh)\n- Documentation is a focus (docs-requirements.in, .readthedocs.yml)\n- Git is used for version control\n\nWithout more details on actual source code files, it's challenging to evaluate the core technology stack. This could be a configuration-heavy project, a documentation project, or the analysis might be missing critical source files.\n\n3. Code Organization and Structure:\nThe repository structure reveals:\n\n- Standard Git configuration files (.gitignore, .gitattributes)\n- CI/CD and code quality tools integration\n- Documentation focus (CODE_OF_CONDUCT.md, CONTRIBUTING.md)\n- Possible use of pre-commit hooks (.pre-commit-config.yaml)\n\nThe absence of visible source code directories or files is concerning. A well-structured project typically has clear separation of source code, tests, documentation, and configuration. The current structure suggests either a very specialized project or incomplete analysis.\n\n4. Scalability and Maintainability Concerns:\n\na) Lack of Visible Source Code: The biggest concern is the absence of identifiable source code, making it impossible to assess core functionality, patterns, or architecture.\n\nb) Configuration-Heavy: The visible files are mostly configuration-related, which could indicate a complex setup process or heavy reliance on external tools.\n\nc) Documentation Focus: While documentation is crucial, the prominence of documentation files without visible code raises questions about the project's current state or purpose.\n\nd) Code Quality: The average code quality score of 5.9/10 suggests room for improvement, although without seeing the actual code, it's hard to pinpoint specific issues.\n\ne) Unclear Structure: The lack of clear directory structure for source code, tests, etc., could lead to maintainability issues as the project grows.\n\n5. Key Recommendations for Improvement:\n\na) Code Structure Clarification:\n - If source code exists, reorganize the repository to clearly separate source code, tests, documentation, and configuration.\n - Implement a standard directory structure (e.g., src/ for source code, tests/ for test files, docs/ for documentation).\n\nb) Documentation Enhancement:\n - Add a comprehensive README.md file explaining the project's purpose, setup instructions, and usage guidelines.\n - Ensure all configuration files (.yml, .in) are well-commented to explain their purpose and usage.\n\nc) Code Quality Improvement:\n - Address the issues identified in the top file issues list.\n - Implement stricter linting and code formatting rules to improve the overall code quality score.\n\nd) CI/CD Pipeline Enhancement:\n - Review and optimize the CI/CD pipeline (ci.sh) to ensure comprehensive testing and quality checks.\n - Consider implementing automated code review tools in the pipeline.\n\ne) Dependency Management:\n - If not already present, introduce a dependency management system appropriate for the project's primary language.\n - Regularly update and audit dependencies for security and performance.\n\nf) Testing Strategy:\n - If not already present, implement a comprehensive testing strategy including unit tests, integration tests, and possibly end-to-end tests.\n - Aim for high test coverage to ensure code reliability and ease of maintenance.\n\ng) API Documentation:\n - If this is a library or framework, ensure comprehensive API documentation is available and kept up-to-date.\n\nh) Performance Monitoring:\n - Implement performance monitoring and profiling tools to identify and address bottlenecks as the project scales.\n\ni) Scalability Assessment:\n - Conduct a thorough scalability assessment of the core functionality (once identified) to ensure the project can handle growth in data or user base.\n\nj) Security Audit:\n - Perform a security audit, especially if the project handles sensitive data or operations.\n - Implement security best practices appropriate for the project's domain.\n\nk) Community Engagement:\n - Leverage the existing CODE_OF_CONDUCT.md and CONTRIBUTING.md to foster a healthy open-source community around the project.\n - Consider implementing templates for issues and pull requests to standardize contributions.\n\nl) Version Control Best Practices:\n - Review and optimize .gitignore and .gitattributes for the specific needs of the project.\n - Implement a clear branching strategy and document it for contributors.\n\nm) Continuous Learning:\n - Regularly review and update the technology stack to leverage new advancements in the field.\n - Encourage knowledge sharing among contributors to improve overall code quality and architectural decisions.\n\nIn conclusion, while the provided information presents an unusual project structure with a lack of visible source code, there are clear indications of good practices in terms of documentation, community standards, and CI/CD integration. The key focus should be on clarifying the project structure, improving code visibility and quality, and enhancing the overall developer experience for both maintainers and contributors. Regular architectural reviews and adherence to best practices in software development will be crucial for the long-term success and scalability of this project.", - "security_assessment": "Based on the limited information provided, here's a high-level security assessment and recommendations:\n\n1. Overall Security Posture:\nThe presence of cryptography and pyopenssl packages indicates some level of security awareness and implementation. However, the potential conflicts between these packages raise concerns about the overall security architecture. The lack of high-risk file types is positive, but a more comprehensive review is needed to fully assess the security posture.\n\n2. Main Security Risks and Vulnerabilities:\n- Package conflicts: Interdependencies between cryptography and pyopenssl could lead to version incompatibilities or improper implementations.\n- Potential for outdated dependencies: If packages are not regularly updated, known vulnerabilities could be exploited.\n- Lack of visibility into actual implementation: Without seeing the code, there may be improper use of cryptographic functions or insecure configurations.\n\n3. Authentication and Authorization Concerns:\n- Unknown authentication mechanisms: The repository doesn't clearly indicate how user authentication is handled.\n- Potential lack of robust authorization controls: There's no clear indication of role-based access control or principle of least privilege implementation.\n\n4. Data Protection and Privacy Issues:\n- Encryption implementation: While cryptography packages are present, their proper usage for data-at-rest and data-in-transit protection needs verification.\n- Privacy considerations: Without more context, it's unclear how user data is collected, stored, and protected in compliance with relevant regulations (e.g., GDPR, CCPA).\n\n5. Immediate Security Priorities:\n\na) Dependency Review and Update:\n - Conduct a thorough audit of all dependencies, especially cryptography and pyopenssl.\n - Resolve any conflicts and ensure all packages are up-to-date with the latest security patches.\n - Implement a dependency management strategy to keep packages updated automatically.\n\nb) Code Review and Security Testing:\n - Perform a comprehensive code review focusing on the usage of cryptographic functions.\n - Implement regular static code analysis to identify potential vulnerabilities.\n - Conduct penetration testing to uncover any exploitable weaknesses.\n\nc) Authentication and Authorization Enhancements:\n - Implement or review multi-factor authentication (MFA) for all user accounts.\n - Ensure proper session management with secure token handling and expiration.\n - Implement strict authorization controls based on the principle of least privilege.\n\nd) Data Protection Improvements:\n - Review and enhance data encryption practices for both data-at-rest and data-in-transit.\n - Implement proper key management procedures for all cryptographic operations.\n - Ensure compliance with relevant data protection regulations.\n\ne) Security Documentation and Training:\n - Develop comprehensive security documentation covering all aspects of the system.\n - Provide regular security training for all developers and relevant staff.\n - Establish clear security policies and procedures for ongoing maintenance and incident response.\n\nf) Monitoring and Logging:\n - Implement robust logging for all security-relevant events.\n - Set up real-time monitoring and alerting for potential security incidents.\n - Regularly review logs and conduct security audits.\n\ng) Secure Development Practices:\n - Integrate security into the development lifecycle (DevSecOps).\n - Implement code signing and verification processes.\n - Use secure coding practices and maintain a security checklist for all new features.\n\nh) Third-party Assessment:\n - Consider engaging a third-party security firm for an independent assessment.\n - Conduct regular security audits and penetration tests.\n\ni) Incident Response Planning:\n - Develop and regularly test an incident response plan.\n - Establish clear roles and responsibilities for security incident handling.\n\nj) Continuous Improvement:\n - Establish a process for regular security reviews and updates.\n - Stay informed about emerging threats and adapt security measures accordingly.\n\nThese recommendations provide a starting point for improving the security posture of the repository. However, a more detailed analysis of the actual code, infrastructure, and deployment processes would be necessary for a comprehensive security assessment. Regular reviews and updates to the security strategy are crucial in maintaining a strong security posture over time.", - "executive_summary": "Analysis completed for 21 files in repository f5816b26-df0c-4a82-a14f-116e3df808fc", - "file_analyses": [ - { - "path": ".codecov.yml", - "language": "unknown", - "lines_of_code": 34, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": ".git-blame-ignore-revs", - "language": "unknown", - "lines_of_code": 5, - "severity_score": 8.0, - "issues_found": [ - "No major issues found - file serves its intended purpose", - "Documentation could be more detailed about the commit purposes" - ], - "recommendations": [ - "Add more detailed comments explaining what each commit fixes/changes", - "Consider adding dates to the commit references", - "Consider grouping related commits under descriptive headers", - "Add a brief header comment explaining the purpose of this file" - ] - }, - { - "path": ".gitattributes", - "language": "unknown", - "lines_of_code": 5, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": ".gitignore", - "language": "unknown", - "lines_of_code": 81, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": ".pre-commit-config.yaml", - "language": "unknown", - "lines_of_code": 97, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": ".readthedocs.yml", - "language": "unknown", - "lines_of_code": 21, - "severity_score": 9.0, - "issues_found": [ - "No major issues found - configuration appears well-structured and follows ReadTheDocs standards", - "Build environment could potentially be more specific about tool versions" - ], - "recommendations": [ - "Consider pinning exact Python version if needed (e.g. 3.11.x)", - "Consider adding more output formats like PDF if needed", - "Consider specifying Python dependencies versions in docs-requirements.txt explicitly", - "Add comments explaining non-obvious configuration choices", - "Consider adding build job timeout settings" - ] - }, - { - "path": "ci.sh", - "language": "unknown", - "lines_of_code": 153, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "CODE_OF_CONDUCT.md", - "language": "unknown", - "lines_of_code": 3, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "CONTRIBUTING.md", - "language": "unknown", - "lines_of_code": 3, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "docs-requirements.in", - "language": "unknown", - "lines_of_code": 26, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "docs-requirements.txt", - "language": "unknown", - "lines_of_code": 110, - "severity_score": 8.0, - "issues_found": [ - "Some package versions are pinned to future dates (e.g., certifi==2025.8.3) which may indicate version typos", - "Multiple security-related packages (cryptography, pyopenssl) are being used but their interdependencies could create conflicts", - "Platform-specific dependencies (cffi, colorama) may cause inconsistencies across different environments" - ], - "recommendations": [ - "Verify and correct package versions that appear to have future dates", - "Consider using version ranges (e.g., >= notation) instead of exact pins for non-critical dependencies", - "Add comments explaining why specific versions are required for critical packages", - "Regularly update dependencies using automated tools like dependabot", - "Consider splitting platform-specific requirements into separate files", - "Add hashes for package integrity verification" - ] - }, - { - "path": "LICENSE", - "language": "unknown", - "lines_of_code": 4, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "LICENSE.APACHE2", - "language": "unknown", - "lines_of_code": 203, - "severity_score": 9.0, - "issues_found": [ - "None - this is a standard Apache 2.0 license text file and does not contain executable code", - "Template fields [yyyy] and [name of copyright owner] in the appendix are not filled in" - ], - "recommendations": [ - "Fill in the copyright year and owner information in the appendix section if this is being used in a project", - "Ensure the license text remains unmodified as per Apache License requirements", - "Include a corresponding NOTICE file if the project contains any additional attributions", - "Store this file in the root directory of the project", - "Name the file as 'LICENSE' or 'LICENSE.txt' rather than 'LICENSE.APACHE2' for better standard compliance" - ] - }, - { - "path": "LICENSE.MIT", - "language": "unknown", - "lines_of_code": 23, - "severity_score": 9.0, - "issues_found": [ - "None - This is a standard MIT license file with correct formatting and complete terms" - ], - "recommendations": [ - "Consider adding a year to the copyright notice for more precise attribution", - "Consider adding a link to the project's official website/repository", - "Consider adding a version number or date of the license" - ] - }, - { - "path": "MANIFEST.in", - "language": "unknown", - "lines_of_code": 15, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "pyproject.toml", - "language": "unknown", - "lines_of_code": 344, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "README.rst", - "language": "unknown", - "lines_of_code": 146, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "test-requirements.in", - "language": "unknown", - "lines_of_code": 42, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "test-requirements.txt", - "language": "unknown", - "lines_of_code": 212, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "tox.ini", - "language": "unknown", - "lines_of_code": 128, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "zizmor.yml", - "language": "unknown", - "lines_of_code": 7, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - } - ] -} \ No newline at end of file diff --git a/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_121539_analysis.json b/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_121539_analysis.json deleted file mode 100644 index 327186e..0000000 --- a/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_121539_analysis.json +++ /dev/null @@ -1,290 +0,0 @@ -{ - "repository_id": "f5816b26-df0c-4a82-a14f-116e3df808fc", - "repo_path": "/tmp/attached-repos/python-trio__trio__main", - "total_files": 21, - "total_lines": 1662, - "languages": { - "unknown": 21 - }, - "code_quality_score": 5.857142857142857, - "architecture_assessment": "Based on the provided repository structure and statistics, I'll offer an architectural assessment covering the requested areas:\n\n1. Project Type and Purpose:\nThis appears to be a configuration and documentation-focused project, likely for a software library or framework. The presence of files like .codecov.yml, .readthedocs.yml, and docs-requirements.in suggests it's an open-source project with emphasis on code coverage, documentation, and contribution guidelines.\n\nThe project seems to prioritize code quality and community standards, evidenced by the presence of CODE_OF_CONDUCT.md and CONTRIBUTING.md files. The ci.sh script indicates some level of continuous integration implementation.\n\n2. Technology Stack Evaluation:\nGiven the limited information about specific code files, it's challenging to determine the exact technology stack. However, we can infer some details:\n\n- Version Control: Git (evidenced by .gitignore and .gitattributes)\n- Documentation: Likely uses Read the Docs (.readthedocs.yml)\n- Code Coverage: Codecov (.codecov.yml)\n- CI/CD: Some form of CI pipeline (ci.sh)\n- Code Quality: Pre-commit hooks (.pre-commit-config.yaml)\n\nThe absence of specific language files in the statistics is unusual and might indicate that the core project files are not included in this analysis or are stored in subdirectories not shown here.\n\n3. Code Organization and Structure:\nThe repository structure focuses heavily on project configuration and metadata. This suggests a well-organized approach to project management and development practices. However, the lack of visible source code directories is concerning and limits our ability to assess the actual code organization.\n\nKey components:\n- Configuration files for various tools and services\n- Documentation-related files\n- Community guidelines and contribution information\n- CI/CD script\n\n4. Scalability and Maintainability Concerns:\nScalability: Without seeing the actual codebase, it's difficult to assess scalability. However, the focus on CI/CD and code quality tools suggests a foundation for scalable development practices.\n\nMaintainability:\n- Positive aspects:\n - Use of code quality tools and pre-commit hooks\n - Clear contribution guidelines and code of conduct\n - CI/CD implementation\n - Documentation focus\n\n- Concerns:\n - Low average code quality score (5.9/10) indicates room for improvement\n - Lack of visible source code structure makes it hard to assess code maintainability\n - Multiple issues reported in configuration files could lead to problems in project tooling\n\n5. Key Recommendations for Improvement:\n\na) Code Quality:\n - Address the issues identified in the configuration files to ensure smooth operation of project tooling.\n - Investigate the reasons behind the low average code quality score and implement measures to improve it, such as stricter linting rules or additional code reviews.\n\nb) Project Structure:\n - If not already present, organize the source code into a clear directory structure (e.g., src/, tests/, docs/).\n - Consider using a standard project layout for the specific language or framework being used.\n\nc) Documentation:\n - Ensure comprehensive README.md file explaining project purpose, setup, and usage.\n - Maintain up-to-date API documentation if this is a library project.\n\nd) Testing:\n - If not already implemented, add a robust test suite with unit, integration, and possibly end-to-end tests.\n - Aim for high test coverage to complement the existing code coverage setup.\n\ne) Dependency Management:\n - Implement a clear dependency management strategy using appropriate tools for the project's language.\n - Regularly update dependencies and address any security vulnerabilities.\n\nf) Continuous Improvement:\n - Regularly review and update the CI/CD pipeline (ci.sh) to ensure it remains effective and efficient.\n - Periodically review and update code quality standards and tooling configurations.\n\ng) Monitoring and Logging:\n - If not already in place, implement comprehensive logging and monitoring solutions to aid in debugging and performance optimization.\n\nh) Security:\n - Conduct regular security audits.\n - Implement security scanning tools in the CI/CD pipeline.\n\ni) Performance:\n - Implement performance benchmarking and profiling tools to identify and address bottlenecks.\n\nj) Scalability:\n - If the project is expected to handle increased load or data volume, design with horizontal scalability in mind.\n - Consider implementing caching strategies and database optimizations if applicable.\n\nk) Code Reviews:\n - Enforce mandatory code reviews for all changes to maintain code quality and share knowledge among team members.\n\nl) Documentation as Code:\n - Treat documentation as code, versioning it alongside the source code and including doc updates in the review process.\n\nm) Refactoring:\n - Plan regular refactoring sprints to address technical debt and improve overall code quality.\n\nn) Architectural Decision Records (ADRs):\n - Implement ADRs to document important architectural decisions, their context, and consequences.\n\no) API Design (if applicable):\n - If this is an API project, focus on creating a clear, consistent, and well-documented API design.\n - Consider implementing API versioning to manage changes over time.\n\nIn conclusion, while the project shows good practices in terms of development tooling and community standards, there's significant room for improvement in code quality and overall project structure. The key focus areas should be addressing the identified issues in configuration files, improving the average code quality score, and ensuring a clear and maintainable code organization. Without more information about the actual source code, it's challenging to provide more specific architectural recommendations. However, implementing the suggested improvements will likely lead to a more robust, maintainable, and scalable project.", - "security_assessment": "Based on the limited information provided, here's a high-level security assessment and recommendations:\n\n1. Overall Security Posture:\nThe presence of cryptography and pyopenssl packages indicates some level of security awareness and implementation. However, the potential conflicts between these packages raise concerns about the overall security architecture. The lack of high-risk file types is positive, but a more comprehensive review is needed to fully assess the security posture.\n\n2. Main Security Risks and Vulnerabilities:\n- Package conflicts: Interdependencies between cryptography and pyopenssl could lead to version incompatibilities or improper implementations.\n- Potential for outdated dependencies: If packages are not regularly updated, known vulnerabilities could be exploited.\n- Lack of visibility into actual implementation: Without seeing the code, there may be improper use of cryptographic functions or insecure configurations.\n\n3. Authentication and Authorization Concerns:\n- Unknown authentication mechanisms: The repository doesn't provide clear information on how user authentication is handled.\n- Potential lack of proper authorization checks: There's no indication of role-based access control or least privilege principle implementation.\n\n4. Data Protection and Privacy Issues:\n- Encryption implementation: While cryptography packages are present, their correct usage for data-at-rest and data-in-transit protection needs verification.\n- Privacy considerations: Without more context, it's unclear if personal data handling complies with relevant regulations (e.g., GDPR, CCPA).\n\n5. Immediate Security Priorities:\n\na) Dependency Review and Update:\n - Conduct a thorough audit of all dependencies, especially cryptography and pyopenssl.\n - Resolve any conflicts and ensure all packages are up-to-date.\n - Implement a dependency management strategy to keep packages updated automatically.\n\nb) Code Review and Security Testing:\n - Perform a comprehensive code review focusing on cryptographic implementations.\n - Conduct static and dynamic application security testing (SAST/DAST).\n - Implement regular security scans as part of the CI/CD pipeline.\n\nc) Authentication and Authorization Enhancements:\n - Review and strengthen authentication mechanisms (e.g., implement MFA).\n - Implement proper authorization checks throughout the application.\n - Consider using a robust identity and access management (IAM) solution.\n\nd) Encryption and Data Protection:\n - Ensure proper implementation of encryption for data-at-rest and data-in-transit.\n - Review and enhance data classification and handling procedures.\n - Implement secure key management practices.\n\ne) Security Documentation and Training:\n - Develop comprehensive security documentation covering all aspects of the application.\n - Provide security training for developers focusing on secure coding practices and proper use of cryptographic libraries.\n\nf) Third-party Security Assessment:\n - Consider engaging a third-party security firm for a thorough penetration test and security assessment.\n\ng) Implement Security Monitoring and Incident Response:\n - Set up logging and monitoring for security-related events.\n - Develop and test an incident response plan.\n\nh) Compliance Review:\n - Assess the application against relevant compliance requirements (e.g., GDPR, CCPA, PCI-DSS if applicable).\n - Implement necessary controls to ensure compliance.\n\ni) Secure Development Lifecycle:\n - Integrate security practices throughout the development process, from design to deployment.\n - Implement threat modeling for new features and changes.\n\nj) API Security:\n - If APIs are present, ensure they are properly secured with authentication, rate limiting, and input validation.\n\nk) Container and Infrastructure Security:\n - If using containerization or cloud services, review and enhance the security configurations.\n - Implement infrastructure-as-code security checks.\n\nl) Secrets Management:\n - Review how secrets (API keys, passwords, etc.) are managed and stored.\n - Consider implementing a secure secrets management solution.\n\nm) Regular Security Assessments:\n - Establish a cadence for regular security reviews and assessments.\n - Keep up-to-date with emerging threats and vulnerabilities relevant to the technologies used.\n\nBy addressing these priorities, the overall security posture of the application can be significantly improved. It's crucial to approach security as an ongoing process, continuously monitoring, updating, and improving the security measures in place.", - "executive_summary": "Analysis completed for 21 files in repository f5816b26-df0c-4a82-a14f-116e3df808fc", - "file_analyses": [ - { - "path": ".codecov.yml", - "language": "unknown", - "lines_of_code": 34, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": ".git-blame-ignore-revs", - "language": "unknown", - "lines_of_code": 5, - "severity_score": 8.0, - "issues_found": [ - "No major issues found - file serves its intended purpose", - "Documentation could be more detailed about the commit purposes" - ], - "recommendations": [ - "Add more detailed comments explaining what each commit fixes/changes", - "Consider adding dates to the commit references", - "Consider grouping related commits under descriptive headers", - "Add a brief header comment explaining the purpose of this file" - ] - }, - { - "path": ".gitattributes", - "language": "unknown", - "lines_of_code": 5, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": ".gitignore", - "language": "unknown", - "lines_of_code": 81, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": ".pre-commit-config.yaml", - "language": "unknown", - "lines_of_code": 97, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": ".readthedocs.yml", - "language": "unknown", - "lines_of_code": 21, - "severity_score": 9.0, - "issues_found": [ - "No major issues found - configuration appears well-structured and follows ReadTheDocs standards", - "Build environment could potentially be more specific about tool versions" - ], - "recommendations": [ - "Consider pinning exact Python version if needed (e.g. 3.11.x)", - "Consider adding more output formats like PDF if needed", - "Consider specifying Python dependencies versions in docs-requirements.txt explicitly", - "Add comments explaining non-obvious configuration choices", - "Consider adding build job timeout settings" - ] - }, - { - "path": "ci.sh", - "language": "unknown", - "lines_of_code": 153, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "CODE_OF_CONDUCT.md", - "language": "unknown", - "lines_of_code": 3, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "CONTRIBUTING.md", - "language": "unknown", - "lines_of_code": 3, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "docs-requirements.in", - "language": "unknown", - "lines_of_code": 26, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "docs-requirements.txt", - "language": "unknown", - "lines_of_code": 110, - "severity_score": 8.0, - "issues_found": [ - "Some package versions are pinned to future dates (e.g., certifi==2025.8.3) which may indicate version typos", - "Multiple security-related packages (cryptography, pyopenssl) are being used but their interdependencies could create conflicts", - "Platform-specific dependencies (cffi, colorama) may cause inconsistencies across different environments" - ], - "recommendations": [ - "Verify and correct package versions that appear to have future dates", - "Consider using version ranges (e.g., >= notation) instead of exact pins for non-critical dependencies", - "Add comments explaining why specific versions are required for critical packages", - "Regularly update dependencies using automated tools like dependabot", - "Consider splitting platform-specific requirements into separate files", - "Add hashes for package integrity verification" - ] - }, - { - "path": "LICENSE", - "language": "unknown", - "lines_of_code": 4, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "LICENSE.APACHE2", - "language": "unknown", - "lines_of_code": 203, - "severity_score": 9.0, - "issues_found": [ - "None - this is a standard Apache 2.0 license text file and does not contain executable code", - "Template fields [yyyy] and [name of copyright owner] in the appendix are not filled in" - ], - "recommendations": [ - "Fill in the copyright year and owner information in the appendix section if this is being used in a project", - "Ensure the license text remains unmodified as per Apache License requirements", - "Include a corresponding NOTICE file if the project contains any additional attributions", - "Store this file in the root directory of the project", - "Name the file as 'LICENSE' or 'LICENSE.txt' rather than 'LICENSE.APACHE2' for better standard compliance" - ] - }, - { - "path": "LICENSE.MIT", - "language": "unknown", - "lines_of_code": 23, - "severity_score": 9.0, - "issues_found": [ - "None - This is a standard MIT license file with correct formatting and complete terms" - ], - "recommendations": [ - "Consider adding a year to the copyright notice for more precise attribution", - "Consider adding a link to the project's official website/repository", - "Consider adding a version number or date of the license" - ] - }, - { - "path": "MANIFEST.in", - "language": "unknown", - "lines_of_code": 15, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "pyproject.toml", - "language": "unknown", - "lines_of_code": 344, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "README.rst", - "language": "unknown", - "lines_of_code": 146, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "test-requirements.in", - "language": "unknown", - "lines_of_code": 42, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "test-requirements.txt", - "language": "unknown", - "lines_of_code": 212, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "tox.ini", - "language": "unknown", - "lines_of_code": 128, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "zizmor.yml", - "language": "unknown", - "lines_of_code": 7, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - } - ] -} \ No newline at end of file diff --git a/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_121710_analysis.json b/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_121710_analysis.json deleted file mode 100644 index c5b074e..0000000 --- a/ai-analysis-reports/repo_analysis_f5816b26-df0c-4a82-a14f-116e3df808fc_20251023_121710_analysis.json +++ /dev/null @@ -1,290 +0,0 @@ -{ - "repository_id": "f5816b26-df0c-4a82-a14f-116e3df808fc", - "repo_path": "/tmp/attached-repos/python-trio__trio__main", - "total_files": 21, - "total_lines": 1662, - "languages": { - "unknown": 21 - }, - "code_quality_score": 5.857142857142857, - "architecture_assessment": "Based on the provided repository structure and statistics, I'll offer an architectural assessment covering the requested areas:\n\n1. Project Type and Purpose:\nThis appears to be a open-source project, likely a library or framework, given the presence of documentation files, contribution guidelines, and CI/CD configuration. The exact purpose is unclear from the limited information, but it seems to be a software development tool or utility.\n\n2. Technology Stack Evaluation:\nThe technology stack is not immediately apparent from the provided information. All files are listed as \"unknown\" language, which is unusual and may indicate an issue with the analysis tool or a very specialized project. Key observations:\n\n- Presence of .yml files suggests use of YAML for configuration\n- CI/CD integration is evident (.codecov.yml, ci.sh)\n- Documentation is a focus (docs-requirements.in, .readthedocs.yml)\n- Git is used for version control\n\nWithout more details on actual code files, it's challenging to evaluate the core technology stack. This could be a configuration-heavy project, a documentation project, or the analysis might be missing crucial code files.\n\n3. Code Organization and Structure:\nThe repository structure reveals:\n\n- Standard Git configuration files (.gitignore, .gitattributes)\n- CI/CD configuration (ci.sh, .codecov.yml)\n- Documentation focus (CODE_OF_CONDUCT.md, CONTRIBUTING.md, docs-requirements.in)\n- Code quality tools (.pre-commit-config.yaml)\n\nThe organization follows some best practices for open-source projects by including community guidelines and contribution information. However, the lack of visible source code directories or files is concerning and unusual for a software project.\n\n4. Scalability and Maintainability Concerns:\nGiven the limited information, several concerns arise:\n\na) Lack of visible source code: This makes it impossible to assess the core functionality's scalability and maintainability.\n\nb) Documentation-heavy structure: While documentation is crucial, the balance seems skewed towards configuration and guidelines rather than actual code.\n\nc) Average code quality score of 5.9/10: This indicates room for improvement in overall code quality, although without seeing the actual code, it's hard to pinpoint specific issues.\n\nd) File issues: Every file listed has at least one issue, which could impact maintainability if not addressed.\n\ne) Unclear project structure: The lack of a clear directory structure for source code, tests, and other standard components could make the project harder to navigate and maintain as it grows.\n\n5. Key Recommendations for Improvement:\n\na) Code Structure and Organization:\n- Implement a clear directory structure separating source code, tests, documentation, and configuration files.\n- If this is indeed a code-based project, ensure that source code is properly tracked and visible in the repository.\n\nb) Documentation:\n- While documentation is crucial, ensure it's balanced with actual code. Consider using a docs/ directory to organize all documentation files.\n- Improve inline code documentation if not already present.\n\nc) Code Quality:\n- Address the issues identified in each file to improve the overall code quality score.\n- Implement more rigorous code review processes to catch and fix issues before they are merged.\n\nd) CI/CD and Automation:\n- Expand on the existing CI/CD setup (evidenced by ci.sh and .codecov.yml) to include comprehensive testing, linting, and automated deployment if applicable.\n- Consider implementing more pre-commit hooks to catch issues early in the development process.\n\ne) Dependency Management:\n- If not already present, implement a clear dependency management system appropriate for the project's primary language.\n- Regularly update and audit dependencies for security vulnerabilities.\n\nf) Testing:\n- If not already present, implement a comprehensive testing strategy including unit tests, integration tests, and end-to-end tests as appropriate.\n- Aim for high test coverage to ensure code reliability and ease of maintenance.\n\ng) Scalability:\n- Without seeing the core code, it's challenging to make specific scalability recommendations. However, ensure that the project's architecture is designed with scalability in mind, using appropriate design patterns and avoiding tight coupling.\n\nh) Community and Contribution:\n- The presence of CODE_OF_CONDUCT.md and CONTRIBUTING.md is positive. Ensure these documents are comprehensive and up-to-date.\n- Consider adding templates for issues and pull requests to streamline contributions.\n\ni) Security:\n- Implement security scanning tools in the CI/CD pipeline.\n- Regularly audit the codebase for potential security vulnerabilities.\n\nj) Performance:\n- Once the core code is visible, implement performance benchmarking and monitoring to ensure the project maintains efficiency as it evolves.\n\nIn conclusion, while the project shows some good practices in terms of open-source project management and CI/CD integration, the lack of visible source code is a significant concern. The primary recommendation would be to ensure that all relevant code is properly tracked in the repository and that the project structure clearly separates concerns (code, tests, docs, config). Once this is addressed, a more thorough architectural assessment can be made to ensure the project is scalable, maintainable, and follows best practices for its specific technology stack and purpose.", - "security_assessment": "Based on the limited information provided, here's a high-level security assessment and recommendations:\n\n1. Overall Security Posture:\nThe presence of cryptography and pyopenssl packages indicates some level of security awareness and implementation. However, the potential conflicts between these packages raise concerns about the overall security architecture. The lack of high-risk file types is positive, but a more comprehensive review is needed to fully assess the security posture.\n\n2. Main Security Risks and Vulnerabilities:\n- Package conflicts: Interdependencies between cryptography and pyopenssl could lead to version incompatibilities or improper implementations.\n- Potential for outdated dependencies: If packages are not regularly updated, known vulnerabilities could be exploited.\n- Lack of visibility into actual implementation: Without seeing the code, there may be improper use of cryptographic functions or insecure configurations.\n\n3. Authentication and Authorization Concerns:\n- Unknown authentication mechanisms: The repository doesn't provide clear information on how user authentication is handled.\n- Authorization model unclear: There's no indication of role-based access control or least privilege principles being applied.\n- Potential for hardcoded credentials: Given the use of cryptography packages, there's a risk of embedded secrets in the codebase.\n\n4. Data Protection and Privacy Issues:\n- Encryption implementation: While cryptography packages are present, their proper usage for data-at-rest and data-in-transit protection needs verification.\n- Privacy considerations: Without more context, it's unclear if personal data handling complies with relevant regulations (e.g., GDPR, CCPA).\n- Key management: The approach to cryptographic key generation, storage, and rotation is not evident.\n\n5. Immediate Security Priorities:\n\na) Conduct a thorough code review:\n - Focus on proper implementation of cryptographic functions\n - Identify any hardcoded secrets or sensitive information\n - Ensure secure configuration of SSL/TLS (via pyopenssl)\n\nb) Resolve package conflicts:\n - Audit all dependencies and their versions\n - Create a compatibility matrix for security-related packages\n - Implement a strategy for keeping these packages updated\n\nc) Implement strong authentication:\n - If not present, add multi-factor authentication\n - Use secure password hashing (e.g., bcrypt, Argon2)\n - Implement proper session management\n\nd) Enhance authorization controls:\n - Apply principle of least privilege\n - Implement role-based access control\n - Use parameterized queries to prevent SQL injection\n\ne) Improve data protection:\n - Encrypt sensitive data at rest using industry-standard algorithms\n - Ensure all network communications use TLS 1.2+\n - Implement proper key management procedures\n\nf) Conduct security testing:\n - Perform regular vulnerability scans\n - Conduct penetration testing\n - Implement continuous security monitoring\n\ng) Develop security documentation:\n - Create a threat model for the application\n - Document cryptographic implementations and configurations\n - Establish incident response procedures\n\nh) Implement secure development practices:\n - Establish a secure code review process\n - Integrate security checks into the CI/CD pipeline\n - Provide security training for developers\n\ni) Enhance logging and monitoring:\n - Implement comprehensive logging of security events\n - Set up real-time alerting for suspicious activities\n - Ensure log integrity and protect against tampering\n\nj) Review and enhance network security:\n - Implement proper network segmentation\n - Use a web application firewall (WAF)\n - Regularly update and patch all systems and applications\n\nThese recommendations provide a starting point for improving the security posture of the repository. However, a more detailed analysis of the actual code, architecture, and deployment environment would be necessary to provide a comprehensive security assessment. Regular security audits and staying informed about the latest vulnerabilities and best practices are crucial for maintaining a strong security posture over time.", - "executive_summary": "Analysis completed for 21 files in repository f5816b26-df0c-4a82-a14f-116e3df808fc", - "file_analyses": [ - { - "path": ".codecov.yml", - "language": "unknown", - "lines_of_code": 34, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": ".git-blame-ignore-revs", - "language": "unknown", - "lines_of_code": 5, - "severity_score": 8.0, - "issues_found": [ - "No major issues found - file serves its intended purpose", - "Documentation could be more detailed about the commit purposes" - ], - "recommendations": [ - "Add more detailed comments explaining what each commit fixes/changes", - "Consider adding dates to the commit references", - "Consider grouping related commits under descriptive headers", - "Add a brief header comment explaining the purpose of this file" - ] - }, - { - "path": ".gitattributes", - "language": "unknown", - "lines_of_code": 5, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": ".gitignore", - "language": "unknown", - "lines_of_code": 81, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": ".pre-commit-config.yaml", - "language": "unknown", - "lines_of_code": 97, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": ".readthedocs.yml", - "language": "unknown", - "lines_of_code": 21, - "severity_score": 9.0, - "issues_found": [ - "No major issues found - configuration appears well-structured and follows ReadTheDocs standards", - "Build environment could potentially be more specific about tool versions" - ], - "recommendations": [ - "Consider pinning exact Python version if needed (e.g. 3.11.x)", - "Consider adding more output formats like PDF if needed", - "Consider specifying Python dependencies versions in docs-requirements.txt explicitly", - "Add comments explaining non-obvious configuration choices", - "Consider adding build job timeout settings" - ] - }, - { - "path": "ci.sh", - "language": "unknown", - "lines_of_code": 153, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "CODE_OF_CONDUCT.md", - "language": "unknown", - "lines_of_code": 3, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "CONTRIBUTING.md", - "language": "unknown", - "lines_of_code": 3, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "docs-requirements.in", - "language": "unknown", - "lines_of_code": 26, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "docs-requirements.txt", - "language": "unknown", - "lines_of_code": 110, - "severity_score": 8.0, - "issues_found": [ - "Some package versions are pinned to future dates (e.g., certifi==2025.8.3) which may indicate version typos", - "Multiple security-related packages (cryptography, pyopenssl) are being used but their interdependencies could create conflicts", - "Platform-specific dependencies (cffi, colorama) may cause inconsistencies across different environments" - ], - "recommendations": [ - "Verify and correct package versions that appear to have future dates", - "Consider using version ranges (e.g., >= notation) instead of exact pins for non-critical dependencies", - "Add comments explaining why specific versions are required for critical packages", - "Regularly update dependencies using automated tools like dependabot", - "Consider splitting platform-specific requirements into separate files", - "Add hashes for package integrity verification" - ] - }, - { - "path": "LICENSE", - "language": "unknown", - "lines_of_code": 4, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "LICENSE.APACHE2", - "language": "unknown", - "lines_of_code": 203, - "severity_score": 9.0, - "issues_found": [ - "None - this is a standard Apache 2.0 license text file and does not contain executable code", - "Template fields [yyyy] and [name of copyright owner] in the appendix are not filled in" - ], - "recommendations": [ - "Fill in the copyright year and owner information in the appendix section if this is being used in a project", - "Ensure the license text remains unmodified as per Apache License requirements", - "Include a corresponding NOTICE file if the project contains any additional attributions", - "Store this file in the root directory of the project", - "Name the file as 'LICENSE' or 'LICENSE.txt' rather than 'LICENSE.APACHE2' for better standard compliance" - ] - }, - { - "path": "LICENSE.MIT", - "language": "unknown", - "lines_of_code": 23, - "severity_score": 9.0, - "issues_found": [ - "None - This is a standard MIT license file with correct formatting and complete terms" - ], - "recommendations": [ - "Consider adding a year to the copyright notice for more precise attribution", - "Consider adding a link to the project's official website/repository", - "Consider adding a version number or date of the license" - ] - }, - { - "path": "MANIFEST.in", - "language": "unknown", - "lines_of_code": 15, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "pyproject.toml", - "language": "unknown", - "lines_of_code": 344, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "README.rst", - "language": "unknown", - "lines_of_code": 146, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "test-requirements.in", - "language": "unknown", - "lines_of_code": 42, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "test-requirements.txt", - "language": "unknown", - "lines_of_code": 212, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "tox.ini", - "language": "unknown", - "lines_of_code": 128, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - }, - { - "path": "zizmor.yml", - "language": "unknown", - "lines_of_code": 7, - "severity_score": 5.0, - "issues_found": [ - "Analysis parsing failed" - ], - "recommendations": [ - "Review code manually" - ] - } - ] -} \ No newline at end of file diff --git a/ai-analysis-reports/test_pdf_generation.pdf b/ai-analysis-reports/test_pdf_generation.pdf deleted file mode 100644 index 5fcfea0..0000000 --- a/ai-analysis-reports/test_pdf_generation.pdf +++ /dev/null @@ -1,112 +0,0 @@ -%PDF-1.4 -%東京 ReportLab Generated PDF document http://www.reportlab.com -1 0 obj -<< -/F1 2 0 R /F2 3 0 R ->> -endobj -2 0 obj -<< -/BaseFont /Helvetica /Encoding /WinAnsiEncoding /Name /F1 /Subtype /Type1 /Type /Font ->> -endobj -3 0 obj -<< -/BaseFont /Helvetica-Bold /Encoding /WinAnsiEncoding /Name /F2 /Subtype /Type1 /Type /Font ->> -endobj -4 0 obj -<< -/Contents 10 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 9 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -5 0 obj -<< -/Contents 11 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 9 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -6 0 obj -<< -/Contents 12 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 9 0 R /Resources << -/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] ->> /Rotate 0 /Trans << - ->> - /Type /Page ->> -endobj -7 0 obj -<< -/PageMode /UseNone /Pages 9 0 R /Type /Catalog ->> -endobj -8 0 obj -<< -/Author (\(anonymous\)) /CreationDate (D:20251023104556+00'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20251023104556+00'00') /Producer (ReportLab PDF Library - www.reportlab.com) - /Subject (\(unspecified\)) /Title (\(anonymous\)) /Trapped /False ->> -endobj -9 0 obj -<< -/Count 3 /Kids [ 4 0 R 5 0 R 6 0 R ] /Type /Pages ->> -endobj -10 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 379 ->> -stream -Gat=eh+e#+&;BTI.F'4X.6HAQ[W%!6%>i*'I=VPO@,+2_9akt/FSSdqGX3\@7F02GDe98(#IX$-!j4,$[fhkuYFo.]YkK!fj>3KHVDcfN(WQ(V=0Ng'FHL>EWD`^/KdifunFM=XB^[TQfS[p"A00!lN7Ll7'qJHsTed[48+iUXVf%6%pT\J!@HH)Xf&ce?=Z.)#Dm5QNQ&3`GgS1)!_bTN\8O[!!>>%G8i]+_,MBDb+8a0TG*V)^JC8'Z!Pf=lp2Z.qiZ,%Hf..%f)S.9k]2501n@n1eW.p$BWhX(P,AT3.R5>K+2i]Lap`E/-.ARKA:X++ihlqEj0=$+_N1JCR1@Xm:oG^if-XIJ,tHnE5;&$Fn<*habQ#)XLr7K~>endstream -endobj -11 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 565 ->> -stream -Gar?.;/_pX&BE]".IJp[2N"74=<9E/R^>am=!%+q_?I(t2R?++hgT2scmG#("F&Z$IWp8L8GS):X?(m8-/@8^&0!$Y+L]B-aogFbX+)X>r\H2MhsQZ%pel&7-P@TnCn!etfqfZ]Z6J&a40Zte`PeLsMB-JN5\*a(#g2JfB<2;5-\R8Kl_L(85ktQEa3aFLcUH_BJ(s]aI?t06J:2Y[+:V&nG\dKJZ6]_kHfN0d4$dGbQ_YW<+%`/YOaINL]^\mN@D4Q%7@H%1;4/=9-sMXKO4#2U>]5IU8PLmBnfBZMT(1FI-f5i55RbT9,LQ>m:@R2<-g.ILqf@&f?Gg-4k>4X*])]9P_De_e5h\`>)#_H:E'Hl^SolPnE=YL$hM?7P4#QEB2#hbKr"Eia3k.eRlORTTT=LQXcg+neS^mL&Bb,uuFJ?4\AG&UE$MlsPAU3>Kb3cjqgZoE[a=*Gendstream -endobj -12 0 obj -<< -/Filter [ /ASCII85Decode /FlateDecode ] /Length 1245 ->> -stream -Gatm;gN)%,&:N/3lq;!H9[*P[5_+-$e&8pJ'43SEB.;JFL6n.#lqtO3$P9*^8l-tgUToYYT&##FG7TuR#l^e$T,%DkYMf@l$C&Bl!@SIQd[<$9dlJ5cK^PKRaA\[NJH[P61$i"U:_hI#M08C^)`%Z'C/nEMpQQ:"EA<(;;uuqDm"X5Jl\)XPOiG>Q!lU\I>2Dl(]r$7:2cj*.o@:/t%Ar_o')T&5+?p$pgsc(c-55/0+/BFa1QBG^L;%l]SNbn"'r/cXi>M"H&Zg0>?YYcI,Q.,7l(%m*?s7kRi\S8C)sj`6T]<)e)gT8IhB!>W6V%-Md?W^%V%Y-[HaE!N2]cbH/XTeH:3#f%M4pq+sD*;-@QE2g&.Hpm.73S[gXE@.u()*tj'#C]ccSIHCK9lOa_7;iPYB>[/V_uAn:\EIbQOg#kJmA,A.o?^e79Pt09hQ!]umfT_]7Q4&8bLYG%Pd.C#\WX:G>>Y[F)82#*eDg"EDJt:Y4T_A!(/UXT;EsLFGdUD&q;>J"*ZqH-?Lm-fN(dpA,B%[pie,)PH'L.X6qZ,kjfd@te*3a&Ym_HgRb4r6'aB>L;6'r_LZ;3+!dklgJ%t2i[OGg*^j1/]KIIX(6jtJ.]r>Ajjicq#(:BOI/<1=7,o]seKrmODN((UNVQqpA\siqR<[*K>.M9ZYPmCk=,_EUXF<$B&,MO)skQ[*D:H(7khb#iqFh4PbC5-.DA$m/_aT9e:TGbq5UI%/;q@i-XX_LX*c3EoZ9s`L\3^%DG5>u8@Zrg2ApCiaWr6L5Fj=!gMOsWJ?I"[t7-4eD.Zc!btV6Fk[(Lq/;VQ!Z.ORD7^T+tdE4$'8K5j#`4fK8.hs7r%;3?C'qO2s2<\Z]kLR.pD5UM^%X>I`-r&f'A)r`&qU6eXQ/n9uQggtZRu\`a\QZImQ;bDOM.+8i3h,D>X+#;/2rBL35fIfX?WIQ.~>endstream -endobj -xref -0 13 -0000000000 65535 f -0000000073 00000 n -0000000114 00000 n -0000000221 00000 n -0000000333 00000 n -0000000537 00000 n -0000000741 00000 n -0000000945 00000 n -0000001013 00000 n -0000001296 00000 n -0000001367 00000 n -0000001837 00000 n -0000002493 00000 n -trailer -<< -/ID -[] -% ReportLab generated PDF document -- digest (http://www.reportlab.com) - -/Info 8 0 R -/Root 7 0 R -/Size 13 ->> -startxref -3830 -%%EOF diff --git a/docker-compose.yml b/docker-compose.yml index 1696968..75e6646 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -262,7 +262,7 @@ services: - REQUIREMENT_PROCESSOR_URL=http://requirement-processor:8001 - TECH_STACK_SELECTOR_URL=http://tech-stack-selector:8002 - ARCHITECTURE_DESIGNER_URL=http://architecture-designer:8003 - - CODE_GENERATOR_URL=http://code-generator:8004 + # - CODE_GENERATOR_URL=http://code-generator:8004 - TEST_GENERATOR_URL=http://test-generator:8005 - DEPLOYMENT_MANAGER_URL=http://deployment-manager:8006 - DASHBOARD_URL=http://dashboard:8008 @@ -385,56 +385,56 @@ services: timeout: 10s retries: 3 - code-generator: - build: ./services/code-generator - container_name: pipeline_code_generator - ports: - - "8004:8004" - environment: - - PORT=8004 - - HOST=0.0.0.0 - - POSTGRES_HOST=postgres - - POSTGRES_PORT=5432 - - POSTGRES_DB=dev_pipeline - - POSTGRES_USER=pipeline_admin - - POSTGRES_PASSWORD=secure_pipeline_2024 - - MONGODB_HOST=mongodb - - MONGODB_PORT=27017 - - REDIS_HOST=redis - - REDIS_PORT=6379 - - REDIS_PASSWORD=redis_secure_2024 - - CLAUDE_API_KEY=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 - - OPENAI_API_KEY=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 - # - NEO4J_URI=bolt://neo4j:7687 - # - NEO4J_USER=neo4j - # - NEO4J_PASSWORD=password - # - CHROMA_HOST=chromadb - # - CHROMA_PORT=8000 - volumes: - # NEW: Persistent volume for generated projects - - ./generated-projects:/tmp/generated-projects - # Optional: Also persist the generation logs/dashboards - - ./generation-logs:/tmp/generation-logs - networks: - - pipeline_network - depends_on: - postgres: - condition: service_healthy - redis: - condition: service_healthy - mongodb: - condition: service_started - # neo4j: - # condition: service_healthy - chromadb: - condition: service_healthy - migrations: - condition: service_completed_successfully - healthcheck: - test: ["CMD", "curl", "-f", "http://localhost:8004/health"] - interval: 30s - timeout: 10s - retries: 3 + # code-generator: + # build: ./services/code-generator + # container_name: pipeline_code_generator + # ports: + # - "8004:8004" + # environment: + # - PORT=8004 + # - HOST=0.0.0.0 + # - POSTGRES_HOST=postgres + # - POSTGRES_PORT=5432 + # - POSTGRES_DB=dev_pipeline + # - POSTGRES_USER=pipeline_admin + # - POSTGRES_PASSWORD=secure_pipeline_2024 + # - MONGODB_HOST=mongodb + # - MONGODB_PORT=27017 + # - REDIS_HOST=redis + # - REDIS_PORT=6379 + # - REDIS_PASSWORD=redis_secure_2024 + # - CLAUDE_API_KEY=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 + # - OPENAI_API_KEY=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 + # # - NEO4J_URI=bolt://neo4j:7687 + # # - NEO4J_USER=neo4j + # # - NEO4J_PASSWORD=password + # # - CHROMA_HOST=chromadb + # # - CHROMA_PORT=8000 + # volumes: + # # NEW: Persistent volume for generated projects + # - ./generated-projects:/tmp/generated-projects + # # Optional: Also persist the generation logs/dashboards + # - ./generation-logs:/tmp/generation-logs + # networks: + # - pipeline_network + # depends_on: + # postgres: + # condition: service_healthy + # redis: + # condition: service_healthy + # mongodb: + # condition: service_started + # # neo4j: + # # condition: service_healthy + # chromadb: + # condition: service_healthy + # migrations: + # condition: service_completed_successfully + # healthcheck: + # test: ["CMD", "curl", "-f", "http://localhost:8004/health"] + # interval: 30s + # timeout: 10s + # retries: 3 test-generator: build: ./services/test-generator @@ -763,6 +763,12 @@ services: - redis - mongodb - git-integration + deploy: + resources: + limits: + memory: 4G + reservations: + memory: 2G healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8022/health"] interval: 30s @@ -785,7 +791,7 @@ services: - DATABASE_URL=postgresql://pipeline_admin:secure_pipeline_2024@postgres:5432/dev_pipeline - REDIS_URL=redis://:redis_secure_2024@pipeline_redis:6379 - API_GATEWAY_URL=http://pipeline_api_gateway:8000 - - CODE_GENERATOR_URL=http://pipeline_code_generator:8004 + # - CODE_GENERATOR_URL=http://pipeline_code_generator:8004 - SELF_IMPROVING_URL=http://pipeline_self_improving_generator:8007 - REQUIREMENT_PROCESSOR_URL=http://pipeline_requirement_processor:8001 - TECH_STACK_SELECTOR_URL=http://pipeline_tech_stack_selector:8002 @@ -799,8 +805,8 @@ services: condition: service_healthy redis: condition: service_healthy - code-generator: - condition: service_healthy + # code-generator: + # condition: service_healthy self-improving-generator: condition: service_healthy migrations: diff --git a/services/ai-analysis-service/ai-analyze.py b/services/ai-analysis-service/ai-analyze.py index e02286a..aa8b031 100644 --- a/services/ai-analysis-service/ai-analyze.py +++ b/services/ai-analysis-service/ai-analyze.py @@ -51,6 +51,10 @@ from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.enums import TA_CENTER, TA_LEFT from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, PageBreak, Table, TableStyle from reportlab.lib import colors +from reportlab.graphics.shapes import Rect, String, Drawing +from reportlab.graphics.charts.piecharts import Pie +from reportlab.graphics.charts.barcharts import VerticalBarChart +from reportlab.lib.units import inch # Enhanced dataclasses for memory system @dataclass @@ -860,7 +864,7 @@ class EnhancedGitHubAnalyzer: # Performance optimization settings self.max_workers = memory_config.get('max_workers', 10) # Parallel processing - self.batch_size = memory_config.get('batch_size', 20) # Batch processing + self.batch_size = memory_config.get('batch_size', 10) # OPTIMIZED: Batch processing (REDUCED from 20 to 10) self.cache_ttl = memory_config.get('cache_ttl', 3600) # Cache TTL self.max_file_size = memory_config.get('max_file_size', 0) # No file size limit (0 = unlimited) @@ -1067,6 +1071,28 @@ ANALYSIS: severity_score=5.0 ) + async def analyze_files_batch(self, combined_prompt: str) -> str: + """Analyze multiple files in a single API call for smart batching.""" + try: + print(f"泅 [BATCH API] Making single API call for multiple files") + + # Make single API call to Claude + message = self.client.messages.create( + model="claude-3-5-sonnet-20240620", + max_tokens=4000, # Increased for multi-file response + temperature=0.1, + messages=[{"role": "user", "content": combined_prompt}] + ) + + response_text = message.content[0].text.strip() + print(f"笨 [BATCH API] Received response for multiple files") + + return response_text + + except Exception as e: + print(f"笶 [BATCH API] Error in batch analysis: {e}") + raise e + def extract_issues_from_analysis(self, analysis_text: str) -> List[str]: """Extract issues from analysis text.""" issues = [] @@ -1493,9 +1519,82 @@ Focus on business outcomes, not technical details. Keep under 800 words. return message.content[0].text except Exception as e: return f"Executive summary generation failed: {e}" + + def _create_language_pie_chart(self, languages: Dict[str, int]) -> Drawing: + """Create a pie chart showing language distribution.""" + drawing = Drawing(400, 200) + pie = Pie() + pie.x = 150 + pie.y = 50 + pie.width = 150 + pie.height = 150 + + # Prepare data + if languages and len(languages) > 0: + labels = list(languages.keys())[:8] # Top 8 languages + values = [languages[lang] for lang in labels] + + pie.data = values + pie.labels = labels + + # Use distinct colors + chart_colors = [ + colors.HexColor('#3b82f6'), # Blue + colors.HexColor('#10b981'), # Green + colors.HexColor('#f59e0b'), # Amber + colors.HexColor('#ef4444'), # Red + colors.HexColor('#8b5cf6'), # Purple + colors.HexColor('#ec4899'), # Pink + colors.HexColor('#06b6d4'), # Cyan + colors.HexColor('#f97316'), # Orange + ] + pie.slices.strokeWidth = 1 + pie.slices.strokeColor = colors.white + + for i, color in enumerate(chart_colors[:len(values)]): + pie.slices[i].fillColor = color + + pie.sideLabels = 1 + pie.simpleLabels = 0 + else: + # Empty state + pie.data = [1] + pie.labels = ['No data'] + pie.slices[0].fillColor = colors.HexColor('#e2e8f0') + + drawing.add(pie) + return drawing + + def _create_quality_bar_chart(self, file_analyses: List) -> Drawing: + """Create a bar chart showing file quality distribution.""" + drawing = Drawing(400, 200) + bc = VerticalBarChart() + bc.x = 50 + bc.y = 50 + bc.height = 125 + bc.width = 300 + + # Calculate quality counts + high_count = len([fa for fa in file_analyses if fa.severity_score >= 8]) + medium_count = len([fa for fa in file_analyses if 5 <= fa.severity_score < 8]) + low_count = len([fa for fa in file_analyses if fa.severity_score < 5]) + + bc.data = [[high_count, medium_count, low_count]] + bc.categoryAxis.categoryNames = ['High', 'Medium', 'Low'] + bc.categoryAxis.labels.fontSize = 10 + bc.valueAxis.valueMin = 0 + bc.valueAxis.valueMax = max(high_count, medium_count, low_count, 1) * 1.2 + + # Colors + bc.bars[0].fillColor = colors.HexColor('#10b981') # Green for high + bc.bars[1].fillColor = colors.HexColor('#f59e0b') # Amber for medium + bc.bars[2].fillColor = colors.HexColor('#ef4444') # Red for low + + drawing.add(bc) + return drawing - def create_pdf_report(self, analysis: RepositoryAnalysis, output_path: str): - """Generate comprehensive PDF report.""" + def create_pdf_report(self, analysis: RepositoryAnalysis, output_path: str, progress_mgr=None): + """Generate comprehensive PDF report with visual charts and detailed sections.""" print(f"Generating PDF report: {output_path}") doc = SimpleDocTemplate(output_path, pagesize=A4, @@ -1582,7 +1681,38 @@ Focus on business outcomes, not technical details. Keep under 800 words. story.append(overview_table) story.append(Spacer(1, 20)) - # Code Quality Assessment + # Language Distribution with Pie Chart + story.append(Paragraph("Language Distribution", heading_style)) + if analysis.languages: + lang_chart = self._create_language_pie_chart(analysis.languages) + story.append(lang_chart) + story.append(Spacer(1, 10)) + + # Language breakdown table + lang_data = [['Language', 'Files', 'Percentage']] + total_lang_files = sum(analysis.languages.values()) + for lang, count in sorted(analysis.languages.items(), key=lambda x: x[1], reverse=True)[:10]: + percentage = (count / total_lang_files * 100) if total_lang_files > 0 else 0 + lang_data.append([lang, str(count), f"{percentage:.1f}%"]) + + lang_table = Table(lang_data, colWidths=[150, 100, 100]) + lang_table.setStyle(TableStyle([ + ('BACKGROUND', (0, 0), (-1, 0), colors.HexColor('#1e40af')), + ('TEXTCOLOR', (0, 0), (-1, 0), colors.white), + ('ALIGN', (0, 0), (-1, -1), 'CENTER'), + ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'), + ('FONTSIZE', (0, 0), (-1, 0), 11), + ('FONTSIZE', (0, 1), (-1, -1), 9), + ('BOTTOMPADDING', (0, 0), (-1, 0), 12), + ('BACKGROUND', (0, 1), (-1, -1), colors.HexColor('#f8fafc')), + ('GRID', (0, 0), (-1, -1), 1, colors.HexColor('#e2e8f0')) + ])) + story.append(lang_table) + else: + story.append(Paragraph("No language data available.", styles['Normal'])) + story.append(PageBreak()) + + # Code Quality Assessment with Bar Chart story.append(Paragraph("Code Quality Assessment", heading_style)) # Calculate percentages safely total_files = analysis.total_files if isinstance(analysis.total_files, int) and analysis.total_files > 0 else 1 @@ -1612,7 +1742,90 @@ Focus on business outcomes, not technical details. Keep under 800 words. ])) story.append(quality_table) - story.append(Spacer(1, 20)) + story.append(Spacer(1, 10)) + + # Add quality bar chart + quality_chart = self._create_quality_bar_chart(analysis.file_analyses) + story.append(quality_chart) + story.append(PageBreak()) + + # Files Requiring Attention Section + story.append(Paragraph("Files Requiring Attention", heading_style)) + story.append(Paragraph( + "The following files have been identified as requiring immediate attention based on their quality scores, " + "number of issues, and complexity metrics. Priority is given to files with the lowest quality scores.", + styles['Normal'] + )) + story.append(Spacer(1, 10)) + + # Get files sorted by severity (lowest scores first = most attention needed) + files_needing_attention = sorted(analysis.file_analyses, key=lambda x: x.severity_score)[:15] + + if files_needing_attention: + attention_data = [['File Path', 'Score', 'Issues', 'Priority']] + + for fa in files_needing_attention: + # Determine priority based on score + if fa.severity_score < 4: + priority = "CRITICAL" + priority_color = colors.HexColor('#ef4444') + elif fa.severity_score < 6: + priority = "HIGH" + priority_color = colors.HexColor('#f59e0b') + else: + priority = "MEDIUM" + priority_color = colors.HexColor('#3b82f6') + + file_path = str(fa.path)[:45] + '...' if len(str(fa.path)) > 45 else str(fa.path) + issues_count = len(fa.issues_found) if isinstance(fa.issues_found, (list, tuple)) else 0 + + attention_data.append([ + file_path, + f"{fa.severity_score:.1f}/10", + str(issues_count), + priority + ]) + + attention_table = Table(attention_data, colWidths=[220, 70, 60, 80]) + attention_table.setStyle(TableStyle([ + ('BACKGROUND', (0, 0), (-1, 0), colors.HexColor('#1e40af')), + ('TEXTCOLOR', (0, 0), (-1, 0), colors.white), + ('ALIGN', (0, 0), (-1, -1), 'LEFT'), + ('ALIGN', (1, 0), (-1, -1), 'CENTER'), + ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'), + ('FONTSIZE', (0, 0), (-1, 0), 10), + ('FONTSIZE', (0, 1), (-1, -1), 8), + ('BOTTOMPADDING', (0, 0), (-1, 0), 12), + ('BACKGROUND', (0, 1), (-1, -1), colors.HexColor('#f8fafc')), + ('GRID', (0, 0), (-1, -1), 1, colors.HexColor('#e2e8f0')), + # Color code priority column + ('TEXTCOLOR', (3, 1), (3, -1), colors.HexColor('#dc2626')) + ])) + + story.append(attention_table) + story.append(Spacer(1, 15)) + + # Add recommendations for top 5 critical files + story.append(Paragraph("Priority Recommendations:", ParagraphStyle( + 'SubHeading', + parent=styles['Heading3'], + fontSize=12, + textColor=colors.HexColor('#1e40af'), + spaceBefore=10 + ))) + + for i, fa in enumerate(files_needing_attention[:5], 1): + story.append(Paragraph(f"{i}. {str(fa.path)} (Score: {fa.severity_score:.1f}/10)", styles['Normal'])) + if fa.recommendations and len(fa.recommendations) > 0: + for rec in fa.recommendations[:2]: # Top 2 recommendations per file + story.append(Paragraph(f" 窶「 {rec}", styles['Normal'])) + else: + story.append(Paragraph(f" 窶「 Review code quality and add documentation", styles['Normal'])) + story.append(Spacer(1, 5)) + else: + story.append(Paragraph("No files require immediate attention. Code quality is satisfactory.", styles['Normal'])) + + story.append(PageBreak()) # Security Assessment if hasattr(analysis, 'security_assessment') and analysis.security_assessment: diff --git a/services/ai-analysis-service/enhanced_chunking.py b/services/ai-analysis-service/enhanced_chunking.py index 6262d7a..548364e 100644 --- a/services/ai-analysis-service/enhanced_chunking.py +++ b/services/ai-analysis-service/enhanced_chunking.py @@ -404,28 +404,64 @@ class ChunkAnalyzer: """Parse Claude's analysis response into structured data.""" try: import json + import re + + # Clean the response by removing invalid control characters + cleaned_response = re.sub(r'[\x00-\x08\x0b\x0c\x0e-\x1f\x7f-\x9f]', '', response) + # Try to extract JSON from response - if '{' in response and '}' in response: - start = response.find('{') - end = response.rfind('}') + 1 - json_str = response[start:end] - return json.loads(json_str) + if '{' in cleaned_response and '}' in cleaned_response: + start = cleaned_response.find('{') + end = cleaned_response.rfind('}') + 1 + json_str = cleaned_response[start:end] + + # Additional cleaning for common JSON issues + json_str = json_str.replace('\n', '\\n').replace('\r', '\\r').replace('\t', '\\t') + + try: + return json.loads(json_str) + except json.JSONDecodeError as json_err: + # Try to fix common JSON issues + json_str = re.sub(r',\s*}', '}', json_str) # Remove trailing commas + json_str = re.sub(r',\s*]', ']', json_str) # Remove trailing commas in arrays + json_str = re.sub(r'(\w+):', r'"\1":', json_str) # Quote unquoted keys + + try: + return json.loads(json_str) + except json.JSONDecodeError: + # If still failing, create a structured response from the text + return self._create_fallback_response(cleaned_response) else: # Fallback parsing - return { - 'issues_found': ['Unable to parse specific issues'], - 'recommendations': ['Review code manually'], - 'severity_score': 5.0, - 'detailed_analysis': response - } + return self._create_fallback_response(cleaned_response) + except Exception as e: self.logger.error(f"Error parsing analysis response: {e}") - return { - 'issues_found': ['Analysis parsing failed'], - 'recommendations': ['Review code manually'], - 'severity_score': 5.0, - 'detailed_analysis': response - } + return self._create_fallback_response(response) + + def _create_fallback_response(self, response_text: str) -> Dict[str, Any]: + """Create a structured response when JSON parsing fails.""" + # Extract basic information from the text response + issues = [] + recommendations = [] + + # Look for common patterns in the response + if 'error' in response_text.lower() or 'issue' in response_text.lower(): + issues.append('Code issues detected (parsing failed)') + if 'improve' in response_text.lower() or 'recommend' in response_text.lower(): + recommendations.append('Code improvements suggested (parsing failed)') + + if not issues: + issues.append('Analysis completed (detailed parsing unavailable)') + if not recommendations: + recommendations.append('Review code manually') + + return { + 'issues_found': issues, + 'recommendations': recommendations, + 'severity_score': 3.0, # Medium severity for fallback + 'detailed_analysis': response_text[:500] + '...' if len(response_text) > 500 else response_text + } async def _analyze_chunk_with_context(self, file_path: str, chunk: ChunkInfo, chunk_index: int, total_chunks: int, repo_id: str) -> ChunkAnalysis: diff --git a/services/ai-analysis-service/progress_manager.py b/services/ai-analysis-service/progress_manager.py new file mode 100644 index 0000000..8be4687 --- /dev/null +++ b/services/ai-analysis-service/progress_manager.py @@ -0,0 +1,165 @@ +""" +Progress Manager for AI Analysis Service +Handles real-time progress updates via Server-Sent Events (SSE) +""" +import asyncio +import json +from datetime import datetime +from typing import Dict, Any, List, Optional +from collections import defaultdict +import redis.asyncio as redis +import os + + +class AnalysisProgressManager: + """Manages progress updates for AI analysis operations""" + + def __init__(self, analysis_id: str): + self.analysis_id = analysis_id + self.subscribers: List[asyncio.Queue] = [] + self.redis_client: Optional[redis.Redis] = None + self.progress_key = f"analysis_progress:{analysis_id}" + + async def connect_redis(self): + """Connect to Redis for progress persistence""" + try: + redis_host = os.getenv('REDIS_HOST', 'redis') + redis_port = int(os.getenv('REDIS_PORT', 6379)) + redis_password = os.getenv('REDIS_PASSWORD', 'redis_secure_2024') + self.redis_client = await redis.Redis( + host=redis_host, + port=redis_port, + password=redis_password, + decode_responses=True + ) + print(f"笨 Redis connected for progress tracking: {self.analysis_id}") + except Exception as e: + print(f"笞ク Redis connection failed: {e}. Progress will not be persisted.") + self.redis_client = None + + async def disconnect_redis(self): + """Disconnect from Redis""" + if self.redis_client: + await self.redis_client.close() + + def subscribe(self) -> asyncio.Queue: + """Subscribe to progress updates""" + queue = asyncio.Queue() + self.subscribers.append(queue) + print(f"沒。 New subscriber added. Total subscribers: {len(self.subscribers)}") + return queue + + def unsubscribe(self, queue: asyncio.Queue): + """Unsubscribe from progress updates""" + if queue in self.subscribers: + self.subscribers.remove(queue) + print(f"沒。 Subscriber removed. Remaining subscribers: {len(self.subscribers)}") + + async def emit_event(self, event_type: str, data: Dict[str, Any]): + """ + Emit a progress event to all subscribers + + Event types: + - analysis_started: Analysis has begun + - file_analysis_started: Started analyzing a file + - file_analysis_completed: Completed analyzing a file + - repository_analysis_started: Started repository-level analysis + - repository_analysis_completed: Completed repository-level analysis + - report_generation_started: Started generating PDF report + - report_section_completed: Completed a section of the report + - analysis_completed: Entire analysis is complete + - analysis_error: An error occurred + """ + event = { + "analysis_id": self.analysis_id, + "event": event_type, + "data": data, + "timestamp": datetime.now().isoformat() + } + + # Store in Redis for recovery + if self.redis_client: + try: + await self.redis_client.rpush( + self.progress_key, + json.dumps(event) + ) + # Set expiry for 1 hour + await self.redis_client.expire(self.progress_key, 3600) + except Exception as e: + print(f"笞ク Failed to store progress in Redis: {e}") + + # Broadcast to all subscribers + dead_queues = [] + for queue in self.subscribers: + try: + await queue.put(event) + except Exception as e: + print(f"笞ク Failed to send to subscriber: {e}") + dead_queues.append(queue) + + # Clean up dead queues + for queue in dead_queues: + self.unsubscribe(queue) + + print(f"沒、 Event emitted: {event_type} - {data.get('message', '')}") + + async def get_progress_history(self) -> List[Dict[str, Any]]: + """Retrieve progress history from Redis""" + if not self.redis_client: + return [] + + try: + events = await self.redis_client.lrange(self.progress_key, 0, -1) + return [json.loads(event) for event in events] + except Exception as e: + print(f"笞ク Failed to retrieve progress history: {e}") + return [] + + async def clear_progress(self): + """Clear progress data from Redis""" + if self.redis_client: + try: + await self.redis_client.delete(self.progress_key) + print(f"泓托ク Progress data cleared for {self.analysis_id}") + except Exception as e: + print(f"笞ク Failed to clear progress: {e}") + + +class GlobalProgressTracker: + """Global singleton to track all active analyses""" + + _instance = None + _managers: Dict[str, AnalysisProgressManager] = {} + + def __new__(cls): + if cls._instance is None: + cls._instance = super(GlobalProgressTracker, cls).__new__(cls) + cls._managers = {} + return cls._instance + + def create_manager(self, analysis_id: str) -> AnalysisProgressManager: + """Create a new progress manager""" + if analysis_id not in self._managers: + self._managers[analysis_id] = AnalysisProgressManager(analysis_id) + print(f"氣 Created progress manager: {analysis_id}") + return self._managers[analysis_id] + + def get_manager(self, analysis_id: str) -> Optional[AnalysisProgressManager]: + """Get an existing progress manager""" + return self._managers.get(analysis_id) + + def remove_manager(self, analysis_id: str): + """Remove a progress manager""" + if analysis_id in self._managers: + del self._managers[analysis_id] + print(f"泓托ク Removed progress manager: {analysis_id}") + + def list_active_analyses(self) -> List[str]: + """List all active analysis IDs""" + return list(self._managers.keys()) + + +# Global tracker instance +progress_tracker = GlobalProgressTracker() + diff --git a/services/ai-analysis-service/server.py b/services/ai-analysis-service/server.py index 23e8ff1..82ba0f8 100644 --- a/services/ai-analysis-service/server.py +++ b/services/ai-analysis-service/server.py @@ -13,12 +13,12 @@ import time import hashlib import traceback from pathlib import Path -from typing import Dict, Any, Optional, List +from typing import Dict, Any, Optional, List, Tuple from datetime import datetime -from fastapi import FastAPI, HTTPException, BackgroundTasks +from fastapi import FastAPI, HTTPException, BackgroundTasks, Request from fastapi.middleware.cors import CORSMiddleware -from fastapi.responses import FileResponse, JSONResponse +from fastapi.responses import FileResponse, JSONResponse, StreamingResponse from pydantic import BaseModel import uvicorn import httpx @@ -46,6 +46,9 @@ except ImportError as e: print(f"Enhanced analyzer not available: {e}") ENHANCED_ANALYZER_AVAILABLE = False +# Import progress manager +from progress_manager import AnalysisProgressManager, progress_tracker + app = FastAPI( title="AI Analysis Service", description="AI-powered repository analysis with memory system", @@ -64,26 +67,62 @@ app.add_middleware( # Global analyzer instance analyzer = None -# Rate limiter for Claude API +# Optimized Token Bucket Rate Limiter for Claude API +class TokenBucketRateLimiter: + def __init__(self, capacity: int = 90, refill_rate: float = 1.5): + self.capacity = capacity + self.tokens = capacity + self.refill_rate = refill_rate # tokens per second + self.last_update = time.time() + self.lock = asyncio.Lock() + + async def acquire(self, tokens: int = 1): + """Acquire tokens from the bucket.""" + async with self.lock: + now = time.time() + # Refill tokens based on time elapsed + elapsed = now - self.last_update + self.tokens = min(self.capacity, self.tokens + elapsed * self.refill_rate) + self.last_update = now + + if self.tokens >= tokens: + self.tokens -= tokens + return True + else: + # Wait for tokens to refill + wait_time = (tokens - self.tokens) / self.refill_rate + await asyncio.sleep(wait_time) + self.tokens = 0 + return True + +# Batch Rate Limiter for parallel processing +class BatchRateLimiter: + def __init__(self, batch_size: int = 10, requests_per_minute: int = 90): + self.batch_size = batch_size + self.requests_per_minute = requests_per_minute + self.batch_interval = 60 / (requests_per_minute / batch_size) # Time between batches + self.last_batch_time = 0 + self.lock = asyncio.Lock() + + async def wait_for_batch(self): + """Wait for the next batch slot.""" + async with self.lock: + now = time.time() + time_since_last = now - self.last_batch_time + + if time_since_last < self.batch_interval: + await asyncio.sleep(self.batch_interval - time_since_last) + + self.last_batch_time = time.time() + +# Legacy rate limiter for backward compatibility class ClaudeRateLimiter: def __init__(self, requests_per_minute: int = 90): - self.requests_per_minute = requests_per_minute - self.requests = [] - self.lock = asyncio.Lock() + self.token_bucket = TokenBucketRateLimiter(requests_per_minute, requests_per_minute / 60) async def wait_if_needed(self): """Wait if rate limit would be exceeded.""" - async with self.lock: - now = time.time() - # Remove requests older than 1 minute - self.requests = [req_time for req_time in self.requests if now - req_time < 60] - - if len(self.requests) >= self.requests_per_minute: - sleep_time = 60 - (now - self.requests[0]) - if sleep_time > 0: - await asyncio.sleep(sleep_time) - - self.requests.append(now) + await self.token_bucket.acquire(1) # Git Integration Service Client class GitIntegrationClient: @@ -94,20 +133,34 @@ class GitIntegrationClient: async def get_repository_info(self, repository_id: str, user_id: str) -> Dict[str, Any]: """Get repository information from git-integration service.""" try: + print(f"沐 [DEBUG] Getting repository info for ID: {repository_id}, User: {user_id}") + print(f"沐 [DEBUG] Git integration URL: {self.base_url}") + async with httpx.AsyncClient(timeout=self.timeout) as client: # Get repository info from the diffs endpoint - response = await client.get( - f"{self.base_url}/api/diffs/repositories", - headers={'x-user-id': user_id} - ) + url = f"{self.base_url}/api/diffs/repositories" + headers = {'x-user-id': user_id} + + print(f"沐 [DEBUG] Making request to: {url}") + print(f"沐 [DEBUG] Headers: {headers}") + + response = await client.get(url, headers=headers) + + print(f"沐 [DEBUG] Response status: {response.status_code}") + print(f"沐 [DEBUG] Response headers: {dict(response.headers)}") if response.status_code == 200: data = response.json() + print(f"沐 [DEBUG] Response data: {data}") + if data.get('success') and 'data' in data: repositories = data['data'].get('repositories', []) + print(f"沐 [DEBUG] Found {len(repositories)} repositories") + for repo in repositories: + print(f"沐 [DEBUG] Checking repo: {repo.get('id')} vs {repository_id}") if repo.get('id') == repository_id: - return { + result = { 'id': repo.get('id'), 'name': repo.get('repository_name'), 'owner': repo.get('owner_name'), @@ -115,13 +168,20 @@ class GitIntegrationClient: 'local_path': f"/tmp/attached-repos/{repo.get('owner_name')}__{repo.get('repository_name')}__main", 'repository_url': f"https://github.com/{repo.get('owner_name')}/{repo.get('repository_name')}" } + print(f"沐 [DEBUG] Found repository: {result}") + return result + + print(f"笶 [DEBUG] Repository {repository_id} not found in {len(repositories)} repositories") raise Exception(f"Repository {repository_id} not found") else: + print(f"笶 [DEBUG] Invalid response format: {data}") raise Exception(f"Invalid response format: {data}") else: + print(f"笶 [DEBUG] HTTP error: {response.status_code} - {response.text}") raise Exception(f"Failed to get repository info: {response.text}") except Exception as e: + print(f"笶 [DEBUG] Exception in get_repository_info: {e}") raise Exception(f"Git-integration service communication failed: {e}") # Analysis Cache @@ -162,31 +222,56 @@ class AnalysisCache: except Exception as e: print(f"Warning: Failed to cache analysis: {e}") -# Content Optimizer +# Optimized Content Optimizer class ContentOptimizer: @staticmethod - def optimize_content_for_claude(content: str, max_tokens: int = 8000) -> str: - """Optimize file content for Claude API limits.""" + def optimize_content_for_claude(content: str, max_tokens: int = 4000) -> str: + """Optimize file content for Claude API limits with intelligent truncation.""" if content is None: return "" - if len(content) > max_tokens * 4: # Rough token estimation - # Extract important lines - lines = content.split('\n') - important_lines = [] - - for line in lines: - # Keep imports, function definitions, class definitions - if (line.strip().startswith(('import ', 'from ', 'def ', 'class ', 'export ', 'const ', 'let ', 'var ')) or - line.strip().startswith(('function ', 'class ', 'interface ', 'type '))): - important_lines.append(line) - - # Limit to 200 lines - important_lines = important_lines[:200] - optimized_content = '\n'.join(important_lines) - optimized_content += f"\n\n... [Content truncated for analysis - {len(content)} chars total]" - return optimized_content - return content + # Rough token estimation (4 chars per token) + if len(content) <= max_tokens * 4: + return content + + lines = content.split('\n') + important_lines = [] + + # Keep important lines (imports, functions, classes, comments) + for line in lines: + stripped = line.strip() + if (stripped.startswith(('import ', 'from ', 'def ', 'class ', 'export ', 'const ', 'let ', 'var ')) or + stripped.startswith(('function ', 'interface ', 'type ', 'enum ')) or + stripped.startswith(('//', '#', '/*', '*', '