medsci-skills 5.20.0 → 5.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. package/README.md +5 -1
  2. package/metadata/distribution_files.json +176 -136
  3. package/metadata/distribution_manifest.json +1 -1
  4. package/package.json +1 -1
  5. package/skills/academic-aio/scripts/check_summary_box.py +1 -1
  6. package/skills/analyze-stats/SKILL.md +20 -0
  7. package/skills/analyze-stats/scripts/check_generated_code.py +1 -1
  8. package/skills/analyze-stats/scripts/check_separation.py +262 -0
  9. package/skills/analyze-stats/tests/test_separation.sh +154 -0
  10. package/skills/check-reporting/scripts/check_checklist_version.py +1 -1
  11. package/skills/check-reporting/scripts/check_framework_naming.py +1 -1
  12. package/skills/check-reporting/scripts/check_prisma_figure.py +1 -1
  13. package/skills/clean-data/scripts/check_reverse_coding.py +1 -1
  14. package/skills/clean-data/scripts/check_structural_zero.py +1 -1
  15. package/skills/explainability/scripts/check_explainability_report.py +1 -1
  16. package/skills/find-cohort-gap/SKILL.md +57 -16
  17. package/skills/find-cohort-gap/references/cohort_profile_template.md +18 -4
  18. package/skills/find-cohort-gap/scripts/build_cohort_profile.py +528 -0
  19. package/skills/find-cohort-gap/skill.yml +11 -2
  20. package/skills/find-cohort-gap/tests/test_cohort_profile.sh +206 -0
  21. package/skills/make-figures/scripts/derive_figure_legend_counts.py +1 -1
  22. package/skills/manage-refs/SKILL.md +2 -1
  23. package/skills/manage-refs/scripts/check_bib_title_markup.py +167 -0
  24. package/skills/manage-refs/scripts/check_csl_render.py +1 -1
  25. package/skills/manage-refs/scripts/check_reference_duplication.py +1 -1
  26. package/skills/manage-refs/scripts/check_xref.py +1 -1
  27. package/skills/manage-refs/scripts/pre_submission_gate.sh +29 -8
  28. package/skills/manage-refs/skill.yml +1 -0
  29. package/skills/manage-refs/tests/test_bib_title_markup.sh +125 -0
  30. package/skills/meta-analysis/scripts/check_pool_consistency.py +1 -1
  31. package/skills/mllm-eval/scripts/check_mllm_eval_completeness.py +1 -1
  32. package/skills/model-card/scripts/check_model_card_complete.py +1 -1
  33. package/skills/model-evaluation/scripts/check_metric_reporting.py +1 -1
  34. package/skills/model-scaffold/scripts/check_training_hygiene.py +1 -1
  35. package/skills/model-validation/scripts/check_split_leakage.py +1 -1
  36. package/skills/orchestrate/SKILL.md +21 -1
  37. package/skills/peer-review/SKILL.md +13 -0
  38. package/skills/peer-review/references/domain-probes/self_improving_system.md +113 -0
  39. package/skills/peer-review/scripts/check_pdf_injection.py +1 -1
  40. package/skills/peer-review/scripts/check_self_improvement_claims.py +250 -0
  41. package/skills/peer-review/tests/test_self_improvement_claims.sh +142 -0
  42. package/skills/preprocess-imaging/scripts/check_preprocessing_leakage.py +1 -1
  43. package/skills/radiomics-ml/scripts/check_radiomics_ml.py +1 -1
  44. package/skills/revise/SKILL.md +15 -1
  45. package/skills/revise/scripts/check_response_claims.py +1 -1
  46. package/skills/self-review/SKILL.md +1 -0
  47. package/skills/self-review/references/domain-probes/self_improving_system.md +113 -0
  48. package/skills/self-review/scripts/check_artifact_coverage.py +1 -1
  49. package/skills/self-review/scripts/check_binning_consistency.py +1 -1
  50. package/skills/self-review/scripts/check_citation_order.py +1 -1
  51. package/skills/self-review/scripts/check_claim_artifact.py +1 -1
  52. package/skills/self-review/scripts/check_classical_style.py +1 -1
  53. package/skills/self-review/scripts/check_cohort_arithmetic.py +1 -1
  54. package/skills/self-review/scripts/check_confounding_completeness.py +1 -1
  55. package/skills/self-review/scripts/check_cv_leakage.py +1 -1
  56. package/skills/self-review/scripts/check_dta_denominators.py +1 -1
  57. package/skills/self-review/scripts/check_editorial_impression.py +1 -1
  58. package/skills/self-review/scripts/check_emphasis_density.py +1 -1
  59. package/skills/self-review/scripts/check_figure_citation.py +1 -1
  60. package/skills/self-review/scripts/check_nested_group_comparison.py +1 -1
  61. package/skills/self-review/scripts/check_null_calibration.py +1 -1
  62. package/skills/self-review/scripts/check_paired_difference_estimator.py +1 -1
  63. package/skills/self-review/scripts/check_panel_diversity.py +1 -1
  64. package/skills/self-review/scripts/check_paren_spans.py +1 -1
  65. package/skills/self-review/scripts/check_reference_adequacy.py +1 -1
  66. package/skills/self-review/scripts/check_reported_p_from_counts.py +1 -1
  67. package/skills/self-review/scripts/check_reviewer_team_consistency.py +1 -3
  68. package/skills/self-review/scripts/check_rounded_delta.py +1 -1
  69. package/skills/self-review/scripts/check_scope_coherence.py +1 -1
  70. package/skills/self-review/scripts/check_supplement_hygiene.py +1 -1
  71. package/skills/self-review/scripts/check_table_percentages.py +2 -2
  72. package/skills/sync-submission/SKILL.md +38 -0
  73. package/skills/sync-submission/scripts/build_marked_manuscript.py +162 -0
  74. package/skills/sync-submission/scripts/check_asset_anonymization.py +1 -1
  75. package/skills/sync-submission/scripts/check_checklist_dump_leak.py +1 -1
  76. package/skills/sync-submission/scripts/check_cross_artifact_stale.py +1 -1
  77. package/skills/sync-submission/scripts/check_disclosure_availability.py +1 -1
  78. package/skills/sync-submission/scripts/check_marked_manuscript.py +333 -0
  79. package/skills/sync-submission/scripts/check_wordcount_cap.py +1 -1
  80. package/skills/sync-submission/scripts/detect_copy_divergence.py +1 -1
  81. package/skills/sync-submission/skill.yml +2 -0
  82. package/skills/sync-submission/tests/test_marked_manuscript.sh +208 -0
  83. package/skills/uncertainty-imaging/scripts/check_uncertainty_reporting.py +1 -1
  84. package/skills/verify-refs/scripts/verify_refs.py +38 -8
  85. package/skills/verify-refs/tests/test_author_normalization.sh +88 -0
  86. package/skills/write-paper/scripts/check_placeholders.py +1 -1
