Quality gates / quality (pull_request) Canceled after 0s
The corpus had an append-only manifest, a reviewer tool, and an evaluation harness, but nothing a stranger could read: what is in the corpus, what a label means, and how leakage is prevented lived in code and in reviewers' heads. scripts/dataset_card.py generates docs/DATASET_CARD.md from manifest.jsonl. Every count is read back from real records — active samples, contributors, per-split contributor and sample counts, class balance over active samples only — and every fact the pipeline does not collect (devices, contexts, licenses) is printed as pending rather than estimated. The generator refuses to render a card for a corpus where one contributor straddles two splits or where a recorded split is not the one the subject key derives, and it never publishes a subject key or a withdrawn sample's labels. --check fails when the committed page is not the generator's own output, so the card cannot drift into a hand-written document. docs/LABELING_GUIDE.md is the reviewer's rulebook: visible form, broad visible color, and photo quality; visible color is not blood; nothing is diagnosed; a model suggestion is provisional input to a human decision. Exclusions are named, and the split policy is stated where it is enforced. The demo's new DATASET CARD scene builds a throwaway corpus with the real ingest command from committed synthetic fixtures, publishes the card, and shows the refusal a planted contributor earns, then re-checks the committed page. Its captions are release gates in build_release.py, which also runs tests/dataset-card.test.py before a release exists. tests/dataset-card.test.py covers the counts, the pending facts, the withdrawal receipt, both refusals, determinism, the empty-corpus case, the committed-page identity, and both documents' prohibitions. Every fixture is synthetic. Closes #27
36 lines
4.3 KiB
JSON
36 lines
4.3 KiB
JSON
{
|
|
"name": "timmy-talking-turd",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"test": "node --test tests/domain.test.js tests/analysis.test.js tests/vision-service.test.js tests/vision-config.test.js tests/draft.test.js tests/suggestion.test.js tests/followup.test.js tests/vision-readiness.test.js tests/hermes-agent-service.test.js tests/agent-gateway.acceptance.test.js tests/staging-health.test.js tests/service-worker-runtime.test.js tests/training-ingest.test.js tests/ci-workflow.test.js tests/product-decisions.test.js tests/release-demo.test.js tests/selfhost-bootstrap.test.js tests/staging-config.test.js tests/threat-model.test.js tests/vision-corpus.test.js tests/vision-boundary.test.js tests/worker-benchmark.test.js tests/worker-ready.test.js tests/worker-container.test.js tests/summary.test.js tests/escalation-regression.test.js tests/grounded-chat.test.js tests/photo-lifecycle.test.js tests/training-contribution.test.js tests/portability.test.js tests/abstention-policy.test.js",
|
|
"test:ui": "node tests/ui.acceptance.mjs",
|
|
"test:photo": "node tests/photo-first.acceptance.mjs",
|
|
"test:mobile-capture": "node tests/mobile-capture.acceptance.mjs",
|
|
"test:sleek": "node tests/sleek-chat.acceptance.mjs",
|
|
"test:manual-fallback": "node tests/manual-fallback.acceptance.mjs",
|
|
"test:provisional": "node tests/provisional-suggestion.acceptance.mjs",
|
|
"test:followup": "node tests/followup.acceptance.mjs",
|
|
"test:vision-refusal": "node tests/vision-refusal.acceptance.mjs",
|
|
"test:staging-smoke": "node tests/staging.acceptance.mjs",
|
|
"test:pattern-summary": "node tests/pattern-summary.acceptance.mjs",
|
|
"test:grounded-chat": "node tests/grounded-chat.acceptance.mjs",
|
|
"test:photo-lifecycle": "node tests/photo-lifecycle.acceptance.mjs",
|
|
"test:training-contribution": "node tests/training-contribution.acceptance.mjs",
|
|
"check:syntax": "node --check app.js && node --check server.mjs && node --check service-worker.js && node --check src/analysis.js && node --check src/domain.js && node --check src/draft.js && node --check src/suggestion.js && node --check src/followup.js && node --check src/vision-readiness.js && node --check src/hermes-agent-service.js && node --check src/vision-config.js && node --check src/vision-service.js && node --check src/vision-corpus.js && node --check src/summary.js && node --check src/photo-lifecycle.js && node --check src/grounded-chat.js && node --check src/training-contribution.js && node --check src/abstention-policy.js && node --check scripts/record_release_demo.mjs && node --check tests/staging.acceptance.mjs && node --check tests/manual-fallback.acceptance.mjs && node --check tests/provisional-suggestion.acceptance.mjs && node --check tests/followup.acceptance.mjs && node --check tests/vision-refusal.acceptance.mjs && bash -n scripts/bootstrap_selfhost_smolvlm.sh && bash -n scripts/run_selfhost_smolvlm.sh && python3 -m py_compile scripts/corpus_manifest.py scripts/review_corpus.py scripts/dataset_card.py scripts/ingest_training_photo.py scripts/build_release.py scripts/deploy_staging.py scripts/build_vision_corpus.py scripts/calibration_report.py && node --check scripts/record_worker_benchmark.mjs && node --check scripts/abstention_policy_receipt.mjs && node --check tests/worker-readiness.acceptance.mjs && node --check tests/pattern-summary.acceptance.mjs && node --check tests/photo-lifecycle.acceptance.mjs && node --check tests/training-contribution.acceptance.mjs && node --check tests/portability.acceptance.mjs && node --check tests/grounded-chat.acceptance.mjs && bash -n scripts/worker_ready.sh && bash -n deploy/worker/entrypoint.sh && bash -n deploy/worker/build_image.sh && bash -n deploy/worker/run_worker_container.sh",
|
|
"check:diff": "bash scripts/check_diff.sh",
|
|
"start": "node server.mjs",
|
|
"test:worker-readiness": "node tests/worker-readiness.acceptance.mjs",
|
|
"test:portability": "node tests/portability.acceptance.mjs",
|
|
"test:corpus": "python3 tests/corpus-manifest.test.py",
|
|
"test:calibration": "python3 tests/calibration-harness.test.py",
|
|
"test:policy": "node --test tests/abstention-policy.test.js",
|
|
"test:review": "python3 tests/corpus-review.test.py",
|
|
"test:dataset-card": "python3 tests/dataset-card.test.py"
|
|
},
|
|
"devDependencies": {
|
|
"playwright": "^1.62.1"
|
|
}
|
|
}
|