Skip to content

github-agent 1.3.0: wiki-aware checks, a documentation site, static analysis

Latest

Choose a tag to compare

@paulmann paulmann released this 01 Nov 17:23
· 4 commits to main since this release

github-agent 1.3.0 — wiki-aware checks, a documentation site, static analysis

Added

  • docs/FIELD-NOTES.md: ten defects that real repositories found, anonymised — the symptom, the
    cause, the rule that changed and the fixture that now holds it. Published as a page of the
    documentation site.
  • A documentation site on GitHub Pages: mkdocs.yml (Material), docs/index.md,
    .github/workflows/docs.yml (build on every pull request, deploy from main) and
    hooks/repo_links.py, which points a link that leaves docs/ at the repository instead of at a
    page that does not exist.
  • .github/workflows/codeql.yml (CodeQL, security-and-quality queries) and a lint job in CI:
    ruff and mypy with their configuration in pyproject.toml. Both are development tools — the
    runtime dependency count stays zero.
  • .github/workflows/release-draft.yml: a manual workflow that renders the release body from the
    CHANGELOG (changelog notes) and creates a draft release. A draft does not trigger
    publish.yml, so nothing reaches PyPI before a human presses Publish.
  • tools/make_demo.py and assets/demo.gif: the README animation is rendered from the real
    output of three commands, so it cannot show anything the tool did not print.
  • README sections Why this exists and How it compares (with markdownlint, vale,
    action-gh-release, pre-commit, release-please and the community-health files) in all six
    languages.
  • .ghagent.json keys exclude_dirs (build output whose name the pack cannot know, e.g. site)
    and safe_email_domains (role domains of this repository).
  • packaging/homebrew/github-agent-cli.rb: a Homebrew formula that installs the PyPI sdist
    github_agent_cli-1.2.2.tar.gz (sha256 f60d17b1…e14ae) into a virtualenv with python@3.13,
    with livecheck reading the PyPI JSON API. Canonical copy: paulmann/homebrew-github-agent-cli.
  • packaging/scoop/github-agent-cli.json: a Scoop manifest for the Windows bundle
    github-agent-cli-1.2.2-windows-x64.zip (sha256 2676f33b…c85a4), depends: python,
    checkver/autoupdate from the PyPI JSON API and the release SHA256SUMS.txt. Canonical copy:
    paulmann/scoop-github-agent-cli.
  • A Windows bundle in the release assets: ghagent.cmd plus the wheel contents under lib/. It was
    executed on Windows before upload (--version, audit . --min-score 90).
  • CI job manifests: ruby -c for the formula, a real download of both URLs with the SHA-256
    compared against the manifest, and a layout check of the bundle. A wrong hash or a stale version
    fails the pull request.
  • packaging/README.md: what each manifest installs, where the canonical copy lives and the bump
    procedure for both.

Changed

  • md.link-local: inside a wiki checkout — detected from _Sidebar.md or _Footer.md — a page
    name resolves to Page.md, including names with dots (Migration-3.x-to-4.0). In an ordinary
    repository the same link stays an error, because there it is a 404.
  • md.h1: _Sidebar.md, _Footer.md and _Header.md are wiki furniture and are reported as a
    note, not as a document without a title.
  • doc and privacy share one walker, which skips every dot-directory except .github/ and
    .well-known/; doc also honours ignore_rules from .ghagent.json, which only audit read
    before.
  • changelog.link-refs: missing link references are a warning, not an error — Keep a Changelog
    makes them optional. changelog.types: a grouping subtitle is dropped before the lookup, so
    ### Added — template language is Added.
  • assets render: chips come from the declared keywords (languages are the fallback), emoji are
    stripped from the title, and a title or tagline that would be cut is a warning that names the
    limit.
  • meta check --repo <slug> reads the repository through gh api instead of validating the empty
    arguments it was given.
  • audit: wiki-source is skipped, not failed, when the tree has no wiki/ directory.
  • wiki verify: the target is an explicit --out, then a --wiki-dir that already looks like a
    wiki checkout, then the build; the header names the directory that was read, and a repository
    with neither sources nor a build gets one note instead of an error.
  • docs/PACKAGING.md: the Homebrew and Scoop section is no longer "deferred" — it lists both
    manifests, the measured hashes and how the CI job verifies them.
  • The six READMEs and AGENTS.md gained the brew and scoop install commands.

Assets

File Bytes SHA-256
github_agent_cli-1.3.0-py3-none-any.whl 71318 1769712ff47cbbf21b5905d7cf03c2bbdfe8b52c0efa0ee753c955cac81fff76
github_agent_cli-1.3.0.tar.gz 317245 759b65f4044f5ddb05155e7035e00e6df0e10544822b07158c217dd8bf9de7ae
github-agent-cli-1.3.0-windows-x64.zip 72886 cd88d4858ad183799a71dd8065092cc84c3813dc11ffe75e319ccc052e5077fe

SHA256SUMS.txt carries the same hashes in the format sha256sum -c reads.

The PyPI files are built by the Publish workflow on the runner, so their bytes differ from the
release assets built here from the tagged tree. Both are legitimate builds of the same commit:
compare each file against its own hash, not against the other one.

Verification

ghagent --version            # github-agent 1.3.0
python tests/run_tests.py    # 194/194 checks passed
ghagent audit . --min-score 90

The release page is not the checkpoint: ghagent audit . and the self-tests are.