adrlane 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. adrlane-0.1.0/.github/workflows/release.yml +78 -0
  2. adrlane-0.1.0/.github/workflows/test.yml +53 -0
  3. adrlane-0.1.0/.gitignore +15 -0
  4. adrlane-0.1.0/.plan/config.yaml +10 -0
  5. adrlane-0.1.0/.plan/milestones/m1-cli-docs-bootstrap/issues/issue-001-cli-init-scaffold.md +21 -0
  6. adrlane-0.1.0/.plan/milestones/m1-cli-docs-bootstrap/issues/issue-002-docs-llm-contract-and-templates.md +21 -0
  7. adrlane-0.1.0/.plan/milestones/m1-cli-docs-bootstrap/issues/issue-003-pytest-test-foundation.md +27 -0
  8. adrlane-0.1.0/.plan/milestones/m1-cli-docs-bootstrap/issues/issue-004-packaging-and-versioning.md +28 -0
  9. adrlane-0.1.0/.plan/milestones/m1-cli-docs-bootstrap/issues/issue-005-ci-pipeline.md +28 -0
  10. adrlane-0.1.0/.plan/milestones/m1-cli-docs-bootstrap/issues/issue-006-pypi-release-workflow.md +28 -0
  11. adrlane-0.1.0/.plan/milestones/m1-cli-docs-bootstrap/milestone.md +34 -0
  12. adrlane-0.1.0/.plan/milestones/m2-agent-skills-adapters/issues/issue-001-cursor-skill-adapter.md +22 -0
  13. adrlane-0.1.0/.plan/milestones/m2-agent-skills-adapters/issues/issue-002-claude-code-adapter-and-agent-flags.md +22 -0
  14. adrlane-0.1.0/.plan/milestones/m2-agent-skills-adapters/milestone.md +19 -0
  15. adrlane-0.1.0/.plan/milestones/m3-polish-maintenance/issues/issue-001-doctor-informational-checks.md +22 -0
  16. adrlane-0.1.0/.plan/milestones/m3-polish-maintenance/issues/issue-002-upgrade-path-and-onboarding-docs.md +22 -0
  17. adrlane-0.1.0/.plan/milestones/m3-polish-maintenance/milestone.md +19 -0
  18. adrlane-0.1.0/.pre-commit-config.yaml +24 -0
  19. adrlane-0.1.0/.python-version +1 -0
  20. adrlane-0.1.0/2026-07-07-adrlane-design.md +240 -0
  21. adrlane-0.1.0/PKG-INFO +66 -0
  22. adrlane-0.1.0/README.md +58 -0
  23. adrlane-0.1.0/pyproject.toml +63 -0
  24. adrlane-0.1.0/src/adrlane/__init__.py +1 -0
  25. adrlane-0.1.0/src/adrlane/bootstrap/__init__.py +4 -0
  26. adrlane-0.1.0/src/adrlane/bootstrap/executor.py +46 -0
  27. adrlane-0.1.0/src/adrlane/bootstrap/plan.py +36 -0
  28. adrlane-0.1.0/src/adrlane/cli/__init__.py +3 -0
  29. adrlane-0.1.0/src/adrlane/cli/main.py +59 -0
  30. adrlane-0.1.0/tests/conftest.py +21 -0
  31. adrlane-0.1.0/tests/test_bootstrap.py +36 -0
  32. adrlane-0.1.0/tests/test_cli_init.py +46 -0
  33. adrlane-0.1.0/uv.lock +1061 -0
