August 2026 is a real EU AI Act planning checkpoint for many teams. Use the free scan now, and request baseline review if security, procurement, or launch pressure is already active.
← All Frameworks

scikit-learn AI Security Score

The foundational ML library has zero secrets but no structural enforcement.

60,000+ GitHub starsAssessed: 2026-03-11View Repository

Boundary Truth

Keep saved framework context separate from the next repo action

This page marks the saved scan, the right next step, and the limits as distinct zones.

Shown On This Page

Saved public scan from 2026-03-11

  • This page preserves a saved public-framework scan for scikit-learn captured on 2026-03-11.
  • The score, findings, and raw stats show what the public default-branch scan surfaced for scikit-learn at that time.
  • Use it as comparison context for how a major framework exposes AI security gaps, not as a current read on your own repository.

Next Step

Run the free scan before treating this as current repo findings

  • Use this saved framework example to decide whether the pattern is relevant enough to justify checking your own repository now.
  • Run the free scan on your repo before treating this page as current delivery context or a paid-services trigger.
  • Escalate to the baseline sprint only after a repo-level signal confirms a real gap, and keep monitoring after baseline work exists.

Limit

Useful explanation that still does not settle your repo

  • This page does not show what your repo looks like right now or whether your controls already differ from this framework.
  • It does not provide a repo-specific owner map, remediation order, or implementation promise for your codebase.
  • The analysis and offer copy below explain the saved scan, but they do not extend the findings beyond the captured snapshot.

Overall Score: 18/100 saved snapshot (Grade: F)

This score is preserved from the public scan captured on 2026-03-11. It is comparative evidence for scikit-learn, not current findings for your repository.

20/100
Enforcement Maturity
Grade: D
10/100
Context Hygiene
Grade: F
26/100
Automation Readiness
Grade: D
Portfolio average29/100
scikit-learn18/100

Framework Limit

Keep saved framework context separate from current repo findings

Left column: comparison context visible on this page now. Right column: the current-repo and delivery claims this framework page still does not settle.

What This Framework Page Shows

Saved public scan from 2026-03-11

  • This page preserves a saved public-framework scan for scikit-learn captured on 2026-03-11.
  • The score, findings, and raw stats show what the public default-branch scan surfaced for scikit-learn at that time.
  • Use it as comparison context for how a major framework exposes AI security gaps, not as a current read on your own repository.

What This Page Still Cannot Know

Current repo findings and paid follow-through need their own review

  • This page does not show what your repo looks like right now or whether your controls already differ from this framework.
  • It does not provide a repo-specific owner map, remediation order, or implementation promise for your codebase.
  • The analysis and offer copy below explain the saved scan, but they do not extend the findings beyond the captured snapshot.

Need Current Repo Findings?

Use the free scan when you need current findings on your own repository instead of this saved framework example.

Run Free Repo Scan

Key Findings

No Hook Enforcement [CRITICAL]

Zero enforcement hooks. AI agents can modify safety-critical estimators used in medical diagnostics, insurance underwriting, and financial modeling without structural gatekeeping.

Hidden Test Structure [CRITICAL]

Zero test files at root. Tests exist in sklearn/tests/ and sklearn/cluster/tests/ following Python convention, but governance tools cannot easily discover or assess coverage.

No CLAUDE.md or Agent Instructions [HIGH]

AGENTS.md is present (early awareness) but no enforcement-level instructions. AI agents contributing to safety-critical ML code have no project-specific context about estimator interface requirements.

Why scikit-learn's Governance Score Matters

scikit-learn is the most widely used machine learning library in production, powering everything from medical diagnostics to financial risk models. With 60,000+ GitHub stars, it is foundational infrastructure for AI/ML pipelines across every industry. Its governance posture directly affects the safety and reliability of millions of downstream applications.

The good news: scikit-learn has zero potential hardcoded secrets, the best security hygiene in our audit portfolio. The bad news: it has zero enforcement hooks, no AI agent instructions, and a test structure that -- while thorough -- is invisible to governance tools that scan at the repository root level.

Enforcement Ladder Analysis

scikit-learn follows idiomatic Python conventions with tests distributed across package directories (sklearn/tests/, sklearn/cluster/tests/, etc.). While this is good software engineering, it creates a governance visibility gap: automated tools scanning at the root level see zero tests, making the project appear ungoverned when it actually has substantial coverage.

