From 865f86195e04e051e1d6d11df7fba89d406aa4c2 Mon Sep 17 00:00:00 2001 From: Yvonne Yao Date: Tue, 8 Sep 2026 22:07:14 +1000 Subject: [PATCH 1/3] docs: sync latest architecture diagram and guide --- README.md | 6 ++++-- docs/ARCHITECTURE.md | 8 +++++--- .../memorydirector-architecture.drawio | 2 +- .../memorydirector-architecture.png | Bin 182242 -> 181042 bytes 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 6049969..3915c94 100644 --- a/README.md +++ b/README.md @@ -41,8 +41,10 @@ Vertex AI supports media analysis and constrained storyboard planning. The API validates the plan before FFmpeg renders the selected source media, with optional original music from Google Lyria. Google Cloud AI is the product's only AI provider. The official ClickHouse MCP path checks selected-media consent evidence before rendering and again before export. The separately deployed -ADK / Agent Engine planning endpoint is shown below the main flow; the current web -interface does not call it. +Google ADK / Vertex AI Agent Engine planning endpoint is shown below the main flow +and is labelled **Deployed & smoke-test verified**. Solid arrows show the public +web path; dashed arrows show the separate Agent Engine endpoint. The current web +interface does not call that endpoint. [Read the architecture guide](docs/ARCHITECTURE.md) for the workflow, module responsibilities, data boundaries, and verified limitations, or diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index b0ae42f..4c83123 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -27,9 +27,11 @@ return messages and infrastructure connections for readability. In particular, Gemini and Lyria return results to the API; Lyria is not downstream of Gemini as a separate autonomous agent. -The grey strip shows a **separate deployed planning endpoint**. Its dashed arrows -do not mean every web request uses Agent Engine. This endpoint has hosted smoke -evidence, but the current public web journey uses `/storyboards` directly. +The grey strip is labelled **Google ADK + Vertex AI Agent Engine · Deployed & +smoke-test verified** and shows the **separate deployed planning endpoint**. Its +dashed arrows represent that endpoint's ClickHouse preference lookup, verified +through hosted deployment smoke tests. The footer distinguishes this from the +solid-arrow public web path: the current web journey uses `/storyboards` directly. ### 1. You tell the story diff --git a/docs/assets/architecture/memorydirector-architecture.drawio b/docs/assets/architecture/memorydirector-architecture.drawio index 91562c9..8c920d4 100644 --- a/docs/assets/architecture/memorydirector-architecture.drawio +++ b/docs/assets/architecture/memorydirector-architecture.drawio @@ -1,2 +1,2 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/docs/assets/architecture/memorydirector-architecture.png b/docs/assets/architecture/memorydirector-architecture.png index c5b88e0a16acb210d635d1c02d02a373c89d0c2c..1d93c1364b7eff07ea00713b162fad96c4cc3470 100644 GIT binary patch delta 57900 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 L{>>^iyFdN|+S}Fq delta 60195 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

