storycode / AGENT_CHECKLIST.md
Codex (via opencode)
Codex: prompt tuning, _loads fix, GitHub ingestion, lint cleanup
7603aa2
|
Raw
History Blame Contribute Delete
3.53 kB

A newer version of the Gradio SDK is available: 6.22.0

Upgrade

StoryCode Agent Checklist

Use this file as the durable handoff if another agent needs to continue. Do not mark an item done unless it was actually run or verified.

Current Status

  • Read HANDOFF.md, AGENTS.md, and README.md.
  • Installed local CPU dependencies with python3 -m pip install -r requirements.txt.
  • Verified analyzer baseline with python3 tests/test_analyzer.py -> 10/10 passed.
  • Fixed fallback rendering bug where ProjectModel.note was referenced but not preserved from ingest.
  • Checked the MiniCPM4.1-8B Hugging Face model card.
  • Disabled MiniCPM reasoning mode for app calls by appending /no_think in llm.py.
  • Added add_special_tokens=True to vLLM OpenAI calls, per the model card.
  • Updated Modal image build to use pre-release/nightly vLLM, per the model card.
  • Deployed once and found vllm-0.23.0 rejects the old server flag --guided-decoding-backend; removed it and kept request-level xgrammar.
  • Found vLLM 0.23 defaults to v1 and does not recognize VLLM_USE_V1; switched Modal to a CUDA 13 devel base image so FlashInfer can find nvcc.
  • Changed serve() from subprocess.Popen() to blocking subprocess.run() so Modal keeps the web server process alive.

Next Required Steps

  • Run python3 app.py with no .env model endpoint, open it, click "Try the sample project", and verify Story, Map, Safe-to-Edit, and Dependencies render with fallback narration.
  • Install Modal locally if needed: python3 -m pip install modal.
  • Authenticate Modal: modal token new.
  • Create a long random shared secret; do not commit it.
  • Create the Modal secret: modal secret create storycode-api MODAL_API_KEY=<secret>.
  • Redeploy after removing the obsolete vLLM server flag: modal deploy modal_app.py.
  • Record the printed public Modal URL without the secret.
  • Smoke-test <printed-url>/v1/chat/completions with Authorization bearer secret.
  • Confirm smoke-test JSON response contains no <think> content and returns valid JSON.
  • Copy .env.example to .env and set MODAL_ENDPOINT_URL=<printed-url>/v1 plus MODAL_API_KEY=<secret>.
  • Run python3 app.py with the live model.
  • Verify the Story tab renders model-backed Story plus Plain English.
  • Verify style and difficulty changes re-narrate without re-analysis.
  • Verify Architecture Map draws from ProjectModel.
  • Verify Safe-to-Edit shows config.py and app.py as red.
  • Verify Dependencies explains openai, chromadb, and gradio.
  • Upload a zip with a fake API key and verify the secret-redaction banner.
  • Tune prompts in story.py only for all 5 styles x 3 difficulty levels.
  • After every prompt change, run python3 tests/test_analyzer.py.
  • Make small Codex-attributed commits with clear messages.
  • Add real-user proof to README.md under "The person I built it for".
  • Deploy to a Gradio Space under build-small-hackathon, set secrets, and test on phone.
  • Record and link the demo video.
  • Push public GitHub repo and link it in README.md.
  • Post on social and link it in README.md.

Rules To Preserve

  • Static analysis is the source of truth; the model only narrates ProjectModel facts.
  • Do not add torch, vllm, or transformers to requirements.txt.
  • Core model stays openbmb/MiniCPM4.1-8B.
  • Do not claim Tiny Titan.
  • Keep ui/styles.css.
  • Never display or send code that has not passed ingest.redact_secrets.