---
title: '[assembly-kit](https://github.com/FairITYourself/assembly-kit) - [OSH](https://en.wikipedia.org/wiki/Open-source_hardware) quality report'
subtitle: 'Produced by the [`osh`-tool](https://github.com/hoijui/osh-tool/)'
---

<details>

<summary>Badges</summary>

| Dimension | Badge | Markdown Code | HTML Code |
| - | --: | ----- | ----- |
| compliance | ![OSH - compliance](osh-badge-compliance.svg) | <code id="md-code-compliance">`[![OSH - compliance]($BASE_URL/osh-badge-compliance.svg)](<$REPORT_URL>)`</code> | <code id="html-code-compliance">`<a href="$REPORT_URL"><img alt="OSH - compliance" src="$BASE_URL/osh-badge-compliance.svg"/></a>`</code> |
| openness | ![OSH - openness](osh-badge-openness.svg) | <code id="md-code-openness">`[![OSH - openness]($BASE_URL/osh-badge-openness.svg)](<$REPORT_URL>)`</code> | <code id="html-code-openness">`<a href="$REPORT_URL"><img alt="OSH - openness" src="$BASE_URL/osh-badge-openness.svg"/></a>`</code> |
| hardware | ![OSH - hardware](osh-badge-hardware.svg) | <code id="md-code-hardware">`[![OSH - hardware]($BASE_URL/osh-badge-hardware.svg)](<$REPORT_URL>)`</code> | <code id="html-code-hardware">`<a href="$REPORT_URL"><img alt="OSH - hardware" src="$BASE_URL/osh-badge-hardware.svg"/></a>`</code> |
| quality | ![OSH - quality](osh-badge-quality.svg) | <code id="md-code-quality">`[![OSH - quality]($BASE_URL/osh-badge-quality.svg)](<$REPORT_URL>)`</code> | <code id="html-code-quality">`<a href="$REPORT_URL"><img alt="OSH - quality" src="$BASE_URL/osh-badge-quality.svg"/></a>`</code> |
| machineReadability | ![OSH - machineReadability](osh-badge-machineReadability.svg) | <code id="md-code-machineReadability">`[![OSH - machineReadability]($BASE_URL/osh-badge-machineReadability.svg)](<$REPORT_URL>)`</code> | <code id="html-code-machineReadability">`<a href="$REPORT_URL"><img alt="OSH - machineReadability" src="$BASE_URL/osh-badge-machineReadability.svg"/></a>`</code> |

<p id="no-script-indicator">
Please enabled JavaScript for this page, to see the correct URLs above,
without the <code>$BASE_URL</code> placeholders.
</p>

<script>
function repl_url(id) {
	let elem = document.getElementById(id);
  let report_url = window.location.href;
  let base_url = report_url.replace("/osh-report.html", "");
  elem.innerHTML = elem.innerHTML.replace("$REPORT_URL", report_url);
  elem.innerHTML = elem.innerHTML.replace("$BASE_URL", base_url);
}
function clear_cont(id) {
	let elem = document.getElementById(id);
  elem.innerHTML = "";
}

repl_url("md-code-compliance");
repl_url("html-code-compliance");

repl_url("md-code-openness");
repl_url("html-code-openness");

repl_url("md-code-hardware");
repl_url("html-code-hardware");

repl_url("md-code-quality");
repl_url("html-code-quality");

repl_url("md-code-machineReadability");
repl_url("html-code-machineReadability");
clear_cont("no-script-indicator");
</script>

</details>

<details>

<summary>This report in different formats</summary>

* [Markdown](osh-report.md)
* [HTML](osh-report.html)
* [JSON](osh-report.json)

</details>

<details>

<summary>List of all available checks</summary>

# Checks

