Skip to content

Latest commit

 

History

History
85 lines (48 loc) · 6.86 KB

File metadata and controls

85 lines (48 loc) · 6.86 KB

Contributing to SOLVE-IT

Introduction

There are multiple ways you can contribute to SOLVE-IT. This document provides a quick-start overview — for detailed procedural guidance, see the Detailed Contributor Guide. For writing standards, see the Style Guide.

Why contribute?

Contributing to SOLVE-IT gives your work practical visibility within the digital forensics community. The DFPulse 2024 Practitioner Survey revealed that the links between academic work and digital forensics practitioners are very poor — SOLVE-IT bridges that gap.

For researchers, linking your work in the specific context of a digital forensic technique makes it easier to find, and distilling it into the fields captured by the entries for techniques, weaknesses, or mitigations makes the application of your work obvious — while providing a means to link to the original publication.

For practitioners it is easier to highlight issues in techniques and show how they can be overcome to ensure reliable evidence despite limitations of tools or processes. Through SOLVE-IT you can support colleagues across the world to prevent mistakes being made using your knowledge.

Whether you are a researcher or a practitioner, the act of distilling work into a SOLVE-IT technique and enumerating weaknesses and mitigations has been reported to improve understanding of the topics and process. Articulating weaknesses forces us all to consider what can go wrong in digital investigations, and proposing mitigations captures solutions that might otherwise remain implicit.

Content that can be contributed

The SOLVE-IT knowledge base accepts contributions of techniques, weaknesses, mitigations, and references. For an explanation of these concepts and how they relate to each other, see Detailed Contributor Guide — Overview.

Other contributions are also welcome to related projects:

Contribution workflow

All contributions start the same way:

  1. Check if it already exists — search the SOLVE-IT Explorer or use the MCP server. If the content already exists, you can propose an update instead of a new item. See the Detailed Contributor Guide for more ways to check.
  2. Open a GitHub issue — use one of the issue form templates to propose your content. You can also submit directly from the Explorer (see below).

From there, there are two paths:

Path 1: Automated (recommended for most contributions)

  1. Reviewers and automation handle the rest — your issue is previewed, and a reviewer will check it and may suggest changes. Once approved, your contribution is assigned an ID (if new) and turned into a pull request automatically. Validation runs on the PR. You don't need to edit any files or run any scripts. See the Detailed Contributor Guide — Pipeline for details.

Path 2: Manual edits (for bulk or cross-file changes)

If your contribution requires editing multiple files directly (e.g. bulk updates, structural changes), you can make the changes yourself after your issue has been reviewed:

  1. Fork and edit — follow the standard GitHub Flow workflow.
  2. Run validation — you must run python admin/validate_kb.py before submitting your pull request (see Validation).
  3. Submit a pull request linked to your issue.

Submitting from the Explorer

You can submit issues directly from the SOLVE-IT Explorer, either within a technique, weakness, or mitigation (see 'Propose an update to this technique' button shown below), or to submit new content via the tabs which have a 'Propose new technique' button.

Shows updating this content on GitHub button Shows the new technique button in the 'Techniques' tab

Validation

Prior to submitting a pull request, run the /admin/validate_kb.py script with no arguments. This script performs validation of the data structures, builds output formats, and reports any issues. At present, a large number of warnings for incomplete content is normal. We can work to reduce these by adding more content. All other checks should pass.

After review

Your pull request will be reviewed and merged. You will be able to view your contribution in the SOLVE-IT Explorer once it synchronies with the main repository. Deep links to techniques, weaknesses and mitigations are available, e.g. https://explore.solveit-df.org/#DFT-1002 which can be shared.

Writing style

For guidance on naming, descriptions, weakness categories, and reference formatting, see the Style Guide. In particular:

Further resources

  • Detailed Contributor Guide — step-by-step instructions for every submission type, the full automated pipeline, and worked examples from published research
  • Style Guide — naming conventions, descriptions, ASTM weakness categories, and reference formatting
  • SOLVE-IT Explorer — browse, search, and submit directly from the knowledge base
  • MCP Server — query the knowledge base using natural language via an LLM
  • SOLVE-IT Custom Viewer — view the knowledge base with a custom organization of techniques