{"id":18352499,"url":"https://github.com/stelynx/dart-adr","last_synced_at":"2026-05-18T00:31:39.378Z","repository":{"id":56583362,"uuid":"290208054","full_name":"stelynx/dart-adr","owner":"stelynx","description":"Utility for maintaining consistent Architectural Design Records (ADRs) for Dart/Flutter projects.","archived":false,"fork":false,"pushed_at":"2020-10-30T07:49:32.000Z","size":12,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-13T09:38:18.031Z","etag":null,"topics":["adr","adrs","architectural","dart","decisions","flutter","utility"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stelynx.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-08-25T12:23:31.000Z","updated_at":"2022-03-02T23:50:16.000Z","dependencies_parsed_at":"2022-08-15T21:30:25.900Z","dependency_job_id":null,"html_url":"https://github.com/stelynx/dart-adr","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/stelynx/dart-adr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stelynx%2Fdart-adr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stelynx%2Fdart-adr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stelynx%2Fdart-adr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stelynx%2Fdart-adr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stelynx","download_url":"https://codeload.github.com/stelynx/dart-adr/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stelynx%2Fdart-adr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33160455,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T22:39:12.733Z","status":"ssl_error","status_checked_at":"2026-05-17T22:39:10.741Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adr","adrs","architectural","dart","decisions","flutter","utility"],"created_at":"2024-11-05T21:36:10.894Z","updated_at":"2026-05-18T00:31:39.362Z","avatar_url":"https://github.com/stelynx.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Architectural Design Records Utility\n\n[![Pub Version](https://img.shields.io/pub/v/adr?color=%233dc6fd\u0026logo=flutter\u0026logoColor=%233dc6fd)](https://pub.dev/packages/adr)\n\nUtility for maintaining consistent Architectural Design Records (ADRs) for Dart/Flutter projects.\n\n## About\n\nDeveloping more complex applications, either by complexity or simply by number of lines in codebase,\nthe ideas from the start of the project easily vanish from developers minds. Not to mention when new\nfolks come to the project, they have no idea why and how something is implemented. Usually, the main\narchitect has an overview over the whole application, but this is not necessarily the case. Also, in start-ups, such roles are often implicitely defined and decisions are taken in a larger group of people.\nThis can easily lead to some crucial architectural or technological decision made in the past to vain in memory, be forgotton, or even become misinterpreted as the time goes by.\n\nWith this being said, each project needs a way of collecting this decisions in an organized and condensed manner.\nThis is the point where this project comes to the rescue, big times.\n\n## Usage\n\nThis application can be installed and used in two different ways. We shall describe both of them in the coming subsections.\n\n### Global installation\n\nThe package can be installed globaly simply by executing\n\n```bash\npub global activate adr\n```\n\nThen, from any directory on your machine, run\n\n```bash\nadr\n```\n\n### Per-application installation\n\nRequire the package in your application's `pubspec.yaml` file in `dev_dependencies` like\n\n```yaml\ndev_dependencies:\n  adr: ^1.0.1\n```\n\nThen, in the root of your project, run\n\n```bash\npub run adr\n```\n\n### Flags\n\nCommand `adr` is always meant to be run with **exactly one flag**. Running `adr` with no flags, will print help to the console, listing all available flags.\n\nAvailable flags are:\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003eFlag\u003c/th\u003e\n    \u003cth\u003eDescription\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e-c\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003ePrint number of ADRs currently present in configured directory.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e-g\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eGenerate adr.yaml config file with defaults.\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e-i\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eCreate index file \"ADR0000_index.md\".\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003e-n\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eStart creation of new ADR.\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Configuration\n\nADR can be configured using `adr.yaml` file in the directory of execution. If you are running the `adr` command in a project directory (same level as your `pubspec.yaml` file), then the `adr.yaml` should\nbe placed at the same level as the `pubspec.yaml`.\n\nExample `adr.yaml` looks like this.\n\n```yaml\noutput_dir: docs/adr\nrequired_fields:\n  status: true\n  deciders: true\n  date: true\n  tech_story: false\n  context: true\n  decision_drivers: false\n  considered_options: true\n  decision_outcome: true\n  pros: false\n  cons: false\n  pros_cons_opts: false\n  links: false\n```\n\nField `output_dir` specifies the directory path where the ADRs should be generated to, or are already there. The `required_fields` section specifies whether some fields are required or not. If omitting a field or `adr.yaml` at all, the defaults are used (values in the example above are defaults).\n\nThe structure of generated ADRs is the same as the\nofficial [MADR](https://github.com/adr/madr) specification, except you can configure required fields to your own personal preference.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstelynx%2Fdart-adr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstelynx%2Fdart-adr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstelynx%2Fdart-adr/lists"}