Skip to content

docs(catalog): add hass-axi to the community catalog - #231

Merged
kunchenguid merged 1 commit into
kunchenguid:mainfrom
dmealing:fm/hass-axi-catalog
Oct 4, 2026
Merged

kunchenguid merged 1 commit into
kunchenguid:mainfrom
dmealing:fm/hass-axi-catalog

Conversation

@dmealing

@dmealing dmealing commented Oct 4, 2026

Copy link
Copy Markdown
Contributor

Intent

Add hass-axi (https://github.com/dmealing/hass-axi) to the AXI community catalog: an agent-facing CLI for Home Assistant that reads and updates the entity, area and device registries over the WebSocket API, calls services with a capability pre-check and an explained refusal, and summarises state history, the logbook and recorder statistics. The tool was previously named ha-axi and was renamed to hass-axi; it is a separate project from the ha-axi entry already in the catalog. The entry is pinned to release v0.8.0 as an exception admission that lists its partial principles, and the generated catalog regions of README.md and docs/index.html are regenerated from the new entry.

What Changed

  • Add hass-axi (dmealing, Home Assistant) to catalog.yaml as an exception admission pinned to revision 5555f13 (release v0.8.0), with source observations over the reviewed components and an exception note covering the partial principles (default-field counts on sensor list/logbook get, untruncated api/ws output, unconfirmed write paths, hook management gaps, and the home view's exit 1 without configuration). The entry notes the tool was previously published as ha-axi and is unrelated to the existing batamire/ha-axi entry.
  • Regenerate the generated catalog regions of README.md and docs/index.html from the new entry (the large README diff is mostly column re-wrapping of the existing table plus the new row).

🤖 Generated with Claude Code

Risk Assessment

✅ Low: Docs/data-only catalog addition: entry schema matches sibling exception entries exactly, both generated regions byte-match the generator output (docs:check passes), the v0.8.0 pin was verified against the upstream tag SHA, and every intent constraint (separation from ha-axi, exception status with listed partial principles, regenerated regions) is satisfied.

Testing

Drove the change's only executable consumer, scripts/generate-docs.mjs: docs:check passed ("generated regions match their sources"), and a full docs:gen regeneration produced a byte-identical worktree (git status clean), proving README.md and docs/index.html were genuinely generated from the new catalog.yaml entry rather than hand-edited. Verified intent facts: the hass-axi entry renders as a distinct community row (dmealing, Home Assistant) alongside the separate batamire/ha-axi entry in both README.md (line 210 vs 182) and docs/index.html; the admission is status: exception at reviewed_revision 5555f13 with the exception text naming partial principles 2, 3, 6, 7, and 8; and git ls-remote confirms upstream tag v0.8.0 on dmealing/hass-axi points at exactly 5555f1323d8b27c5aa1dd36ebbf6b7b6f2e8222c, so the pin is a real release commit. Captured rendered evidence via headless Chrome screenshots of the extracted generated community-table markup. Full regression: docs:test (11 pass), axi-sdk-js (185 pass), bench-github (52 pass), bench-browser (75 pass). Worktree left clean at the target commit. No screenshot of the full published site was taken because the site is static and the extracted generated region is the exact deployed markup.

  • Live validation: ✅ go - 6 of 6 scenarios driven live against the product
Scenario Result Live Evidence
Maintainer runs docs:check; the committed generated regions of README.md and docs/index.html match catalog.yaml (docs-check CI gate passes) ✅ pass live pnpm run docs:check → 'docs:check ok — generated regions match their sources'
Maintainer regenerates docs from catalog.yaml; output is byte-identical to the committed files (regions were genuinely generated from the new entry, not hand-edited) ✅ pass live pnpm run docs:gen then git status --porcelain → empty; worktree clean at c0114a7
Reader opens the community catalog and finds hass-axi (dmealing, Home Assistant) rendered in both README.md and docs/index.html with its description including the HASS_AXI_READ_ONLY guarantee ✅ pass live screenshot hass-axi-and-ha-axi-rows.png; README.md line 210; docs/index.html line 1756
Reader can distinguish the new hass-axi entry from the pre-existing separate ha-axi (batamire) entry — both render as distinct rows ✅ pass live screenshot hass-axi-and-ha-axi-rows.png (both rows in one rendered table); README.md lines 182 and 210
The exception admission is pinned to the real v0.8.0 release and lists its partial principles (2, 3, 6, 7, 8) in catalog.yaml ✅ pass live git ls-remote https://github.com/dmealing/hass-axi refs/tags/v0.8.0 → 5555f1323d8b27c5aa1dd36ebbf6b7b6f2e8222c, equal to reviewed_revision; catalog.yaml exception text names principles 2, 3, 6, 7, 8 a…
Full repository regression suite stays green on the change ✅ pass live docs:test 11 pass; axi-sdk-js vitest 185 pass; bench-github vitest 52 pass; bench-browser vitest 75 pass
  • Evidence: Rendered docs/index.html community catalog rows: ha-axi (batamire) and hass-axi (dmealing), showing the new entry live in the generated table (local file: ~/.no-mistakes/evidence/01M4238VWV6Y1A2KJWEX47N6P2/hass-axi-and-ha-axi-rows.png)
  • Evidence: Rendered generated community-table markup extracted verbatim from docs/index.html (source for the screenshot) (local file: ~/.no-mistakes/evidence/01M4238VWV6Y1A2KJWEX47N6P2/hass-axi-and-ha-axi-rows.html)
  • Evidence: Rendered docs/index.html community table, top of section (full generated region renders cleanly) (local file: ~/.no-mistakes/evidence/01M4238VWV6Y1A2KJWEX47N6P2/community-table-top.png)
  • Evidence: Full generated community-table region extracted verbatim from docs/index.html (hass-axi row is the last row) (local file: ~/.no-mistakes/evidence/01M4238VWV6Y1A2KJWEX47N6P2/hass-axi-community-section.html)
Evidence: README.md rendered community rows for ha-axi (line 182) and hass-axi (line 210)

182:| ha-axi | batamire | Home Assistant | Inspect entities, call services behind safety gates, render templates, and read area/device registries over Home Assistant REST and WebSocket with token-efficient TOON output. 210:| hass-axi | dmealing | Home Assistant | Read and update the entity, area, and device registries that only the WebSocket API exposes, call services with a capability pre-check and an explained refusal, and summarise sensor history, logbook, and recorder statistics with their data-quality caveats - HASS_AXI_READ_ONLY refuses every write on both transports.

182:| [`ha-axi`](https://github.com/batamire/ha-axi)                                                         | batamire            | Home Assistant                     | Inspect entities, call services behind safety gates, render templates, and read area/device registries over Home Assistant REST and WebSocket with token-efficient TOON output.                                                                                                                                                |
210:| [`hass-axi`](https://github.com/dmealing/hass-axi)                                                     | dmealing            | Home Assistant                     | Read and update the entity, area, and device registries that only the WebSocket API exposes, call services with a capability pre-check and an explained refusal, and summarise sensor history, logbook, and recorder statistics with their data-quality caveats - `HASS_AXI_READ_ONLY` refuses every write on both transports. |
Evidence: Upstream pin verification: dmealing/hass-axi v0.8.0 tag commit
5555f1323d8b27c5aa1dd36ebbf6b7b6f2e8222c refs/tags/v0.8.0 (= catalog.yaml reviewed_revision)

Pipeline

Updates from git push no-mistakes

✅ **intent** - passed

✅ No issues found.

✅ **Rebase** - passed

✅ No issues found.

✅ **Review** - passed

✅ No issues found.

✅ **Test** - passed

✅ No issues found.

  • Live validation: ✅ go - 6 of 6 scenarios driven live against the product
Scenario Result Live Evidence
Maintainer runs docs:check; the committed generated regions of README.md and docs/index.html match catalog.yaml (docs-check CI gate passes) ✅ pass live pnpm run docs:check → 'docs:check ok — generated regions match their sources'
Maintainer regenerates docs from catalog.yaml; output is byte-identical to the committed files (regions were genuinely generated from the new entry, not hand-edited) ✅ pass live pnpm run docs:gen then git status --porcelain → empty; worktree clean at c0114a7
Reader opens the community catalog and finds hass-axi (dmealing, Home Assistant) rendered in both README.md and docs/index.html with its description including the HASS_AXI_READ_ONLY guarantee ✅ pass live screenshot hass-axi-and-ha-axi-rows.png; README.md line 210; docs/index.html line 1756
Reader can distinguish the new hass-axi entry from the pre-existing separate ha-axi (batamire) entry — both render as distinct rows ✅ pass live screenshot hass-axi-and-ha-axi-rows.png (both rows in one rendered table); README.md lines 182 and 210
The exception admission is pinned to the real v0.8.0 release and lists its partial principles (2, 3, 6, 7, 8) in catalog.yaml ✅ pass live git ls-remote https://github.com/dmealing/hass-axi refs/tags/v0.8.0 → 5555f1323d8b27c5aa1dd36ebbf6b7b6f2e8222c, equal to reviewed_revision; catalog.yaml exception text names principles 2, 3, 6, 7, 8 a…
Full repository regression suite stays green on the change ✅ pass live docs:test 11 pass; axi-sdk-js vitest 185 pass; bench-github vitest 52 pass; bench-browser vitest 75 pass
  • pnpm run docs:check
  • pnpm run docs:gen + git status (regeneration idempotency)
  • node --test scripts/generate-docs.test.mjs
  • pnpm --dir packages/axi-sdk-js test
  • pnpm --dir bench-github test
  • pnpm --dir bench-browser test
  • git ls-remote https://github.com/dmealing/hass-axi refs/tags/v0.8.0
  • headless Chrome render of generated docs/index.html community table (screenshots)
  • grep of README.md rendered community rows
✅ **Document** - passed

✅ No issues found.

✅ **Lint** - passed

✅ No issues found.

✅ **Push** - passed

✅ No issues found.

Pinned to v0.8.0 (5555f13) as an exception admission recording five partial principles (2, 3, 6, 7, 8). hass-axi was published as ha-axi up to 0.7.1 and renamed; it is distinct from the batamire/ha-axi entry. README.md and docs/index.html regenerated with docs:gen.
@greptile-apps

greptile-apps Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

[Low risk] Adds a community tool entry to the catalog.

The PR appears safe to merge based on the reviewed catalog and generated-document changes.

Reviews (1) · Last reviewed commit: "docs(catalog): add hass-axi to the commu..."

@kunchenguid
kunchenguid merged commit 1d25f55 into kunchenguid:main Oct 4, 2026
4 checks passed

Copy link
Copy Markdown
Owner

Speaking as Kun's firstmate: this is merged. Thank you @dmealing — really appreciate you taking the time on this.

Independent pin review at 5555f1323d8b27c5aa1dd36ebbf6b7b6f2e8222c (v0.8.0): distinct from batamire/ha-axi (Python hass-axi vs TS ha-axi); structured errors/TOON output; HASS_AXI_READ_ONLY fail-closed on both transports; service capability pre-check; opt-in hooks/skill. Exception gaps confirmed in source (sensor/logbook default field counts; untruncated api/ws; writes without confirm/preview; hooks lack status/removal/session-end; home exit 1 without config).

VISION: AXI principles admit-with-exception (partial 2,3,6,7,8 as listed) · Catalog aligns (independent pin inspection) · SDKs N/A/aligns · contract-class: opt-in

kunchenguid added a commit to tangentus/axi that referenced this pull request Oct 4, 2026
Resolve catalog.yaml conflict: keep hey-axi 0.3.1 admission review
and retain hass-axi entry from kunchenguid#231.
kunchenguid added a commit to dmealing/axi that referenced this pull request Oct 4, 2026
Resolve catalog/README/docs conflicts after kunchenguid#231 by retaining both
exception admissions and regenerating catalog-community regions.
kunchenguid added a commit that referenced this pull request Oct 4, 2026
Last-resort port of #232 after main conflicted with #231 (hass-axi).

Co-authored-by: Kun Chen <kunchenguid@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants