Installs into .claude/skills of the current project.
Sponsors
SSkills DirectorySkills Directory
Know which skills are safe — weekly.
SSkills DirectorySkills Directory
Is that skill safe to install?
Are you the author of Kg Cv?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/tranbadat2607-kg-cv)
---
name: kg-cv
description: Design, build, verify and freeze the cross-validation scheme (data/folds.csv) so it mirrors how the test set was split.
argument-hint: "[strategy] [group-column]"
allowed-tools:
- Read
- Glob
- Grep
- 'Bash(PYTHONPATH="${CLAUDE_PLUGIN_ROOT}" python -m kgkit config *)'
- 'Bash(python -m kgkit config *)'
- 'PowerShell(python -m kgkit config *)'
- 'Bash(PYTHONPATH="${CLAUDE_PLUGIN_ROOT}" python -m kgkit folds *)'
- 'Bash(python -m kgkit folds *)'
- 'PowerShell(python -m kgkit folds *)'
- 'Bash(PYTHONPATH="${CLAUDE_PLUGIN_ROOT}" python -m kgkit ledger *)'
- 'Bash(python -m kgkit ledger *)'
- 'PowerShell(python -m kgkit ledger *)'
---
# /kg-cv
Run kgkit with the Bash tool, as `PYTHONPATH="${CLAUDE_PLUGIN_ROOT}" python -m kgkit <command>`: this command
pre-approves that form for the kgkit calls it makes. Submitting, pushing or publishing still asks (so does a
PowerShell `$env:` assignment).
Arguments: `$ARGUMENTS` (optional strategy override and group column).
Follow the `validation-strategy` skill.
If decisions in this competition are made on a fixed labelled holdout plus the public LB (no K-fold OOF:
e.g. a small expert-labelled set, or an accepted baseline forked from public inference notebooks), do not
invent folds. Record the mode and the holdout labels instead:
`python -m kgkit config validation=holdout+lb holdout_n=<rows> eval_truth=<FILE>:<label cols, comma-separated>`
(plus `eval_groups=<FILE>:<col>` when several rows share a patient/study), so the session brief stops
asking for `data/folds.csv`. Log each candidate with its holdout predictions
(`kgkit ledger add <name> auto --pred <FILE>:<cols>`): the score is recomputed from them and compared,
paired, against the accepted baseline. Do not judge differences by the holdout size alone: two models
scored on the same rows differ far less by chance than one score varies.
1. Determine how train/test were split (recon report, data page, adversarial validation, time
columns, entity ids). State the evidence.
2. Pick the scheme from the decision table; if groups are suspected but not explicit, look for them
(duplicate feature vectors, entity-like columns, image hashes, text near-duplicates).
3. Build: `python -m kgkit folds data/train.csv --strategy <s> --target <y> [--group <g>] --id-col
<id> --n-splits <k> --out data/folds.csv` (time series: write a split script using
`kgkit.cv.time_series_splits` with gap ≥ horizon, saved as `src/splits.py`).
4. Verify with the fold report (balance, group confinement, temporal order).
5. Freeze: commit the script/seed (folds.csv itself may be in data/ which is git-ignored — record
the exact command in CLAUDE.md so it is reproducible). Regenerated on another machine or OS, it
keeps its `folds_hash` when every row gets the same fold (the ledger fingerprints the fold column,
not the file's bytes); if `ledger compare` then warns of different fold splits, the split changed.
6. If a previous fold scheme existed, warn that old OOFs are no longer blendable with new ones.