A simple command-line tool to manage ADRs in markdown format

Architecture Decision Records

A simple command-line tool to manage ADRs in markdown format.

Usage

  • adr init [path] Initialize the ADR path and create a template.md. Feel free to update the template, but leave the yaml front-matter intact.
  • adr new <title> Create a new ADR with the given title and open it in your $EDITOR.
  • adr show <id> Show the ADR with the given id.
  • adr edit <id> Open the ADR with the given id in your $EDITOR.
  • adr list List all ADRs with their status, date and title.
  • adr update <id> <status> Update the ADR with the given id, setting the status to one of: proposed, accepted, deprecated or superseded.

TODO

  • link superseded ADRs
  • more robust detection of project root / adr root
  • better help texts and error reporting
  • generate an index in markdown format, to make it easier to use in e.g. GitHub
  • post-process step after editing, to create hyperlinks for ADRs mentioned in the text
  • CI/CD setup and versioning
  • template seems to break github pages production, move it?
  • do we need a .adr.yaml or similar config file in the project root?
Similar Resources

go-chat is a gRPC based chat CLI written in golang for command line lovers

go-chat is a gRPC based chat CLI written in golang for command line lovers

go-chat go-chat is a gRPC based chat CLI written in golang for command line lovers. This CLI allows you to chat with your friends without leaving the

Oct 14, 2022

Command-Line chat app in Go-Lang over TCP

gochat Simple chat communication app over TCP, wrriten in Golang. How does it work? Each client starts a TCP server, in a port that is defined by the

Jan 9, 2022

gh is GitHub on the command line. It brings pull requests, issues, and other GitHub concepts to the terminal next to where you are already working with git and your code

gh is GitHub on the command line. It brings pull requests, issues, and other GitHub concepts to the terminal next to where you are already working with git and your code

gh is GitHub on the command line. It brings pull requests, issues, and other GitHub concepts to the terminal next to where you are already working with git and your code

Jan 24, 2022

Sshs - Graphical command line client for SSH

Sshs - Graphical command line client for SSH

sshs Graphical command line client for SSH. It uses ~/.ssh/config to list and co

Jan 3, 2023

IPIP.net officially supported IP database ipdb format parsing library

IPIP.net officially supported IP database ipdb format parsing library

Dec 27, 2022

Protocol Buffers - Google's data interchange format

Protocol Buffers - Google's data interchange format Copyright 2008 Google Inc. https://developers.google.com/protocol-buffers/ Overview Protocol Buffe

Jan 3, 2023

Fetches one or more DNS zones via AXFR and dumps in Unix hosts format for local use

axfr2hosts About axfr2hosts is a tool meant to do a DNS zone transfer in a form of AXFR transaction of one or more zones towards a single DNS server a

Aug 9, 2022

Go support for Protocol Buffers - Google's data interchange format

Go support for Protocol Buffers - Google's data interchange format Google's data interchange format. Copyright 2010 The Go Authors. https://github.com

Dec 15, 2021

Microservice on IPv4: 3000 port without database. Upon request, returns the source JSON in the desired format

Microservice on IPv4: 3000 port without database. Upon request, returns the source JSON in the desired format

📜 Этапы V1.0 Микросервис на IPv4:3000 порту без базы данных. По запросу возвращ

Dec 22, 2021
Comments
  • Update the status in the body text

    Update the status in the body text

    Currently adr update only updates the status in the frontmatter, not in the body text. This may be a bit tricky to do, perhaps it would work if we make the status fixed-width and do a search/replace from the original status to the new status.

    Alternatively, if we can get the markdown renderer to play nice with the YAML frontmatter (in GitHub it looks reasonable) we could do away with the table in the body altogether.

  • Reflow text in `adr show`

    Reflow text in `adr show`

    Currently long lines get wrapped in adr show (correct), but if you add manual line-breaks in the source text (so you don't get ridiculously long lines in most text editors) the line-breaks are kept in the output text (not correct).

  • Handle custom frontmatter

    Handle custom frontmatter

    1. When updating an ADR the frontmatter is regenerated, this drops any custom fields the user may have added.
    2. It may be interesting to allow filtering by custom fields
Related tags
📦 Command line peer-to-peer data transfer tool based on libp2p.

pcp - Peer Copy Command line peer-to-peer data transfer tool based on libp2p. Table of Contents Motivation Project Status How does it work? Usage Inst

Jan 5, 2023
Radical - A command-line tool facilitating development of radiant-based application

radical radical is a command-line tool facilitating development of radiant-based

Mar 22, 2022
protoCURL is cURL for Protobuf: The command-line tool for interacting with Protobuf over HTTP REST endpoints using human-readable text formats

protoCURL protoCURL is cURL for Protobuf: The command-line tool for interacting with Protobuf over HTTP REST endpoints using human-readable text forma

Jan 6, 2023
Tool for manage SSH
Tool  for manage SSH

ssht tool for manage SSH, no more care about password, host, port, username INSTALL git clone https://github.com/letieu/ssht cp ssht $HOME/.local/bin

Sep 30, 2021
Build fast blogs using markdown.

static Build fast and lightweight blogs using only markdown. Install Go 1.16+: go install github.com/rramiachraf/static@latest Usage Create a directo

Mar 20, 2022
Sep 23, 2022
A tiny command line DNS client with support for UDP, DoT, DoH, and DoQ.
A tiny command line DNS client with support for UDP, DoT, DoH, and DoQ.

q A tiny command line DNS client with support for UDP, DoT, DoH, and DoQ. Usage q command line DNS client (https://github.com/natesales/q) Usage: q

Jan 4, 2023
gnoic is a gNOI client command line interface

gnoic is a gNOI CLI client that provides support for gNOI Certificate Managment, File and System Services. Documentation available at https://gnoic.km

Nov 9, 2022
⚙️ subnetting via command line
⚙️ subnetting via command line

# Subnet subnetting via command line installation intall from binary file git clone https://github.com/nekonako/subnet.git cd subnet sudo ./install.sh

Oct 10, 2022
Aidos Kuneen (v2 network) daemon program that is controlled through the command line and remotely via RPC calls

adk-daemon: aidosd.v2 aidosd (v2) is a deamon which acts as bitcoind for adk. This version has been built specifically for network mesh version 2+ For

Dec 1, 2021