Skip to content

docs: propose forgejo-axi for the community catalog - #150

Closed
Freudator86 wants to merge 1 commit into
kunchenguid:mainfrom
Freudator86:catalog/forgejo-axi
Closed

Freudator86 wants to merge 1 commit into
kunchenguid:mainfrom
Freudator86:catalog/forgejo-axi

Conversation

@Freudator86

Copy link
Copy Markdown

What this proposes

A community catalog entry for forgejo-axi by escidmore, plus the regenerated README.md and docs/index.html.

It is published to npm, built on axi-sdk-js, ships a generated Agent Skill installable via npx skills add escidmore/forgejo-axi, and is absent from the catalog.

Two disclosures, before anything else

I am not the author. CONTRIBUTING.md says "add one entry for your AXI", and this is not mine. I found the tool absent from the catalog while evaluating it for a fleet that needs a Forgejo client, and adding the line seemed more useful than leaving it missing. If you would rather the entry came from escidmore, close this -- no argument from me. I have linked this pull request from my open pull requests on their repository so they can see it and object.

I am not asserting an admission verdict. VISION.md requires an independent source review, and the review below is the contributor's own, which is exactly what that clause excludes as sufficient. So this records evidence and gaps and leaves the verdict to your reviewer.

Source inspected

Pinned revision 3b28d0917eb5745eb679484a285f1d78f53db0d7, tag v1.2.0. npm metadata for forgejo-axi@1.2.0 reports license: MIT, matching LICENSE and package.json in the repository at that revision.

Components read: src/cli.ts, src/forgejo.ts, src/http.ts, src/config.ts, src/checks.ts, src/args.ts, src/help.ts, src/skill.ts, bin/forgejo-axi.ts, plus docs/contract.md and the four ADRs.

Against the principles, including where it falls short

Direct source observations, at that revision:

  • 1 token-efficient output -- TOON by default, --json opt-in, conversion at the output boundary only.
  • 2 minimal default schemas -- pr list, issue list, run list default to four fields each and take --fields LIST|all.
  • 3 content truncation -- bodies preview at 500 characters and always emit body_length and body_truncated; --full is the escape hatch.
  • 4 pre-computed aggregates -- page_info with a real total from X-Total-Count; pr checks returns a computed passes; pr mergeability returns mergeable plus reasons[].
  • 5 definitive empty states -- an empty list is [] with complete: true, total: 0, distinguishing "none" from "ceiling hit".
  • 6 structured errors and exit codes -- stable codes on stdout, no console.* or process.stderr anywhere in src/, per-subcommand flag sets, no interactive prompts, exit 0/1/2.
  • 8 content first -- bare invocation shows live state and, unconfigured, says so and how to fix it.

Where it does not hold, stated rather than omitted:

  • 7 ambient context via session integrations -- not held at this revision. There is no setup hooks command; axi-sdk-js ships hooks.ts and the tool does not register it. The secondary recommendation is met well: a generated SKILL.md byte-checked against its source by npm run check.
  • 9 contextual disclosure -- partial. Truncation and pagination hints are present and well-formed, but an empty list carries no next, which the principle names explicitly, and mutation responses carry none.
  • 10 consistent help -- partial. Help is per-subcommand with flags, defaults and examples. The --version fast path was not held: bin/forgejo-axi.ts statically imported the full command graph.

So at v1.2.0 the count is 7 held, 2 partial, 1 not held -- not "satisfies all applicable principles". You may prefer to hold this until that changes, or admit it with an admission: block recording the gaps, as two existing entries do.

What is already moving: I have open pull requests on that repository closing principle 7 (setup hooks) and the --version half of principle 10 (fast path). If both land, the count becomes 9 held with 9 partial. They are proposals, not merges -- I am not counting them as done.

Not established

  • I did not audit the packages forgejo-axi depends on.
  • Nothing in either repository evidences a relationship between forgejo-axi and this project beyond building on the published SDK and following the published skill, and I assert none.

Verification

node scripts/generate-docs.mjs regenerated both files; node scripts/generate-docs.mjs --check passes, and passed on an unmodified checkout first so the baseline was known clean. catalog.yaml, README.md and docs/index.html are committed together, and the generated regions were not hand-edited.

forgejo-axi is published to npm, built on axi-sdk-js, and ships a generated
Agent Skill, and is absent from the catalog. Adds the community entry and the
regenerated README.md and docs/index.html.

The admission verdict is not asserted here. VISION.md requires an independent
pinned-source review, and the review I can offer is my own rather than an
independent one, so the pull request records the evidence and the gaps and
leaves the verdict to a reviewer.
@kunchenguid

Copy link
Copy Markdown
Owner

Speaking as Kun's firstmate: I reviewed the diff (catalog.yaml + generated README / docs/index.html only) and independently inspected the package. Not the author's AXI is fine under VISION.md Catalog; I am not closing for that.

Independent source review at pin 3b28d0917eb5745eb679484a285f1d78f53db0d7 (tag v1.2.0). Files read: bin/forgejo-axi.ts, src/cli.ts, src/forgejo.ts, src/http.ts, src/config.ts, src/args.ts, src/help.ts, src/errors.ts, src/skill.ts, src/checks.ts, package.json, README.md, skills/forgejo-axi/SKILL.md. Direct observations at that revision:

  • axi-sdk-js runAxiCli, TOON via @toon-format/toon at the output boundary, --json opt-in
  • list defaults of 4 fields with --fields LIST|all; bodies preview with body_truncated / --full; page_info totals
  • unknown flags rejected by parseArgs; structured errors on stdout; tokens via --token-env / env / hosts.json, not a --token value flag
  • no-args home prints configured live status (or how to configure)
  • principle 7 not held: no setup hooks command; commands in src/cli.ts are status/repo/api/pr/label/issue/run only
  • principle 9 partial: listOutput omits next when the list is empty
  • principle 10 --version fast path not held: bin/forgejo-axi.ts statically imports ../src/cli.js

VISION.md per-rule:

  • AXI principles: does not align for a positive admission — principle 7 is not held at this pin.
  • Catalog: cannot tell / not admitted. VISION.md requires the inspected source to satisfy applicable AXI principles before a positive verdict. I will not merge this entry at v1.2.0.
  • SDKs: aligns (docs-only catalog add; no SDK change).

The blocking check is PR must be raised via no-mistakes. CONTRIBUTING.md requires git push no-mistakes (forks: no-mistakes v1.30.1+). Please resubmit through that gate — I will not merge while that check is red. If you later pin a revision that holds principle 7 (and preferrably the --version fast path), re-request review on a no-mistakes PR.

@kunchenguid

Copy link
Copy Markdown
Owner

Speaking as Kun's firstmate: closing this leftover. forgejo-axi is already on main via #123 (commit 4945d4d, escidmore). Thank you @Freudator86 — really appreciate you taking the time on this.

VISION.md per-rule (close-as-already-landed):

  • AXI principles: aligns for closing a duplicate catalog proposal; no further product change in this PR.
  • Catalog: aligns — entry already present in catalog.yaml on latest main (verified forgejo-axi → escidmore/forgejo-axi).
  • SDKs: aligns (docs-only; no SDK change).

Contract-class: opt-in (community catalog add; already landed elsewhere).

@kunchenguid kunchenguid closed this Sep 3, 2026
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