Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ dist/
.ruff_cache/
.code-mower/
.code-mower.generated/
.code-mower.generated.*/
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Use Python 3.12 or newer. CI exercises Python 3.12, 3.13, and 3.14.
```bash
python3.12 -m venv .venv
.venv/bin/python -m pip install --upgrade pip
.venv/bin/python -m pip install -e . ruff
.venv/bin/python -m pip install -e ".[test]"
```

## Local Checks
Expand Down
15 changes: 8 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,10 +135,10 @@ for Code Mower contributors. All paths require Python 3.12 or newer.
| C. Builder experiment | You want to compare authoring loops before trusting them broadly. | Use a work order or experiment spec, run `code-mower builder-experiment run` around an explicit command, then review the source-free `authoringRun` artifact and normal audit evidence. | [Builder Experiments](docs/builder-experiments.md) |

The current package-index announcement entry point is the tagged
[Try Code Mower In 10 Minutes](https://github.com/codemower-ai/code-mower/blob/v0.6.0-beta.3/docs/try-in-10-minutes.md)
guide. The completed v0.7/v0.8 Board and adoption-polish source line is on
`main`; publish a new beta before directing package-only users to those
commands.
[Try Code Mower In 10 Minutes](https://github.com/codemower-ai/code-mower/blob/v0.8.0-beta.1/docs/try-in-10-minutes.md)
guide. The v0.8 beta includes the completed adoption-polish and native Board
work, so package-only users can start from the public package rather than a
source checkout.

## What Calibration Does And Does Not Prove

Expand Down Expand Up @@ -167,7 +167,7 @@ Provider-contract baseline for the next release train:

For release verification,
[First-User Install Rehearsal](docs/first-user-install-rehearsal.md) records
the package-index procedure for `v0.6.0-beta.3` / `code-mower==0.6.0b3`. The
the package-index procedure for `v0.8.0-beta.1` / `code-mower==0.8.0b1`. The
GitHub release records the workflow and rehearsal evidence for the exact tag.

## Optional: Plan Before Coding
Expand Down Expand Up @@ -353,8 +353,8 @@ measurement work.

## Installation Status

The current package-index beta baseline is `v0.6.0-beta.3`, with pinned package
install spec `code-mower==0.6.0b3`. Release evidence is recorded on the GitHub
The current package-index beta baseline is `v0.8.0-beta.1`, with pinned package
install spec `code-mower==0.8.0b1`. Release evidence is recorded on the GitHub
release and in the first-user install rehearsal. The public repository is
[codemower-ai/code-mower](https://github.com/codemower-ai/code-mower), and
GitHub releases remain the auditable source for tags, build artifacts, and
Expand Down Expand Up @@ -416,6 +416,7 @@ first so local work exercises the same package entrypoint users install.
- [Launch Command Surface](docs/launch-command-surface.md)
- [v0.6 Truth Baseline](docs/v06-truth-baseline.md)
- [v0.6 Release Notes](docs/v06-release-notes.md)
- [v0.8 Release Notes](docs/v08-release-notes.md)
- [Post-v0.8 Effectiveness Assessment](docs/post-v08-effectiveness-assessment.md)
- [Demo Calibration Example](examples/demo-calibration/README.md)
- [Board Demo Rehearsal](examples/board-demo/README.md)
Expand Down
2 changes: 1 addition & 1 deletion docs/build-loop-in-30-minutes.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ audit evidence, skip to section 2.
```bash
python3.12 --version
export CODE_MOWER_PYTHON="$(command -v python3.12)"
pipx install --python "$CODE_MOWER_PYTHON" code-mower==0.6.0b3
pipx install --python "$CODE_MOWER_PYTHON" code-mower==0.8.0b1
gh auth status
code-mower init --easy
code-mower init --easy --apply --output-dir .code-mower.generated
Expand Down
22 changes: 10 additions & 12 deletions docs/current-state-and-roadmap.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,20 +26,18 @@ The public OSS repository is:
https://github.com/codemower-ai/code-mower
```

The current package-index beta baseline is `v0.6.0-beta.3`, with pinned package
install spec `code-mower==0.6.0b3`. Release evidence is recorded on the GitHub
The current package-index beta baseline is `v0.8.0-beta.1`, with pinned package
install spec `code-mower==0.8.0b1`. Release evidence is recorded on the GitHub
release and in the first-user install rehearsal. It is intended to be installed
from the package index for friendly-user pilots, with GitHub tag/source installs
kept as a fallback and development path.

The v0.7/v0.8 source line has landed on `main` and is awaiting the next package
beta before package-only adopters should rely on it. That source line adds the
Python 3.12+ runtime contract, pipx/uv install matrix, hosted-builder and
orchestrator-only doctor postures, non-expiring dispatch-token diagnostics,
native redacted lane status, the local Board, Board history and admin commands,
spend/verdict timelines, owner queue, optional metadata-only agent cards,
explicit cloud Board snapshots, the CodeMower.com Board mirror, and a public
Board demo rehearsal. See
The v0.8 package beta adds the Python 3.12+ runtime contract, pipx/uv install
matrix, hosted-builder and orchestrator-only doctor postures, non-expiring
dispatch-token diagnostics, native redacted lane status, the local Board, Board
history and admin commands, spend/verdict timelines, owner queue, optional
metadata-only agent cards, explicit cloud Board snapshots, the CodeMower.com
Board mirror, and a public Board demo rehearsal. See
[Post-v0.8 Effectiveness Assessment](post-v08-effectiveness-assessment.md) for
the dogfood assessment and lane-readiness interpretation.

Expand Down Expand Up @@ -413,8 +411,8 @@ leaving room for future orchestrator adapters.

## Near-Term Roadmap

1. Package the completed v0.7/v0.8 source line as the next beta, then verify the
exact package install from a clean environment before announcement.
1. Keep the v0.8 package beta install path verified from PyPI, and mark the
newest beta GitHub release as Latest until a stable 1.0 line exists.
2. Run one cold-repo adoption rehearsal from the published package: install,
`init --easy`, `doctor --adoption`, `lanes status`, `board serve`, one tiny
audited PR, and optional metadata-only cloud upload.
Expand Down
4 changes: 2 additions & 2 deletions docs/early-adopter-invite-runbook.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ It is an OSS local-first tool for setting up AI peer-programmer/reviewer lanes
on your real codebase, with optional privacy-first cloud reporting.

Start here:
https://github.com/codemower-ai/code-mower/blob/v0.6.0-beta.3/docs/try-in-10-minutes.md
https://github.com/codemower-ai/code-mower/blob/v0.8.0-beta.1/docs/try-in-10-minutes.md

Cloud sharing is optional. The default bundle excludes source code, raw diffs,
model transcripts, raw stdout/stderr, auth output, and secrets.
Expand All @@ -51,7 +51,7 @@ Before inviting a user:
1. Verify the tagged install command in a fresh repo:

```bash
pipx install --python python3.12 code-mower==0.6.0b3
pipx install --python python3.12 code-mower==0.8.0b1
code-mower --version
```

Expand Down
7 changes: 4 additions & 3 deletions docs/early-adopter-v05.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,8 @@ Cut a v0.5 alpha or beta only after:
- release workflow builds source/wheel distributions, and PyPI publishing is
either configured or explicitly called out as the next friction-reduction
milestone;
- alpha/beta GitHub releases are marked as prereleases;
- newest beta GitHub releases are marked as regular releases with beta wording,
so GitHub's `/releases/latest` endpoint resolves for early adopters;
- docs are sufficient for a new user;
- cloud export and dry-run upload are tested;
- codemower.com can receive an ingest payload;
Expand All @@ -137,7 +138,7 @@ Cut a v0.5 alpha or beta only after:

## Current Beta

`v0.6.0-beta.3` is the current friendly-user beta. It keeps the
`v0.8.0-beta.1` is the current friendly-user beta. It keeps the
local-first package path from alpha.1, the cloud doctor service-readiness check
from alpha.5, the hardened provider-auth doctor diagnostics needed for
early-adopter troubleshooting, the dogfood dry-run path that feeds the
Expand All @@ -147,7 +148,7 @@ It also adds a first-user readiness scorecard to the package-install rehearsal
so install, doctor, report, and cloud dry-run privacy gates can be checked at a
glance, and it carries provider/model/version provenance through cloud bundles
so CodeMower.com can separate benchmark-grade evidence from operational
dogfood. The current beta also adds the v0.6 provider-contract hardening queue,
dogfood. The current beta also carries the provider-contract hardening queue,
the `code-mower lanes status` operator snapshot, Antigravity/Gemini lane
separation, builder-experiment metadata capture, and the hosted Cursor lane id
as `cursor` while accepting legacy `grok-bot` inputs during the migration
Expand Down
4 changes: 2 additions & 2 deletions docs/first-run-transcript.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ same provider warnings.
```bash
python3.12 --version
export CODE_MOWER_PYTHON="$(command -v python3.12)"
pipx install --python "$CODE_MOWER_PYTHON" code-mower==0.6.0b3
pipx install --python "$CODE_MOWER_PYTHON" code-mower==0.8.0b1
code-mower --version
```

Expected shape:

```text
Python 3.12.x
code-mower 0.6.0b3
code-mower 0.8.0b1
```

## Generate Local Setup
Expand Down
6 changes: 3 additions & 3 deletions docs/first-user-demo-transcript.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ release.
```bash
python3.12 -m venv "$WORK_DIR/venv"
"$WORK_DIR/venv/bin/python" -m pip install --upgrade pip
"$WORK_DIR/venv/bin/python" -m pip install code-mower==0.6.0b3
"$WORK_DIR/venv/bin/python" -m pip install code-mower==0.8.0b1
"$WORK_DIR/venv/bin/code-mower" migration package-install-rehearsal \
--package-spec code-mower==0.6.0b3 \
--package-spec code-mower==0.8.0b1 \
--python "$(command -v python3.12)" \
--json
```
Expand All @@ -28,7 +28,7 @@ python3.12 -m venv "$WORK_DIR/venv"
"mode": "package-install-rehearsal",
"status": "pass",
"steps": 27,
"package_spec": "code-mower==0.6.0b3",
"package_spec": "code-mower==0.8.0b1",
"toy_repo": "$WORK_DIR/toy-repo",
"doctor_status": "warn",
"generated_artifacts": {
Expand Down
32 changes: 16 additions & 16 deletions docs/first-user-install-rehearsal.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ Use the current public tag or release candidate:

```bash
code-mower migration package-install-rehearsal \
--package-spec code-mower==0.6.0b3 \
--package-spec code-mower==0.8.0b1 \
--python "$(command -v python3.12)" \
--json
```
Expand All @@ -66,7 +66,7 @@ For a fixed output directory:

```bash
code-mower migration package-install-rehearsal \
--package-spec code-mower==0.6.0b3 \
--package-spec code-mower==0.8.0b1 \
--python "$(command -v python3.12)" \
--work-dir /tmp/code-mower-first-user-rehearsal \
--json
Expand All @@ -87,7 +87,7 @@ For a GitHub tag fallback, pass the tag URL explicitly:

```bash
code-mower migration package-install-rehearsal \
--package-spec "git+https://github.com/codemower-ai/code-mower.git@v0.6.0-beta.3" \
--package-spec "git+https://github.com/codemower-ai/code-mower.git@v0.8.0-beta.1" \
--python "$(command -v python3.12)" \
--json
```
Expand All @@ -99,14 +99,14 @@ deciding the package index or the release is broken. For pipx:

```bash
export CODE_MOWER_PYTHON="$(command -v python3.12)"
PIP_NO_CACHE_DIR=1 pipx install --force --python "$CODE_MOWER_PYTHON" code-mower==0.6.0b3
PIP_NO_CACHE_DIR=1 pipx install --force --python "$CODE_MOWER_PYTHON" code-mower==0.8.0b1
code-mower --version
```

For uv:

```bash
uv tool install --python 3.12 --reinstall --refresh-package code-mower code-mower==0.6.0b3
uv tool install --python 3.12 --reinstall --refresh-package code-mower code-mower==0.8.0b1
code-mower --version
```

Expand All @@ -133,7 +133,7 @@ repository after the package install succeeds:

```bash
code-mower migration package-install-rehearsal \
--package-spec code-mower==0.6.0b3 \
--package-spec code-mower==0.8.0b1 \
--repo-path /path/to/external-repo \
--python "$(command -v python3.12)" \
--json
Expand Down Expand Up @@ -214,7 +214,7 @@ When a product repository already has Code Mower wrapper files, the same

```bash
code-mower migration package-install-rehearsal \
--package-spec code-mower==0.6.0b3 \
--package-spec code-mower==0.8.0b1 \
--repo-path /path/to/product-repo \
--python "$(command -v python3.12)" \
--json
Expand Down Expand Up @@ -271,20 +271,20 @@ Treat the rehearsal as passing only when:

If this fails, fix the first-user path before cutting or promoting a release.

## v0.6 Beta Package-Index Release Procedure
## v0.8 Beta Package-Index Release Procedure

Publish and rehearse the package-index artifacts in this order. After the
release tag exists at the release commit, dispatch both package-index
publication runs with
`--ref v0.6.0-beta.3`; never substitute mutable `main`, because the TestPyPI
`--ref v0.8.0-beta.1`; never substitute mutable `main`, because the TestPyPI
and production PyPI builds must check out identical source.

First, run `release.yml` for TestPyPI only:

```bash
gh workflow run release.yml \
--repo codemower-ai/code-mower \
--ref v0.6.0-beta.3 \
--ref v0.8.0-beta.1 \
-f publish_testpypi=true \
-f publish_pypi=false
```
Expand All @@ -294,11 +294,11 @@ candidate from TestPyPI:

```bash
code-mower migration package-install-rehearsal \
--package-spec code-mower==0.6.0b3 \
--package-spec code-mower==0.8.0b1 \
--pip-index-url https://test.pypi.org/simple/ \
--pip-extra-index-url https://pypi.org/simple/ \
--python "$(command -v python3.12)" \
--work-dir /tmp/code-mower-v06-beta1-testpypi-rehearsal \
--work-dir /tmp/code-mower-v08-beta1-testpypi-rehearsal \
--json
```

Expand All @@ -307,7 +307,7 @@ Then run `release.yml` for production PyPI only:
```bash
gh workflow run release.yml \
--repo codemower-ai/code-mower \
--ref v0.6.0-beta.3 \
--ref v0.8.0-beta.1 \
-f publish_testpypi=false \
-f publish_pypi=true
```
Expand All @@ -317,9 +317,9 @@ production package from PyPI:

```bash
code-mower migration package-install-rehearsal \
--package-spec code-mower==0.6.0b3 \
--package-spec code-mower==0.8.0b1 \
--python "$(command -v python3.12)" \
--work-dir /tmp/code-mower-v06-beta1-pypi-rehearsal \
--work-dir /tmp/code-mower-v08-beta1-pypi-rehearsal \
--json
```

Expand All @@ -335,7 +335,7 @@ repository:

```bash
code-mower migration package-install-rehearsal \
--package-spec code-mower==0.6.0b3 \
--package-spec code-mower==0.8.0b1 \
--repo-path "$REPO_PATH" \
--work-dir "$WORK_DIR" \
--json
Expand Down
4 changes: 2 additions & 2 deletions docs/friendly-user-rollout-v05.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ Use the current beta install pin unless a newer release is explicitly called out
in the invite:

```bash
pipx install --python python3.12 code-mower==0.6.0b3
pipx install --python python3.12 code-mower==0.8.0b1
```

The current package-index beta baseline is `v0.6.0-beta.3`, with pinned package install spec `code-mower==0.6.0b3`. Release evidence is recorded on the GitHub release and in the first-user install rehearsal.
The current package-index beta baseline is `v0.8.0-beta.1`, with pinned package install spec `code-mower==0.8.0b1`. Release evidence is recorded on the GitHub release and in the first-user install rehearsal.

## Invite Criteria

Expand Down
10 changes: 5 additions & 5 deletions docs/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Install with pipx and an explicit Python 3.12+ interpreter:
```bash
python3.12 --version
export CODE_MOWER_PYTHON="$(command -v python3.12)"
pipx install --python "$CODE_MOWER_PYTHON" code-mower==0.6.0b3
pipx install --python "$CODE_MOWER_PYTHON" code-mower==0.8.0b1
code-mower --version
```

Expand All @@ -42,7 +42,7 @@ interactive shell profile:

```bash
uv python install 3.12
uv tool install --python 3.12 code-mower==0.6.0b3
uv tool install --python 3.12 code-mower==0.8.0b1
code-mower --version
```

Expand All @@ -59,15 +59,15 @@ For pipx:
```bash
python3.12 --version
export CODE_MOWER_PYTHON="$(command -v python3.12)"
PIP_NO_CACHE_DIR=1 pipx install --force --python "$CODE_MOWER_PYTHON" code-mower==0.6.0b3
PIP_NO_CACHE_DIR=1 pipx install --force --python "$CODE_MOWER_PYTHON" code-mower==0.8.0b1
code-mower --version
```

For uv:

```bash
uv python install 3.12
uv tool install --python 3.12 --reinstall --refresh-package code-mower code-mower==0.6.0b3
uv tool install --python 3.12 --reinstall --refresh-package code-mower code-mower==0.8.0b1
code-mower --version
```

Expand Down Expand Up @@ -95,7 +95,7 @@ old system Python shims cannot enter the release path:
```bash
scripts/dev-python --version
scripts/dev-python -m venv .venv
.venv/bin/python -m pip install -e .
.venv/bin/python -m pip install -e ".[test]"
.venv/bin/code-mower --version
```

Expand Down
2 changes: 1 addition & 1 deletion docs/mirror-removal-runbook.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Run:

```bash
code-mower migration package-install-rehearsal \
--package-spec code-mower==0.6.0b3 \
--package-spec code-mower==0.8.0b1 \
--repo-path /path/to/product-repo \
--json
```
Expand Down
Loading
Loading