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
2 changes: 1 addition & 1 deletion .github/workflows/verify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
with:
python-version: "3.11"
- name: Install CivicCore release wheel
run: python -m pip install https://github.com/CivicSuite/civiccore/releases/download/v1.1.0/civiccore-1.1.0-py3-none-any.whl
run: python -m pip install https://github.com/CivicSuite/civiccore/releases/download/v1.2.0/civiccore-1.2.0-py3-none-any.whl
- name: Install package
run: python -m pip install -e ".[dev]"
- name: Run release gate
Expand Down
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,22 @@ The format follows Keep a Changelog, and this project follows Semantic Versionin

## [Unreleased]

## [0.3.0] - 2026-06-25

### Added

- Added default local SQLite review persistence so installed CivicAccess is ready without hidden environment setup.
- Added `/civicaccess/staff` for saved review queue, readiness, integration contracts, and records-ready export operations.
- Added `GET /api/v1/civicaccess/reviews`, `POST /api/v1/civicaccess/reviews/{review_id}/records-export`, and `GET /api/v1/civicaccess/integration-contracts`.

### Changed

- Aligned CivicAccess to the published CivicCore v1.2.0 release wheel and SHA256.
- Wired the public `/civicaccess` review form to the accessibility review API.
- Added local schema status and `/ready` readiness gates for review-record persistence.
- Added bounded request models and actionable validation errors for public API payloads.
- Changed readiness from environment-gated optional persistence to default local persistence with explicit override support.

## [0.2.0] - 2026-05-21

### Corrected
Expand Down
22 changes: 16 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,34 @@

CivicAccess is the CivicSuite module for accessibility, plain-language, multilingual, and ADA Title II review-support workflows.

Current state: **v0.2.0 corrective demotion state**. This repo contains a deterministic scaffold with a FastAPI package, health/root endpoints, WCAG-aligned review support, optional database-backed review records via `CIVICACCESS_REVIEW_DB_URL`, accessible form planning, accessible publishing workflow checks, plain-language rewrites, multilingual draft variants, ADA Title II review-support packages, tagged-PDF expectations, records-ready export checklists, a public UI at `/civicaccess`, and `civiccore==1.1.0` dependency alignment. The previous `v1.0.0` release was published in error and is superseded by this honest sub-1.0.0 label.
Current state: **v0.3.0 standalone readiness candidate**. This repo contains a FastAPI package aligned to the published CivicCore v1.2.0 release wheel, health/root endpoints, readiness gates, WCAG-aligned review support, local database-backed review records, accessible form planning, accessible publishing workflow checks, plain-language rewrites, multilingual draft variants, ADA Title II review-support packages, tagged-PDF expectations, records-ready export checklists, an API-backed public review UI at `/civicaccess`, and a staff review/export workspace at `/civicaccess/staff`. The previous `v1.0.0` release was published in error and remains historical evidence only.

CivicAccess does **not** provide legal advice, certified ADA compliance, official translation certification, live LLM calls, or final publication approval. City staff, ADA coordinators, translators, and qualified reviewers remain responsible for publication decisions.

## What CivicAccess Does

- Reviews public content for actionable WCAG-aligned issues.
- Reports local review-record persistence readiness through `/ready`.
- Provides a staff queue for saved accessibility reviews and records-ready exports.
- Checks accessible form publication basics: labels, required fields, validation copy, and record context.
- Builds a staff publication workflow with accessibility, plain-language, translation-review, export, and approval steps.
- Rewrites common municipal jargon into plainer language while preserving source/rewrite provenance.
- Produces multilingual draft variants that are explicitly marked for human review.
- Produces ADA Title II review-support checklists without claiming certification.
- Checks tagged-PDF heading expectations before publication.
- Builds records-ready export checklists that preserve source/rewrite provenance.
- Provides a local accessibility support UI at `/civicaccess`.
- Provides a local API-backed accessibility review UI at `/civicaccess`.

## Release Integrity Correction

