From b8448d8b2d1d19a37b1b7ee31f1365d45807e6ea Mon Sep 17 00:00:00 2001 From: mannaandpoem <1580466765@qq.com> Date: Mon, 19 Feb 2024 16:20:56 +0800 Subject: [PATCH] 1. Update zip files to maintain consistency with TASK_PDF_FILE_REPO of const.py 2. Update prompt --- .../actions/write_code_plan_and_change_an.py | 16 ++++++++-------- tests/data/incremental_dev_project/Gomoku.zip | Bin 25822 -> 25572 bytes .../dice_simulator_new.zip | Bin 16807 -> 16549 bytes .../number_guessing_game.zip | Bin 15150 -> 14844 bytes .../incremental_dev_project/pygame_2048.zip | Bin 20336 -> 20066 bytes .../simple_add_calculator.zip | Bin 15141 -> 14831 bytes .../incremental_dev_project/snake_game.zip | Bin 19434 -> 19020 bytes .../incremental_dev_project/word_cloud.zip | Bin 12634 -> 12368 bytes 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/metagpt/actions/write_code_plan_and_change_an.py b/metagpt/actions/write_code_plan_and_change_an.py index f14e10ea5..7d40d0695 100644 --- a/metagpt/actions/write_code_plan_and_change_an.py +++ b/metagpt/actions/write_code_plan_and_change_an.py @@ -18,21 +18,21 @@ from metagpt.schema import CodePlanAndChangeContext DEVELOPMENT_PLAN = ActionNode( key="Development Plan", expected_type=str, - instruction="Develop a comprehensive and step-by-step incremental development plan, providing the essential " - "changes to be implemented at each step", - example="""To implement the new feature, we will create/change/update the methods in the calculator to support subtraction, multiplication, and division operations. Additionally, the ... -\nHere are the steps based on the order of 'Task List' we will follow:\n + instruction="Develop a comprehensive and step-by-step incremental development plan, providing the detail " + "changes to be implemented at each step based on the order of 'Task List'", + example="""To implement the new feature, we will create/change/update the methods in the calculator to support subtraction, multiplication, and division operations. +\nSteps to be followed:\n 1. Enhance the functionality of `calculator.py` by extending it to incorporate methods for subtraction, multiplication, and division. Also, the ... 2. Integrate new API endpoints for subtraction, multiplication, and division into the existing codebase of `main.py`. Then, ensure ... 3. ...""", ) -IMPLEMENT_CHANGE = ActionNode( - key="Implement Change", +INCREMENTAL_CHANGE = ActionNode( + key="Incremental Change", expected_type=List[str], instruction="Write Incremental Change by making a code draft that how to implement incremental development " "including detailed steps based on the context. Note: Track incremental changes using the marks `+` and `-` to " - "indicate added, deleted, or modified code, and ensure compliance with the output format of `git diff`", + "indicate additions and deletions, and ensure compliance with the output format of `git diff`", example=[ '''```diff --- Old/calculator.py @@ -197,7 +197,7 @@ Role: You are a professional engineer; The main goal is to complete incremental """ WRITE_CODE_PLAN_AND_CHANGE_NODE = ActionNode.from_children( - "WriteCodePlanAndChange", [DEVELOPMENT_PLAN, IMPLEMENT_CHANGE] + "WriteCodePlanAndChange", [DEVELOPMENT_PLAN, INCREMENTAL_CHANGE] ) diff --git a/tests/data/incremental_dev_project/Gomoku.zip b/tests/data/incremental_dev_project/Gomoku.zip index a110ccdd227458dcd40b9ee242418da2184c60af..5877b8b81f9b495258c758a3d667d4fe63359ea9 100644 GIT binary patch delta 562 zcmX|8&1(}u6yNuXHpVsG#%+uyt_^9EGD-_lP&8^R?%FmMQdhxjw)xtEAU!Bj5L&U& zgB}W+{{9Cq;z5cC1x39`@zj$NMLj4|=vfd%oZTkQFpuBYdkiyQHt731dbHj(U$mPq zvulUx#f7fYq>T?|j?zdKblk9damq^2XosyWTCFG^l&1YAd@h~9!4o7qQPgS?^6;yCmRD8$R5SmLJ8pz7;=X&D zZ};H*(ImdPf}iZbq!z`~iVADS;DuP=ZpY$*^jJ#Qj6m8j^gz0v(f2CB>X&r@sfx?n zLPmzAE$A&iRxE1bNOg?=0Ej)kh=WFEKj2k@#YXbD@@Ji8{InTdVGx}pcu{8ws~ z6Wlb>dv!mSYe_8~7=F>@d2NE~1KlIVg5QL5R;*{V9U!G&B3i8vBI^xnnYO&sw>cgR zyf@K@mAc@*i8jsRlc(Zu-QbnUKw4^O7@Acv)iC&dN4i8~(7ZT)Gz85{Wb>QLGOgp7 y9mcXZ#J@W9w&J;duiJsv9-cJ1~rmX`Z@SWym^eD)7WNuxIa delta 733 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 delta 3980 zcmZ8k2|QF^`=1$RvKwOTOvs)Y%D#+2_FYO8*#?z;Yc*P< zu{Qw|xoG6_m7{)*t_ixT^Um|PsJm^u%YX}5HXS=OYJHp@tA9@_K&&zG9>K`9u z)B1?gbnHnJCDBBZ*D=`C6-7zJ48*sUoLkLc#$|nYve{R4h(AY;MW#gwxp|2!NI1DW z4ztSD*<_~HReEdCE(K;@lPgOwFHSYODs`nLBw~*1W=%?dLA0j1IW;5Wy14h@m|fbc zyrDPai_RNpCFZCgfwc1vx_G6vmBZ7g9emI8i?;VX+xXqJH=}NFrP05|Mshfaf5<=U zX21f0LUe6pkpch1mNV%UF5K48Z*8{0OiB${8t5|S<o$1of(*L_xM0VSe+`4fO?f^6CSR z-ps2cdQ~B0?wAOHzO4W5BI1?<T7!`6@D^&|CUJ+`b%@6*< zTV!z$N*}KNNOvmP(c(3ocyJf?Y+H^PFkUe_c|m4DuR6GI8rI(O4Dd)8{|`H^w+9YeY8K~u-8sQF1=a^LEYDQ>ui zl5Mh8s_LJ2}Z6lghClN0-cTMo3~fYIsmJr1aHfZfO9&w#lpotvKoE zeuvT9T+-TN#=V}FRVM%DVX=>0ct=ony5PzqL%kbQ!TGi>n^ZuLsW8zhA$giKc6wTN zXXoo&Bnsq)vUFV(y_^TZN7ygj?K*F4~QuPzSwk?emfLr_j%9;tm@ zf|V7{^kac6q?WoRv4ZQzz?2wDBqdM8V%^n>qd+lb5PHwK&^8#aY%!eWrH6tGOi7bp zb`!YWo0-7Q`XF*2)iX?WKv+6kHGfIH5M_0H+|Kt_yE<%a+MV@V3c6AP$UwSI-V*dlG zJsq4YS^{IehwBh>^~;ELvO5}RP|1JVsktFymZ=FNnk5xq*0ou**}kfPd{ZX4@U&CM z`Wp!&=0k67d;giYO1u8~$M0MP-HJu0?NfJc=g#$VlWf>`@OkC=m%6_>@mBwoz5mst z#XJw(N93C2^$D5_huWBC0)w|iHMxSE=^Y>@(yJlXh0zK#r7a(#L z2{cL504g$!_{Udu-8f|60@wBv#Dq%$dF`~S$eI2E3esDlh{0ccugLht8KuJRW*gCp z4e~ma)s2|FyTXY|2fXwTRg9aKdhyO>O1tzM{icpu^%oon)8d_zG_z^Dp?V@ojD*=m zdbgdjm2LWz`&29APh<|D>>8}mT7WWd&#jQ5U}l3T{L5zQ9!2zf7uL#Ww9loZQb~&E z^dmV)@;UlxqxpSoIpqyG%JT_=VK{Ueh!YlWF^p|&`#;7JZ?8{&rgr7C0K04MHPIOi=AzUdBWDm_a4nW5P~I9Pw799{VZ2(LoC zeY;foX{vY!O%A?sy-e=i^p6%&+!=klc~A|nHs0Q~(?~p`el{Z0TaW z_bs!U^~CP)pDIc+TGcu8l$snhMQLjfgyO`IzobG7aoz`7MMws-WWvi2&tM+HYJwGH7-Pd!EY;{Y2M@9iLGt3bt-|HqTqp@fk(-a*NT_0`dQdNP7fLa1AD1a;{L?0{4{Y3N-9>Uf zKPJxK*CzFCQO+f`K7eaF4|gdt_Wnj7Ubo-#HI0{)+6{uCYZYKVc&8No+VO~#EEx`! z&qzl080XmziOnC~l*$MiMC3ICw~{sQx3MTLYJQF_e`s)-0Z|n9`(;!#Sua)YFV%|M zSLdYcLU1w+JMV@sGKUI(9t(hd=g;4WstZJ?vww)VTd2Z1{0tNe4%Om|c(~n9k2h5K zUJ2?Yi*5Y=n)Ao?GG_AB&Pcw-^=WU6+?TncdPSK;{JWCc3V*97GYHqSlVXId>(IxX z!c19BJ5v#o-lb~iT7PBzM3H&YWQYcM;kJC=4#Do~*1oKg=s7$6d<~KQ9*jOLg-Dn` zKGW5dtt$5UOl4q*Gm0ukfU*B^X&!z^DNG(`%Jt?qSx5|B;m)%g1|hN8@1py1XJyhC zL>4>{(`{l4aoPxoe0%wC-yTYs#YGx*jS*AEm<0En5J07qX|j<*@&#Bo8MN-X^$4s> zlwkmn5io*L8;6E>lBt?UV=Z-1!1)?!!su-^YJKWrYWnnAm1|JXX$V(iIi4~>ia5eM zw`UXx^tiacGDj5(8JRRCGZEVK?;5GCAEe|K%?YDhQw^T8wAXfa|7Wk*s8H~|2$s7k z_{)E+Gnl`qGx8*KgEb;1+RSa-E_>ALT#H{OzT8zV@syaBh~!^W&3GfY!TdFUfoT=b z;T7~TXkwJsq%X9t$?5Ua2YmP++$}{o7=_+bs3;1Aeb4niul&P{QbtjVn5s!ZmuWp0 zBhJEs)(X(q?A;ie2=%WwUS4M-umwIA-i{~2ov7D7Rbt9`=5kgoNks+&^lbQ>%$sF~v-cuiWfeb^O0`rXnB8>D+rjnC z#633*O;huYk@1tOoR_jBwVGMmu7B;9 zAT9zpJ~&tqICqu>2;d~AwR5vS&KEu|E;gRd4i!y^SsHTT==5tq5uYX)eQbpQRs^Vk zTl@?#FVsoq0c;czVC;VrV6O@f{y;cj#m5Rpo)EO&4qo2YZa&`bKHgp^VD(Z3Kqm(W z-bxw$&!Gokl*S?d+PhMKKpMwM>`y@+KS*T2DiQ%K%P=0NGqF?S|IK*+Z_G;ZU&bf7 zPZ8oq_pb^KCI<>-E-|52$yni&3NZ^%kO#u@(=iLwl*4(pcXfY>9B)$A}MT`+_R z1l;07zy<%j^SFi|->Ikk-=0j66N5~g>H#e|aR?jBNf$tZ92Rni^As-2$w9jQz-RJw zz?Kpmu$5MC38#0mv0ZAZsU35_ly?1Gp-1L+wC_8$riLLMVE{y$U#MjS5r zSEF%()86(3SO8HaA&9u(si-3;2=rh$0iqHexE(mBj6R-~2!uiSl)NC!drIP!=^*+d zr>atAaY)o3c%Y1djH3W!6(oQ`Qvf)O2$&a$$2fr50V5UhQ}0Nru!HT6B`nabNOcm# l@RKqADJL_8OC9@&neVUIGtz~^PAqtjFSX+hl7ZBT^nWf}?JxiU diff --git a/tests/data/incremental_dev_project/number_guessing_game.zip b/tests/data/incremental_dev_project/number_guessing_game.zip index 9d192c1e60e5349af5a9d4a1928975a5c4fae238..f5d983d6cc41eb11b4e0357b6899ee79ba05b7cc 100644 GIT binary patch delta 780 zcmZWmL1+_E5Z#@)wj^~~TVsenf4iGXF&o_MPrBPp@DvaVJv5L@w4$DR=s^UFRM0~& zUXwaU4_Xk#i-L=nqM#r`)q*!qV(C!|=|x0P=-ZY&}ESH`}%tTo^ zhMmf_&@66N#9X}O5TuTd4;))|@V#?YUPOcW!pb5e@&}G6{$wg%X=wP0oq_ZSnykR7 z^Fs8)CGa^dD83kWsuql9VtCdV-b9kDWGjtFpH6UL4tLZnYPB)ZZn8#TT#acHS85h4 z4WNsA9Gc@vwl#ABnz^LM<_rVKCou0a_;v_a-3r_(i0nJJka&L+QTs+3sW*1SFdH)b zClZIpxa(1^87F1Q;L#iv&BG+W4eoi-LH~IKiiSw-8&W&_=BUfn2aO6j3^NP7`QYVc7|v^2P>FBIxY z)PpU*^df>NSUi|ZKtzZX4~0sFdJ;Scdh}Ag7j$Me&vq7u|MC6b|IatGyJq#q@`lZ| zlwaA*dii?nH0oFhxGxN@>^OoK7cR|}%*FZn^VhG;ncDP8o4udm);`8+9QVaxqsCXK z-A)bI3?3#`P;fhHJ?<^cV&6QI3=|R8ga+t{K)@XhL3T^9l$Ap54n2s@bZ_dH=MF|_ z!;a7dor$72v$h&qW#lzY-sbj_?F1zFqxOO}=7ZiOUz=9Wa%_TXtZdC2O}w@upH+uF z&^*#!5fs{xugsa1(!ye;yjU?|Yvclz40LT0-eg2B0S~lfc%Mid?nf<|;I<}lN8zUy zg?F0D-6YmI?j;mP4W>rfkg(eY3qC1h2@R?>f3Qtoie%p3G z2>rmPReagkD4fL){Vk5~X&p}mT5dk0QHx315|2gOcora&8#co9+N? z=PcA;f;z4cR2s&|hVf%+>hMJIK_qW!R3DS@?-=9x5p%+OO@KaQ2q)t#6p0T2pRB}1TZOjNqge@G*Ef2{LWlE2d7 Pq#&7mpWFzY(x~?z$m;yX diff --git a/tests/data/incremental_dev_project/pygame_2048.zip b/tests/data/incremental_dev_project/pygame_2048.zip index d589a59b35b7b7bf5190f5123236fdd648498da9..35cd7425968d8210c9236e384a3708c7d8a42b53 100644 GIT binary patch delta 562 zcmew`kMYqQ#t8?QD*}Qi9@g2c%lKHIxzHT~$p(fhj2e>_4J9Y%dkao(FqCGr zgz+{XH+(HP`K5ChNaJKD7n{klz5V7*_&WfsC(#r26D+e#yyuJa{JmbC+X!DmXdOU2SrzkO)}ly0i!n z0~ja($$n|DB)^OhP*RKOkrI$AHJQoNjOm~%m>J?}$fTzQW-jzJXDWs;zW_yd>VQQZ zz4RITCKq~XgF|Y*mo(D}gUJg`Bqm?+k`d5=*aRd6fcOtY0u+8)-m(IgP)SAx1t81G z5UdL%+30P<^v4*;)t&stTZ_rn1jw|X9Oow^pa#_fG4He~Sc|=x(B!o~8ch6VVD5V# zAEw>rV5YtW+vI3p4W`c!?p$AcraD`Qj2-9X|GrvGyJ1{up!r%%Qubik3-)}IHvqXY ZFs{5yu-!7P~Z&W0RR$eseAwc delta 700 zcmaKq&2JJx7{+I&wU{meq?q!lSW;WIk_C$`B@k@*-fbiCU>Yw3D;gUKMBv~}OpFIV z3VA$uAb9ZVLE^0kzk1VpX!s9IObf*0#mCTE1D#SL>xx;ohBMRYF6scl$kQXyc&=&jlCC!BPD7+nJZ3 zC3|TVivb4<9|i9o2X;@P>9@LUgpkVp+l5jwf6*TdNws3NmM_<9m3oaQt;AQ&a1c5^lzHTpB|!vA}NW(9oTO zloZ)(6@%O)vJV2b1uJ?Sf2ugcRVPv@1M3<<&305$BHK~%JU(;u8a4D8ZSbW<<}vdy z%u$b5=`-w`LtFikjxe`}qaD%A9P3YNxSk2nyZDs3O1u2+fRqi;Unpc{x`j8{8Lfw% zq=StFPzYLKl$}N|@6%wI_!LG{7JXGIr%+}g7OtEm2knWK8|2I8DkJ2{F!vn!DRFaZ zs9*3?*pMSE669%pm{dgi2sveq33FPV{v|VZmkl^j?Ci?1WI|{u!Vc#($KL!1UMx+s z*^m}ag-&BjcH$53{`;sVNz1eBaDaPJ2bzi#Pk9Tk$F$XE%)r~O$G$R*wU|k-ZgH@` o_OanC&!|@qdr`d_gQ5QN+xUMjN=`X3qFO!tsS1Sba5Eu)0eyeX!vFvP diff --git a/tests/data/incremental_dev_project/simple_add_calculator.zip b/tests/data/incremental_dev_project/simple_add_calculator.zip index 945e2af5dc2e3c61c19ef5262f64b9c56ffb5b38..57975c8f30bed01577c3e7856780c5805682dd4c 100644 GIT binary patch delta 680 zcmZ`#PiWI%6i;63I%Ainu1;-ZlUk6HHEGhMX*;JPf{N`RYzK>T;#q_Z1U(I-tYH*@5g)J%lo_cn!iG` z-o*TGclj>=HX3?xZ2}pw#uqUk&!Q>D<$_lWg%cdd^>aVQ^u|DAd_PSbcPY$XN3{G$ ze3!--t4nOVF#GRQmy+_F@9JirPk@XV4`wn?MY<43g% ze20%M;fyWduO-Kd2Z{nRMJLY|=PAMcXZ3aiANbzz8}QsUq|yPS4JjCB##WHGHOj}^ zaFP~}wo?JS_6TkFLJ3pOD18|0Dw>Hf-a8ugCwi!3SaRhBQ>3|*UG`@3FdmjP`qWFM zFzv_-u1Hr?UEx|v!Z}lf=O*cCFYW*OS=vcsvtl4p*6`Uiv7(5WF6U@Y3Fs9i3SCWN zr>xP1(*bp*Ql|B6kiM>1yorld7eiHzf5fsow2@<_61J)i)rSMsx8W$pM{@L{0|lJV V3qxM*P@n&U8Fpu*953!5RPn delta 736 zcmY+C&1(};6vbz5OlzCWbkd|HA2lsAlIk>>nKaW$QrbqLs8|ZMD_zuJHK0O_I!O^x zh|4Yn&5>*cMZ|T%WkGl1LU%0+rEaSDQLX=g&P+2QeQ$Gq_nv#X@A7_|FIFD?@EG;{ z<6VRMI-fevxCeV(V&CP;l~U2HmCKiIUn`j^v_y1GXP@~onGmqU&ERYz+TeR}h7YhN zF7PpS7GHwWKCivvU&kY!Lm{W-f#z03!bx9*tCq}au~MtvtW~Y{OQ~gh7Q9WJ!hKC( zWki&uzjFu(>0yKwo|akcXcSjLAqE%uL1DJFQI;98)bqB>T3AX~8sj`k0jKhMU;wAbWm<7@6#w)gY+8<;e#g<9 znIt{v$WQ$O?qsG&2syZ!QD|{r%6fs_z#Bb@rY=)F>f|5lJ@}}WgmE}N#i2?w`x zN083R^xnldkjs#Cyp=si&9PRUh;sfIeRpvLAM$>fT2zo)J7gHaQZG}sUpnx27UsNN Pwn?(?D9140Qa1euMG)fP diff --git a/tests/data/incremental_dev_project/snake_game.zip b/tests/data/incremental_dev_project/snake_game.zip index 739c2a1d1abc8981ca297596eedeca390cb66216..2c7b01b7c54d164a9d8508b5bf7cbdcca6f0a3ed 100644 GIT binary patch delta 631 zcmY+AL2DCH6oud1XcL{uWG0Di8f$DTC3V!KHC@y+G?SUkq?v&>(iF1mwjfB|yKzz6 z)s!Q+2~_b9h*6k@3%hb7sNhnFt`v6#1r;jJye5_K;Bmfl?z`OkzCRM)J`~z7LpzQ2 zJ#VQyCwNlmeq$YFaRM1rLPAbamO(YgaLZIL1$8)9tn zq^jGIuTfW2H*R#6 z8LFO$^H%TUajaUiv^hWp`&NnC37-D2a`fg{F4<*zI?mmmeFhy{quu~5^3punt;zm( zY4m%5bt+|Wm`~x*cejt_T3teAMWbi`ac@PZ%rq|y(%y6uVqK%rD}8H~nt5MN;kEA` z%=z*>!cKv9uJeMXGf#yDF87^zp@0O<{#g?l I`??&^KUYqtt^fc4 delta 806 zcmZ{iO=uHA6vuZaH3735H#ALR(_|YPY}_^pX-mrb(cNs)CNY9NRD)l{&@5IYAGisK z2rYsaK~SDh#E&W{cucNA@s5ik1wx|~sbas-K_D~jPe((L?y!YQ>-d;yv zXVKLcChekhZE;VJz%YznE}YTwrwS!4Qmjnsk;zI?%j@-0sc`nRrbpm{rSs{JMb>m^ zsvn+k3JSt^ZkJh)jAu=4Fs(X~WF(NjaKaYCC_n-?yS@j!=e!G-`FwcD)aD@b7^Y|D zQjS7vag%+Wi<+j_@|Ak6TCb7uUq*6-veU^+d@meHvhXu* zf~sP}fljE7c0+Ph#3v0rjwKJ-+z|3`a982M;^A4tUDNgXRnbQ}81wjT&JEsQ!^~I$ zulV5JfEyZPF&q^rhEfOc+>Tb3g}KxSp6y!;5BIs@V2Xv_v=4uX&~!dMh}9^?N9hlo9dsA(~BPqWG0Wu`F5O22mdFrePy9jBoCx7~a42D8deA^Y_$rZ(RG7y!q=I T&u%drl{?87BlmHK)H2L}#n7Mg2e>1yzQ?WKaQMgSPJ^Ef8&tT)3QuG3hj7hWc>jIJ6BXP83Fa zA6xO^(btT{c86X15cfAB=o%RIhXX_&N|G{uDv-pqYvE9EEM>SAQB)r;V;+NIh%Fc> z7*TACK6-+CA(Ha9Q@>UE`fqwMkPAi8leT%PT&21-m>Q_*Hqs3|UxrDU&HusAOqPo> zRL;{M*wZn4e^M{k%Z_aQ gTF7-Wo{(uPo^yijx9HbQXCh=1n|xIf;^`fI1HXcNy8r+H delta 600 zcmcbRa4TuT1?G?j%ZZn@C+BbrOrFms!jqhzk{VxJnwy(glsQ?7TXymTb(YC4j3S%W z7|(G|KEoz3nT6YUaw`}APX53v0p%-di)`M-eUo?cZY}{S z2?hp+^8BKd_~e}Y(iHuY)Z&u({L+$w(vr#2+%lUNOTOm?xnc5Db?eDDwFDUDCqGnI z~lJ_ry1 zQc>KKKk|x0{c%Q1R=^S_%b);cEkKr5)V5*z4iPw~EjqbdTZ_q_2dw>^b|B-$$qG6_ zOd@