|h@Hk7S1kZqW|->j@G9WAYs%kc*B z3v%MSUfYoyo4igZFgypU_I42@QfU$CJL2IYDH&)rJqeo7Kn#tFST3PsxU$5W!};hP z^U3*48#GK`AC@9paitNM*3;87T~RSSG_+u^Ijo4Tp`ihsqB>sB#eh71sd)pFyVa zBGJ!AMgq_7`>Cj~&))GB@Bz-OdSR|NuP7{>9?pN~@|cL%V-DMd zYMc?*b9#cGY9_E2e1+_g38rgdrbqN*z)P?(m6xHoWLfcj6iXSiqmv^%fjisVw0*FN zCdb28%d;n4Y@I>Y`cYA8S1Idv_IPrvtp&K($&uUAbMO$awk$`E_e}a9^z_nyfu6W2 z%E^W4Q<82x5K+*+sy%nT+~)hqvhS=VVO9d7VxwA01?{K~G@wa!Lwm0BR%uhlF|t zv$D}Dd7{hDjj%-~)v652j2iDlo1cVqSr`y_Q@Z9LQMrv+H&b* z88pmHHV6KgOB@V~z#!H48lG26saHO{1_r}|$Q@zS(2>DGg*B9CRZ&>rR^D(hcC=2A zze%|a|70_;so=3lZc?`QRf@?@fs0F>t%42Y5b*MOetCjtWo_J4_YsngiP*mm3t~y; zC4EBO^PMLmEk}3Uy0G#4Rr*y+UNMOY?>Bz#YPU(LhReh@{X)%a|4$8{98p)jz0l-d za74f70CIp{8(H&-^e+?QM}XbJpk z3N_+uH2PjWOpuJKs9J@7g?6jaO3=~~5%V%zYiQ*C z`9amFq2}n*_vM*EDnRm$P{56omTLG%h@R~(!f+~}dmfkJ3*?9MT%fA791yv^`ylva z{ggS^lVWUU>3N zP-!`BySM^5xqs>@2nL@sO%DFJ(`a_Ngn4G6)DMfh7EwFok@p_Jo)hxcP&NL6FEu~n zb~QXbmoiy{j8_d24y1?1LR+gOP+|VG?VHnfnSFHl$3E?K(oR>8nGp#aISb1m>EF$F zVg0&|`yC_YwM#G{4X#;f_2K(=c|jfPx@=lMHTJYLh}vS+Dl>x|`CFsP_j|%hi>u&^!Tz~sF6-ad>&vkZ+K$2m%r9zwg*V4k54%qz-mhTPCigxb$NUo*km~%QpoNnCKI8BJXLJZU|yD$ zDsFC*aSk0_x8v0Dz&kQ5nQ*)`Q9BPTiaUQUS@XyRW6O=@)e3mw8T-Q-Kvd@$qmJD8 zujD*niha#LwgPn&ztM6|!Y-Cr-C$W9XUK z%+&QQ9*8zF@k1#Nsto=Kj#T@<<{O7eGKhFfJ$`>)e;8Zsc`P)P^iEs5{=QB9a96ei z@VnLr3{;yLe@{jw+%H*WOe(3g=5ZdmYeL1r;15{Soep{iGk5|npCI|Hes7_|qhn!G z3f~;a(i6H^{@Ans&Y+Xlsw0e#cUIMfe;7J5o6{kZl7gfFMcAsl<=v=Lov@In=y%`F zUWVUdyY@kAoB8@M3>{EA7?#P1N2o6Ri_RhhaDgaq+ZO$PMmLw9qSh%z(K#)-s1|20;7XMj?_d z9OftX8Pcw?w_ecPeGLpXr%#a*r=?+b3O zt^KTVmB%+2?|VhV6_IH5Ld7ylJMwE#*#72=H||TCAPoG3cou2VVFMaqoRl%D4q}zA zDFm#S`2DXA5*{2HyMewm+f{b^P7UsJTy=E~-Jm);WXP^`@^egH)5*YM;P~NsmVYgH zR}Jhv$#4uMfUee%Jyg1c{Gz(*I zzeux|hB@#1RSVV>ZD@`=k~n`3EwF6b@bK{?)JdWnD555xMwNCqX0c9Seq;EFsmi)C z{r+h0W?e7HV#>yq5)=pvi1Lp|P_@#*?{x`=t?%{`J!Nifof!EArO2EX)vxp+zGVdD zgl7aAm-e*Lu2Kiavl}^w71bXd9RXjDs_{BGOqGf&f!}5R|EulF~Ra~;;?E@NRx^QsAS$o~+S4ZyPWZWi76xpP29iZ_F#s2jAx zFUWT~a_^Rwh!K5Esj#!Cd`iXE9y=F3gBzhAUshR~^lN!ELiSx!y|{=}3ebq8-{8Ex zKa`Fx%Tx$$vZVLaj%I~*hvCO*m+|gJY44XAxv&wj-eS8EitkfLolob@A4N@-q;3vM zgUer7RFr`4Tk0#^017R^@^}2?3&_zRzu}au>;XM9K#9l5zyMotRY)#j%sYvz;mVDo z;mD^GW%7cd3xvGz2B_hAe0+RT-qygYo0Se@s-d;9wjYkyp7ikeI{Hek$o>|G`cvLF zX=1+$JwYH->LQ{blrp@zGpup0d&^@h;VObF59s7OR^;MJ7H*2(NT%*viVf1_U!*)q zB9^M|oSL!)`6P-X4Ama7Dr&AEQl}@U zvb#WpJZQZ#cgyYjeXLdWbw#G!B9+Ghu^b#y<#w(-|`)8xhI7w-x&qYu-{D?UwwBJ^mz60?6yMsC64 z)y_Ja-9!H}{Q0G!8@WotkvZxI4S+var`fmtjT)oJ4epFP>#i1^Y*mK^d-{pKKrYm5 zAU~s36B%ccwp*D$-@&-WIY;Cx>*~7h=1#fC?BCzpn+q&qeC!aA+!_A*xwoy?D`hIV zK1YZ#{bsSBBB68l7*Bslkk8>5A!ucu9^}16KALCe#@}7Z(W;g1uzRUI6jz;n4f%5$ zH7d1c&*!sA3%TF3m!nSglC?jJ%)k;gb#?jnj{ znvANEzk}h4i&XaZ_eTZ%jn3Wl28z2t^QSI3fxLhYk_YFn19JQtqXa@*kQl%|G!&agyJXYM15$+ihq+pBL|({G?2&yz`arB(j}Gwv_FWUh5dQQ)dG5l5nI4AkOpdCY z`nXnWRK_)5X(%)_62}JZtik4U_p$<2Z*8B)}&FSpvhxa@xKyj7L-w2B-98 zlEJ=#rJIUUsgDP*3P$@sKpW~+Yhc$T;=TZ^+rde|?Ox{BNs;c|C!vuH?tD;ty* zIwdXTR#N8P*4f_H9x(ZM+!*#od)Sf-#=Fvmg}U0iIV4 z;txC@$!9aBvz29i2}}p;XjiFQ=SXo`L4fZsDvFm$^$@`}rZ4Ix9s`GXrDx`xaw3go_y>eK_uU@)O`txsc9T;Tdm*ukZ){Vz(TRRxM zEh^wf^Nq5`?*RG&qD4KO*ag+nZ!uf(b;_%bxh~VuW56*=dphZoQ5h;<&Z0B;%3;AQ zTr_LC6{&aT88071kNvL48y4Q8YG^b((6js49=|@3Nsh*u!r^3yU7UfzIoY6_R!W;QInXgM%wbCCvc7QB2ArS@k-#oF37xG_f!gI_s z7+wH%rW2|JvCT2bwefVuJ0BM$qQA5(i0vBywNzJbk(qm05>mZ`MH(xh8FU*oReUhA z4g&FMy7uL3&$}$@r0QZc_Wc6vZH9@xOgUOB#4Soynw~#394Jze@EIx?hqrIsjgs`Q z!=M6SF4!UwOLHFSbDg**sha|s)md%NZHnW+^3iy-)owG3!7-rye6?}vsn%_G-Gg6# zUW=h~vl-?9eqjT*{D5_Oewmx~C_t;YWCOl0le}jgPKUQdQ{RS>+P+!(V-;UKX=z`H zCa(h61LrvVt9kzQ-RL;s`AQjO-v^NDzoSa?nKJYJdnjB^18)^&(fdh^C(|)|WOm6T zWmAFl`x7gAc-<`u*7{?Y>z45L3QI{v^WOb!go5g7m{weI8|rM0JociVSTYe_qCXcL zBR*NoxIr?}HgXl<8*9f6_kB@r5lA41B*r3N*@p4cC-hAXo*jka4~EjZq3KXcACKN1 z8Il@Rdx=g)sacd}+Z)vBT8ufZ*1bGEZbKLp6Rv$Olh8Hc1jMmYHSxIU!fQ#&m<7n< z<_$4qnQ5lHIcux-a?YrR2G3d|At5H&Uy7Vq_tA2XJ~4J$E}U?oeM1YAgi@6E=0diq zm^!>no3elV0J`?_Wvz%`o0ZC%PToC5xqyD4L?)ZMFkE$zx4LDHY~qt89-H?iuaYVukd)GT8~pFAiZDhJm^cj=0f}dV^dOiBd6dZt7G=6 z>6qV$cvmL=@cTM?1`auQ35YWG4%`6JMxne3SGhTW48z^aQJqe&M(Zz%xP)RwvZJF2 zl(l9!tj*D`-z-*1^Vb^i4O`r@W^SavoB*QsVniHx#tSJvvX@CNop0JeTOCOWkrW#o z@c7XTOGA12U5hO5{r*Qu6u=~lYg~I(=vRW#S>91#LE8NUkbiimaEh`^qqfC#W;WkewH6|=q{%~y!TjIioIF3j_wC%Tz)>kP-vRvCxf*a zKi+qruINP{)=NJqViF=5qV!N-zo!LDF*Z~&*PTX}OLGiM&w~iO#;0^>aVpjbfe-{T zpB!k>WGM6J!!JRh8!bV_a6i_314(3QKx~ODFHsK-sUwlICnePt(=GVaYsC3INl!~* zyq-)jmr4BH>8g9EkA7#19{|oLg5yy?S9V-{{99DcpV(E?Y;Ou$|~94k#v!p`ze5~b#?RH z1avctkj+PRBRI!Rs7V_@KX+Af)Nu8u1jZ&xVLpWTR}$Qtym`k0(hEsXKgE8!W0y|3 z2M+#QEf>@M{(3QcW>AyP`{;}d3rhp43WtKkM7ByZpEmFOeezf$+uJRX&Kq*=vSaUT zZ1O?I0*2r&Pt2%u-f=2%q<){+%WOUIvPZIWHA_J0%4q;6DgY1&+)0?M2Q6ZQJV|ya zEYgLf=rqdHQ;wW_ zbvLR{A7HCho^BaA^V<5J7Fr%N1lC%fTw^E07$f~3l{7PWuUL+vyQQcZGoDH-f|UOa z&94fbpq6d){a}pKjjO1r0PMadZj9c3Ik^|=Lr)&y=FKKIOS392!ApL~e;dk}oCU2k zgs0qu{aX1erzvy8;mqQ;F6`&R@j_lF6*U|8YGeUe1co9{lm!Ba+c=yR$}$sObu)vM z;i|xN~^PS zv$Lf@rJ?QDUZaB{?Bo#;S{{<}wEelH)^0n3kn!4G#WVeSC2nJ53rZKu!*!z5#-(H* z2J!_J&4EFVWDGY3%y3`=Z;drBdAJ0oC;)XyzpK-gAhUtc=>=0YZG!v6IqYbhuwUC; zVe*EEGF_pMX#0_)ocAHkf#tmsOi_vu9}EQHab7z!tr|S8hp~T2`(!+CxZ^kZ z26(AhtpS&dV3F?K$2hj|SstP?C>XOIqgQO{0Z6`%mX@7`4T3?Jj{txK{m7F7s>z`J z5KQm&=GmPrn+*nHt$-@}wQKII91O-E;NV~}LAdeE8>(o_xr>SC1{fz7WZ%}&Q&^Dy zIy`dAy-Z?Dqw)J4GqZCs5qedr15+GzRWgtY!&Xa7SXJ6AWshyL%6!CiX|iU z^n3vRvbtJ|8b*ai_KWW~#CN{c(?)jHKkH1;JOVB(fh5&1GoE!fHpcf@q03Qoz#MqL zLfPvc5wW#Lg9A%faR9xsg&qb-^F7B*G{7DB*TT$kJV}pn_IPkh`Laay>#*9y{GXH*?2&nx&Cc?G0%vH{yi(s}^# zWdFFkaZO?@8f&Yv7yo|yL(<^XAcU`m(TvtAppciIQBiYvSSnnW>M)xs2kIOl#u8_J zCSp4eZf`RHiQ5dzGWKtdb3vij019BaxW5A+tNE6ccaK0RrPD9zz+T8$LyVUkoYJ$T zK9!jTPD}&!yD`8t%VrTNaL>R1;@4VYR#gs`FEhx0M?-ekrJoCuvox2>OMBjj>GJLF zj6Bb@EX=2B*(i7}rw|OJ5qEs3Wc=ilfn#KH?aKFV$g{yW4U|+&9qujd@D5sJ)|yh=!6oO#oIg+p`zAY^s*8D9d}?=o)M1wiBpp zsInEtrjc5SU7)Rg?t(a#2u23o1;$OY1yF9EC~*1g<7ah@K0Q z{TNeB4Rt+t%^5W6(Jnud)UQDy{imw=##^0Ll(7C$U5yrjSTOqU_H0oU0W)Oh!A7O} z5sI2&NjP)IRg_jEPp+1e3!u(SoQPoINVG#zMrcL_lsyai=+sj$`$03UC%AHyTJL7b zRqN}J7Zu&zF9eAJ(}w`CM66}7UMrsu23>mqDR>lKd-0SvkMz|T(@%Bm5n1iPtd`P5`5y9&){Uoa97{wYG(?_vRzC$Go!MJ$3bp zyjMv8T*oj*;%xaZ&(Dyy_Qd6ak?=H7)a=jk#*5-7b2=anDO!y=9P*TOKE`W4;p}Y^ zP)q)X4FU~9#yYxyvM25`m$)8*z&YPI7cTmPSR>f&pkIt^@97b}b?f{9l$c_}jm&WiBo(c}ngEehio9 zAh>$COgnpnY8Qw9t!O$_i|M@8f`OrdZ?$je;S;e~*RJ1aKQC&r5+d1)9Qiww zKQQw;0)zIp#C872VPQ*Pjf;=F=1&XALOhvlB!7t+6fxxeHc3){udW6~AQm8YZ3`2e z%VQ!nukl{frdl3bgxGD^9ZH~TOrtx+fr(~>DE5!}sPWMeKUniuMaQAaCy%L59MO__ zA2#UeP*Bf5Sps|ASxM>$)2;JtKP!q4KVZ8Rcdp*(_H@-{xuQL>y*tB;^J`}Jz~ET$ zs^>HuIx=_elhyoH4W`wruanPzA1{1!Cm94}pvc1*xtM(|4Do=rG_}X6iY^RH_`~=0 zp}>y7jy9 z-i=)v!v#Fv?rgIX9Y<;I?X_wyxpBVTy*;f5>ZE z9sWao^wb~fqxXK##-)8B+Uq}j@PF6;kDvVKa{tAWe>@2NTg{d3|L Date: Tue, 8 Sep 2026 22:13:18 +1000 Subject: [PATCH 2/3] docs: align consent-record wording with submitted story --- docs/PROJECT_BRIEF.md | 5 +++-- docs/submission/DEVPOST_PROJECT_PAGE.md | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/PROJECT_BRIEF.md b/docs/PROJECT_BRIEF.md index 1dc2444..2fe28b0 100644 --- a/docs/PROJECT_BRIEF.md +++ b/docs/PROJECT_BRIEF.md @@ -27,8 +27,9 @@ Memory Director is a mobile-first web application that guides a user through: The core experience combines a simple voice/text request with selected media, a validated production plan, and a playable film the user controls. The official -`mcp-clickhouse` consent/export path can block rendering and export when required -consent evidence is missing. +`mcp-clickhouse` path checks consent records before rendering and again before +export. Either action is blocked when permission is denied or required consent +evidence is missing. A separate deployed Agent Engine planner demonstrates an approved, read-only ClickHouse preference lookup. It is not connected to the public web interface. diff --git a/docs/submission/DEVPOST_PROJECT_PAGE.md b/docs/submission/DEVPOST_PROJECT_PAGE.md index 5e26b19..56eb371 100644 --- a/docs/submission/DEVPOST_PROJECT_PAGE.md +++ b/docs/submission/DEVPOST_PROJECT_PAGE.md @@ -13,7 +13,7 @@ The browser only sees files the user selects. Media processing requires consent, ## How we built it We built a mobile-first Next.js and React interface backed by a FastAPI service on Google Cloud Run. Gemini on Vertex AI supports media analysis and turns a plain-language request into a constrained storyboard. The API validates the plan before FFmpeg renders a 60-second portrait MP4 from the selected source media. Google Lyria supports the original music option, with instrumental and no-music fallbacks. -ClickHouse Cloud is part of the runtime through the official mcp-clickhouse server: consent/export checks can block rendering and export, and scoped events provide evidence of those decisions. We also deployed a separate Google ADK / Vertex AI Agent Engine production-planning endpoint that invokes an approved, read-only ClickHouse preference tool. That endpoint has passed deployment smoke checks; the current public web interface uses the direct Gemini storyboard path rather than the separate Agent Engine endpoint. Private Cloud Storage holds consented media. +ClickHouse Cloud is part of the runtime through the official mcp-clickhouse server: consent-record checks before rendering and export can block either action if permission is denied, and scoped events provide evidence of those decisions. We also deployed a separate Google ADK / Vertex AI Agent Engine production-planning endpoint that invokes an approved, read-only ClickHouse preference tool. That endpoint has passed deployment smoke checks; the current public web interface uses the direct Gemini storyboard path rather than the separate Agent Engine endpoint. Private Cloud Storage holds consented media. We built automated deployment workflows with GitHub Actions and Terraform for Google Cloud infrastructure, containerized services, public-domain configuration, ClickHouse schema and access setup, and ADK Agent Engine deployment with runtime verification. Workload Identity Federation supports deployment authentication, and Secret Manager holds runtime credentials. From 862c5ba1c7b654e2a2f0643dbea83597534953d3 Mon Sep 17 00:00:00 2001 From: Yvonne Yao Date: Tue, 8 Sep 2026 22:15:21 +1000 Subject: [PATCH 3/3] docs: keep demo script and submission checklist private --- README.md | 2 - docs/CAPABILITY_EVIDENCE.md | 4 +- docs/research/agentic-cinema-link-archive.md | 2 +- docs/submission/DEMO_SCRIPT.md | 37 -------- docs/submission/EVIDENCE_PACKAGE.md | 4 +- docs/submission/SUBMISSION_CHECKLIST.md | 91 ------------------- .../test/documentation-consistency.test.mjs | 11 +-- 7 files changed, 6 insertions(+), 145 deletions(-) delete mode 100644 docs/submission/DEMO_SCRIPT.md delete mode 100644 docs/submission/SUBMISSION_CHECKLIST.md diff --git a/README.md b/README.md index 3915c94..46b7620 100644 --- a/README.md +++ b/README.md @@ -131,9 +131,7 @@ comma-separated, exact browser origins allowed to call the API. - [Application deployment](docs/operations/APP_DEPLOYMENT.md) - [Public-domain operations](docs/operations/public-edge.md) - [Devpost project page](docs/submission/DEVPOST_PROJECT_PAGE.md) -- [ST-32 competition compliance checklist](docs/submission/SUBMISSION_CHECKLIST.md) - [ST-33 public evidence package](docs/submission/EVIDENCE_PACKAGE.md) -- [Three-minute demo script](docs/submission/DEMO_SCRIPT.md) Internal planning artifacts are kept separate from the public product-documentation path. diff --git a/docs/CAPABILITY_EVIDENCE.md b/docs/CAPABILITY_EVIDENCE.md index 2b2a69c..10b5b32 100644 --- a/docs/CAPABILITY_EVIDENCE.md +++ b/docs/CAPABILITY_EVIDENCE.md @@ -39,8 +39,8 @@ Evidence levels are intentionally separate: | Real iPhone journey | Not a code capability | Not proven by emulation | Passed on iPhone 11, iOS 26.6.1, Chrome (version not recorded) | Evidence ready; final recording still pending | [ST-52 iPhone acceptance](qa/ST-52-PHYSICAL-IPHONE-ACCEPTANCE.md) | | Real Android journey | Not a code capability | Not proven by emulation | Not tested | Not required for the Web entry | No Android claim is made | | Rights-cleared final demo media | Eight fixtures and the generated song are recorded and approved | Final 60-second export reviewed | Owner accepted incidental-background risk and approved the complete song | Evidence ready; keep private artefacts private | [Media rights register](demo/MEDIA_RIGHTS_REGISTER.md) — Yvonne | -| Final English demo video, at most three minutes | Script and runbook exist | Not applicable | iPhone rehearsal evidence is ready | Pending ST-17 | [Demo script](submission/DEMO_SCRIPT.md), [demo runbook](demo/DEMO_RUNBOOK.md) — Yvonne | -| Devpost entry and submission confirmation | Draft package exists | Not applicable | iPhone evidence ready | Pending final submission checklist | [Submission checklist](submission/SUBMISSION_CHECKLIST.md), [evidence package](submission/EVIDENCE_PACKAGE.md) — Yvonne; also depends on ST-17, roster, eligibility, track selection, public video, form review, and receipt | +| Final English demo video, at most three minutes | Script and runbook exist | Not applicable | iPhone rehearsal evidence is ready | Pending ST-17 | Private demo script, [demo runbook](demo/DEMO_RUNBOOK.md) — Yvonne | +| Devpost entry and submission confirmation | Draft package exists | Not applicable | iPhone evidence ready | Pending final submission checklist | Private submission checklist, [evidence package](submission/EVIDENCE_PACKAGE.md) — Yvonne; also depends on ST-17, roster, eligibility, track selection, public video, form review, and receipt | The deployed browser evidence does not imply full phone-library access, direct posting to social networks, Android or native-screen-reader coverage, a finished diff --git a/docs/research/agentic-cinema-link-archive.md b/docs/research/agentic-cinema-link-archive.md index e0a85cf..8d66da4 100644 --- a/docs/research/agentic-cinema-link-archive.md +++ b/docs/research/agentic-cinema-link-archive.md @@ -7,7 +7,7 @@ Retrieved 2026-08-16. This is a practical archive of every unique destination ex - The challenge asks for a functional, production-ready Gemini + Google Cloud Agent Builder agent or multi-agent network for a media-and-entertainment workflow. - A project must actively use the selected partner at runtime. For ClickHouse, that means the official `mcp-clickhouse` server connected to ClickHouse Cloud or a self-hosted cluster. - The resources page explicitly includes multimodal video analysis, audio/music generation (Lyria 3), Gemini TTS, native ADK/Agent Engine, function calling, Cloud Run, and Secret Manager. -- The live official rules, overview, and dates page were rechecked on 7 September 2026 and now agree on the entry deadline: **2026-09-09 14:00 PDT**. The earlier September 7 conflict has been corrected on Devpost. See the current [ST-32 compliance checklist](../submission/SUBMISSION_CHECKLIST.md) and recheck the live rules immediately before submission. +- The live official rules, overview, and dates page were rechecked on 7 September 2026 and now agree on the entry deadline: **2026-09-09 14:00 PDT**. The earlier September 7 conflict has been corrected on Devpost. The ST-32 compliance checklist is maintained privately; recheck the live rules immediately before submission. - The rules prohibit non-Google AI models, AI APIs, and agent frameworks in the submitted project. Use only Google Cloud AI plus the chosen partner’s built-in AI capabilities. ## Challenge pages diff --git a/docs/submission/DEMO_SCRIPT.md b/docs/submission/DEMO_SCRIPT.md deleted file mode 100644 index 3a48fd3..0000000 --- a/docs/submission/DEMO_SCRIPT.md +++ /dev/null @@ -1,37 +0,0 @@ -# Three-minute demo script - -This script is for an English-subtitled recording. Use only media marked -approved in [`docs/demo/MEDIA_RIGHTS_REGISTER.md`](../demo/MEDIA_RIGHTS_REGISTER.md). -The spoken lines are intentionally short so the product behaviour, not a -slide deck, remains the focus. - -| Time | On screen | Voiceover / subtitle | Evidence to capture | -| --- | --- | --- | --- | -| 0:00–0:15 | Open the phone-sized Memory Director page. | “My mother takes beautiful photos, but making a short film is still too complicated.” | Lived family problem, large controls, typed fallback visible. | -| 0:15–0:35 | Type or speak the request and deliberately select approved photos/videos. | “I want to remember this cheerful garden visit.” | Browser receives only selected media; permission confirmation is visible. | -| 0:35–0:55 | Press **Make my film**. | “One request is enough. Memory Director prepares the moments I selected.” | Compact preparing state; no timeline or required plan-review screens. | -| 0:55–1:15 | Show the portrait preview, selected cover, and playback controls. | “It makes a 60-second preview that I can simply watch.” | Actual visible output only; do not claim a selected/held-back explanation that the UI does not show. | -| 1:15–1:35 | **Release gate:** show the original-memory-song option only if the approved-fixture rehearsal succeeds. | “The song is made from the memories I approved, not copied from a favourite singer.” | Capture the user-facing result and retain safety/provenance evidence; otherwise use instrumental or no sound and make no song claim. | -| 1:35–1:55 | **Release gate:** pair the hosted journey with sanitized workflow evidence for the official ClickHouse MCP runtime. | “Before rendering, the guardian checks that these moments are allowed in this film.” | The UI does not show a tool log. Clearly label separate Agent Engine/MCP smoke evidence rather than presenting it as the Web call path. | -| 1:55–2:25 | **Release gate:** show the completed vertical MP4 and tap **Save video**. | “When I am ready, I save the film myself.” | Capture a real visible export and device result; browser UI evidence alone is not a filesystem check. | -| 2:25–2:45 | Tap **Share video**, following the completed ST-52 iPhone rehearsal; use the save-first fallback if the recording environment does not expose native sharing. | “I choose where to share it. Memory Director never signs in to my social account.” | Native share sheet or truthful fallback; no social OAuth or direct posting. | -| 2:45–3:00 | Closing card with repository and hosted URL. | “Every memory, directed by you.” | Repository, hosted URL, licence, and ClickHouse track proof. | - -## Recording checklist - -- Capture the actual hosted product interaction, not a slide replacement. -- Burn in English subtitles and keep every spoken line readable. -- Use a 375px-wide viewport for the mobile flow. -- Keep sanitized ClickHouse MCP evidence in the same recording, clearly separated - from the visible Web journey. -- Do not expose Secret Manager values, bearer tokens, private GCS URIs, or - personal media. -- Do not describe a direct API smoke test as a complete hosted UI journey. -- Cite [ST-52 physical iPhone acceptance](../qa/ST-52-PHYSICAL-IPHONE-ACCEPTANCE.md) - for device evidence; do not describe emulation as physical evidence or imply - that the iPhone pass also covers Android. -- Before recording the release-gated rows, verify that the Web page creates the - preview, invokes the required ClickHouse MCP consent/export path, and exports - the MP4 through the intended user flow. -- Before publishing, complete the final artefact manifest in - [`EVIDENCE_PACKAGE.md`](EVIDENCE_PACKAGE.md) and record the final video URL. diff --git a/docs/submission/EVIDENCE_PACKAGE.md b/docs/submission/EVIDENCE_PACKAGE.md index 931bd09..cc08403 100644 --- a/docs/submission/EVIDENCE_PACKAGE.md +++ b/docs/submission/EVIDENCE_PACKAGE.md @@ -24,8 +24,8 @@ documentation and approved evidence, not the deployed application image. | Demo language | English or English-subtitled | Blocked on final video | Use [`DEVPOST_PROJECT_PAGE.md`](DEVPOST_PROJECT_PAGE.md) as the source for the -long description, [`DEMO_SCRIPT.md`](DEMO_SCRIPT.md) for the recording, and -[`SUBMISSION_CHECKLIST.md`](SUBMISSION_CHECKLIST.md) for rules compliance. +long description. The recording script and internal submission checklist are +maintained privately by the project owner. The [capability evidence matrix](../CAPABILITY_EVIDENCE.md) is the cross-document source of truth for implemented, deployed, physical-device, and final-submission claims. diff --git a/docs/submission/SUBMISSION_CHECKLIST.md b/docs/submission/SUBMISSION_CHECKLIST.md deleted file mode 100644 index aa2377e..0000000 --- a/docs/submission/SUBMISSION_CHECKLIST.md +++ /dev/null @@ -1,91 +0,0 @@ -# ST-32 competition compliance checklist - -Last revalidated: **8 September 2026 (AEST)** against repository commit -`eab585c9f8db6bbf14143c8e5c61c24c7cf2ecca` and the live Devpost pages. - -Status meanings: - -- **Verified** — the linked public evidence was checked during this audit. -- **Ready** — repository material exists, but the final submission must include it. -- **Blocked** — a human action or final artefact is still missing. -- **Attestation required** — the repository cannot prove the entrant's eligibility - or authority. - -Use [`EVIDENCE_PACKAGE.md`](EVIDENCE_PACKAGE.md) to assemble the public proof -and complete the final release artefact manifest without overstating unfinished -capabilities. - -## Source of truth - -Use the [official rules](https://agentic-cinema.devpost.com/rules) where the -overview or an older repository note conflicts with them. The live rules, -[schedule](https://agentic-cinema.devpost.com/details/dates), and -[overview](https://agentic-cinema.devpost.com/) all currently show the same -deadline: **9 September 2026 at 2:00 PM Pacific Daylight Time**. That is -**10 September 2026 at 7:00 AM AEST (Melbourne)**. - -The earlier September 7 date recorded in this repository is obsolete. Recheck -the live rules immediately before the final Devpost submission. - -## Compliance matrix - -| Requirement | Official source | Exact proof to submit or retain | Status | Owner | Blocker / next action | -| --- | --- | --- | --- | --- | --- | -| Submit before 9 Sep 2026, 2:00 PM PDT | [Rules, sections 5 and 7](https://agentic-cinema.devpost.com/rules); [schedule](https://agentic-cinema.devpost.com/details/dates) | Devpost confirmation before 10 Sep, 7:00 AM AEST | Ready | Devpost representative | Submit early enough to recover from upload or form errors. | -| Every entrant is eligible | [Rules, section 4](https://agentic-cinema.devpost.com/rules) | Each member confirms age, residence, sanctions-list and contest-entity eligibility | Attestation required | Every team member | Repository evidence cannot establish personal eligibility. | -| No more than four people; every member added on Devpost; one authorised representative | [Rules, section 7.B](https://agentic-cinema.devpost.com/rules) | Screenshot or final review of the Devpost member list and named representative | Blocked | Devpost representative | Verify the live Devpost roster; do not infer it from GitHub or Linear. | -| Functional production-ready agent powered by Gemini and Google Cloud Agent Builder | [Rules, section 7.A](https://agentic-cinema.devpost.com/rules) | Source paths for ADK/Agent Engine and Gemini; successful [Agent Engine deployment and smoke run](https://github.com/afaryy/MemoryDirector/actions/runs/34024861486); truthful final demo | Verified runtime, recording pending | Engineering | The run proves the separate hosted Agent Engine proposal and tool invocation. The current Web UI uses `/storyboards`, not `/production-proposals`; the recording must not imply otherwise. | -| Active ClickHouse use at runtime through official `mcp-clickhouse`, connected to Cloud or self-hosted ClickHouse | [Rules, section 7.B](https://agentic-cinema.devpost.com/rules); [ClickHouse track resources](https://agentic-cinema.devpost.com/details/clickhouse-resources) | `mcp-clickhouse` image/config in source; runtime call shown in the final demo; successful Agent Engine smoke step named “Prove Agent Engine plan and ClickHouse preference-tool invocation” | Verified | Engineering / demo recorder | Keep the MCP call visible and explain its actual preference/consent role; a README mention alone is insufficient. | -| Only Google Cloud AI and the chosen partner's built-in AI features are used by the submitted product | [Rules, section 7.B](https://agentic-cinema.devpost.com/rules) | Runtime dependency and architecture review; final copy contains no unsupported AI claim | Verified | Engineering / submission editor | Current runtime code uses Google ADK, Vertex AI/Gemini and ClickHouse; re-scan dependencies and submission copy after later merges. | -| Project runs on web, Android or iOS | [Rules, section 7.B](https://agentic-cinema.devpost.com/rules) | Public web URL and demo footage | Verified | Engineering | [Hosted web app](https://memorydirector.com/) and same-origin health route passed production checks on the audited commit. | -| Project is new, original work created during the contest period | [Rules, section 7.B](https://agentic-cinema.devpost.com/rules) | Repository creation history plus entrant attestation that this is not an extension of earlier work | Attestation required | Devpost representative | Public repository metadata shows creation on 16 Aug 2026, but originality and prior-work status require human confirmation. | -| Hosted project URL is supplied for judging and testing | [Rules, section 7.B](https://agentic-cinema.devpost.com/rules); [overview](https://agentic-cinema.devpost.com/) | `https://memorydirector.com/` in Devpost and an incognito check | Verified | Engineering / Devpost representative | Apex and `/api/health` passed production checks on 8 Sep 2026. Direct `run.app` URLs return 404 by design after ingress lockdown and must not be submitted. | -| English text description covers features, functionality, technologies, data sources, findings and learnings | [Rules, section 7.B](https://agentic-cinema.devpost.com/rules) | Finalised [`DEVPOST_PROJECT_PAGE.md`](DEVPOST_PROJECT_PAGE.md) copied to Devpost | Ready | Submission editor | The repository story is aligned with the supplied Devpost copy; compare it with the final demo before release. | -| Public source repository includes all source, assets and run instructions and demonstrates Google Cloud and partner runtime calls | [Rules, section 7.B](https://agentic-cinema.devpost.com/rules) | [Public repository](https://github.com/afaryy/MemoryDirector), root README, source, Terraform, workflows and operations docs | Verified | Engineering | GitHub reports the repository as public. Perform one final clean-clone instructions check after the last merge. | -| Public repository has a visible OSI-approved licence permitting commercial use | [Rules, sections 7.B and 12](https://agentic-cinema.devpost.com/rules); [overview](https://agentic-cinema.devpost.com/) | Root [`LICENSE`](../../LICENSE) and GitHub licence detection | Verified | Engineering | GitHub detects the root file as MIT. Confirm it remains visible at the top of the repository page. | -| ClickHouse partner track is selected | [Overview submission requirements](https://agentic-cinema.devpost.com/) | Final Devpost track field set to ClickHouse | Blocked | Devpost representative | Must be selected in the Devpost form; repository metadata cannot prove the form value. | -| Public demo shows the project functioning as built | [Rules, section 7.B](https://agentic-cinema.devpost.com/rules); [overview](https://agentic-cinema.devpost.com/) | Final hosted-product recording following [`DEMO_SCRIPT.md`](DEMO_SCRIPT.md) | Blocked | Demo recorder | Browser, rights, and ST-52 iPhone acceptance are complete; record the approved-fixture flow. Do not substitute slides or an API-only test. | -| Demo is no longer than three minutes, public on YouTube or Vimeo, and English or English-subtitled | [Rules, section 7.B](https://agentic-cinema.devpost.com/rules) | Public YouTube/Vimeo URL, duration at or below 3:00, captions checked | Blocked | Demo editor / Devpost representative | Public YouTube/Vimeo URL and final playback review are still required. A local draft alone does not satisfy publication. Aim below 2:55 to leave margin. | -| Written submission is English and product supports English | [Rules, section 7.B](https://agentic-cinema.devpost.com/rules) | English Devpost page, English demo/captions and English product path | Ready | Submission editor / QA | The repository and UI support English; verify the final deployed path and all form fields. | -| Third-party SDKs, APIs and data are authorised under their terms | [Rules, section 7.B](https://agentic-cinema.devpost.com/rules) | Dependency inventory and evidence that team accounts/assets may be used in the submission | Attestation required | Engineering lead / Devpost representative | Confirm account terms and any non-code data sources before submission. | -| Video and project assets are original or authorised and do not violate privacy, publicity, trademark or IP rights | [Rules, sections 7.B and 15](https://agentic-cinema.devpost.com/rules) | Completed [`MEDIA_RIGHTS_REGISTER.md`](../demo/MEDIA_RIGHTS_REGISTER.md), consent/licence evidence and final-frame review | Verified | Media owner / demo editor | Eight approved private fixtures and the generated memory song were reviewed on 8 Sep 2026. Keep the private originals, named consent and final film outside the public repository. | -| Completed Devpost form contains every required field and no secrets/private media | [Overview submission requirements](https://agentic-cinema.devpost.com/); [rules, section 6](https://agentic-cinema.devpost.com/rules) | Final form review, public links opened incognito, submission receipt | Blocked | Devpost representative | Requires the final video URL, track choice, roster check and submission action. | - -## Repository evidence checked - -- Public repository and MIT licence: - -- Hosted product: -- Hosted health route: -- Current main Tests run: - -- Deployed Web release: `6b738f40014e4c7861ff1705f7df4d26d294d051` -- Current Web deployment: - -- Hosted Agent Engine and ClickHouse preference-tool smoke: - -- Public-edge deployment and HTTPS verification: - -- Agent runtime boundary and evidence criteria: - [`docs/operations/AGENT_ENGINE.md`](../operations/AGENT_ENGINE.md) -- ClickHouse MCP boundary: - [`docs/clickhouse-mcp-proof.md`](../clickhouse-mcp-proof.md) -- Current implementation, deployment, device, and submission status: - [`docs/CAPABILITY_EVIDENCE.md`](../CAPABILITY_EVIDENCE.md) -- Completed physical iPhone acceptance: - [`docs/qa/ST-52-PHYSICAL-IPHONE-ACCEPTANCE.md`](../qa/ST-52-PHYSICAL-IPHONE-ACCEPTANCE.md) - -## Final release sequence - -1. Keep the approved rights register with the private consent evidence and confirm - that the recording uses only its approved fixtures. -2. Verify the Devpost roster, eligibility attestations, representative and - ClickHouse track selection. -3. Run the hosted Web flow with the exact approved demo fixtures and capture - separate sanitized ClickHouse/Agent Engine workflow evidence without implying - that the Web UI invoked the Agent Engine endpoint. -4. Record and publish an English or English-subtitled YouTube/Vimeo demo under - three minutes. -5. Refresh the project-page copy so every capability matches the final build. -6. Open the app, health route, repository, licence and video from an incognito - session, then submit before the deadline and retain the receipt. diff --git a/infra/terraform/tools/config-validator/test/documentation-consistency.test.mjs b/infra/terraform/tools/config-validator/test/documentation-consistency.test.mjs index 4d6baa8..46cdb10 100644 --- a/infra/terraform/tools/config-validator/test/documentation-consistency.test.mjs +++ b/infra/terraform/tools/config-validator/test/documentation-consistency.test.mjs @@ -71,7 +71,6 @@ test("each current journey document rejects the obsolete combined action", () => "docs/ux/MOBILE_PRODUCTION_FLOW.md", "docs/demo/DEMO_RUNBOOK.md", "docs/submission/DEVPOST_PROJECT_PAGE.md", - "docs/submission/DEMO_SCRIPT.md", ]) { assert.doesNotMatch(readDocument(path), /Save\s*&\s*share/i, path); } @@ -154,7 +153,6 @@ test("QA documents record the completed physical iPhone scope", () => { test("current evidence distinguishes main from the deployed Web release", () => { for (const path of [ "docs/CAPABILITY_EVIDENCE.md", - "docs/submission/SUBMISSION_CHECKLIST.md", "docs/submission/EVIDENCE_PACKAGE.md", ]) { assert.match(readDocument(path), /eab585c/, `${path}: current main commit`); @@ -163,7 +161,6 @@ test("current evidence distinguishes main from the deployed Web release", () => for (const path of [ "docs/CAPABILITY_EVIDENCE.md", "docs/operations/APP_DEPLOYMENT.md", - "docs/submission/SUBMISSION_CHECKLIST.md", "docs/submission/EVIDENCE_PACKAGE.md", "design-qa.md", ]) { @@ -173,13 +170,7 @@ test("current evidence distinguishes main from the deployed Web release", () => } }); -test("submission documents preserve the remaining human release gates", () => { - - const checklist = readDocument("docs/submission/SUBMISSION_CHECKLIST.md"); - for (const evidence of ["eab585c", "6b738f4", "34191468668", "34188310631", "ST-52", "rights register", "submission receipt"]) { - assert.match(checklist, new RegExp(evidence, "i"), evidence); - } - assert.match(checklist, /Video and project assets[\s\S]*\| Verified \|/); +test("public evidence package preserves recorded release gates", () => { const evidencePackage = readDocument("docs/submission/EVIDENCE_PACKAGE.md"); assert.match(evidencePackage, /VIDEO_URL_REQUIRED/);