Source profileQuality 86/100

muend/geoai-skills/skills/ml-experiment-standards/SKILL.md

ml-experiment-standards

Always invoke for training, validating, tuning, benchmarking, or claiming readiness of a predictive model. Covers leakage audits, spatial and grouped splits, metrics, reproducibility, and honest reporting. Invoke especially when spatial dependence, split design, or deployment geography is unknown; uncertainty is a reason to use this skill. Do not trigger for descriptive EDA or non-predictive statistical inference.

Source repository stars
6
Declared platforms
0
Static risk flags
0
Last source update
2026-08-04
Source checked
2026-08-04

Decision brief

What it does—and where it fits

Purpose: every ML job (quick prototypes included) is reproducible, leakage-free, and metric-justified. These are not optional polish; every skipped item typically returns as "the model collapsed in production" or "the result didn't replicate".

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/muend/geoai-skills --skill "skills/ml-experiment-standards"
    Safe inspection promptEditorial

    Inspect the Agent Skill "ml-experiment-standards" from https://github.com/muend/geoai-skills/blob/4ac195e3f372cc4ffe97c53db7a9dae7317bc7ed/skills/ml-experiment-standards/SKILL.md at commit 4ac195e3f372cc4ffe97c53db7a9dae7317bc7ed. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      1. EDA comes first

      Before any model, produce and show: distributions, missingness rates, outliers, target balance, salient correlations. Metric and loss choice depend on this information; a model recommendation without EDA is a guess.

      Before any model, produce and show: distributions, missingness rates, outliers, target balance, salient correlations. Metric and loss choice depend on this information; a model recommendation without EDA is a guess.
    2. 02

      2. Leakage audit

      At every split decision, answer explicitly (and write the answer as a code comment): "Does the training set contain indirect information about any test sample?"

      Scalers/encoders/imputers are fit on train only; the clean path isTarget-derived features (target encoding etc.) must be computedAt every split decision, answer explicitly (and write the answer as a code comment): "Does the training set contain indirect information about any test sample?"
    3. 03

      3. Metric selection — justified

      Never choose a metric by default; write a one-sentence rationale:

      Imbalanced classes → F1 / AUC-PR, not accuracy (accuracy rewardsSegmentation → IoU/Dice (pixel accuracy is inflated by background).Regression → RMSE (sensitive to large errors) vs MAE (robust) vs R²
    4. 04

      4. Reproducibility skeleton

      Every training script follows this shape (script-first; no notebook magic):

      Config lives in a dataclass/YAML, never hardcoded — sweeps and runPin library versions (pip freeze requirements.txt).Use MLflow/W&B when available; the JSON log above is the minimum.
    5. 05

      5. Deep learning extras

      Loss rationale: Dice/Dice+CE for imbalanced segmentation; write why.

      Loss rationale: Dice/Dice+CE for imbalanced segmentation; write why.Augmentation rationale: state which transforms respect the physicsOverfitting control: early stopping with patience + a train/val

    Permission review

    Static risk signals and limitations

    No configured static risk pattern was detected

    This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score86/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars6SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    muend/geoai-skills
    Skill path
    skills/ml-experiment-standards/SKILL.md
    Commit
    4ac195e3f372cc4ffe97c53db7a9dae7317bc7ed
    License
    MIT
    Collected
    2026-08-04
    Default branch
    main
    View the original SKILL.md

    ML Experiment Standards

    Purpose: every ML job (quick prototypes included) is reproducible, leakage-free, and metric-justified. These are not optional polish; every skipped item typically returns as "the model collapsed in production" or "the result didn't replicate".

    1. EDA comes first

    Before any model, produce and show: distributions, missingness rates, outliers, target balance, salient correlations. Metric and loss choice depend on this information; a model recommendation without EDA is a guess.

    2. Leakage audit

    At every split decision, answer explicitly (and write the answer as a code comment): "Does the training set contain indirect information about any test sample?"

    Data typeCorrect splitWhy
    Independent samplesStratified k-foldPreserves class ratios
    Time seriesTimeSeriesSplit / walk-forwardFuture must not leak into past
    Spatial dataSpatial block CV — see references/spatial-cv-protocol.mdNeighbors are near-duplicates
    Grouped data (patient, parcel, scene)GroupKFoldA group must not straddle the split
    • Scalers/encoders/imputers are fit on train only; the clean path is sklearn.pipeline.Pipeline — CV then fits correctly by construction.
    • Target-derived features (target encoding etc.) must be computed out-of-fold, and shown to be.

    The spatial protocol in references/spatial-cv-protocol.md is the single canonical source for this repo — other skills link here; do not restate it.

    3. Metric selection — justified

    Never choose a metric by default; write a one-sentence rationale:

    • Imbalanced classes → F1 / AUC-PR, not accuracy (accuracy rewards majority-class memorization).
    • Segmentation → IoU/Dice (pixel accuracy is inflated by background).
    • Regression → RMSE (sensitive to large errors) vs MAE (robust) vs R² (variance explained) — justify from the use case.
    • Every point estimate gets uncertainty: bootstrap CI or mean ± std across CV folds. A single number hides whether a difference is signal or noise.

    4. Reproducibility skeleton

    Every training script follows this shape (script-first; no notebook magic):

    """Experiment: <name>. Goal and success criterion: <one sentence>."""
    from dataclasses import dataclass, asdict
    import json, random
    import numpy as np
    
    @dataclass
    class Config:
        seed: int = 42
        lr: float = 1e-3
        batch_size: int = 32
        epochs: int = 100
        patience: int = 10  # early stopping
    
    def set_seed(seed: int) -> None:
        random.seed(seed)
        np.random.seed(seed)
        # if torch: torch.manual_seed(seed); torch.cuda.manual_seed_all(seed)
    
    def main(cfg: Config) -> None:
        set_seed(cfg.seed)
        ...  # data -> split -> pipeline -> train -> evaluate
        with open("runs/run_meta.json", "w", encoding="utf-8") as f:
            json.dump({"config": asdict(cfg), "metrics": metrics}, f, indent=2)
    
    if __name__ == "__main__":
        main(Config())
    
    • Config lives in a dataclass/YAML, never hardcoded — sweeps and run comparison depend on it.
    • Pin library versions (pip freeze > requirements.txt).
    • Use MLflow/W&B when available; the JSON log above is the minimum.

    5. Deep learning extras

    • Loss rationale: Dice/Dice+CE for imbalanced segmentation; write why. Focal only after comparison — not a free win.
    • Augmentation rationale: state which transforms respect the physics of the problem (orientation-dependent tasks forbid some rotations; multispectral forbids naive color jitter).
    • Overfitting control: early stopping with patience + a train/val curve in the report; no curve, no "the model is good".
    • Capacity order: small model + simple baseline first (logistic regression, RF); a deep model that can't beat the baseline is a data problem, not an architecture problem.
    • EO-specific chipping/inference details → geo-deep-learning.

    6. System context (MLOps)

    Position every model in its chain in one paragraph: data source → cleaning → features/versioning → training → evaluation → deployment (batch/real-time) → monitoring (data/model drift). Even for a prototype, note "what this step becomes in production".

    7. Report format

    ## Experiment: <name>
    - Data: n=<>, split: <strategy + rationale>
    - Baseline: <model> → <metric ± CI>
    - Model: <model> → <metric ± CI>
    - Leakage audit: <what was checked>
    - Next step: <single recommendation>
    

    When reporting differences, respect statistical honesty: if the gap doesn't exceed the across-fold std, say "no clear difference" — no p-hacking, no selective reporting.

    Execution contract

    • Workflow: define prediction target and decision use; establish a baseline; audit leakage; create spatially valid splits; train reproducibly; quantify uncertainty; inspect errors and deployment fit.
    • Decision rules: apply this skill only to predictive model experiments; use spatial statistics for inference, geostatistics for sampled-surface estimation, and descriptive analysis without forcing a model.
    • Verification protocol: reproduce from a clean environment, compare against baseline across folds or seeds, inspect spatial residuals, verify split independence, and test the final decision threshold.
    • Failure modes: invalidate uplift claims for leakage, post-split preprocessing, inappropriate metrics, non-independent test units, selective runs, or train-serving skew.
    • Deliverables: experiment configuration, split and seed manifest, baseline and model metrics with uncertainty, leakage audit, error analysis, artifacts, and deployment caveats.
    • Source freshness: consult the authoritative source registry before using version-sensitive split, metric, or reproducibility APIs.

    Alternatives

    Compare before choosing