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
35 changes: 34 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,35 @@
## v0.34.0 - AutoFlow2 Sidecar Kernel (2026-06-06)

### AutoFlow2 Sidecar

- Added `tools/autoflow/` — an internal read-only workflow kernel.
- State machine with 5 workflow states: `planned`, `next`, `active`,
`implemented`, `released`, plus `drifted` and `invalid`.
- 6 readers parse `STATUS.md`, SOP, NextVersion, ROADMAP, package graph, and ADRs
into structured evidence.
- Reporter outputs JSON (`--json`) or Markdown summary for PR evidence.
- 9 evidence cells report on ADR, SOP, NextVersion, package graph, status,
roadmap, workflow, docs, and release status.

### CLI

- `deno task autoflow:report` — runs the sidecar against the current repository.
- Advisory only: does not block CI, does not edit code, does not access network.
- Zero dependency on `packages/` — pure Deno stdlib with `--allow-read` only.

### Testing

- 35 unit + integration tests covering state machine, all 5 readers, reporter,
and 5 fixture repositories (released, active, planned, drifted, invalid).

### Workflow and Docs

- Added `docs/next/v0.34.0/` execution package.
- Updated STATUS, SOP, Roadmap for v0.34.0.
- Bumped all 19 packages and internal JSR ranges to `0.34.0`.
- Updated `workflow:check` active version to v0.34.0.

---
## v0.33.0 - AI-Readable API Foundation (2026-06-06)

### Page API: Strict Canonical Descriptor
Expand Down Expand Up @@ -54,8 +86,8 @@
- Updated STATUS, Roadmap, Architecture, SOPs, www homepage, and Getting Started
for v0.33.0.
- Bumped all 19 packages and internal JSR ranges to `0.33.0`.

---

## v0.32.0 - App Lifecycle Contract (2026-06-05)

### Application Lifecycle
Expand All @@ -79,6 +111,7 @@
- Updated Status, Roadmap, Architecture, SOP, www homepage, API reference, and
Getting Started docs for v0.32.0.
- Bumped all 19 packages and internal JSR ranges to `0.32.0`.

---

