docs: add acli-axi to community catalog - #119
Open
mathieu-neron wants to merge 1 commit into
Open
Conversation
Add acli-axi to the community list in catalog.yaml and regenerate README.md and docs/index.html with pnpm run docs:gen. acli-axi is a Jira AXI over the official Atlassian CLI (acli), published on npm as acli-axi with source at https://github.com/mathieu-neron/acli-axi. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Intent
The developer asked for a security review of a small, already-prepared change that adds their own tool, acli-axi, to the AXI community catalog. The change consists of one new entry in catalog.yaml (name, GitHub URL, author, domain Jira, description) plus the matching generated table row in docs/index.html. Their intent was to have the addition checked for security vulnerabilities before committing it, treating the catalog data and rendered HTML as the review scope. No other requirements or constraints were stated; the review found the entry to be inert data flowing through the repo's existing URL-validation and HTML-escaping pipeline, with no issues.
What Changed
acli-axientry (authormathieu-neron, domain Jira, repogithub.com/mathieu-neron/acli-axi) to thecommunitylist incatalog.yaml.generated:catalog-communityregions ofREADME.mdanddocs/index.html;pnpm run docs:checkconfirms no drift between the source and the generated output.scripts/generate-docs.mjs. Review left one informational note: the pinned-revision source-admission verdict required byVISION.mdis a maintainer gate outside this branch's files.Risk Assessment
✅ Low: Purely additive inert catalog data plus its machine-generated README/HTML rows, flowing through the existing safeUrl/HTML-escaping generator with no drift and no executable surface.
Testing
Exercised the catalog-to-docs pipeline for the new acli-axi entry rather than just the diff text: docs:check proved the committed README/index.html generated regions are exactly what the generator emits from catalog.yaml, the generator's own escaping and protocol-allowlist tests passed, and a purpose-written check ran the real entry plus hostile mutations of it through the same render functions — the real entry produces only an https github.com anchor and escaped text, while a javascript: URL is rejected and injected script/img/event-handler payloads come out escaped. A headless-Chrome screenshot of docs/index.html shows the row as an end user sees it (acli-axi / mathieu-neron / Jira, with
aclirendered as a code span). No failures; worktree left clean./var/folders/1c/ldynyg5j3xb96xmd8w3c6h300000gn/T/no-mistakes-evidence/01KYVB7DESXDG2E5XW3HJD29NM/community-table.png)Evidence: Catalog entry render + hostile-input check output
== rendered HTML row == <tr> <td><a href="https://github.com/mathieu-neron/acli-axi"><code>acli-axi</code></a></td> <td>mathieu-neron</td> <td>Jira</td> <td>Search, view, create, and edit Jira work items and inspect board sprints. Wraps the Atlassian CLI (<code>acli</code>) with token-efficient TOON output and true totals.</td> </tr> shipped docs/index.html + README.md contain the entry with an https github.com href rendered row carries no script tag, javascript: URL, or event handler attribute hostile url "javascript:alert(document.domain)" -> rejected: Unsupported link URL protocol hostile text fields -> escaped: <td><script>alert(1)</script></td> <td>Jira“ onmouseover=”alert(1)</td> <td>Wraps <img src=x onerror=alert(1)>.</td> all assertions passedEvidence: Focused check script (evidence-only, not added to the repo)
Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
catalog.yaml:154- VISION.md:17-24 requires an independent source review of the proposed package at an exact pinned revision before a positive community-catalog admission verdict. This PR carries the correct 3-file shape (matching prior additions such as glab-axi, e5f198e) and the target repo github.com/mathieu-neron/acli-axi is public, non-fork, MIT-licensed, with a command surface matching the catalog description — but the pinned-revision admission verdict itself is a maintainer-owned gate outside this change's files. No action required in this branch.✅ **Test** - passed
✅ No issues found.
pnpm run docs:check— verified the committed README.md and docs/index.html generated regions match catalog.yaml (no drift, no hand-edited HTML)pnpm run docs:test— 4/4 node:test cases in scripts/generate-docs.test.mjs, including "catalog HTML escapes text and attribute values" and "catalog HTML rejects unsafe link protocols"node --input-type=module -e "$(cat catalog-entry-check.mjs)"— focused check that loads the real acli-axi entry from catalog.yaml, renders it via htmlCatalogRows/mdCatalogTable, asserts the shipped docs contain the https github.com href, asserts no <script>/javascript:/on*= in the rendered row, then asserts a javascript: URL throws "Unsupported link URL protocol" and hostile author/domain/description values come out HTML-escapedManual visual verification: headless Chrome (CDP) screenshot ofdocs/index.htmlCommunity catalog card showing the rendered acli-axi row✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.