Skip to content
cccskills
FreePublished on GitHub

rseng-management-planning

Covers planning research software work: writing and maintaining a Software Management Plan (SMP), and choosing programming languages, tools, and infrastructures for a project. Use when the user wants to write or review an SMP, plan how software will be developed, maintained, shared, and preserved, needs the software sections of a proposal or funder template, wants to decide which language or framework to start a project in (Python, C++, R, Julia, Rust, Fortran, JavaScript), pick a project template or boilerplate, or weigh reuse, sustainability, and funder requirements at the start of a project. (Data management plans, maDMPs, DS-Wizard and DMPonline are rseng-data-management-plans; interactive new-project setup is rseng-project-kickoff; week-to-week task tracking is rseng-project-tracking.)

The English summary is being prepared. Showing the original description.

fdiblen/rseng-agent-skills24 stars(GitHub 24 + cccskills 0)

Run score Not tested

See how to install

Files included (2)

  • SKILL.md11.6 KB
  • references.md530 B

SKILL.md (original)

Review the instructions the agent will receive before you install.

Planning research software: management plans and technology choice

Use this skill at the start of a research software project, or whenever a project's direction needs to be captured or revisited: drafting a Software Management Plan (SMP), reviewing one against community standards, or choosing the language, frameworks, and infrastructures to build on. It covers management planning and technology choice. Tailor the rigor to the software's type and intended lifespan - do not push a throwaway prototype through the full governance apparatus of long-lived infrastructure.

What a Software Management Plan is

An SMP is a living document that plans how software will be developed, maintained, shared, and preserved, capturing key decisions early and updating them as the project evolves. Frame it to the user as guidance embedded in the process, not a one-off deliverable.

It exists to serve five concerns; name the ones that matter for the project:

  • Reproducibility and reusability: the software can be reliably reproduced, verified, and reused by others.
  • Funding and milestones: funders can see the development strategy and track progress against it.
  • Community standards and best practices: code review, continuous integration, testing, documentation standards, and FAIR4RS principles are planned in, not bolted on.
  • Accessibility: the software is discoverable, accessible, and usable by the wider research community.
  • Credit and impact: how contributors are acknowledged (citation files, ORCID, authorship), how usage is tracked, and how impact is evaluated.

Tailor the SMP to the software (do this first)

Not all software is created equal. Before drafting sections, classify the software and set its priorities:

  • Place it on the pack's three-tier view: exploratory analysis code, reusable research software, or long-lived research software infrastructure. Higher tiers warrant more rigor, formality, and investment.
  • Set the primary quality goals from the tier. For analysis code, prioritise reproducibility, transparency, and provenance. For infrastructure, prioritise robustness, scalability, security, and long-term maintenance.
  • Make these priorities explicit in the plan so the team spends effort where it delivers the most value, rather than applying every practice uniformly.
  • Check for external constraints early: institutional policy, national guidelines, or funder requirements often dictate the required level of detail and may mandate open release.

SMP section checklist

A plan should systematically cover these foundational aspects. Walk them in order when drafting or reviewing, and record decisions rather than intentions:

  1. General information: what the software does, who owns it, its scope and intended longevity.
  2. Collaboration and licensing: contribution model, governance, and license choice (defer license specifics to the licensing skill).
  3. Analysis: requirements and the problem the software addresses.
  4. Design: architecture and key technical decisions.
  5. Implementation: coding standards, secure development workflow, and the languages and tools chosen (see the technology-choice rules below).
  6. Testing and quality assurance: automated testing, continuous integration, and code review.
  7. Deployment and delivery: how the software reaches its users.
  8. Versioning and releases: versioning scheme, release cadence, archiving.
  9. Long-term maintenance: resource needs, governance model, and contingency plans - succession of maintainers, deprecation and end-of-life strategy.
  10. Credit, accessibility, and impact: citation, discoverability, registries, and how impact is measured and communicated.

Two cross-cutting checks:

  • Engage all relevant stakeholders - architects, developers, researchers, legal advisors, community managers - so responsibilities are shared and understood and the plan is actually adopted. Consider user support, documentation, community contributions, onboarding, and governance.
  • Plan for integration with development platforms (GitHub, GitLab) and research registries and archives (Software Heritage, Zenodo, bio.tools, OpenEBench) so the plan is straightforward to put into practice.

Keep the SMP alive

Treat the SMP as a living document, not a start-of-project formality:

  • Revisit it at lifecycle transitions and whenever a major decision changes.
  • Prefer a tool that produces both human-readable output (for stakeholders and reviewers) and machine-actionable output (for automated workflows, metadata extraction, or compliance checks) when the project needs it.
  • Build on established templates and checklists rather than inventing a format - the ELIXIR SMP template and the Software Management Wizard offer guided, low-barrier starting points; the SSI checklist helps evaluate coverage. See references.md for the vetted set.

Machine-actionable SMPs and platform workflows

