Skip to main content

adrlane

Documentation-as-code bootstrap for AI agents.

adrlane scaffolds a minimal docs/ layout and agent skills so AI tools know where to read and write project documentation. The agent decides when to update docs — there is no sync pipeline or enforcement.

Install

Install adrlane once on your machine with uv:

uv tool install adrlane

From a local checkout:

uv tool install -e .

Verify:

adrlane --help

Development checkout

Clone the repository and install dependencies:

git clone https://github.com/koradon/adrlane.git
cd adrlane
uv sync
uv run adrlane --help

Quick start

Run these commands from your project repository root:

cd /path/to/your-project

# 1. Scaffold docs and install project-local agent skills
adrlane init

# Multi-repo workspace (project root is not a single git repo):
adrlane init --workspace   # adds .adrlane/workspace.yaml for doc routing
# Then run `adrlane init` in each sub-repository for service-level docs.

# 2. Optional: install skills globally (one copy for all projects)
adrlane skills install --global

Preview changes without writing files:

adrlane init --dry-run

Limit which agent adapters init installs:

adrlane init --agent cursor
adrlane init --agent cursor --agent claude-code

After upgrading the adrlane package, refresh skills:

adrlane skills upgrade --global
adrlane skills upgrade --local   # run from a bootstrapped repo

Commands

Command Description
adrlane init Bootstrap docs/ and install agent skills in the current repository
adrlane init --dry-run Show planned bootstrap actions without writing files
adrlane init --agent <name> Limit adapters (cursor, claude-code; repeatable)
adrlane init --workspace Bootstrap with multi-repo doc routing config
adrlane skills install --global Install skills in ~/.cursor/skills/ and ~/.claude/skills/
adrlane skills install --local Install skills in the current repository (skips existing files)
adrlane skills upgrade --global Overwrite global skills with the current package version
adrlane skills upgrade --local Overwrite local skills in the current repository
adrlane upgrade Refresh docs/llm/* contract files, .adrlane/bootstrap-version, and local agent skills after upgrading the adrlane package
adrlane upgrade --dry-run Show planned upgrade actions without writing files
adrlane upgrade --agent <name> Limit which agent adapters get their skills refreshed (repeatable)

init and skills --local always use the current working directory — there is no --path flag. Change into the target repository first.

init never overwrites existing files, so re-running it after upgrading the adrlane package won't refresh stale docs/llm/* contract files. Run adrlane upgrade for that. It never touches user-owned content: docs/README.md, docs/ideas/README.md, docs/roadmap/README.md, the contents of docs/{specs,plans,adr,ideas,roadmap}, or .adrlane/workspace.yaml.

What init creates

init scaffolds a minimal core that grows with the project:

Path Purpose
docs/specs/ What the system should do
docs/plans/ How to implement a spec
docs/adr/ Why significant decisions were made
docs/ideas/ Early concepts that may be promoted to specs
docs/roadmap/ Now / Next / Later horizons
docs/llm/ Agent contract, decision rules, and templates

Templates live in docs/llm/templates/. Documents use markdown sections (## Status, ## Related) — not YAML frontmatter.

When the project gains new documentation needs (runbooks, API reference, CLI docs), the agent adds new folders under docs/ and updates docs/README.md. init does not predict project type.

Release history stays in Git and release tooling — not in docs/.

Agent skills

By default, init installs six skills for Cursor and Claude Code:

Skill Role
adrlane-dev-context Ambient — read specs before coding; propose ADRs after significant decisions
adrlane-write-idea Write or update ideas
adrlane-write-spec Write or update specs (and Gherkin .feature files)
adrlane-write-plan Write or update implementation plans
adrlane-write-adr Document architectural decisions
adrlane-workspace-routing Route docs to project or sub-repo trees (when .adrlane/workspace.yaml exists)

Project-local (default via init): .cursor/skills/ and .claude/skills/ in the repository.

Global (optional via skills install --global): same skills in your home directory, shared across all projects.

Skills are thin adapters; the canonical contract lives in docs/llm/AGENT_PROTOCOL.md and docs/llm/DECISION_RULES.md.

Multi-repo workspace

Use this when the Cursor workspace root is not a single git repository — for example a folder that contains several independent repos plus shared project docs.

Setup

cd /path/to/project-root

# Project-level docs + routing config + skills
adrlane init --workspace

# Service-level docs in each repository
cd repository1 && adrlane init
cd ../repository2 && adrlane init

Open the project root in Cursor so routing applies. Optionally install skills globally once: adrlane skills install --global.

Layouts

Flat — repositories are direct children of the project root. No repo_roots needed:

project/
  docs/                 ← cross-cutting ADRs, specs, roadmap
  repository1/docs/     ← service-specific docs
  repository2/docs/

Grouped — repositories live under category folders. Uncomment and edit repo_roots in .adrlane/workspace.yaml:

project/
  docs/
  services/order-service/docs/
  frontends/checkout-fe/docs/
project_docs: docs
repo_roots:
  - services
  - frontends

How routing works

The adrlane-workspace-routing skill (active when .adrlane/workspace.yaml exists) sends documentation to:

Scope Location Examples
Project docs/ at project root Platform ADRs, cross-service conventions
Service <repo>/docs/ API specs, service-internal decisions

The other adrlane-write-* skills follow the resolved path automatically. Link project and service docs in ## Related.

Contributing

Run tests:

uv run pytest

Install pre-commit hooks:

uv run pre-commit install
uv run pre-commit run --all-files

Dependency management:

uv add <package>          # runtime dependency
uv add --dev <package>    # dev dependency
uv lock                   # refresh lockfile after manual pyproject edits

License

AGPL-3.0-or-later. See LICENSE.

Metadata

Release files for adrlane 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for adrlane 0.4.1
File Size Uploaded Provenance
adrlane-0.4.1.tar.gz 29.1 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for adrlane 0.4.1
File Interpreter ABI Platform
adrlane-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 73.0 kB

Release files / adrlane-0.4.1.tar.gz

Download URL adrlane-0.4.1.tar.gz
Size 29.1 kB
Tags Source
SHA-256 checksum
How to use checksums
7d6ef98a6d1794eb06a466305a099656b1da20c52a394f9b9b08de23d6efcaeb
BLAKE2b-256 checksum
How to use checksums
3d6e5e0d54bcb6aceead2ab560faa21e175f0a19235ab2945939ab432e724ebe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 20, 2026.

Transparency log

Release files / adrlane-0.4.1-py3-none-any.whl

Download URL adrlane-0.4.1-py3-none-any.whl
Size 43.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
204dcf2e9ceeb3d09d1623ac9e34d71cb015da886754aa44a8abe6ebb57c2012
BLAKE2b-256 checksum
How to use checksums
71658fb2ffae0b14cd12822187676cd5f8c3dff12d666c9362fbfd910a449a94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 20, 2026.

Transparency log

Security for adrlane 0.4.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for adrlane-0.4.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 20, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page