@@ -0,0 +1,78 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+
8
+ jobs:
9
+ test:
10
+ name: Tests on Python 3.12
11
+ runs-on: ubuntu-latest
12
+
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+
16
+ - name: Install uv
17
+ uses: astral-sh/setup-uv@v5
18
+ with:
19
+ version: "latest"
20
+
21
+ - name: Set up Python
22
+ run: uv python install 3.12
23
+
24
+ - name: Install dependencies
25
+ run: uv sync --dev
26
+
27
+ - name: Run tests
28
+ run: uv run pytest --cov=adrlane
29
+
30
+ publish:
31
+ name: Publish to PyPI
32
+ runs-on: ubuntu-latest
33
+ needs: test
34
+ permissions:
35
+ contents: read
36
+ id-token: write
37
+
38
+ steps:
39
+ - uses: actions/checkout@v4
40
+
41
+ - name: Install uv
42
+ uses: astral-sh/setup-uv@v5
43
+ with:
44
+ version: "latest"
45
+
46
+ - name: Set up Python
47
+ run: uv python install 3.12
48
+
49
+ - name: Install dependencies
50
+ run: uv sync --group publish
51
+
52
+ - name: Build package
53
+ run: uv run python -m build
54
+
55
+ - name: Publish to PyPI
56
+ uses: pypa/gh-action-pypi-publish@release/v1
57
+ with:
58
+ print-hash: true
59
+
60
+ github_release:
61
+ name: Create GitHub Release
62
+ runs-on: ubuntu-latest
63
+ needs: publish
64
+ permissions:
65
+ contents: write
66
+
67
+ steps:
68
+ - name: Checkout
69
+ uses: actions/checkout@v4
70
+
71
+ - name: Create GitHub Release
72
+ uses: softprops/action-gh-release@v2
73
+ with:
74
+ tag_name: ${{ github.ref_name }}
75
+ name: ${{ github.ref_name }}
76
+ draft: false
77
+ prerelease: false
78
+ generate_release_notes: true
@@ -0,0 +1,53 @@
1
+ name: Tests
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ pull_request:
7
+ branches: [main]
8
+
9
+ jobs:
10
+ lint:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+
15
+ - name: Install uv
16
+ uses: astral-sh/setup-uv@v5
17
+ with:
18
+ version: "latest"
19
+
20
+ - name: Set up Python
21
+ run: uv python install 3.12
22
+
23
+ - name: Install dependencies
24
+ run: uv sync --dev
25
+
26
+ - name: Run ruff lint
27
+ run: uv run ruff check .
28
+
29
+ - name: Run ruff format check
30
+ run: uv run ruff format --check .
31
+
32
+ test:
33
+ runs-on: ubuntu-latest
34
+ strategy:
35
+ matrix:
36
+ python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
37
+
38
+ steps:
39
+ - uses: actions/checkout@v4
40
+
41
+ - name: Install uv
42
+ uses: astral-sh/setup-uv@v5
43
+ with:
44
+ version: "latest"
45
+
46
+ - name: Set up Python ${{ matrix.python-version }}
47
+ run: uv python install ${{ matrix.python-version }}
48
+
49
+ - name: Install dependencies
50
+ run: uv sync --dev
51
+
52
+ - name: Run tests
53
+ run: uv run pytest --cov=adrlane
@@ -0,0 +1,15 @@
1
+ __pycache__/
2
+ *.py[cod]
3
+ *$py.class
4
+ *.egg-info/
5
+ .eggs/
6
+ dist/
7
+ build/
8
+ .venv/
9
+ venv/
10
+ .pytest_cache/
11
+ .ruff_cache/
12
+ .mypy_cache/
13
+ .coverage
14
+ htmlcov/
15
+ .adrlane/
@@ -0,0 +1,10 @@
1
+ sync:
2
+ closed_issues:
3
+ policy: archive
4
+ archive_dir: .plan/archive/issues
5
+ github:
6
+ default_assignees: []
7
+ default_labels: []
8
+ behavior:
9
+ dry_run: false
10
+ verbosity: compact
@@ -0,0 +1,21 @@
1
+ ---
2
+ title: Scaffold adrlane CLI with init command
3
+ id: adrlane-m1-issue-001
4
+ labels:
5
+ - m1
6
+ - cli
7
+ milestone: 'M1: CLI and Documentation Bootstrap'
8
+ state: open
9
+ number: 10
10
+ state_reason: null
11
+ ---
12
+
13
+ ## Goal
14
+
15
+ Create the first usable CLI surface for global install and per-repository bootstrap.
16
+
17
+ ## Tasks
18
+
19
+ - Implement package entry point and `adrlane init` command.
20
+ - Support `--dry-run` to preview bootstrap output.
21
+ - Ensure idempotent behavior when `init` is re-run.
@@ -0,0 +1,21 @@
1
+ ---
2
+ title: Bootstrap docs structure and docs/llm contract files
3
+ id: adrlane-m1-issue-002
4
+ labels:
5
+ - m1
6
+ - docs
7
+ milestone: 'M1: CLI and Documentation Bootstrap'
8
+ state: open
9
+ number: 13
10
+ state_reason: null
11
+ ---
12
+
13
+ ## Goal
14
+
15
+ Generate the documentation skeleton and canonical agent instructions on `init`.
16
+
17
+ ## Tasks
18
+
19
+ - Create `docs/` folders (adr, specs, runbooks, changelog, llm).
20
+ - Ship `docs/llm/AGENT_PROTOCOL.md`, `DECISION_RULES.md`, `TEMPLATES.md`, `DOC_GUIDELINES.md`.
21
+ - Add starter templates for ADR, spec, runbook, and changelog entries.
@@ -0,0 +1,27 @@
1
+ ---
2
+ title: Set up pytest test suite and first CLI tests
3
+ id: adrlane-m1-issue-003
4
+ labels:
5
+ - m1
6
+ - testing
7
+ - pytest
8
+ milestone: 'M1: CLI and Documentation Bootstrap'
9
+ state: open
10
+ number: 11
11
+ state_reason: null
12
+ ---
13
+
14
+ ## Goal
15
+
16
+ Establish pytest as the test framework and cover initial CLI and init behavior.
17
+
18
+ ## Tasks
19
+
20
+ - Add pytest and test dependencies via uv dev group (`[dependency-groups].dev`).
21
+ - Create `tests/` layout and fixtures for invoking the CLI in isolated temp directories.
22
+ - Write first tests for `adrlane init` (success path, `--dry-run`, idempotent re-run).
23
+ - Wire `pytest` into local dev workflow and document how to run tests.
24
+
25
+ ## Depends On
26
+
27
+ - issue-001 (CLI init scaffold)
@@ -0,0 +1,28 @@
1
+ ---
2
+ title: Configure Python packaging and versioning strategy
3
+ id: adrlane-m1-issue-004
4
+ labels:
5
+ - m1
6
+ - packaging
7
+ - versioning
8
+ milestone: 'M1: CLI and Documentation Bootstrap'
9
+ state: open
10
+ number: 9
11
+ state_reason: null
12
+ ---
13
+
14
+ ## Goal
15
+
16
+ Make `adrlane` installable as a proper Python package with a clear versioning scheme.
17
+
18
+ ## Tasks
19
+
20
+ - Add `pyproject.toml` with PEP 621 metadata and console entry point (`adrlane`).
21
+ - Define versioning approach (e.g. semver, single source of truth for `__version__`).
22
+ - Configure build backend (hatchling) and verify local `uv sync` + `uv run adrlane` works.
23
+ - Commit and maintain `uv.lock`.
24
+ - Document global install path (`uv tool install adrlane`).
25
+
26
+ ## Depends On
27
+
28
+ - issue-001 (CLI init scaffold)
@@ -0,0 +1,28 @@
1
+ ---
2
+ title: Add CI pipeline for lint and pytest
3
+ id: adrlane-m1-issue-005
4
+ labels:
5
+ - m1
6
+ - ci
7
+ - github-actions
8
+ milestone: 'M1: CLI and Documentation Bootstrap'
9
+ state: open
10
+ number: 12
11
+ state_reason: null
12
+ ---
13
+
14
+ ## Goal
15
+
16
+ Run automated checks on every push and pull request.
17
+
18
+ ## Tasks
19
+
20
+ - Add GitHub Actions workflow for CI.
21
+ - Run pytest on supported Python versions.
22
+ - Add lint/format checks (ruff or equivalent) if adopted by the project.
23
+ - Fail CI on test or lint errors.
24
+
25
+ ## Depends On
26
+
27
+ - issue-003 (pytest test foundation)
28
+ - issue-004 (packaging and versioning)
@@ -0,0 +1,28 @@
1
+ ---
2
+ title: Set up PyPI release workflow
3
+ id: adrlane-m1-issue-006
4
+ labels:
5
+ - m1
6
+ - pypi
7
+ - release
8
+ milestone: 'M1: CLI and Documentation Bootstrap'
9
+ state: open
10
+ number: 14
11
+ state_reason: null
12
+ ---
13
+
14
+ ## Goal
15
+
16
+ Publish `adrlane` to PyPI with a repeatable, versioned release process.
17
+
18
+ ## Tasks
19
+
20
+ - Configure build and publish steps (GitHub Actions release workflow or documented manual flow).
21
+ - Use PyPI trusted publishing or secure token-based auth.
22
+ - Tag releases aligned with the versioning strategy from issue-004.
23
+ - Verify `pipx install adrlane` works from PyPI after first release.
24
+
25
+ ## Depends On
26
+
27
+ - issue-004 (packaging and versioning)
28
+ - issue-005 (CI pipeline)
@@ -0,0 +1,34 @@
1
+ ---
2
+ title: 'M1: CLI and Documentation Bootstrap'
3
+ id: adrlane-m1-cli-docs-bootstrap
4
+ description: Deliver CLI, docs bootstrap, pytest suite, packaging, CI, versioning,
5
+ and PyPI release workflow.
6
+ state: open
7
+ number: 5
8
+ ---
9
+
10
+ ## Scope
11
+
12
+ - Build `adrlane` CLI with `init` as the primary command.
13
+ - Scaffold `docs/` folder structure and entry templates.
14
+ - Ship canonical `docs/llm/*` contract files for agent-agnostic documentation rules.
15
+ - Establish pytest-based test suite for CLI and bootstrap behavior.
16
+ - Set up Python packaging (PEP 621), versioning, CI, and PyPI publishing workflow.
17
+
18
+ ## Acceptance Criteria
19
+
20
+ - `adrlane init` creates the full documentation tree and contract files in an empty repo.
21
+ - Re-running `init` is idempotent and does not destroy existing documentation content.
22
+ - Package installs globally and exposes the `adrlane` console entry point.
23
+ - Pytest suite covers core CLI and init behavior.
24
+ - CI runs tests on every push/PR.
25
+ - Versioning and PyPI release process are documented and repeatable.
26
+
27
+ ## Issue Order
28
+
29
+ 1. CLI init scaffold
30
+ 2. Docs structure and `docs/llm` contract
31
+ 3. Pytest test foundation
32
+ 4. Packaging and versioning
33
+ 5. CI pipeline
34
+ 6. PyPI release workflow
@@ -0,0 +1,22 @@
1
+ ---
2
+ title: Implement Cursor skill adapter for documentation contract
3
+ id: adrlane-m2-issue-001
4
+ labels:
5
+ - m2
6
+ - cursor
7
+ - skills
8
+ milestone: 'M2: Agent Skills and Adapters'
9
+ state: open
10
+ number: 15
11
+ state_reason: null
12
+ ---
13
+
14
+ ## Goal
15
+
16
+ Give Cursor a project-local skill that points agents at the documentation system.
17
+
18
+ ## Tasks
19
+
20
+ - Define Cursor skill format and install path.
21
+ - Reference `docs/llm/*` as canonical rules.
22
+ - Cover where to read context and where to write ADRs, specs, runbooks, and changelog entries.
@@ -0,0 +1,22 @@
1
+ ---
2
+ title: Implement Claude Code adapter and init --agent selection
3
+ id: adrlane-m2-issue-002
4
+ labels:
5
+ - m2
6
+ - claude-code
7
+ - cli
8
+ milestone: 'M2: Agent Skills and Adapters'
9
+ state: open
10
+ number: 16
11
+ state_reason: null
12
+ ---
13
+
14
+ ## Goal
15
+
16
+ Support Claude Code and let users choose which agent adapters `init` installs.
17
+
18
+ ## Tasks
19
+
20
+ - Implement Claude Code adapter using that tool's required file layout.
21
+ - Add repeatable `init --agent <name>` flag.
22
+ - Ensure idempotent adapter install when `init` is re-run.
@@ -0,0 +1,19 @@
1
+ ---
2
+ title: 'M2: Agent Skills and Adapters'
3
+ id: adrlane-m2-agent-skills-adapters
4
+ description: Install agent-specific skills that teach agents how to use the docs contract.
5
+ state: open
6
+ number: 6
7
+ ---
8
+
9
+ ## Scope
10
+
11
+ - Ship Cursor and Claude Code adapters as part of `init`.
12
+ - Keep `docs/llm/*` as canonical source; skills are concise entry points.
13
+ - Support `init --agent` to select which adapters to install.
14
+
15
+ ## Acceptance Criteria
16
+
17
+ - At least one supported agent adapter is installed and references `docs/llm/*`.
18
+ - Agents can locate, read, and update documentation using the scaffolded structure.
19
+ - Adapter install is idempotent and does not overwrite user customizations blindly.
@@ -0,0 +1,22 @@
1
+ ---
2
+ title: Add informational doctor command
3
+ id: adrlane-m3-issue-001
4
+ labels:
5
+ - m3
6
+ - cli
7
+ - doctor
8
+ milestone: 'M3: Polish and Maintenance'
9
+ state: open
10
+ number: 17
11
+ state_reason: null
12
+ ---
13
+
14
+ ## Goal
15
+
16
+ Provide a non-blocking health check for documentation structure and agent adapters.
17
+
18
+ ## Tasks
19
+
20
+ - Implement `adrlane doctor` as informational only.
21
+ - Verify expected `docs/` layout and `docs/llm/*` files exist.
22
+ - Report missing or outdated agent adapters.
@@ -0,0 +1,22 @@
1
+ ---
2
+ title: Define upgrade refresh strategy and onboarding documentation
3
+ id: adrlane-m3-issue-002
4
+ labels:
5
+ - m3
6
+ - docs
7
+ - maintenance
8
+ milestone: 'M3: Polish and Maintenance'
9
+ state: open
10
+ number: 18
11
+ state_reason: null
12
+ ---
13
+
14
+ ## Goal
15
+
16
+ Make package upgrades and first-time onboarding clear for users and agents.
17
+
18
+ ## Tasks
19
+
20
+ - Define how `init` handles new templates/skills from upgraded `adrlane` versions.
21
+ - Document global install (`pipx`) and per-repo `init` workflow in README.
22
+ - Document agent workflow: agent decides when to update docs using installed skills.
@@ -0,0 +1,19 @@
1
+ ---
2
+ title: 'M3: Polish and Maintenance'
3
+ id: adrlane-m3-polish-maintenance
4
+ description: Add informational doctor checks, upgrade path, and onboarding documentation.
5
+ state: open
6
+ number: 7
7
+ ---
8
+
9
+ ## Scope
10
+
11
+ - Informational `doctor` command for structure and adapter presence.
12
+ - Strategy for refreshing templates/skills on package upgrades.
13
+ - User-facing README and onboarding docs.
14
+
15
+ ## Acceptance Criteria
16
+
17
+ - `doctor` reports missing structure or adapters without blocking workflows.
18
+ - Upgrade/refresh behavior is documented and predictable.
19
+ - README explains install, init, and agent workflow end to end.
@@ -0,0 +1,24 @@
1
+ repos:
2
+ # General file checks
3
+ - repo: https://github.com/pre-commit/pre-commit-hooks
4
+ rev: v4.6.0
5
+ hooks:
6
+ - id: trailing-whitespace
7
+ - id: end-of-file-fixer
8
+ - id: check-yaml
9
+ - id: check-added-large-files
10
+ args: ['--maxkb=500']
11
+ - id: check-merge-conflict
12
+ - id: check-case-conflict
13
+ - id: check-json
14
+ - id: check-toml
15
+ - id: check-docstring-first
16
+ - id: debug-statements
17
+
18
+ # Python linting and formatting with ruff
19
+ - repo: https://github.com/astral-sh/ruff-pre-commit
20
+ rev: v0.8.4
21
+ hooks:
22
+ - id: ruff
23
+ args: [--fix, --exit-non-zero-on-fix]
24
+ - id: ruff-format
@@ -0,0 +1 @@
1
+ 3.12