本文へ移動
cccskills
無料GitHub で公開

rseng-version-control-review

Covers using version control effectively for research software and the PR-time review process: choosing a VCS, branching and commit practice, authorship and signatures in commit metadata (author/committer identity, Co-authored-by trailers, signed commits and tags, .mailmap), collaboration on GitHub/GitLab, and constructive checklist-driven pull-request reviews. Use when the user asks how to set up git, design a branching strategy, write commit messages, record who authored or co-authored a change, sign commits or tags, handle large binary files, open or review a pull/merge request, or wire linters and CI into review. (Audits of existing code and milestone reviews: rseng-code-review; pre-reviewing your own draft: rseng-pair-programming.)

日本語の概要は準備中です。原文の説明を表示しています。

fdiblen/rseng-agent-skillsスター 24(GitHub 24 + cccskills 0)
連携ツールGitHubGitLab

実行スコア 未検証

インストール方法を見る

含まれるファイル(2)

  • SKILL.md11.2 KB
  • references.md459 B

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Version control and code review for research software

Use this skill when helping someone put research code under version control, shape a collaboration workflow, or review code (their own or a teammate's). The aim is software whose history is traceable, whose changes are reviewed before they land, and whose results others can reproduce. Version control and review are two halves of one loop: commits and branches create reviewable units, and review is what keeps what lands on the main branch trustworthy.

Choose a version control system

Default to git for almost every research project unless a concrete constraint says otherwise:

  • Git is the community's standard and the right choice for research projects: collaboration, review and archiving tooling all assume it (the strongest-current-tool rule applies to version control too).
  • Large binary files (datasets, models, images) do not belong in plain git history: use a data versioning layer (DVC, git-annex, DataLad - rseng-data-management) or git-lfs for media-style assets.
  • A team new to version control still starts with git - budget training time (rseng-trainer) rather than reaching for a gentler-seeming legacy system; inherited repositories in older systems (SVN, Mercurial) are a migration task, not a reason to stay.

Set up the workflow, not just the repo

Choosing a tool is the easy part; the value comes from an agreed workflow:

  • Define a branching strategy up front. Keep the main branch releasable; do work on short-lived feature branches and merge back via review. Adopt a heavier model such as Git Flow only when project size warrants it - do not impose ceremony a small team will not follow.
  • Set commit conventions. Write small, focused commits with clear messages that say why a change was made, not just what. One logical change per commit keeps history bisectable and reviews small.
  • Integrate with the development environment. Wire the VCS into the IDE or editor (VS Code, RStudio, PyCharm, Eclipse) so committing and diffing are part of normal work, and connect continuous integration so tests run on every push.
  • Make reproducibility explicit. Tag the exact versions used in publications, and keep configuration files and dependency specifications in version control alongside the code.
  • Collaborate through a platform. Use GitHub or GitLab for sharing, issues, and pull/merge requests; make review a standing part of merging.
  • Maintain the repository. Back it up, prune stale branches periodically, and review access permissions.

Commit-message checklist: imperative summary line under ~50 characters; a body that explains motivation and any trade-offs; reference the issue or ticket it addresses; avoid dumping unrelated changes into one commit.

Authorship and signatures live in commit metadata

Who wrote a change, who committed it, and whether it is verified are facts git records in dedicated, machine-readable places. Keep them there - not in file headers, not in commit-message prose:

  • Identity is configuration. Set user.name and user.email correctly per project (institutional vs personal identity) BEFORE the first commit; forges, citation harvesters and contributor counts all read these fields. Use git commit --author when committing a change someone else wrote - git separates author (wrote it) from committer (recorded it) for exactly this case.
  • Multiple authors are trailers. Record co-authors with Co-authored-by: Name <email> trailers - the standard, forge-recognized mechanism - rather than naming people in the message body or a file header.
  • Signatures are commit signatures. Verification means signed commits and signed tags (commit.gpgsign, gpg.format ssh for SSH signing keys, git tag -s for releases), checked with git log --show-signature or the %G? format field. Sign at least the release tags that publications cite - a signed tag anchors provenance (rseng-provenance) far better than any statement in a README.
  • Fix identities with .mailmap. When names or emails vary across history, normalize them with a .mailmap file - the metadata-native correction - and NEVER rewrite published history to edit authors or signatures; corrections go forward.
  • Do not duplicate metadata into files. "Author: X, modified by Y on <date>" headers in source files rot immediately and contradict the history; git log and git blame are the record (license/SPDX headers are a different thing and are fine). Likewise keep commit messages about the WHY of the change - the who/when/verified facts already live in the metadata fields.
  • Keep it truthful. The author field, trailers and signatures must reflect who actually did the work - including agent contributions where project policy records them; misrepresenting authorship in metadata is a concealment request (rseng-honesty), and accurate metadata is what contributor credit is harvested from (rseng-citation-metadata).

Run code review as a first-class practice

(Scope note: this skill covers PR-time review process and rules; retrospective codebase audits and milestone project reviews are rseng-code-review, and diff-time pre-review craft is rseng-pair-programming.)

Code review is systematic examination of code - a teammate's, or your own after time away - to find bugs, raise quality, and enforce shared standards. It pays off: rigorous inspection can remove 60-90% of errors before the first test run, and fixing a defect early costs 10-100x less than fixing it later. Beyond defect-catching, review spreads knowledge across the team, improves reusability and reproducibility, and helps onboard new members.

Structure every review through a pull/merge request so discussion, diffs, and suggestions stay attached to the change.

What to look for

Focus the review on substance:

  • Correctness - does the code do what it is supposed to, including edge cases?
  • Style and consistency - are naming, formatting, and structure consistent with the project's agreed conventions?
  • Testing - are there tests, and do they cover expected and edge-case behaviour?
  • Documentation - are functions, classes, and scripts clearly documented?
  • Modularity - is the code split into reusable, testable components?
  • Performance - is it efficient enough for the task (without premature optimisation)?

What not to do

Reviews go wrong by overstepping as much as by missing bugs. Avoid these:

  • Bikeshedding personal style. Do not argue single vs double quotes or similar when the team has no agreed standard - let linters and formatters settle it.
  • Demanding rewrites. Do not push to rewrite large sections without a clear reason such as a real bug or design flaw. Improve, do not take over.
  • Blaming the author. Critique the code, never the coder; keep feedback constructive and kind.
  • Requiring perfection before merge. Functional, tested, clear code can merge; minor polish can follow.
  • Mislabelling severity. Mark minor or subjective points as non-blocking; do not hold up progress for optional tweaks.
  • Expecting mastery of everything. Researchers who code come from varied backgrounds - do not expect deep software-engineering knowledge from every domain expert.

Make review efficient

  • Keep changes small. Small pull requests get faster, deeper review than large ones - another reason for focused commits and short-lived branches.
  • Automate the mechanical checks. Run linters and formatters (flake8, eslint, Pylint) and a CI pipeline before human review, so reviewers spend attention on logic and design rather than whitespace.
  • Keep feedback constructive. Ask questions rather than issue verdicts; reviewers learn as much as authors.
  • Combine human and automated review. Automated tools catch style and known mistake patterns; a human is still required for correctness, design, and intent - neither replaces the other.
  • For code underlying a paper, consider a CODECHECK-style independent reproduction of the results as a heavier form of review.

Reviewer checklist to paste into a PR: correctness and edge cases checked; tests present and meaningful; documentation adequate; naming and structure consistent; no obvious performance traps; linter and CI green; comments labelled blocking vs non-blocking.

How version control and review reinforce each other

  • Branch per change so each unit of work is independently reviewable.
  • Require review (a PR/MR approval) before merging into the main branch.
  • Let CI gate the merge: tests and linters must pass before a human signs off, so review time goes to judgement, not mechanics.
  • Tag reviewed, released states so the reproducible version is unambiguous.

Repository hygiene: no generated or binary artifacts

Keep compiled and generated files out of version control: build outputs, packaged artifacts, rendered documents, caches and editor droppings. They bloat history permanently, make diffs meaningless and drift out of sync with their sources - a repository free of binary artifacts is an explicit quality indicator. Add ignore rules before the first build runs; large or binary DATA has its own disciplined path (data versioning tools rather than git), and deliberately committed result records (golden files, executed notebooks) are fine when the policy says so explicitly - the rule is "nothing generated without a stated reason", not zealotry.

Working with this skill

The generated references.md beside this file lists the source material and pointers:

  • references.md - verified Learn more pointers

Learn more (verified):

<!-- related-skills:begin -->

Related skills

Check whether any of these applies before moving on:

  • rseng-ci-cd - CI gating merges before human review
  • rseng-citation-metadata - commit metadata feeds contributor credit
  • rseng-contributor-onboarding - review as an onboarding channel
  • rseng-data-management - DVC/git-annex for large data files
  • rseng-notebooks - jupytext twins make notebook diffs reviewable
  • rseng-publishing-releasing - tags marking published versions
  • rseng-software-peer-review - CODECHECK-style heavier review of paper code
<!-- related-skills:end -->

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

Covers operating AI coding agents securely: auditing whether the agent runs sandboxed, permission and dangerous-command configuration, containerized environments, secrets kept out of context, network egress and token privileges, prompt-injection risk, and the privacy of agent use itself. Use PROACTIVELY when permission gating is broadly disabled (skip-permissions modes), when secrets are visible to the agent's shell, or when the agent processes untrusted code, issues or web content; when a project holds personal or confidential data while a cloud agent is active (what leaves the machine, retention, training use), or when the user asks how to run coding agents safely or privately. (Supply-chain security: rseng-security; disclosing agent contributions: rseng-ai-declaration.)

日本語の概要は準備中です。原文の説明を表示しています。

fdiblen/rseng-agent-skills242026年9月23日 更新

Covers declaring AI involvement with the AI Declaration Format (https://ai-declaration.org): creating and maintaining an aidecl.yaml that records which AI tools and agents were used, what each contributed, when and how much, plus the README disclosure footnote, JSON/JSON-LD export and CI validation. Machine-readable disclosure is the practice; this format is one implementation. Use PROACTIVELY when an AI assistant or agent creates or modifies a project's content - generate aidecl.yaml if missing, update it after AI-assisted changes. Also use when the user asks about AI transparency, provenance, disclosure or EU AI Act disclosure, wants to state that NO AI was used, or mentions aidecl. For concealment requests see rseng-honesty; for the human review duty see rseng-human-verification.

日本語の概要は準備中です。原文の説明を表示しています。

fdiblen/rseng-agent-skills242026年9月23日 更新

Covers long-term archiving of research software and data: Software Heritage save requests and SWHID persistent identifiers, Zenodo deposits with versioned DOIs and forge integration, choosing domain and institutional repositories, deciding what to archive (code, data, environments, documentation) and when, and archiving at project retirement. Use when the user wants software or data preserved beyond the life of a forge account, grant or lab, mentions Software Heritage, SWHIDs, Zenodo deposits or archiving, retires or hands over a project, prepares artifacts that must stay resolvable for a paper, or when funder policy requires long-term preservation. (Cutting the release itself is rseng-publishing-releasing; day-to-day data storage and repository choice is rseng-data-management.)

日本語の概要は準備中です。原文の説明を表示しています。

fdiblen/rseng-agent-skills242026年9月23日 更新

Covers processing research data that outgrows one machine's memory: out-of-core and chunked computation, Dask for scaling the scientific Python stack, Spark for distributed tabular pipelines, lazy evaluation, partitioning strategies, idempotent and restartable batch jobs, and knowing when NOT to distribute. Use when datasets no longer fit in memory, when the user mentions Dask, Spark, out-of-core or larger-than-memory data, when a pandas/NumPy workflow hits memory limits, or when designing batch pipelines over many files. (Cluster job submission and job arrays are rseng-hpc-computing; pipeline orchestration engines are rseng-workflows; profile first with rseng-performance-profiling.)

日本語の概要は準備中です。原文の説明を表示しています。

fdiblen/rseng-agent-skills242026年9月23日 更新

Covers continuous integration and delivery for research software: CI/CD concepts, automating builds and tests with GitHub Actions and GitLab CI/CD, and wiring an organization's GitLab CI infrastructure to a GitHub-hosted project. Use when the user asks to set up CI, write a pipeline or workflow file (.github/workflows, .gitlab-ci.yml), add automated builds/tests on push or pull request, publish a package or deploy docs when a tag or release is cut, cache dependencies to speed up CI runs, choose between GitHub Actions and GitLab CI, use self-hosted or GPU runners, mirror a repo, or report external CI status back to GitHub. For what to test and shrinking a test matrix see rseng-testing; for linter and pre-commit policy see rseng-code-quality.

日本語の概要は準備中です。原文の説明を表示しています。

fdiblen/rseng-agent-skills242026年9月23日 更新

Covers verifying that every citation is real, correct and current: checking references in manuscripts, READMEs, references files and code metadata against Crossref and OpenAlex, screening cited DOIs against the Retraction Watch database, catching fabricated or mis-attributed citations (a documented AI failure mode), and keeping bibliographies and CITATION.cff files resolvable. Use PROACTIVELY before any bibliography, reference list or citation metadata is finalized or published, whenever the agent itself has produced citations, and when the user asks to check references, mentions broken DOIs, retracted papers or citation verification, or prepares a manuscript, README or software paper with references. (Making your own software citable is rseng-citation-metadata.)

日本語の概要は準備中です。原文の説明を表示しています。

fdiblen/rseng-agent-skills242026年9月23日 更新

fdiblen のスキルをすべて見る

このスキルの問題を報告する