tidymodels — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited tidymodels (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This skill guides the process of developing predictive models for tabular data with proper validation practices.
Always partition data into:
model development
permission before use
A common split is 75% training / 25% testing. Use stratified sampling:
See references/data-spending.md for specific instructions for data splitting.
final model on the test set?"*
Self-check: If you're writing predict(..., test_data) without prior user permission, STOP—you're making an error.
Exception: Basic verification after splitting (e.g., nrow(test_data), glimpse(test_data)) to confirm the split worked.
Always set a random seed before any operation that involves randomness:
initial_split(),initial_time_split(), etc.
vfold_cv(),sliding_period(), etc.
tune_grid() or other tuning functions(if not already set recently)
This ensures that others can reproduce your exact results. Use a single seed at the start of your script, or re-set it before each random operation for maximum clarity.
Do not use common values like 123, 111, 999, 42, or 1: These are overused and can lead to unintentional correlations between different analyses. Using the same seed as other researchers' work may produce accidentally similar results.
Good practices:
Always use out-of-sample predictions to measure performance:
resampling
See references/resampling.md for resampling methods and implementation.
Before starting computationally intensive work (cross-validation, tuning, model fitting):
parallel::detectCores() to check systemresources
have an actual exchange
Example interaction:
You: I'm about to run 10-fold cross-validation with hyperparameter tuning. I can use parallel processing to speed this up significantly.
>
I see you have 8 cores available. Would you like me to use parallel processing? If so, how many cores should I use? (I'd recommend using 6-7 to leave 1-2 cores free for other processes)
If user says yes:
library(future)
plan("multisession", workers = 6) # or whatever they specifiedIf user says no or doesn't respond:
# Proceed with sequential processing (no future setup)If user is unsure:
You: Here's the trade-off: - With parallel processing (6 cores): \~5-10 minutes - Without (sequential): \~30-45 minutes
>
Your choice won't affect the results, just the speed.
asks to stop
Do not automatically enable parallel processing without asking the user first.
See references/evaluation.md for specific instructions for computing performance metrics.
Ask the user whether they prioritize:
Default set: ROC-AUC, Brier score, and accuracy.
replacement)
Default set: RMSE and R².
The modeling process is iterative. Three main levers for improvement:
data
All steps must be validated using out-of-sample data.
steps
model performance
See references/feature-engineering.md for:
It is a good idea to propose two models to the user:
glmnetiterations.
See references/tuning.md for details on tuning methods and implementation.
See references/tuning.md for details on tuning methods and implementation.
Without tuning: Resample the model or use a validation set. Report out-of-sample metrics.
With tuning: Select metric to optimize, identify optimal tuning parameters.
For the best model, present:
Classification:
Regression:
See references/evaluation.md for metrics, visualizations, and implementation.
Once the user selects a final model, fit it on the entire training set.
After receiving user permission, evaluate on the test set with:
vs. predicted, residuals)
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.