CivicAccess is not finished, shipping, city-ready, product-ready, or public-use ready. It has no real AI layer, no real municipal data/search layer, no production-grade frontend, and no independent Section 2 public-use gate sign-off. See [docs/release-integrity-correction-2026-05-21.md](docs/release-integrity-correction-2026-05-21.md).
CivicAccess was previously demoted after a false `v1.0.0` release. The current branch is rebuilding that truthfully: it now has automatic local persistence, a staff workspace, and integration contracts, but it still must pass the current module-completion audit, suite integration proof, and clean-machine evidence before any finished/public-use label can be promoted. See [docs/release-integrity-correction-2026-05-21.md](docs/release-integrity-correction-2026-05-21.md).

## Developer Quickstart

```powershell
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install https://github.com/CivicSuite/civiccore/releases/download/v1.2.0/civiccore-1.2.0-py3-none-any.whl
python -m pip install -e ".[dev]"
python -m pytest -q
bash scripts/verify-release.sh
Expand All @@ -36,9 +39,14 @@ bash scripts/verify-release.sh

- `GET /` returns current module status and boundaries.
- `GET /health` returns package and CivicCore version information.
- `GET /civicaccess` returns the public UI.
- `GET /ready` and `GET /api/v1/civicaccess/readiness` report whether local review persistence is configured and schema-ready.
- `GET /civicaccess` returns the API-backed public accessibility review UI.
- `GET /civicaccess/staff` returns the staff review queue and records-export workspace.
- `POST /api/v1/civicaccess/review` returns accessibility findings and next steps.
- `GET /api/v1/civicaccess/reviews/{review_id}` retrieves persisted review records when `CIVICACCESS_REVIEW_DB_URL` is configured.
- `GET /api/v1/civicaccess/reviews` lists saved review records.
- `GET /api/v1/civicaccess/reviews/{review_id}` retrieves persisted review records.
- `POST /api/v1/civicaccess/reviews/{review_id}/records-export` builds a CivicRecords-ready retention export.
- `GET /api/v1/civicaccess/integration-contracts` publishes upstream/downstream integration contracts.
- `POST /api/v1/civicaccess/forms` returns accessible form publication checks.
- `POST /api/v1/civicaccess/publishing-workflow` returns staff publication workflow blockers and steps.
- `POST /api/v1/civicaccess/plain-language` returns a deterministic plain-language rewrite.
Expand All @@ -47,7 +55,9 @@ bash scripts/verify-release.sh
- `POST /api/v1/civicaccess/tagged-pdf` returns tagged-PDF heading expectations.
- `POST /api/v1/civicaccess/export` returns a records-ready accessibility export checklist.

Set `CIVICACCESS_REVIEW_DB_URL` to enable persistent accessibility review records. When unset, CivicAccess continues to use deterministic in-memory review behavior for local examples.
By default, CivicAccess stores review records in `data/civicaccess-reviews.db` under the process working directory. Set `CIVICACCESS_DATA_DIR` to choose a different local data directory, or set `CIVICACCESS_REVIEW_DB_URL` to use an explicit SQLAlchemy database URL. `/ready` is expected to be ready when the local schema can be created and verified.

Use the `civicaccess-db-status` console script with an explicit SQLAlchemy URL when an operator wants to preflight a non-default review database.

## License

Expand Down
2 changes: 1 addition & 1 deletion README.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ CivicAccess

CivicAccess is the CivicSuite module for accessibility, plain-language, multilingual, and ADA Title II review-support workflows.

Current state: v0.2.0 corrective demotion state. This repo contains a deterministic scaffold with a FastAPI package, health/root endpoints, WCAG-aligned review support, optional database-backed review records via CIVICACCESS_REVIEW_DB_URL, accessible form planning, accessible publishing workflow checks, plain-language rewrites, multilingual draft variants, ADA Title II review-support packages, tagged-PDF expectations, records-ready export checklists, a public UI at /civicaccess, and civiccore==1.1.0 dependency alignment. The previous v1.0.0 release was published in error and is superseded by this honest sub-1.0.0 label.
Current state: v0.3.0 corrective demotion state. This repo contains a deterministic scaffold with a FastAPI package aligned to the published CivicCore v1.2.0 release wheel, health/root endpoints, readiness gates, WCAG-aligned review support, optional database-backed review records via CIVICACCESS_REVIEW_DB_URL, accessible form planning, accessible publishing workflow checks, plain-language rewrites, multilingual draft variants, ADA Title II review-support packages, tagged-PDF expectations, records-ready export checklists, and an API-backed public review UI at /civicaccess. The previous v1.0.0 release was published in error and is superseded by this honest sub-1.0.0 label.

CivicAccess does not provide legal advice, certified ADA compliance, official translation certification, live LLM calls, or final publication approval. City staff, ADA coordinators, translators, and qualified reviewers remain responsible for publication decisions.

Expand Down
2 changes: 1 addition & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Security

CivicAccess version: `0.2.0`.
CivicAccess version: `0.3.0`.

CivicAccess is self-hosted municipal software. It provides advisory accessibility, plain-language, multilingual draft, and ADA Title II review-support workflows; it does not make legal, certification, translation, or publication decisions.

Expand Down
21 changes: 16 additions & 5 deletions USER-MANUAL.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,23 @@

CivicAccess helps cities make public information easier to read, reach, translate, review, and preserve. It supports accessibility review, accessible forms, public publishing workflows, plain-language rewrites, multilingual draft variants, ADA Title II review support, tagged-PDF expectations, and records-ready export checklists.

Current state: `0.2.0` corrective demotion state. CivicAccess includes deterministic checks, optional database-backed review records, a public UI at `/civicaccess`, and `civiccore==1.1.0` dependency alignment. The previous `v1.0.0` release was published in error and is superseded by this honest sub-1.0.0 label. CivicAccess does not provide legal advice, certified ADA compliance, official translation certification, live LLM calls, or final publication approval.
Current state: `0.3.0` standalone readiness candidate. CivicAccess includes deterministic checks, local database-backed review records, readiness gates, an API-backed public review UI at `/civicaccess`, a staff review/export workspace at `/civicaccess/staff`, and CivicCore v1.2.0 release-wheel alignment. The previous `v1.0.0` release was published in error and remains historical evidence only. CivicAccess does not provide legal advice, certified ADA compliance, official translation certification, live LLM calls, or final publication approval.

## For IT And Technical Staff

CivicAccess is a FastAPI Python package pinned to `civiccore==1.1.0`. The current runtime exposes:
CivicAccess is a FastAPI Python package pinned to the published `CivicCore v1.2.0` release wheel. The current runtime exposes:

- `GET /`
- `GET /health`
- `GET /ready`
- `GET /civicaccess`
- `GET /civicaccess/staff`
- `GET /api/v1/civicaccess/readiness`
- `POST /api/v1/civicaccess/review`
- `GET /api/v1/civicaccess/reviews/{review_id}` when `CIVICACCESS_REVIEW_DB_URL` is configured
- `GET /api/v1/civicaccess/reviews`
- `GET /api/v1/civicaccess/reviews/{review_id}`
- `POST /api/v1/civicaccess/reviews/{review_id}/records-export`
- `GET /api/v1/civicaccess/integration-contracts`
- `POST /api/v1/civicaccess/forms`
- `POST /api/v1/civicaccess/publishing-workflow`
- `POST /api/v1/civicaccess/plain-language`
Expand All @@ -23,11 +29,14 @@ CivicAccess is a FastAPI Python package pinned to `civiccore==1.1.0`. The curren
- `POST /api/v1/civicaccess/tagged-pdf`
- `POST /api/v1/civicaccess/export`

Set `CIVICACCESS_REVIEW_DB_URL` to persist review requests, findings, WCAG references, disclaimers, and next steps. Leave it unset for deterministic sample behavior.
By default, CivicAccess persists review requests, findings, WCAG references, disclaimers, and next steps in `data/civicaccess-reviews.db` under the process working directory. Set `CIVICACCESS_DATA_DIR` to choose a different local data directory, or set `CIVICACCESS_REVIEW_DB_URL` for an explicit SQLAlchemy database URL. Use `civicaccess-db-status` with the same explicit database URL when preflighting a non-default database.

Before public use, check `/ready` or `/api/v1/civicaccess/readiness`. The readiness gate is `ready` when the local review database schema can be created and verified.

Run local verification with:

```powershell
python -m pip install https://github.com/CivicSuite/civiccore/releases/download/v1.2.0/civiccore-1.2.0-py3-none-any.whl
python -m pip install -e ".[dev]"
python -m pytest -q
bash scripts/verify-release.sh
Expand All @@ -38,9 +47,11 @@ bash scripts/verify-release.sh
```mermaid
flowchart LR
PublicUser["Resident or staff publisher"] --> CivicAccess["CivicAccess"]
CivicAccess --> CivicCore["CivicCore v1.1.0"]
CivicAccess --> CivicCore["CivicCore v1.2.0"]
CivicAccess --> CivicRecords["CivicRecords AI records export"]
CivicClerk["CivicClerk"] -. uses accessibility support .-> CivicAccess
CivicCode["CivicCode"] -. uses accessibility support .-> CivicAccess
CivicAccess -. downstream contracts .-> LandUse["Zone / Plan / Permit / Inspect / Grants / Procure"]
```

