Plan and scaffold TutorDesk AI for a Hugging Face hackathon
Takeaway: I'd start by pasting the hackathon page and PRD together and asking directly for a sponsor-coverage table, since that's what actually shaped every later decision.
29 sessions on modal with a coding agent: the agent failed at least once in 21, and 8 finished without a human stepping in.
Takeaway: I'd start by pasting the hackathon page and PRD together and asking directly for a sponsor-coverage table, since that's what actually shaped every later decision.
Takeaway: I'd start the next session by asking for the smoke test script up front, since testing all four models turned out to be a separate need I only realized after Phase 6 was 'done'.
Takeaway: I'd start the next session by having the agent actually run the app and hit the new Modal endpoints instead of just reading code back to itself as a 'sanity check' — it never executed anything for Phases 4 or 5.
Takeaway: Next time I'd tell it upfront which library versions are pinned (transformers, TRL) since half the debugging loop was chasing breaking API changes across versions I hadn't pinned.
Takeaway: Next time I'd ask upfront for both the submission docs and the trace-dataset/PII redaction work together, since they turned out to be closely related.
Takeaway: Next time I'd tell it upfront that the eval reuses training examples so it doesn't have to discover that itself, and that .gitignore excludes models/ so it can plan the tracked-vs-mirrored file split from the start.
Takeaway: Next time I'd paste the log and ask directly for exception logging around the ASR wrapper instead of first asking 'what's happening,' since that's exactly what we ended up doing anyway.
Takeaway: Next time I'd flag the .gitignore rule on .hackathon/submission up front so the agent checks tracked status before writing handoff files there, since I nearly lost those prompts silently.
Takeaway: Next time I'd lead with the Space's hard constraints (1GB repo limit, free-tier build memory, no CUDA) before letting the agent draft a plan, since two of our failures were pure packaging/build issues we could have anticipated upfront.
Takeaway: Next time I'd ask upfront for a deploy script instead of letting the agent hand-run git/HF CLI commands each time — that's what actually stabilized the workflow.
Takeaway: Next time I'd start the first prompt by stating explicitly that this is a kids' reading app needing realistic per-word audio with strict latency and reliability constraints, so we don't cycle through browser-TTS-vs-VoxCPM-vs-Modal three separate times.
Takeaway: Next time I'd open with the fact that TTS needs to work instantly for a kid clicking words, not just eventually — that would have surfaced the Modal cold-start problem before I burned time on Gradio 6 launch-arg compatibility.
Takeaway: Next time I'd give the exact test fixture (silent WAV) up front so the agent designs the endpoint to handle it from the start instead of hitting a gated-model load in production.
Takeaway: Next time I'd flag the huggingface_hub/vllm version compatibility upfront so the agent pins a working version before the first deploy attempt, since that's what actually blew up the build.
Takeaway: Next time I'd bundle the reset control and the PDF export into the original brief since they came from the same 'what happens after the storyboard finishes' train of thought, instead of asking for them one at a time.
Takeaway: Next time I'd give the live-endpoint reliability numbers up front — the real fix here only became obvious once we hit MiniCPM and Nemotron live and saw actual timings and malformed output, not from reading the code.
Takeaway: Next time I'd start the session by asking the agent to check both Modal deployments end-to-end (health + authenticated /chat) before I go poking at env var naming one variable at a time, since most of the friction was just me and the agent working through STORY_FORGE_API_KEY vs MODAL_API_KEY confusion.
Takeaway: Next time I'd specify the image provider up front instead of starting with HF Inference and then switching to Black Forest Labs mid-session, since that caused a full rewrite of the image pipeline and its secret handling.
Takeaway: Next time I'd ask for FLUX-generated pseudo-ASCII art directly from the start instead of spending hours iterating on a pixel-to-ASCII converter (luminance, edge-weighting, skeletonization) that never looked good enough.
Takeaway: Next time I'd ask upfront for a push script that uses create_commit/CommitOperationAdd from the start, since upload_file and upload_folder both got silently skipped by HF's LFS dedup and wasted two rounds.