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
# 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
- [x] Read `HANDOFF.md`, `AGENTS.md`, and `README.md`.
- [x] Installed local CPU dependencies with `python3 -m pip install -r requirements.txt`.
- [x] Verified analyzer baseline with `python3 tests/test_analyzer.py` -> `10/10 passed`.
- [x] Fixed fallback rendering bug where `ProjectModel.note` was referenced but not preserved from ingest.
- [x] Checked the MiniCPM4.1-8B Hugging Face model card.
- [x] Disabled MiniCPM reasoning mode for app calls by appending `/no_think` in `llm.py`.
- [x] Added `add_special_tokens=True` to vLLM OpenAI calls, per the model card.
- [x] Updated Modal image build to use pre-release/nightly vLLM, per the model card.
- [x] Deployed once and found `vllm-0.23.0` rejects the old server flag `--guided-decoding-backend`; removed it and kept request-level xgrammar.
- [x] 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`.
- [x] 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`.