Use execute to rerun every notebook registered in _quarto.yml, clean the documented noisy cell metadata, sync Jupytext pairs, and provide the per-notebook execution summary.
User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗
SKILL.md
name: executedescription: Executes all registered notebooks, strips noisy cell metadata, and syncs Jupytext pairs. Use when asked to re-run notebooks or refresh outputs.disable-model-invocation: trueallowed-tools: Bash, Read, Write, Edit, Glob, Grep
Execute All Notebooks
Execute all registered notebooks, strip noisy metadata, and sync Jupytext pairs.
Steps
Read _quarto.yml and extract all notebook paths from manuscript.notebooks
For each notebook, execute it:
uv run jupyter execute --inplace notebooks/<name>.ipynb
Record execution time and success/failure for each notebook.
After all notebooks execute, strip noisy cell metadata from every .ipynb file.
Open each .ipynb as JSON and remove these keys from every cell's metadata object:
execution (timestamps added by jupyter execute)
_sphinx_cell_id (MyST/Sphinx artifact)
vscode (VS Code editor state)
Save the cleaned JSON back to the file (preserve formatting with 1-space indent).
Sync all Jupytext .md pairs:
uv run jupytext --sync notebooks/<name>.md
Report a summary table:
Notebook name
Status (success / failure)
Execution time
Any errors or warnings
Error handling
If a notebook fails to execute, continue with the remaining notebooks. Report the error at the end.
If _quarto.yml has no notebooks registered, report "No notebooks found in _quarto.yml" and stop.