## v0.31.0 - JSX-first Application API (2026-06-05)
Expand Down
3 changes: 2 additions & 1 deletion deno.json
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,8 @@
"fmt:check": "deno fmt --check --ignore=deliverables/,www/content/blog/,www/app/routes/,www/app/data/,docs/mockups/,docs/conversation/,custom-dist/,dist-test-ssg-render/,.deno_cache/",
"clean": "rm -rf packages/*/dist www/dist",
"hooks:install": "git config core.hooksPath .githooks",
"hooks:uninstall": "git config core.hooksPath"
"hooks:uninstall": "git config core.hooksPath",
"autoflow:report": "deno run --allow-read tools/autoflow/mod.ts"
},
"fmt": {
"useTabs": false,
Expand Down
12 changes: 6 additions & 6 deletions docs/next/v0.33.0/RELEASE_CHECKLIST.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@

## Remote Closure

- [ ] Push `dev`.
- [ ] Wait for all `dev` CI jobs.
- [ ] Merge `dev` into `main`.
- [ ] Wait for all `main` CI jobs.
- [ ] Create and push `v0.33.0` tag.
- [ ] Publish GitHub release note.
- [x] Push `dev`.
- [x] Wait for all `dev` CI jobs.
- [x] Merge `dev` into `main`.
- [x] Wait for all `main` CI jobs.
- [x] Create and push `v0.33.0` tag.
- [x] Publish GitHub release note.
39 changes: 39 additions & 0 deletions docs/next/v0.34.0/ACCEPTANCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# v0.34.0 Acceptance Criteria

v0.34.0 is accepted only if all criteria below are satisfied.

## Product Criteria

- `deno task autoflow:report` runs against the real repository and emits valid
JSON and Markdown summary.
- The report identifies the current workflow state, all 9 cells, blockers,
and allowed actions.
- Each cell has a status (`ok`, `warning`, `missing`, `drifted`) and a human-
readable detail string.
- The report does not access network, call git, or modify any files.
- The report works with `--json` and `--summary` output modes.

## Architecture Criteria

- All readers are pure functions: `(rootDir: string) => StructuredData`.
- State machine has exactly 6 states and only legal transitions are permitted.
- No code in `tools/autoflow/` imports from `packages/`.
- No `deno task autoflow:check` exists or is registered as a gate.
- Existing gates (`workflow:check`, `fmt`, `lint`, `typecheck`, `test`,
`graph:check`, `arch:check`) all still pass.

## Evidence Criteria

- State machine unit tests cover all legal and illegal transitions.
- Each reader has unit tests against snapshot data.
- 5 fixture directories produce correct workflow states.
- Integration test processes each fixture end-to-end and matches snapshots.
- Snapshot tests pass after `deno test --update`.
- AutoFlow tests are discoverable via `deno test` in `tools/autoflow/`.

## Non-Goals Verified

- [ ] No `autoflow:check` gate in CI config.
- [ ] No code that calls `git`, `gh`, or any external process.
- [ ] No file writes beyond test snapshots.
- [ ] No network access (`--allow-read` only).
193 changes: 193 additions & 0 deletions docs/next/v0.34.0/DESIGN.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
# v0.34.0 Design: AutoFlow2 Sidecar Kernel

## Directory Layout

```
tools/autoflow/
├── mod.ts # CLI entry: deno run --allow-read tools/autoflow/mod.ts
├── state-machine.ts # Workflow states and legal transitions
├── cells.ts # 9 evidence cells with status enum
├── readers/
│ ├── status.ts # Parse docs/status/STATUS.md
│ ├── roadmap.ts # Parse docs/roadmap/ROADMAP.md
│ ├── sop.ts # Parse docs/sop/<version>/README.md
│ ├── nextversion.ts # Check docs/next/<version>/ completeness
│ ├── adr.ts # Index docs/adr/
│ └── package-graph.ts # Read deno.json workspace + package versions
├── reporter.ts # JSON + Markdown summary output
├── fixtures/
│ ├── released/ # Simulated released-version repo
│ ├── active/ # Simulated in-progress repo
│ ├── planned/ # Simulated planned-only repo
│ ├── drifted/ # Version-mismatch repo
│ └── invalid/ # Missing-critical-files repo
└── __tests__/
├── state-machine.test.ts
├── cells.test.ts
├── readers/
│ ├── status.test.ts
│ ├── roadmap.test.ts
│ ├── sop.test.ts
│ ├── nextversion.test.ts
│ ├── adr.test.ts
│ └── package-graph.test.ts
├── reporter.test.ts
├── integration.test.ts # Full pipeline on each fixture
└── snapshots/ # Generated by deno test --update
```

## State Machine

```
planned ──→ next ──→ active ──→ implemented ──→ released
drifted
```

| State | Condition |
| ------------- | -------------------------------------------------- |
| `planned` | SOP exists, status: Planned, no NextVersion yet |
| `next` | NextVersion package exists, status: Next |
| `active` | NextVersion is current, tasks in progress |
| `implemented` | SOP tasks complete, gates passing, not yet tagged |
| `released` | Git tag exists, release note published |
| `drifted` | Version/packages/docs inconsistent with active SOP |

State is determined by reading `docs/status/STATUS.md` and cross-referencing
with `docs/next/`, `docs/sop/`, git tags, and package graph.

## Evidence Cells

9 cells, each with status `ok | warning | missing | drifted`:

| Cell | Reads | Evidence |
| --------------- | ------------------------------ | ------------------------------------------- |
| `adr` | `docs/adr/` | Count, status, linked SOPs |
| `sop` | `docs/sop/<version>/README.md` | Task checklist percentage |
| `next-version` | `docs/next/<version>/` | 8 required files present |
| `package-graph` | `deno.json` + packages | Version alignment, cycle count |
| `status` | `docs/status/STATUS.md` | Version line matches packages, gates listed |
| `roadmap` | `docs/roadmap/ROADMAP.md` | Version sequence consistent with status |
| `workflow` | `docs/governance/` | Required docs present, anchors valid |
| `docs` | `docs/` cross-check | Strategy docs, current docs, no legacy refs |
| `release` | git tags + `docs/release/` | Tag exists, release note exists |

Cells 5-8 (`tests`, `build`, `ci`) are placeholders; filled in v0.35.

## Reader Design

Each reader is a pure function: `(rootDir: string) => StructuredData`.

Readers do NOT access network, git, or CI. They read local files only.

### status reader

Parses `STATUS.md` to extract:

- Current version line (`v0.34.0`)
- Active NextVersion path (`docs/next/v0.34.0/`)
- Rendering mode table rows
- Package version state
- Gate order list

Strategy: regex extraction + section heading parsing. Not a full Markdown parser;
target known structure from `PROJECT_WORKFLOW.md`.

### sop reader

Parses `docs/sop/<version>/README.md`:

- SOP status header (`> Status: Next`)
- Task checkboxes `- [x] / - [ ]`
- Entry/exit criteria presence

### nextversion reader

Checks `docs/next/<version>/` for 8 required files and their non-emptiness.

### package-graph reader

Reads `deno.json` workspace config:

```json
{ "workspace": ["./packages/*"] }
```

For each package, reads its `deno.json` for `version`. Reports:

- All versions match active version
- Any missing packages
- Basic import map consistency

### adr reader

Scans `docs/adr/` for `ADR-*.md` files, extracts status and linked SOP.

## Output Format

### JSON (`--json`)

```json
{
"version": "v0.34.0",
"workflowState": "active",
"cells": [
{
"name": "sop",
"status": "ok",
"detail": "12/12 tasks completed",
"source": "docs/sop/v0.34.0/README.md"
}
],
"blockers": [],
"allowedActions": ["edit-packages", "run-test", "update-docs", "bump-version"]
}
```

### Human Summary (`--summary`, default)

A Markdown block suitable for pasting into PR descriptions:

```markdown
## AutoFlow Report — v0.34.0

**State**: active

### Cells

| Cell | Status | Detail |
| ---- | ------ | ------ |
| sop | ok | 12/12 |
| ... | | |

### Blockers

None.

### Allowed Actions

- edit-packages
- run-test
- update-docs
```

## Deno Task

```json
// deno.json
{
"tasks": {
"autoflow:report": "deno run --allow-read tools/autoflow/mod.ts"
}
}
```

## Non-Goals

- No `deno task autoflow:check` (v0.35)
- No CI integration
- No git operations
- No network access
- No code editing
- No subjective scoring
- No external API calls
32 changes: 32 additions & 0 deletions docs/next/v0.34.0/DOCS_PLAN.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# v0.34.0 Docs Plan

## Current Docs (must update)

| File | Change |
| ----------------------------------- | -------------------------------------------- |
| `docs/status/STATUS.md` | v0.34 → Current, v0.33 → historical |
| `docs/roadmap/ROADMAP.md` | v0.34 status → Done, v0.35 → Next |
| `docs/sop/v0.34.0/README.md` | Status → Active, tasks checked off |
| `docs/arch/current-architecture.md` | Add AutoFlow2 sidecar layer |
| `docs/next/v0.34.0/*` | Tasks checked, evidence recorded |
| `README.md` | Add `deno task autoflow:report` to task list |

## Website (www)

| Page | Change |
| ------------------------ | ----------------------- |
| `www/app/routes/index/` | Bump version to v0.34.0 |
| `www/app/routes/roadmap` | v0.34 → current line |

## Release Docs

| File | Action |
| --------------------------- | ----------------- |
| `CHANGELOG.md` | Add v0.34.0 |
| `docs/release/v0.34.0.md` | Create |
| `docs/changelog/v0.34.0.md` | Create (optional) |

## No Template Changes

v0.34.0 does not change `packages/create/` templates. The sidecar is internal
infrastructure, not a user-facing feature.
34 changes: 34 additions & 0 deletions docs/next/v0.34.0/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# v0.34.0 NextVersion Package

> Version: v0.34.0\
> Theme: AutoFlow2 Sidecar Kernel\
> Governing SOP: `docs/sop/v0.34.0/README.md`\
> ADRs: ADR-0086\
> Workflow: `docs/governance/PROJECT_WORKFLOW.md`

## Purpose

Introduce an internal read-only tool under `tools/autoflow/` that reads
repository governance documents and emits a machine-readable JSON report plus a
human summary. The sidecar is advisory: it observes and reports, but does not
block CI or edit code.

This is the kernel that v0.35 will turn into a hard gate.

## Execution Map

| File | Role |
| ---------------------- | ---------------------------------------------------------- |
| `DESIGN.md` | Architecture: state machine, cells, readers, output format |
| `TASKS.md` | Concrete implementation steps mapped to SOP |
| `ACCEPTANCE.md` | Completion criteria and evidence |
| `TEST_MATRIX.md` | Tests, fixtures, gates |
| `DOCS_PLAN.md` | Current docs, website, template, changelog, release note |
| `RISK_REGISTER.md` | Risks, mitigations, non-goals |
| `RELEASE_CHECKLIST.md` | Release closure sequence |

## Completion Rule

This version is complete only when the v0.34 SOP tasks, this package, local
gates, changelog, release note, `dev` CI, `main` CI, and release tag all agree.
The sidecar must remain advisory — no CI blocker code exists before v0.35.
Loading
Loading