Back to Claude Scientific Skills

Security Validation Record

skills/hypothesis-generation/references/security_validation.md

2.55.03.6 KB
Original Source

Security Validation Record

Validation date: 2026-07-23 (local project date).

Baseline

The repository SECURITY.md section recorded 10 findings with maximum severity CRITICAL:

  • cross-file environment-variable/network exfiltration;
  • a multi-file collection/transmission chain;
  • environment harvesting in both schematic scripts;
  • credential transmission and local .env loading;
  • subprocess delegation and full-environment propagation;
  • fabricated or unverified model identifiers;
  • unpinned external dependencies.

The affected files were:

  • deleted: scripts/generate_schematic.py;
  • deleted: scripts/generate_schematic_ai.py;
  • the former credential and mandatory-figure instructions in SKILL.md.

Remediation

  • Deleted both external schematic scripts and all former LaTeX/figure assets.
  • Removed credential declarations, environment access, .env loading, subprocesses, HTTP requests, external models, image generation, mandatory figures, and cross-skill behavior.
  • Replaced the workflow with bounded deterministic local JSON/CSV/Markdown validators and a preregistration scaffold generator.
  • Added strict duplicate-key/header detection, size/row/cell/list limits, symlink and URL-path rejection, private atomic outputs, and no implicit overwrite.
  • Added AST tests rejecting network libraries, subprocesses, executable serialization, dynamic code execution, and environment credential access.
  • Added local-first confidentiality, source verification, human accountability, ethics, biosafety, dual-use, data, clinical-scope, and regulatory gates.
  • Tools report declarations and cross-links only; they do not score or select hypotheses.

Validation results

  • Agent Skills reference validator: PASS
  • Dependency-free CLI help checks: PASS for all 7 public CLIs
  • Synthetic standard-library tests: 27 passed
  • Explicit AST parse with bytecode disabled: 8 scripts parsed
  • Bytecode artifacts: 0
  • IDE lints: 0
  • Documented local-path link test: PASS
  • Authoritative-source link extraction: 36/36 reachable, 0 errors
  • Direct behavioral security scan: SAFE, 0 findings
  • Pull-request gate with --fail-on HIGH: PASS
    • CRITICAL: 0
    • HIGH: 0
    • LOW: 2

Residual LOW findings

The LLM-assisted pull-request scan reported:

  1. Missing allowed-tools declaration — informational. The Agent Skills specification does not require this optional field. The compatibility declaration and body constrain bundled tools to bounded local standard-library processing with no network, models, images, credentials, or environment access.
  2. Missing referenced files — analyzer false positive. It invented paths under templates/ and mismatched existing assets/ and references/ files. The deterministic local-path test resolved every documented bundled path and passed. No script implements network fallback or substitute retrieval.

Neither LOW finding permits data transmission, credential access, scientific scoring, or automatic hypothesis selection. No CRITICAL or HIGH issue remains.

Reproduction

bash
PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover \
  -s skills/hypothesis-generation/tests -p "test_*.py" -v

uv run skills-ref validate skills/hypothesis-generation

uv run skill-scanner scan skills/hypothesis-generation --use-behavioral

uv run python scan_pr_skills.py \
  --fail-on HIGH \
  --output /tmp/hypothesis-generation-pr-scan.md \
  skills/hypothesis-generation

The repository-level SECURITY.md is intentionally not edited in this scoped refresh; its generated snapshot updates through the repository’s normal scan process.