|
| 1 | +--- |
| 2 | +title: Decision Capturing Tools |
| 3 | +toc: true |
| 4 | +categories: [adr] |
| 5 | +--- |
| 6 | + |
| 7 | +> The following lists are rather inclusive and sorted alphabetically. |
| 8 | +> Please find out about the status and the maturity of the list entries for yourself by following the links. |
| 9 | +> We are happy to include more candidate assets here. |
| 10 | +{: .prompt-info } |
| 11 | + |
| 12 | +## Tooling to create and maintain decision files |
| 13 | + |
| 14 | +### Any template |
| 15 | + |
| 16 | +- [dotnet-adr](https://github.com/endjin/dotnet-adr) - A cross platform .NET Global Tool for creating and managing Architectural Decision Records (ADR). |
| 17 | + |
| 18 | +### MADR template |
| 19 | + |
| 20 | +| Name | MADR Version | Comment | |
| 21 | +| ----------------------------------------------------------------------------------------------------------- | ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | |
| 22 | +| [adr-log](https://github.com/adr/adr-log?tab=readme-ov-file#adr-log-) | 2.1.2 | CLI to keep an `index.md` file updated with all ADRs | |
| 23 | +| [ADR Manager](https://adr.github.io/adr-manager/) | 2.1.2 | Web-based UI connecting to GitHub to directly edit ADRs in a form-based way | |
| 24 | +| [ADR Manager VS Code Extension](https://github.com/adr/vscode-adr-manager) | 2.1.2 | Visual Studio Code (VS Code) extension | |
| 25 | +| [Backstage ADR plugin](https://github.com/backstage/community-plugins/tree/main/workspaces/adr/plugins/adr) | 2.1.2 and 3.x | plugin to explore and search ADRs within a backstage based developer portal. Search at scale across mutliple orgs/repos | |
| 26 | +| [Hugo Markdown ADR Tools](https://github.com/butonic/adr-tools) | 2.1.2. | CLI to create and update ADRs | |
| 27 | +| [Log4brains](https://github.com/thomvaill/log4brains) | 2.1.2 without numbers in the filename | Supports both nice rendering of ADRs and creation of ADRs in a command line. | |
| 28 | +| [pyadr](https://github.com/opinionated-digital-center/pyadr) | 2.1.2 | CLI to help with an ADR process lifecycle (proposal/acceptance/rejection/deprecation/superseding) | |
| 29 | + |
| 30 | +### Nygard template |
| 31 | + |
| 32 | +- [adr-tools](https://github.com/npryce/adr-tools) - bash scripts to manage ADRs in the [Nygard format](https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions.html). [example](https://github.com/npryce/adr-tools/blob/master/doc/adr/0002-implement-as-shell-scripts.md). |
| 33 | + - Ansible script to install adr-tools: [ansible-adr-tools](https://github.com/escalate/ansible-adr-tools) |
| 34 | + - C# rewrite: [adr-cli](https://github.com/GingerTommy/adr-cli) |
| 35 | + - Go rewrite: [adr](https://github.com/marouni/adr) |
| 36 | + - Java rewrite: [adr-j](https://github.com/adoble/adr-j) |
| 37 | + - ESM Node.js port: [adr-tools](https://github.com/meza/adr-tools) |
| 38 | + - Node.js rewrite: [adr](https://github.com/phodal/adr) |
| 39 | + - PHP version: [phpadr](https://github.com/globtec/phpadr) |
| 40 | + - Powershell module: [adr-ps](https://github.com/rdagumampan/adr-ps) |
| 41 | + - Python rewrite: [adr-tools-python](https://pypi.org/project/adr-tools-python/) |
| 42 | + - Another Powershell module: [ArchitectureDecisionRecords](https://github.com/ajoberstar/ArchitectureDecisionRecords) |
| 43 | + - Rust rewrite: [adrs](https://github.com/joshrotenberg/adrs) |
| 44 | +- [adr-viewer](https://github.com/mrwilson/adr-viewer) - python application to generate a website from a set of ADRs. |
| 45 | +- [architectural-decision](https://github.com/cspray/architectural-decision): PHP library to create ADRs using PHP8 Attributes. |
| 46 | +- [Loqbooq](https://loqbooq.app): Commerical Web App with Slack integration to record ADR-inspired decision logs |
| 47 | +- [Talo](https://github.com/canpolat/talo): CLI (and dotnet tool) to manage and export ADRs, RFCs and custom software design document types. |
| 48 | + |
| 49 | +## Tooling close to the code |
| 50 | + |
| 51 | +- [(Java) Embedded Architectural Decision Records](https://github.com/adr/e-adr#embedded-architectural-decision-records), which shows how a distributed AD log can be embedded in Java Code via ADR annotations. |
| 52 | + |
| 53 | +## Tooling related to architecture management |
| 54 | + |
| 55 | +- [ArchUnit](https://github.com/TNG/ArchUnit): unit tests for architecture |
| 56 | +- [docToolchain](https://doctoolchain.github.io/docToolchain/): docToolchain is an implementation of the [docs-as-code](https://www.writethedocs.org/guide/docs-as-code/) approach for software architecture plus some additional automation. |
| 57 | +- [Structurizr](https://www.structurizr.com/): Structurizr is a collection of tooling to help you visualise, document and explore your software architecture using the [C4 model](https://c4model.com/). |
| 58 | + |
| 59 | +## Interesting, but unmaintained tooling |
| 60 | + |
| 61 | +- [adr-log](https://github.com/adr/adr-log): Generates an architectural decision log out of MADRs. |
| 62 | +- [ADMentor](https://github.com/IFS-HSR/ADMentor) Architectural Decision Modeling Add-In for [Sparx Enterprise Architect](https://www.sparxsystems.de/uml/neweditions/) |
| 63 | +- [eadlsync](https://adr.github.io/eadlsync/): Synchronizes embedded architectural decision records with a repository of architectural decisions. |
| 64 | +- [SE Repo](https://github.com/adr/serepo): Software Engineering Repository. A repository for versioning software engineering artifacts, which can be architectural decisions, patterns, and others. |
0 commit comments