The absence of L5 hooks is the critical gap. scikit-learn's estimators are used in high-stakes decisions -- credit scoring, medical diagnosis, insurance pricing. Any AI agent modifying estimator code can do so without structural validation. The 21 GitHub Actions workflows provide L3 automation, but nothing blocks a dangerous commit before it reaches CI.

What This Means for Teams Using scikit-learn

scikit-learn's estimator API is one of the most stable in the Python ecosystem. The governance risk is not in using scikit-learn -- it is in modifying or extending it without structural safeguards. If your team contributes to scikit-learn or builds custom estimators:

  1. Add pre-commit hooks that validate estimator interface compliance (fit/predict/transform signatures)
  2. Create CLAUDE.md documenting the estimator API contract for AI agent contributors
  3. Implement root-level test orchestration so governance tools can discover the full test suite
  4. Add deprecation tracking to manage the 490 dead code markers systematically

EU AI Act Compliance Impact

scikit-learn powers high-risk AI systems in healthcare, finance, and employment. Organizations using scikit-learn estimators in EU AI Act-regulated contexts need to ensure their own governance layer compensates for the library's 15% compliance readiness. The strongest gap is in Article 9 (Risk Management) and Article 17 (Quality Management), where automated validation of model behavior is essential for compliance.

Recommendations

Immediate (Week 1): Create CLAUDE.md with estimator interface requirements and API design patterns (1 hour). Add 3 pre-commit hooks for safety-critical estimator paths (2 hours). Add root-level test orchestration pointing to embedded test structure (30 minutes).

Short-term (Month 1): Deploy L5 enforcement hooks for safety-critical estimator paths. Set up violation tracking for API contract violations. Implement deprecation cleanup plan for 490 dead code markers.

Strategic (Quarter): Build enforcement ladder documentation linking estimator governance to EU AI Act requirements. Establish automated regression testing for estimator behavior boundaries. Implement autoresearch optimization (50-100 iterations) to tune enforcement rules.

Saved Public Scan Data

These counts are preserved from the public framework scan on 2026-03-11. They are useful comparative evidence, not a current read on your repository.

0 at root
Test Files
660
Source Files
21
GitHub Actions
0
Potential Secrets
624
TODO/FIXME
490
Dead Code Markers
0
CLAUDE.md Files
0
L5 Hooks

EU AI Act Readiness

15%

Estimated saved-snapshot readiness based on enforcement posture, documentation, and automated quality controls in the assessed public repo. EU AI Act enforcement begins August 2, 2026.

Next Step Path

Use the framework page to choose the right next move

These framework pages are saved comparison context. The free scan is the first current-state check for your repo. When the signal is real, the baseline sprint is the first paid move, and its request page reviews fit before delivery starts. Monitoring uses that same review path only after baseline work exists. This page is comparative context, not current repo findings.

Current Page State

Saved framework snapshot only

This page preserves comparison context from 2026-03-11. It does not settle what your repo looks like today or whether a paid engagement fits yet.

Right Next Move

Run the free scan on your repo

That gives the first current-state signal. Move to the baseline sprint only after a repo-level signal confirms a real gap, and keep monitoring for after baseline work exists.

Plain Next-Step Path

From this saved framework page, the next step is the free scan on your own repo. Request the baseline sprint only if that repo-level signal confirms a real gap, and keep monitoring for after baseline work is in place.

1. Free Scan

Free Scan

Start Here

Use the free scan when you need current findings on your own repository instead of this saved framework example.

This page only gives saved framework evidence, so the free scan is the first current-state check for your repo.

Start here when a framework score is useful context but not current enough to act on.

2. Baseline Sprint

Baseline Sprint

After Repo Proof

Use this after your own scan or equivalent repo signal shows a real gap and you need a bounded remediation order. The request page reviews fit before any sprint is booked.

Keep this for after your own scan or equivalent repo signal confirms a real gap that needs a fix order.

This is the first paid move. The request page checks fit so current repo signal can turn into a concrete fix path before delivery starts.

3. Monitor

Monitor

After Baseline

Keep this for continuity after baseline work exists, not as the first paid move from a saved framework page. The request page reviews fit first.

Monitoring is continuity work only after baseline enforcement exists, not the first move from a saved framework page.

If all you have is comparative framework context, skip this for now and start with the free scan.

If all you have is this saved framework page, start with the free scan. The baseline sprint is the first paid move only after the signal is real, and monitoring only fits after baseline work exists.

This governance assessment was generated by walseth.ai using automated enforcement posture scanning on 2026-03-11. Findings are based on static analysis of the repository structure, configuration files, and code patterns. Scores reflect a point-in-time assessment and may change as the project evolves.