Content
63%Weight 40%Scale 1-5Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
The body is a well-organized, largely actionable conventions guide with concrete code examples and a clear pre-PR checklist. Its weaknesses are a handful of explanations of concepts Claude already knows, some illustrative rather than executable snippets, and a monolithic single-file layout with no progressive disclosure into reference files.
Suggestions
Trim explanations of known concepts — the vectorization 'Why' note and PyTensor 'Backend Capabilities'/'Automatic Differentiation' bullets — leaving only the project-specific rule (use pytensor ops; prefer HSGP).
Move deep-dive material (full docstring template, HSGP rationale, class architecture details) into a references/ file and keep SKILL.md as a concise overview with clearly signaled links.
Add a short error-recovery loop to the workflow checklist (e.g., what to do when 'make lint' or mypy fails) and complete the fragmentary code snippets so they are copy-paste ready.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is mostly bullet points and code, but includes explanations of concepts Claude already knows, e.g., 'Python loops are slow; vectorized operations in C/Fortran backends are orders of magnitude faster' and 'PyTensor graphs can be compiled to C, JAX, or MLX... Essential for gradient-based optimization.' This fits 'Mostly efficient but includes some unnecessary explanation or could be tightened' — above anchor 2 since padding is limited to a few 'Why'/'Backend Capabilities' notes. | 3 / 5 |
Actionability | Concrete, mostly executable guidance throughout: typed signatures with Good/Bad examples, a full NumPy-style docstring template, pm.Data usage, a Prior-based default_model_config, a parametrized pytest example, and exact commands ('make lint', 'pre-commit run mypy --all-files', 'make test'). It stops short of anchor 5 because some snippets are illustrative fragments (e.g., 'def calculate_metric(...) -> ...:', 'x_data = pm.Data(...)' with '...') rather than copy-paste ready. | 4 / 5 |
Workflow Clarity | Sequences are clear: the model class lifecycle is ordered (init -> build_model -> _extract_predictive_variables) with an explicit 'Do not build the PyMC model here' guardrail, and the PR checklist gives concrete commands with lint/test acting as checkpoints. It is below anchor 5 because there is no error-recovery guidance (what to do when mypy or tests fail) and docstring coverage is a directive without a verification step. | 4 / 5 |
Progressive Disclosure | The ~165-line body is well-sectioned but fully inlined with no bundle files at all; detailed material that could live in separate references (the full docstring example, HSGP/pytensor deep-dives, class architecture) is inline. This matches 'Some structure but could be better organized; content that should be separate is inline' rather than anchor 4, and the under-50-line exception does not apply. | 3 / 5 |
Total | 14 / 20 Passed |