SMPs are becoming structured data, not prose PDFs. When the user's institution runs a planning platform, draft THERE (or produce paste-ready content): the Data Stewardship Wizard builds plans from questionnaire knowledge models and exports funder formats plus machine-actionable output; DMPonline carries the major funder templates whose software sections an SMP feeds. A structured plan is checkable - promised repositories can be diffed against actual deposits, promised licenses against LICENSE files, promised archiving against archive records (rseng-archiving).

Drafting workflow for an agent: for an existing project, read the repository first - license, CI, tests, CITATION.cff, README - and write the plan that is TRUE, flagging gaps as planned improvements with owners rather than papering over them. For a new proposal, draft from intended practices with this pack's standards as the default, concrete over aspirational ("unit tests in CI on every merge", not "high quality standards"). Version the plan in the repository so changes are reviewable history; revisit at releases and reporting deadlines, and run a drift check - a plan that says "Zenodo archiving" while nothing is archived is a liability at review time. The data twin is rseng-data-management-plans; write the two consistently and cross-reference them. Record AI assistance in drafting in aidecl.yaml (rseng-ai-declaration).

Choosing languages, tools, and infrastructures

Distinguish the three kinds of choice before advising: the programming language (the main medium, affecting functionality, readability, and pace); tools and frameworks (reusable abstraction layers for a domain, e.g. web, ML, workflows); and infrastructures (broader knowledge-oriented techniques such as databases, GPU/FPGA programming, or ML). The considerations below apply to all three unless noted.

Decision rules

Weigh social factors alongside technical ones - technical merit alone does not predict a project's success:

  • People and community: prefer what is already used widely in the field, for interoperability and reusability (the I and R in FAIR). Draw on existing practices, and on expertise available at your institute - a nearby expert who can coach you is invaluable.
  • Personal and team expertise: account for what the team already knows and prefers; factor in project partners' preferences, not just your own.
  • Language and ecosystem fit: does it offer the features and frameworks you need and save time; is it expressive enough for the design; is it not overkill or too complicated for the purpose?
  • Deferring the choice: if undecided, design modularly and hide a choice behind an abstraction layer so the rest of the application is not tied to its specifics and the decision can change later.

Match the choice to the lifecycle stage

Three situations impose different constraints:

  • Rapid prototyping: personal preference weighs most - use something you know or want to try. If you know no language yet, Python is a good default.
  • Starting a new development project: apply the full set of considerations above, balancing feature, social, and personal factors.
  • Joining an existing project: you are usually constrained by the existing languages and frameworks; switching either is a big, infrequent decision. New technology may be exactly why you were brought in - social considerations still apply within those constraints.

Good default languages

Opinionated but proven starting points:

  • Python: prototyping, gluing code together, data analysis, ML; easy to start and widely adopted across scientific communities.
  • C++: high performance, compiled, strongly typed, multi-paradigm.
  • JavaScript/TypeScript: anything with a serious web component, and UI for non-web applications.
  • R: statistical analysis, especially social sciences and medical research.
  • Fortran: computationally intensive numerical simulation and HPC.
  • Modern, smaller-ecosystem choices: Julia (mathematical modelling, elegant semantics, JIT-compiled) and Rust (high performance, safety-first).
  • Special purpose: CUDA/OpenCL for GPU programming; shell scripting (Bash, PowerShell) for text processing, environment setup, and simple pipelines.

Get off to a flying start with templates

After choosing, do not scaffold by hand - reach for community-curated templates:

  • Templates bundle current best practices ready to use, and contributing back multiplies the effort for future users. Prefer research-software-specific boilerplate, which covers aspects generic tools miss.
  • Concrete starting points: the Netherlands eScience Center Python template, BestieTemplate.jl for Julia, and usethis for R packages.
  • IDE snippets and AI assistants offer lighter-weight help (inline templates, autocompletion) and are worth using, but full project generators give a stronger, best-practice-aligned starting structure.

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-archiving - preservation promises need archiving mechanics
  • rseng-data-management-plans - drafting the data twin plan
  • rseng-licensing - plan's licensing section needs specifics
  • rseng-maintenance-sustainability - planning the long-term maintenance section
  • rseng-project-kickoff - brand-new project starts with interview
  • rseng-project-scaffolding - template kickstart after language choice
<!-- related-skills:end -->

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

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.)

The English summary is being prepared. Showing the original description.

fdiblen/rseng-agent-skills24Updated Sep 23, 2026

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.

The English summary is being prepared. Showing the original description.

fdiblen/rseng-agent-skills24Updated Sep 23, 2026

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.)

The English summary is being prepared. Showing the original description.

fdiblen/rseng-agent-skills24Updated Sep 23, 2026

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.)

The English summary is being prepared. Showing the original description.

fdiblen/rseng-agent-skills24Updated Sep 23, 2026

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.

The English summary is being prepared. Showing the original description.

fdiblen/rseng-agent-skills24Updated Sep 23, 2026

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.)

The English summary is being prepared. Showing the original description.

fdiblen/rseng-agent-skills24Updated Sep 23, 2026

See all skills by fdiblen

Report a problem with this skill