package/README.md CHANGED
@@ -288,6 +288,10 @@ The E2E pipeline (`orchestrate --e2e`) produces everything up to `qc/`. The `sub
288
288
 
289
289
  ## What's New
290
290
 
291
+ **v5.21** — verification-layer batch, mostly promoted from real submission failures. A **marked (tracked-changes) manuscript** is now built by driving Word's Compare from the command line and proved by a **round trip** — accepting every revision must reproduce the revised paper exactly, rejecting every revision must reproduce the original — and the gate is **move-aware**, because Word encodes a relocated paragraph as `w:moveFrom`/`w:moveTo` and an insert-and-delete-only verifier calls a good file corrupt. Every detector's `qc/*.json` now **names the detector that wrote it**, so an artifact can be traced back to the check that produced it (a CI-enforced contract). Two `/verify-refs` precision defects: a Unicode hyphen in a surname fired `MISMATCH` — the verdict that means *fabricated author* — on a correct reference, and a Better BibTeX brace-protected surname was read as a corporate author, **silently skipping** the author check the tool exists to perform. New gates: publisher markup in a `.bib` title (`<scp>WHO</scp>` renders as garbage and no gate looked at the printed title), **complete/quasi separation** before a logistic model is fitted (a pathognomonic sign has an empty cell by construction; `glm` returns OR = 0.00, *p* = 0.99, and an AUC that gets reported), and a probe + gate for manuscripts claiming a system **improved itself** (which rung of the verification hierarchy said so?). `/find-cohort-gap` now accepts a **local codebook** — an institutional registry or EMR export, not only a named public cohort — enumerating variables verbatim with provenance rather than letting a model summarise them. Additive and backward-compatible; **55 skills / 46 guidelines / 61 integrity detectors / 23 domain-probe modules**. (See the [CHANGELOG](CHANGELOG.md) for v5.0–v5.20.)
292
+
293
+ **v5.20.1** — audit-driven coherence fixes. A real `/orchestrate --e2e` state-transition bug (the pipeline halted at step 3 because it required a DOCX that is only rendered at step 7), all 55 skills made routable from the single entry point with a CI reachability gate, and a README plugin-count that had drifted from the marketplace SSOT (now gated). No skill/detector change.
294
+
291
295
  **v5.20** — reviewer-arithmetic gates. Five deterministic `self-review` detectors promoted from a peer-review cycle, each recomputing what a manuscript already prints: `check_table_percentages` (an `n (%)` cell vs its column denominator), `check_nested_group_comparison` (a P value comparing an analysed subset against the parent cohort that **contains** it — nested, invalid), `check_reported_p_from_counts` (rebuilds each 2×2 row and recomputes Fisher / Pearson χ² ± Yates in **pure stdlib**, calibrating the family on rows that reproduce), `check_dta_denominators` (sensitivity/specificity denominators vs the reference-standard category counts, behind a matching grand total), and `check_paired_difference_estimator` (an odd-n integer-scale median cannot be non-integer; a zero-width CI; an unnamed estimator). Plus `/peer-review` request-type discipline (disclosure vs computation) and impossibility-claim verification. Additive and backward-compatible; **55 skills / 46 guidelines / 57 integrity detectors / 22 domain-probe modules**. (See the [CHANGELOG](CHANGELOG.md) for v5.0–v5.19.)
292
296
 
293
297
  **v5.19** — reviewer-safety + reporting-checklist batch. A **PDF hidden-text / prompt-injection guard** for `/peer-review` — a PyMuPDF extractor plus a stdlib detector that catch a review-steering instruction hidden in a submitted PDF (white-on-white text, sub-visible fonts, off-page glyphs, invisible render mode, or a document-metadata field) before an LLM ingesting the text layer can be steered by it, and emit visible-only text to feed a model instead of the raw PDF; plus the **TARGET** (target-trial emulation; Cashin et al., *JAMA* 2025) and **REMARK** (prognostic tumour-marker; McShane et al.) reporting checklists. Additive and backward-compatible; **55 skills / 46 guidelines / 52 integrity detectors / 22 domain-probe modules**. (See the [CHANGELOG](CHANGELOG.md) for v5.0–v5.18.)
@@ -356,7 +360,7 @@ The E2E pipeline (`orchestrate --e2e`) produces everything up to `qc/`. The `sub
356
360
 
357
361
  **v4.1** ships distribution levers and a submission pre-flight gate — analysis-integrity detectors **24 → 25** (still 43 skills):
358
362
 
359
- - **Claude Code plugin marketplace** — `/plugin marketplace add Aperivue/medsci-skills`, then `/plugin` discovery of eight `medsci-*` category plugins generated from the catalog SSOT (`.claude-plugin/marketplace.json`).
363
+ - **Claude Code plugin marketplace** — `/plugin marketplace add Aperivue/medsci-skills`, then `/plugin` discovery of nine `medsci-*` category plugins generated from the catalog SSOT (`.claude-plugin/marketplace.json`).
360
364
  - **MedSci-Audit detector registry** — the deterministic verification layer is now a named, enumerated, citable suite ([`MEDSCI_AUDIT.md`](MEDSCI_AUDIT.md) + generated `metadata/detectors_catalog.json`, six audit families).
361
365
  - **Hero-skill standalone mirrors** — `scripts/sync_hero_skill.py` mirrors a focused skill to its own star-funnel repo; first two live: [`Aperivue/verify-refs`](https://github.com/Aperivue/verify-refs) and [`Aperivue/check-reporting`](https://github.com/Aperivue/check-reporting).
362
366
  - **Placeholder/marker gate** — `check_placeholders.py` flags leftover `[@NEW:]` / `[version]` / `TODO` / template-URL markers before submission (the 25th detector).