| IDs | Name | Weight | Openness | Hardware | Quality | Machine-Readability | Description | Why | Source Code |
| --- | ----- | --- | --- | --- | --- | --- | ----------- | ----------- | ------ |
| <a id="check_bom_exists"><a  href="#check_bom_exists">bom_exists</a></a> | BoM exists | 0.20 | 0.50 | 1.00 | 0.30 | 0.60 | Checks that a Bill of Materials (BoM) file exists in the projects root dir, <br/>using the regex `(?i)^(BoM\|BillOfMaterials\|Bill_of_Materials\|Bill-of-Materials).*$`. | A BoM file contains a list of all required parts,<br/>be that raw parts or ready-made ones.<br/>That not only clearly marks the repository as a hardware project,<br/>but also allows for quick human (and partly machine/software)<br/>based analysis for what is needed to build the piece of hardware,<br/>and to have at east a first rought idea about the costs,<br/>and potential candidates that could become a supply problem.<br/><br/>... plus probably many other uses. | [`bom_exists.nim`](https://github.com/hoijui/osh-tool/blob/master/src/checks/bom_exists.nim) |
| <a id="check_clean_cad_files"><a  href="#check_clean_cad_files">clean_cad_files</a></a> | Clean CAD files | 1.00 | 1.00 | 1.00 | 0.50 | 1.00 | Checks that the Mechanical design files - <br/>Computer Aided Design (CAD) files - <br/>if any, <br/>use an open format, <br/>are text-based <br/>and are actual source files (vs generated). | - open format:<br/>  This is good for collaboration:<br/>  It is legal and technically easier to create viewers and editors,<br/>  and it is much more likley that there already are or will be viewers and editors<br/>  for such formats,<br/>  which are free themselfs.<br/>- text-based:<br/>  This is good for versioning with a [version control system](https://en.wikipedia.org/wiki/Version_control),<br/>  e.g. git,<br/>  which makes collaborating and sharing of a design easier.<br/>- source files:<br/>  This is required for being Open **Source** in the first place. | [`clean_cad_files.nim`](https://github.com/hoijui/osh-tool/blob/master/src/checks/clean_cad_files.nim) |
| <a id="check_clean_electronics_files"><a  href="#check_clean_electronics_files">clean_electronics_files</a></a> | Clean electronics files | 1.00 | 1.00 | 1.00 | 0.50 | 1.00 | Checks that the contained Electronics blueprint files - <br/>Schematics and PCB designs - <br/>if any, <br/>use an open format, <br/>are text-based <br/>and are actual source files (vs generated). | - open format:<br/>  This is good for collaboration:<br/>  It is legal and technically easier to create viewers and editors,<br/>  and it is much more likley that there already are or will be viewers and editors<br/>  for such formats,<br/>  which are free themselfs.<br/>- text-based:<br/>  This is good for versioning with a [version control system](https://en.wikipedia.org/wiki/Version_control),<br/>  e.g. git,<br/>  which makes collaborating and sharing of a design easier.<br/>- source files:<br/>  This is required for being Open **Source** in the first place. | [`clean_electronics_files.nim`](https://github.com/hoijui/osh-tool/blob/master/src/checks/clean_electronics_files.nim) |
| <a id="check_license_exists"><a  href="#check_license_exists">license_exists</a></a> | LICENSE exists | 0.20 | 1.00 | 0.00 | 0.05 | 1.00 | Checks that a LICENSE file exists in the projects root dir, <br/>using the regex `(?i)^.*(LICEN[SC]E\|COPYING).*$`.<br/>Note that this is related to the REUSE lint check. | Before REUSE, this was the standard (and only) way<br/>to declare which license(s) are used within the project.<br/>While REUSE is in all ways superior to this approach,<br/>Many platforms and softwares still purely rely on this way<br/>to automatically detect the license(s) of a project.<br/>We thus recommend to keep the "main"<br/>(according to your subjective decision)<br/>license of the project in such a file,<br/>by first fixing REUSE for the project,<br/>and then running a command similar to:<br/>`cp LICENSES/CERN-OHL-S-2.0.txt LICENSE.txt` | [`license_exists.nim`](https://github.com/hoijui/osh-tool/blob/master/src/checks/license_exists.nim) |
| <a id="check_markdown_lint"><a  href="#check_markdown_lint">markdown_lint</a></a> | Markdown content | 0.50 | 0.90 | 0.00 | 1.00 | 1.00 | Checks that the content of all Markdown files in the repository<br/>adheres to a strict set of syntax rules for that format. | Markdown exists in many different varieties.<br/>There is mostly one original format (simply: "Markdown"),<br/>which has very loose syntax rules,<br/>and which nobody uses anymore,<br/>because it can be unclear what was meant to be expressed<br/>(format wise).<br/>Then there are all the derivatives,<br/>which are not fully compatible amongst each other.<br/>Examples for these are:<br/><br/>* CommonMark (Close)<br/>* Github Flavored Markdown (GFM)<br/>* GitLab Markdown (very similar to the above)<br/>* Pandoc Markdown<br/><br/>CommonMark has the same, limited set of features like the original Markdown,<br/>but is very strict with regards to what is valid and what not.<br/>This is good, because it means, that if you adhere to this set of rules,<br/>__your Markdown will be correctly interpreted whereever Markdown is accepted__<br/><br/>Most other Markdown flavors -<br/>like the other three above -<br/>have extended the original set of features,<br/>and try to guess what the user wanted to express,<br/>even if they did not use correct syntax.<br/>To rely on this though, makes ones Markdown less portable,<br/>and thus in a way, kind of inflicts a soft lock-in<br/>on systems supporting such heuristics. | [`markdown_lint.nim`](https://github.com/hoijui/osh-tool/blob/master/src/checks/markdown_lint.nim) |
| <a id="check_markup_link"><a  href="#check_markup_link">markup_link</a></a> | Markup link check | 0.70 | 0.90 | 0.00 | 1.00 | 0.60 | Checks whether links in Markdown and HTML documents <br/>in the repo are pointing to something valid. | Links are often put in by project maintainers once<br/>and then they forget about them.<br/>Due to the dynamic nature of the web,<br/>links become defunct over time,<br/>which of course hurts the quality of the documentation<br/>and the experience the users have, browsing it.<br/><br/>This is especially important and freuqent<br/>in regards to repo-internal links.<br/><br/>This check brings the attention of this issue<br/>back to the repo maintainers,<br/>without having to rely on users<br/>reporting each link individually. | [`markup_link.nim`](https://github.com/hoijui/osh-tool/blob/master/src/checks/markup_link.nim) |
| <a id="check_no_generated_files"><a  href="#check_no_generated_files">no_generated_files</a></a> | No generated files | 0.50 | 0.60 | 0.00 | 0.50 | 0.30 | Checks that no generated files are part of the project. <br/>These are usually files that are created using a software <br/>that is manually configured and executed by a human. <br/>Try instead, to find a way to automate this process, <br/>and to not store the resulting files in the repository. | 1. The projects storage requirements go down - <br/>usually by a lot<br/>2. There are no outdated generated files,<br/>    because of either of these two reasons:<br/><br/>    - One only gets the files hwen generating them right when required, or<br/>    - They are regenerated in CI/build-bot and uploaded/hosted on the project pages<br/>      whenever there is a change (e.g. a git push to to the repo)<br/><br/>NOTE: This is one of the more controversial checks,<br/>as it often requires writing new software.<br/>That is sometimes a simple script,<br/>and sometimes complex software requiring many person-months of development. | [`no_generated_files.nim`](https://github.com/hoijui/osh-tool/blob/master/src/checks/no_generated_files.nim) |
| <a id="check_no_global_links_to_local_files"><a  href="#check_no_global_links_to_local_files">no_global_links_to_local_files</a></a> | No global links to local files | 0.40 | 0.80 | 0.00 | 0.80 | 0.80 | Checks no links to project local files use a 'global' prefix,<br/>be it a web-hosting URL or an absolute local path. | This is a step towards a documentation that is:<br/><br/>- locally browsable an editable without internet connection<br/>- showing and linking to the actual, local, correct content | [`no_global_links_to_local_files.nim`](https://github.com/hoijui/osh-tool/blob/master/src/checks/no_global_links_to_local_files.nim) |
| <a id="check_no_sources_in_root"><a  href="#check_no_sources_in_root">no_sources_in_root</a></a> | No sources in root | 0.10 | 0.60 | 0.00 | 0.80 | 0.00 | Checks that no source files appear in the root dir of the project. <br/>Make sure to put them all into sub-directories, for example `src/`. | Makes the Repo look more clean and more friendly,<br/>especially for non-coding people<br/>that might just wnat to browse or edit the documentation. | [`no_sources_in_root.nim`](https://github.com/hoijui/osh-tool/blob/master/src/checks/no_sources_in_root.nim) |
| <a id="check_no_space_in_file_names"><a  href="#check_no_space_in_file_names">no_space_in_file_names</a></a> | No space in file names | 0.40 | 0.60 | 0.00 | 0.80 | 1.00 | Checks that no file-names in the project contain white-space. | This makes automatic processing of all the projects files<br/>much easier and less error-prone. | [`no_space_in_file_names.nim`](https://github.com/hoijui/osh-tool/blob/master/src/checks/no_space_in_file_names.nim) |
| <a id="check_okh_file_exists"><a  href="#check_okh_file_exists">okh_file_exists</a></a> | OKH file exists | 0.70 | 1.00 | 1.00 | 0.50 | 1.00 | Checks that the OKH manifest file - <br/>which contains project meta-data - <br/>exists. | If this is actually a hardware project,<br/>the existence of this file clearly and unmistakingly marks it as such,<br/>both for humans and machines/software.<br/><br/>This is useful when dealing with a lot of projects,<br/>to not waste life- or processing-time,<br/>which likely would still be less exact in its findings. | [`okh_file_exists.nim`](https://github.com/hoijui/osh-tool/blob/master/src/checks/okh_file_exists.nim) |
| <a id="check_okh_lint"><a  href="#check_okh_lint">okh_lint</a></a> | OKH manifest content | 0.70 | 1.00 | 0.00 | 1.00 | 1.00 | Checks that the OKH manifest file - <br/>which contains project meta-data - <br/>contains at least the required properties, <br/>and that all properties use the correct format. | This makes the project much more easily comparable,<br/>both for humans and machines/software.<br/><br/>This is useful when dealing with a lot of projects,<br/>to not waste life- or processing-time,<br/>trying to figure out a certain,<br/>commonly useful set of properties about a project. | [`okh_lint.nim`](https://github.com/hoijui/osh-tool/blob/master/src/checks/okh_lint.nim) |
| <a id="check_readme_exists"><a  href="#check_readme_exists">readme_exists</a></a> | README exists | 0.20 | 1.00 | 0.00 | 0.10 | 0.50 | Checks that a README file exists in the projects root dir, <br/>using the regex `(?i)^.*README.*$`. | A README file is the main entry point for a human that comes along the project,<br/>and wants to figure out what it is about, and how to use it.<br/><br/>It is targeted at all potential stakeholders of the project,<br/>be it designers, manufacturers, sellers, repairers or users.<br/><br/>We might think of it as the most essential,<br/>basic part of the documentation of the project. | [`readme_exists.nim`](https://github.com/hoijui/osh-tool/blob/master/src/checks/readme_exists.nim) |
| <a id="check_reuse_lint"><a  href="#check_reuse_lint">reuse_lint</a></a> | REUSE Licensing info | 0.50 | 1.00 | 0.00 | 0.30 | 1.00 | Checks that complete SPDX licensing info is given <br/>for all files in the project. <br/>We do this using the Free Software Foundations REUSE tool.<br/><br/>NOTE: This is related to the License exists check. | Copyright and licensing is difficult,<br/>especially when reusing software from different projects<br/>that are released under various different licenses.<br/>[REUSE](https://reuse.software/) was started by<br/>the [Free Software Foundation Europe](https://fsfe.org/) (FSFE)<br/>to provide a set of recommendations to make licensing your Free Software projects easier.<br/>Not only do these recommendations make it easier for you<br/>to declare the licenses under which your works are released,<br/>but they also make it easier for a computer<br/>to understand how your project is licensed.<br/><br/>Propper licensing information may prevent or help in potential legal disputes.<br/>It also helps anyone using your source or derivates of it,<br/>to understand their rights.<br/> | [`reuse_lint.nim`](https://github.com/hoijui/osh-tool/blob/master/src/checks/reuse_lint.nim) |
| <a id="check_unwanted_files_exist_not"><a  href="#check_unwanted_files_exist_not">unwanted_files_exist_not</a></a> | No unwanted files | 0.50 | 0.60 | 0.00 | 0.50 | 0.30 | Checks that no unwanted files are part of the project. <br/>These could be backups, caches, IDE/platform specific, and so on. | These files, present in the repo, could cause these issues and inconvieniences:<br/><br/>- potentially inflating the repositories size<br/>- mess up local settings (e.g. local cache paths of an IDE) by one designer<br/>  on an other deginers machine<br/>- make the project appear less clean<br/>- make the project maintainers look like amateurs to seasoned Open Source people<br/>- confuse people, as they are around, yet seem to have no usefulness | [`unwanted_files_exist_not.nim`](https://github.com/hoijui/osh-tool/blob/master/src/checks/unwanted_files_exist_not.nim) |
| <a id="check_uses_dir_std"><a  href="#check_uses_dir_std">uses_dir_std</a></a> | Uses dir standard | 1.00 | 1.00 | 0.30 | 1.00 | 1.00 | Checks whether the unixish OSH directory standard is used <br/>for a sufficient amount of files and directories in the project, <br/>using the osh-dir-std CLI tool. | 1. to be able to extract meta-data:<br/>    1. easy indexing (and thus finding) of projects<br/>    2. easy comparing of projects<br/>    3. allows to write software tools that deal with project repos<br/>2. find your way around quickly and easily in different projects | [`uses_dir_std.nim`](https://github.com/hoijui/osh-tool/blob/master/src/checks/uses_dir_std.nim) |
| <a id="check_vcs_public"><a  href="#check_vcs_public">vcs_public</a></a> | VCS public | 0.70 | 1.00 | 0.00 | 0.60 | 0.00 | Checks whether the Version Control System (VCS) <br/>is publicly available, and without requiring authentication. | A public VCS (e.g. a git repo on GitHub) -<br/>while somewhat challenging to use for some people -<br/>currently (May 2023) is the best way to colaboratively work on Open Source projects together.<br/><br/>It allows to track changes in parallel,<br/>to see who did what when and why (if use right).<br/><br/>Without a public VCS, the project develoment is reserved for "the elite" that is allowed access to it,<br/>or alternatively - and maybe even worse - the development is split up and happening in parallel,<br/>without a good way of sharing the fruits of labout of that process.<br/> | [`vcs_public.nim`](https://github.com/hoijui/osh-tool/blob/master/src/checks/vcs_public.nim) |
| <a id="check_vcs_used"><a  href="#check_vcs_used">vcs_used</a></a> | VCS is used | 0.70 | 1.00 | 0.00 | 0.60 | 0.80 | Checks whether a Version Control System (VCS) <br/>is used to store the projects files, e.g. git, mercurial or pijul. | <br/>## What is a VCS<br/><br/>Version control is a system that maintains a history of changes.<br/>What is packaged into a single, specific change,<br/>(aka commit or patch),<br/>is decided by the people that make the changes.<br/>These changes should be small<br/>and they should form logical units that make sense as a whole,<br/>to the point where it makes no sense to divide them further.<br/>A change might edit any number of files, delete some, and add others.<br/>In the VCS, each change comes complete with a summary,<br/>optional extensive description of the changes,<br/>author info, timestamp and other details.<br/>Thus, the VCS can tell you who changed what, when and why,<br/>and it allows you to go back in time,<br/>or create a new mix of changes:<br/>an alternative history.<br/>A specific change may also be marked as a version,<br/>like '2.0' or '1.5.3-alpha'.<br/><br/>## What is it good for<br/><br/>To share the product documentation on versioning systems<br/>is the most efficient, quality-rich way<br/>to work in parallel within a distributed community.<br/><br/>Having the complete history<br/>enables going back to previous versions<br/>to help in root cause analysis for bugs<br/>and it is crucial when needing to fix problems in older versions.<br/><br/>It allows also to connect reported bugs and project management software<br/>to the relevant change(s),<br/>which allows to see whether a particular version<br/>contains a specific fix of a bug or feature.<br/><br/>Textual documentation can be edited online.<br/> | [`vcs_used.nim`](https://github.com/hoijui/osh-tool/blob/master/src/checks/vcs_used.nim) |

</details>

<details>

<summary>Raw log output of this check run (for debugging)</summary>

* [stdout](stdout.txt)
* [stderr](stderr.txt)

</details>


<details>

<summary>Project meta-data</summary>

| | |
| --- | -------- |
| _version_ | 0.1.0-97-gc2ba57a |
| _version release date_ | 2026-09-21 15:34:40 |
| _branch_ | main |
| _report build date_ | 2026-09-22 10:58:40 |
| _licenses_ | CC-BY-4.0, CC-BY-SA-4.0, CC0-1.0, Unlicense |

</details>

<details>

<summary>Report tools</summary>

| [CLI](https://en.wikipedia.org/wiki/Command-line_interface) tool | version |
| --- | -------- |
| [`osh`](https://github.com/hoijui/osh-tool/) | 0.5.0-63-g5cd437a |
| [`okh`](https://github.com/OPEN-NEXT/LOSH-OKH-tool) | 2.4.3-3-g07b7c38 |
| [`reuse`](https://github.com/fsfe/reuse-tool/) | version |
| [`projvar`](https://github.com/hoijui/projvar/) | 0.20.2 |
| [`mle`](https://github.com/hoijui/mle/) | 0.28.0-11-g74c3bf4 |
| [`mlc`](https://github.com/hoijui/mlc/) | 0.17.0-1-g459f121 |
| [`pandoc`](https://pandoc.org) | 3.1.11.1 |
| [`osh-dir-std`](https://github.com/hoijui/osh-dir-std/) | 0.8.4-7-ge95f9b9 |

</details>

## Report

| Passed | Custom-Passed | Status | Compliance | Check | Severity - Issue |
| - | - | -- | -: | ----- | ---------------- |
| ❌ |   | <font color="Red">Bad</font> | 0.00% | <a href="#check_bom_exists">BoM exists</a> | <font color="Orange">__Middle__</font> - No BoM file found in the root directory. <br>&nbsp;    Please consider adding e.g. a 'BoM.csv'. |
| ✅ |   | <font color="Green">Perfect</font> | 100.00% | <a href="#check_license_exists">LICENSE exists</a> |  |
| ✅ |   | <font color="DarkGoldenRod">Ok</font> | 68.00% | <a href="#check_markdown_lint">Markdown content</a> | <font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:19: MD007 Unordered list indentation<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:44: MD013 Line length<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:46: MD013 Line length<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:47: MD013 Line length<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:50: MD013 Line length<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:51: MD013 Line length<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:52: MD013 Line length<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:54: MD013 Line length<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:65: MD013 Line length<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:73: MD013 Line length<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:181: MD013 Line length<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:117: MD029 Ordered list item prefix<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:123: MD029 Ordered list item prefix<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:130: MD029 Ordered list item prefix<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:136: MD029 Ordered list item prefix<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:142: MD029 Ordered list item prefix<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:148: MD029 Ordered list item prefix<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:154: MD029 Ordered list item prefix<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:161: MD029 Ordered list item prefix<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:113: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:114: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:115: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:119: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:120: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:121: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:126: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:127: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:128: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:132: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:133: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:134: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:138: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:139: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:140: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:144: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:145: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:146: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:150: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:151: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:152: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:157: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:158: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:159: MD055 Table row doesn't begin/end with pipes<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:114: MD057 Table has missing or invalid header separation (second row)<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:120: MD057 Table has missing or invalid header separation (second row)<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:127: MD057 Table has missing or invalid header separation (second row)<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:133: MD057 Table has missing or invalid header separation (second row)<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:139: MD057 Table has missing or invalid header separation (second row)<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:145: MD057 Table has missing or invalid header separation (second row)<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:151: MD057 Table has missing or invalid header separation (second row)<br><hline/><br><font color="LightBlue">__Low__</font> - ./Bauanleitung_3_Tasten.md:158: MD057 Table has missing or invalid header separation (second row)<br><hline/><br><font color="Black">__Info__</font> - Further documentation is available for these failures: <br>&nbsp;     - MD007: https://github.com/markdownlint/markdownlint/blob/main/docs/RULES.md#md007---unordered-list-indentation <br>&nbsp;     - MD013: https://github.com/markdownlint/markdownlint/blob/main/docs/RULES.md#md013---line-length <br>&nbsp;     - MD029: https://github.com/markdownlint/markdownlint/blob/main/docs/RULES.md#md029---ordered-list-item-prefix <br>&nbsp;     - MD055: https://github.com/markdownlint/markdownlint/blob/main/docs/RULES.md#md055---table-row-doesn-t-begin-end-with-pipes <br>&nbsp;     - MD057: https://github.com/markdownlint/markdownlint/blob/main/docs/RULES.md#md057---table-has-missing-or-invalid-header-separation-second-row- |
| ✅ |   | <font color="Green">Perfect</font> | 100.00% | <a href="#check_markup_link">Markup link check</a> |  |
| ❌ |   | <font color="Red">Bad</font> | 0.00% | <a href="#check_no_generated_files">No generated files</a> | <font color="LightBlue">__Low__</font> - Possibly generatable files found. Please consider removing them: <br>&nbsp;     <br>&nbsp;    - image/Seitenschneider.jpg <br>&nbsp;    - image/Sensor-Folie.jpg <br>&nbsp;    - image/ausbrechen-dritte-taste.jpg <br>&nbsp;    - image/bodenplatte.jpg <br>&nbsp;    - image/chip.jpg <br>&nbsp;    - image/drahtbruecken.jpg <br>&nbsp;    - image/drehgeber.jpg <br>&nbsp;    - image/kondensator-01.jpg <br>&nbsp;    - image/kondensator-10.jpg <br>&nbsp;    - image/linke-maustaste.jpg <br>&nbsp;    - image/linse.jpg <br>&nbsp;    - image/loetstation.jpg <br>&nbsp;    - image/mausrad.jpg <br>&nbsp;    - image/oberschale.jpg <br>&nbsp;    - image/overview.jpg <br>&nbsp;    - image/pcb-10-jumpers.jpg <br>&nbsp;    - image/pcb-11-capacitors-and-leds.jpg <br>&nbsp;    - image/pcb-12-switch-keys.jpg <br>&nbsp;    - image/pcb-13-electrolytic-capacitor.jpg <br>&nbsp;    - image/pcb-14-rotary-encoder.jpg <br>&nbsp;    - image/pcb-17-usb-cable.jpg <br>&nbsp;    - image/pcb-18-bad-example-2.jpg <br>&nbsp;    - image/pcb-19-processor-sensor.jpg <br>&nbsp;    - image/pcb-6-overview.jpg <br>&nbsp;    - image/pcb-9-bad-example.jpg <br>&nbsp;    - image/rechte-maustaste.jpg <br>&nbsp;    - image/schalter-mitteltaste.jpg <br>&nbsp;    - image/schalter.jpg <br>&nbsp;    - image/schraube-maustaste.jpg <br>&nbsp;    - image/torx-t10.jpg <br>&nbsp;    - image/torx-t9.jpg <br>&nbsp;    - image/torx.jpg <br>&nbsp;    - image/usb-1-1.jpg <br>&nbsp;    - image/usb-1-2-1.jpg <br>&nbsp;    - image/usb-1-2-2.jpg <br>&nbsp;    - image/usb-1-3.jpg <br>&nbsp;    - image/usb-1-4.jpg <br>&nbsp;    - image/usb-2-5.jpg <br>&nbsp;    - image/usb-2-6.jpg <br>&nbsp;    - image/usb-2-7.jpg <br>&nbsp;    - image/usb-2-8.jpg <br>&nbsp;    - image/usb-kabel.jpg <br>&nbsp;    - image/zusammenbau-1.jpg <br>&nbsp;    - image/zusammenbau-2.jpg <br>&nbsp;    - image/zusammenbau-3.jpg <br>&nbsp;    - image/zusammenbau-4.jpg |
| ❌ |   | <font color="Red">Bad</font> | 0.00% | <a href="#check_no_global_links_to_local_files">No global links to local files</a> | <font color="Orange">__Middle__</font> - 'README.md':22:1<br>&nbsp;    'https://github.com/FairITYourself/assembly-kit/actions/workflows/check_and_build_docu.yml'<br>&nbsp;    -><br>&nbsp;    '/actions/workflows/check_and_build_docu.yml'<br><hline/><br><font color="Orange">__Middle__</font> - 'README.md':22:2<br>&nbsp;    'https://github.com/FairITYourself/assembly-kit/actions/workflows/check_and_build_docu.yml/badge.svg'<br>&nbsp;    -><br>&nbsp;    '/actions/workflows/check_and_build_docu.yml/badge.svg' |
| ✅ |   | <font color="Green">Perfect</font> | 100.00% | <a href="#check_no_sources_in_root">No sources in root</a> |  |
| ✅ |   | <font color="Green">Perfect</font> | 100.00% | <a href="#check_no_space_in_file_names">No space in file names</a> |  |
| ✅ |   | <font color="Green">Perfect</font> | 100.00% | <a href="#check_okh_file_exists">OKH file exists</a> |  |
| ✅ |   | <font color="Green">Perfect</font> | 100.00% | <a href="#check_okh_lint">OKH manifest content</a> |  |
| ✅ |   | <font color="Green">Perfect</font> | 100.00% | <a href="#check_readme_exists">README exists</a> |  |
| ✅ |   | <font color="Green">Perfect</font> | 100.00% | <a href="#check_reuse_lint">REUSE Licensing info</a> |  |
| ✅ |   | <font color="Green">Perfect</font> | 100.00% | <a href="#check_unwanted_files_exist_not">No unwanted files</a> |  |
| ❌ |   | <font color="Red">Bad</font> | 0.00% | <a href="#check_uses_dir_std">Uses dir standard</a> | <font color="Orange">__Middle__</font> - Compliance factor 0.10 is low; \ <br>&nbsp;    below the minimum compliance margin of 0.6 <br>&nbsp;     <br>&nbsp;    files not covered by the standard: <br>&nbsp;     <br>&nbsp;    - "image/bleifreies-lo\314\210tzinn.jpg" <br>&nbsp;    - "image <br>&nbsp;    - "image/gleitpla\314\210ttchen.jpg" <br>&nbsp;    - "image/lde-gru\314\210n.jpg" <br>&nbsp;    - "image/schraube-geha\314\210use.jpg" <br>&nbsp;    - Bauanleitung_3_Tasten.md <br>&nbsp;    - REUSE.toml <br>&nbsp;    - image/Seitenschneider.jpg <br>&nbsp;    - image <br>&nbsp;    - image/Sensor-Folie.jpg <br>&nbsp;    - image/ausbrechen-dritte-taste.jpg <br>&nbsp;    - image/bodenplatte.jpg <br>&nbsp;    - image/chip.jpg <br>&nbsp;    - image/drahtbruecken.jpg <br>&nbsp;    - image/drehgeber.jpg <br>&nbsp;    - image/kondensator-01.jpg <br>&nbsp;    - image/kondensator-10.jpg <br>&nbsp;    - image/linke-maustaste.jpg <br>&nbsp;    - image/linse.jpg <br>&nbsp;    - image/loetstation.jpg <br>&nbsp;    - image/mausrad.jpg <br>&nbsp;    - image/oberschale.jpg <br>&nbsp;    - image/overview.jpg <br>&nbsp;    - image/pcb-10-jumpers.jpg <br>&nbsp;    - image/pcb-11-capacitors-and-leds.jpg <br>&nbsp;    - image/pcb-12-switch-keys.jpg <br>&nbsp;    - image/pcb-13-electrolytic-capacitor.jpg <br>&nbsp;    - image/pcb-14-rotary-encoder.jpg <br>&nbsp;    - image/pcb-17-usb-cable.jpg <br>&nbsp;    - image/pcb-18-bad-example-2.jpg <br>&nbsp;    - image/pcb-19-processor-sensor.jpg <br>&nbsp;    - image/pcb-6-overview.jpg <br>&nbsp;    - image/pcb-9-bad-example.jpg <br>&nbsp;    - image/rechte-maustaste.jpg <br>&nbsp;    - image/schalter-mitteltaste.jpg <br>&nbsp;    - image/schalter.jpg <br>&nbsp;    - image/schraube-maustaste.jpg <br>&nbsp;    - image/torx-t10.jpg <br>&nbsp;    - image/torx-t9.jpg <br>&nbsp;    - image/torx.jpg <br>&nbsp;    - image/usb-1-1.jpg <br>&nbsp;    - image/usb-1-2-1.jpg <br>&nbsp;    - image/usb-1-2-2.jpg <br>&nbsp;    - image/usb-1-3.jpg <br>&nbsp;    - image/usb-1-4.jpg <br>&nbsp;    - image/usb-2-5.jpg <br>&nbsp;    - image/usb-2-6.jpg <br>&nbsp;    - image/usb-2-7.jpg <br>&nbsp;    - image/usb-2-8.jpg <br>&nbsp;    - image/usb-kabel.jpg <br>&nbsp;    - image/zusammenbau-1.jpg <br>&nbsp;    - image/zusammenbau-2.jpg <br>&nbsp;    - image/zusammenbau-3.jpg <br>&nbsp;    - image/zusammenbau-4.jpg |
| ✅ |   | <font color="Green">Perfect</font> | 100.00% | <a href="#check_vcs_public">VCS public</a> |  |
| ✅ |   | <font color="Green">Perfect</font> | 100.00% | <a href="#check_vcs_used">VCS is used</a> |  |
| **Passed** | **Custom-Passed** | **Status** | **Compliance** | **Check** | **Severity - Issue** |
| |  | | __73.00%__ | <- __Average__ | |

<details>

<summary>Project Statistics</summary>

| Property | Value |
| --- | --: |
| Checks Run | 16 |
| Checks Skipped | 2 |
| Checks Passed | 12 |
| Checks Failed | 4 |
| Checks Available | 18 |
| Custom-Passed | 0 |
| Custom-Failed | 0 |
| Custom-Not-Configured | 16 |
| Issues Info | 1 |
| Issues High | 0 |
| Issues Low | 54 |
| Issues Middle | 4 |
| Issues DeveloperFailure | 0 |
| Compliance | 71.75% |
| Openness | 73.75% |
| is hardware (factor) | 0.58 |
| Quality | 67.75% |
| Machine-Readability | 69.93% |

</details>

<details>

<summary>Project meta-data (by projvar)</summary>

| key | value |
| --- | -------- |
| `NAME_MACHINE_READABLE` | `assembly-kit` |
| `CI` | `true` |
| `LICENSES` | `CC-BY-4.0, CC-BY-SA-4.0, CC0-1.0, Unlicense` |
| `VERSION_DATE` | `2026-09-21 15:34:40` |
| `BUILD_DATE` | `2026-09-22 10:58:40` |
| `REPO_CLONE_URL_SSH` | `ssh://git@github.com/FairITYourself/assembly-kit.git` |
| `VERSION` | `0.1.0-97-gc2ba57a` |
| `REPO_VERSIONED_DIR_PREFIX_URL` | `https://github.com/FairITYourself/assembly-kit/tree` |
| `BUILD_HOSTING_URL` | `https://fairityourself.github.io/assembly-kit` |
| `BUILD_OS` | `Linux` |
| `REPO_COMMIT_PREFIX_URL` | `https://github.com/FairITYourself/assembly-kit/commit` |
| `REPO_WEB_URL` | `https://github.com/FairITYourself/assembly-kit` |
| `BUILD_BRANCH` | `main` |
| `REPO_ISSUES_URL` | `https://github.com/FairITYourself/assembly-kit/issues` |
| `REPO_VERSIONED_FILE_PREFIX_URL` | `https://github.com/FairITYourself/assembly-kit/blob` |
| `BUILD_OS_FAMILY` | `unix` |
| `REPO_RAW_VERSIONED_PREFIX_URL` | `https://raw.githubusercontent.com/FairITYourself/assembly-kit` |
| `BUILD_ARCH` | `x86_64` |
| `REPO_CLONE_URL` | `https://github.com/FairITYourself/assembly-kit` |
| `LICENSE` | `CC-BY-SA-4.0` |
| `REPO_CLONE_URL_HTTP` | `https://github.com/FairITYourself/assembly-kit.git` |
| `NAME` | `assembly-kit` |

</details>

<details>

<summary>Configuration used for this `osh`-tool run</summary>

```json
{
  "projRoot": ".",
  "reportTargets": [
    {
      "path": "public/osh-report.md",
      "outputFormat": "MdTable"
    },
    {
      "path": "public/osh-report.json",
      "outputFormat": "Json"
    }
  ],
  "force": true
}
```

</details>
