forge-smoketest
Skill1 starsChanged 6 months agoMITView on GitHub
Live API call to the freshly-registered HF Space. Verifies the model is serving and produces a non-degenerate response to a canonical probe prompt. Blocks forge-publish if the Space can't be reached OR the response shows degeneration patterns (triple-word, run-together tokens, paragraph loops).
Files
forge-smoketest
When this fires
Phase position: SMOKETEST — between CARD_VALIDATOR and PUBLISH. The last automated check before the model goes public.
What it does
- Reads
hf_spaceURL from state/manifest - Polls
https://huggingface.co/api/spaces/<id>forruntime.stage == RUNNING(up to 8 min) - Verifies
<subdomain>.hf.space/returns HTTP 200 - Sends probe prompt to Gradio
/run/predict:{"data": ["What is a dental crown?"]} - Parses response and runs degeneration-pattern checks:
- too short (< 30 chars)
- triple-word repetition (
\b(\w+)\s+\1\s+\1\b) - paragraph-level loops (same 40+ char substring repeated 3+ times)
- GGUF detokenize artifacts (
ttiuser,ttiassistant)
- Falls back to homepage-only check if
/run/predictisn't reachable (custom endpoint / auth required)
Inputs
- Reads
slm-forge/.runs/<run-id>/state.jsonforhf_spaceURL - Needs
HF_TOKENfor private Space access during the gate (Space is still private at this phase)
Outputs
- Writes
slm-forge/.runs/<run-id>/smoketest-report.json:{"status":"pass","url":"https://...","prompt":"...","response_preview":"..."} - On fail: exit 1, PUBLISH never runs, repos stay private
Failure modes
| Failure | Typical cause | Recovery |
| Space never reached RUNNING | Build failure, bad requirements.txt, sdk_version mismatch | Check Space build log on HF; fix template; re-register |
| HTTP 200 but empty response | Model died loading GGUF; llama-cpp-python crash | Check Space runtime log |
| Degenerate response | Sampling params wrong OR model genuinely bad | Review plan-fit axis 3 score; consider re-forging with stronger prompt |
Usage
bash slm-forge/skills/forge-smoketest/run.sh <run-id>In this repository29 other files it gives its agents.
- slm-forgeSkill
- forge-analyzeSkill
- forge-architectSkill
- forge-auditSkill
- forge-bootstrapSkill
- forge-card-validatorSkill
- forge-curateSkill
- forge-estimateSkill
- forge-evalSkill
- forge-ingest-dbSkill
- forge-ingestSkill
- forge-intakeSkill
- forge-monitorSkill
- forge-plan-fitSkill
- forge-planSkill
- forge-preflightSkill
- forge-prepSkill
- forge-provisionSkill
- forge-publishSkill
- forge-quantizeSkill
- forge-registerSkill
- forge-reportSkill
- forge-resumeSkill
- forge-shapeSkill
- forge-sourceSkill
- forge-statusSkill
- forge-synthSkill
- forge-teardownSkill
- forge-trainSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

