skills/commit-summary/SKILL.md
Generate weekly commit summary reports for SCT repository. Use when asked to create a commit summary, weekly report, changelog, or "last week in SCT" issue. Applies to summarizing git commits from scylla-cluster-tests master branch for developer audiences. Covers running sct_commits_summary.py, filtering commits by importance, and writing prose summaries with embedded GitHub links.
npx skillsauth add scylladb/scylla-cluster-tests commit-summaryInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate curated weekly commit summaries that highlight changes important to SCT developers and testers.
Select commits that matter to other developers, not every change that landed.
The raw git log contains dozens of commits. Most are routine fixes or dependency bumps that don't need attention. The summary exists to surface changes that affect how people write tests, use tools, or understand the framework. Including everything defeats the purpose — readers stop reading.
Links belong inside the most meaningful phrase of each paragraph, not at the start.
Readers scan by link text. A link on "was updated" tells nothing; a link on "migrated from dict-based to pydantic configuration" tells the whole story. Vary link placement — don't start every paragraph with a link, because it creates a monotonous list feel.
Combine commits that touch the same area into one paragraph, but never mix unrelated changes.
Two commits updating scylla-bench belong together. A scylla-bench update and a new nemesis do not. Grouping related work reduces paragraph count and gives readers a coherent picture. Mixing unrelated changes forces readers to context-switch mid-paragraph.
Match the tone and structure of previous issues — concise, factual, third-person.
The report has a consistent voice across 100+ issues. Breaking that voice is jarring for regular readers. Study the examples before writing. The opening and closing lines are fixed templates.
| Include | Exclude | |---------|---------| | New tests or test categories added | Small bug fixes with narrow scope | | Stress tool or driver updates (ScyllaDB-maintained: scylla-bench, latte, gemini, cassandra-stress, scylla-driver, argus, YCSB) | General package/dependency bumps (renovate, pip updates) | | Bigger refactorings that change how code is organized | Minor refactors (rename, move, cleanup) | | New implementation plans | Hydra/container image updates | | New framework capabilities or backends | Typo fixes, formatting changes | | Configuration system changes | CI pipeline tweaks (unless significant) | | Monitoring or reporting improvements | Merge commits (already excluded by script) | | Nemesis additions or major nemesis changes | Pre-commit hook minor adjustments | | Performance test additions or changes | | | Cloud backend additions (OCI, xcloud, etc.) | |
Find the latest commit_summary_issue_*.md file. The issue number increments by 1. The start SHA is the end commit from the previous report's second line (after the ... in the commit range).
The script is bundled at skills/commit-summary/sct_commits_summary.py:
python3 skills/commit-summary/sct_commits_summary.py <start_sha> > commit_summary_issue_<N>.md
The final report follows this exact structure:
This short report brings to light some interesting commits to [scylla-cluster-tests.git master](https://github.com/scylladb/scylla-cluster-tests) from the last week.
Commits in the <start_8chars>...<end_8chars> range are covered.
There were N non-merge commits from M authors in that period. Some notable commits:
<curated paragraphs with embedded links>
See you in the next issue of last week in scylla-cluster-tests.git master!
| File | Content | |------|---------| | writing-style.md | Detailed style patterns with good/bad examples extracted from past issues |
| Workflow | Purpose | |----------|---------| | generate-summary.md | 4-phase process from raw git log to polished summary |
development
Guides writing and debugging unit tests for the SCT framework using pytest conventions. Use when creating new test files in unit_tests/, adding test cases, mocking external services, setting up fixtures, or reviewing test coverage. Covers network-blocking patterns, FakeRemoter, moto for AWS mocking, monkeypatch, and common pitfalls.
development
Use when asked to generate an implementation plan, draft a plan, save a plan, or design a feature rollout for the SCT repository. Supports two formats: full 7-section plans for multi-phase work (1K+ LOC, tracked in MASTER.md) and lightweight mini-plans for single-PR changes (under 1K LOC, stored in docs/plans/mini-plans/). Routes automatically based on PR plans label, user input, or task size estimate.
development
Guides writing new nemesis (chaos engineering disruptions) for the SCT framework. Use when creating a new NemesisBaseClass subclass, adding disruption logic, setting nemesis flags, or configuring target node pools. Covers the sdcm/nemesis/ package structure, auto-discovery, flag filtering, CI configuration, and unit testing patterns.
development
Guides writing and debugging integration tests for the SCT framework that interact with real external services. Use when creating tests requiring Docker, AWS, GCE, Azure, OCI, or Kubernetes backends. Covers service labeling, credential skip patterns, Docker Scylla fixtures, resource cleanup, and common pitfalls.