CivicAccess depends on CivicCore. CivicCore does not depend on CivicAccess.
8 changes: 6 additions & 2 deletions USER-MANUAL.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,15 @@ CivicAccess User Manual

CivicAccess helps cities make public information easier to read, reach, translate, review, and preserve. It supports accessibility review, accessible forms, public publishing workflows, plain-language rewrites, multilingual draft variants, ADA Title II review support, tagged-PDF expectations, and records-ready export checklists.

Current state: 0.2.0 corrective demotion state. CivicAccess includes deterministic checks, optional database-backed review records, a public UI at /civicaccess, and civiccore==1.1.0 dependency alignment. The previous v1.0.0 release was published in error and is superseded by this honest sub-1.0.0 label. It does not provide legal advice, certified ADA compliance, official translation certification, live LLM calls, or final publication approval.
Current state: 0.3.0 corrective demotion state. CivicAccess includes deterministic checks, optional database-backed review records, readiness gates, an API-backed public review UI at /civicaccess, and CivicCore v1.2.0 release-wheel alignment. The previous v1.0.0 release was published in error and is superseded by this honest sub-1.0.0 label. It does not provide legal advice, certified ADA compliance, official translation certification, live LLM calls, or final publication approval.

Runtime routes:

- GET /
- GET /health
- GET /ready
- GET /civicaccess
- GET /api/v1/civicaccess/readiness
- POST /api/v1/civicaccess/review
- GET /api/v1/civicaccess/reviews/{review_id} when CIVICACCESS_REVIEW_DB_URL is configured
- POST /api/v1/civicaccess/forms
Expand All @@ -20,4 +22,6 @@ Runtime routes:
- POST /api/v1/civicaccess/tagged-pdf
- POST /api/v1/civicaccess/export

Set CIVICACCESS_REVIEW_DB_URL to persist review requests, findings, WCAG references, disclaimers, and next steps. Leave it unset for deterministic sample behavior.
Set CIVICACCESS_REVIEW_DB_URL to persist review requests, findings, WCAG references, disclaimers, and next steps. Use civicaccess-db-status with the same database URL to initialize and verify schema. Leave persistence unset for deterministic sample behavior.

Before public use, check /ready or /api/v1/civicaccess/readiness. The readiness gate is not-ready until local review persistence is configured and schema-ready.
2 changes: 1 addition & 1 deletion civicaccess/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
"""civicaccess package."""

__version__ = "0.2.0"
__version__ = "0.3.0"
Loading