| # Submission Checklist |
|
|
| ## Required Narrative |
|
|
| - Problem statement clearly states the capability gap: safe long-horizon polypharmacy action selection. |
| - Environment describes observation, action, state, episode termination, and OpenEnv endpoints. |
| - Agent capabilities cover med reconciliation, evidence, graph safety, dosing, candidate generation, planning, critique, and explanation. |
| - Tasks cover DDI risk, safer substitutions, taper/deprescribing, precision dosing, missing-data recovery, and new-drug decomposition. |
| - Reward/evaluation logic documents the 13 reward columns, 4 primary channels, anti-cheat checks, timeouts, and offline evaluation. |
| - Post-training/self-improvement strategy documents SFT warm start, GRPO with environment rewards, ablations, adapter export, and post-save inference validation. |
|
|
| ## Required Deliverables |
|
|
| - GitHub repo with all required links in README. |
| - Hugging Face Space URL. |
| - Colab notebook URL. |
| - YouTube video URL or Hugging Face blog URL. The current README blog URL is the intended target but still returns 404 until published. |
| - Tracked plots and compact reports under `docs/results/`. |
| - Successful `docs/results/hf_space_verification.json` with `passed: true`. |
| - Participant-guide traceability map in `docs/participant_guide_traceability.md`. |
|
|
| ## Commands To Validate Before Submission |
|
|
| ```bash |
| uv run pytest |
| uv run openenv validate . |
| bash scripts/bootstrap_openenv.sh --runtime-check |
| (cd app/ui/frontend && npm run build) |
| .venv/bin/python scripts/evaluate_baselines.py |
| .venv/bin/python scripts/evaluate_all.py |
| .venv/bin/python scripts/evaluate_compare_runs.py --baseline outputs/reports/baselines.json --candidate outputs/reports/benchmark_report.json --output outputs/reports/improvement_report.json |
| .venv/bin/python scripts/acceptance_gate.py |
| ``` |
|
|
| After the story artifact is published, run the opt-in live link checker: |
|
|
| ```bash |
| uv run python scripts/validate_submission_links.py |
| ``` |
|
|
| ## Full Remote Training Evidence |
|
|
| ```bash |
| export HF_TOKEN="<write-token>" |
| .venv/bin/python scripts/deploy_training_space.py \ |
| --repo-id TheJackBright/polyguard-openenv-training-full \ |
| --artifact-repo-id TheJackBright/polyguard-openenv-training-full-artifacts \ |
| --hardware a10g-large \ |
| --model-sweep Qwen/Qwen2.5-0.5B-Instruct,Qwen/Qwen2.5-1.5B-Instruct,Qwen/Qwen2.5-3B-Instruct \ |
| --sft-epochs 2 \ |
| --grpo-epochs 1 \ |
| --sft-max-steps 0 \ |
| --grpo-max-steps 0 \ |
| --grpo-max-prompts 0 |
| .venv/bin/python scripts/pull_training_artifacts.py \ |
| --artifact-repo-id TheJackBright/polyguard-openenv-training-full-artifacts |
| .venv/bin/python scripts/activate_sweep_model.py \ |
| --source sweep \ |
| --run-id qwen-qwen2-5-0-5b-instruct \ |
| --preferred-artifact grpo_adapter |
| ``` |
|
|
| Final public artifacts should include `hf_sweep_summary.json`, `anti_hacking_overfit_report.json`, post-save inference reports, adapter evidence, `active_model_manifest.json`, and all relevant charts under `docs/results/` and `outputs/plots/`. Current tracked evidence includes a 3-model SFT-baseline sweep plus a top-level environment-backed GRPO run. Only claim a full public per-model GRPO sweep after those private artifacts are pulled, mirrored, and documented. |
|
|
| ## Qwen 0.5B/1.5B Submission Evidence |
|
|
| ```bash |
| .venv/bin/python scripts/generate_submission_evidence.py \ |
| --models qwen-qwen2-5-0-5b-instruct,qwen-qwen2-5-1-5b-instruct \ |
| --artifact-repo-id TheJackBright/polyguard-openenv-training-full-artifacts \ |
| --training-space-url https://thejackbright-polyguard-openenv-training-full.hf.space \ |
| --episodes 8 |
| ``` |
|
|
| The generated files live in: |
|
|
| - `docs/results/submission_evidence_qwen_0_5b_1_5b/` |
| - `outputs/reports/submission_evidence/qwen_0_5b_1_5b/` |
| - `outputs/plots/submission_evidence/qwen_0_5b_1_5b/` |
| - `submission_bundle/qwen_0_5b_1_5b_evidence.zip` |
|
|
| The current live evidence confirms remote completion of 0.5B/1.5B SFT, GRPO, GRPO post-save inference, and policy ablations, but marks per-run GRPO files/checkpoints as pending because the private artifact repo has not uploaded them yet. |
|
|
| The implementation-ready active model bundle is available separately: |
|
|
| ```text |
| https://huggingface.co/TheJackBright/polyguard-openenv-training-full-artifacts/tree/main/usable_model_bundles/local-qwen-0-5b-active-smoke |
| submission_bundle/model_artifacts/local-qwen-0-5b-active-smoke/ |
| ``` |
|
|
| It includes the local active Qwen 0.5B `grpo_adapter`, `sft_adapter`, `merged` model, manifests, and reports for immediate app integration while the full per-run remote sweep artifacts remain pending. |
|
|
| Deploy the evaluation-only HF Space without interrupting the training Space: |
|
|
| ```bash |
| .venv/bin/python scripts/deploy_evidence_space.py \ |
| --repo-id TheJackBright/polyguard-openenv-evidence \ |
| --artifact-repo-id TheJackBright/polyguard-openenv-training-full-artifacts \ |
| --training-space-url https://thejackbright-polyguard-openenv-training-full.hf.space \ |
| --models qwen-qwen2-5-0-5b-instruct,qwen-qwen2-5-1-5b-instruct \ |
| --hardware cpu-basic |
| ``` |
|
|
| ## Strict Final Gate |
|
|
| ```bash |
| export POLYGUARD_ENFORCE_SUBMISSION_LINKS=true |
| .venv/bin/python scripts/acceptance_gate.py |
| ``` |
|
|
| Strict mode must pass only after: |
|
|
| - README links are not placeholders. |
| - `docs/results/avg_reward.png` and `docs/results/policy_stack_avg_reward.png` exist. |
| - `docs/results/hf_space_verification.json` has `passed: true`. |
| - `outputs/reports/sft_trl_run.json` has `status: ok`, non-zero examples, a non-empty artifact path, and uses `trl_unsloth` or `trl_transformers`. |
| - `outputs/reports/grpo_trl_run.json` has `status: ok`, accepted backend, and non-empty `artifact_path`. |
| - `outputs/reports/postsave_inference.json` does not use `fallback_policy`. |
| - `outputs/reports/improvement_report.json` has `improved: true`. |
| - `outputs/reports/hf_sweep_summary.json` has at least one completed non-fallback model row. |
| - `outputs/reports/anti_hacking_overfit_report.json` has `passed: true`. |
| - `GET /policy/model_status` reports the intended active run and artifact availability. |
|
|
| Strict mode passed during the April 26, 2026 audit. It does not perform live HTTP status checks, so the final blog/video URL still needs explicit validation. |
|
|
| ## HF Auth Commands |
|
|
| ```bash |
| ./.venv/bin/hf auth login |
| ./.venv/bin/hf auth whoami |
| export HF_SPACE_REPO_ID="TheJackBright/polyguard-openenv-workbench" |
| ``` |
|
|
| Use `./.venv/bin/hf`, not the global `hf` binary. |
|
|
| Private HF training artifact repositories require authentication and should not be used as judge-facing public links unless they are made public or mirrored into the repository/Space documentation. |
|
|