A node is a JSON file on disk. An edge is a typed verb stored on both endpoints. The folder hierarchy is the containment structure. Nothing runs — no server, no daemon, no database — so the tracker lives inside the repository it tracks, versions with it, branches with it, and can be read by cat, grep and find. That makes it legible to a human, diffable by git, and directly operable by an agent.
This is the table the ecosystem cannot produce for itself. Queried live against PyPI on 22 August 2026; every wheel downloaded and unzipped. Two packages are real and installable. Two are published but empty. Four are not published at all. Here is the line.
| PyPI package | Latest | Repo | Verdict | What is in the wheel |
|---|---|---|---|---|
issues-fs | 0.7.0 | v0.7.1 | real | 103 files · 98 source files · 5,401 LOC · 604 tests. An importable Python API — no CLI and no HTTP in this package |
issues-fs-cli | 0.3.0 | v0.3.0 | real | 23 files · 14 commands · 94 tests. The most credible end-user surface |
issues-fs-service | 0.2.0 | v0.2.0 | empty shell | 8 files, no FastAPI code, no routes — while its PyPI summary reads “FastAPI server with REST endpoints” |
issues-fs-service-client-python | 0.2.0 | v0.2.0 | empty shell | 8 files, no client, no schemas — while its summary reads “API schemas and Python client” |
issues-fs-service-ui | — | v0.2.1 | 404 | 142 files in the repo, unpublished. The largest UI artefact in the ecosystem |
issues-fs-docs | — | v0.1.6 | 404 | Its README shows a pip install line and a PyPI badge that 404s |
issues-fs-dev | — | v0.3.2 | 404 | The development umbrella, with 19 submodules |
issues-fs-dev-utils | — | v0.1.1 | 404 | 535 LOC, 19 tests, a good user guide — and absent from every ecosystem map |
Why: CI publishes to PyPI only from main, and seven of the eight repositories sit on dev well ahead of main. Issues-FS__Docs's main is still at Initial commit, 24 commits behind — which is exactly why the docs package 404s. The whole table, with the release mechanism.
The full picture, package by package → · What the READMEs get wrong →
Every command below was verified against the CLI source, not against a README.
pip install issues-fs-cli
issues-fs init # creates .issues/
issues-fs types init # 12 node types, 10 link types
issues-fs create task "Write the /shipped page" --priority high --tags site,docs
issues-fs create bug "PyPI badge 404s in the Docs README"
issues-fs link Task-1 blocks Bug-1
issues-fs list --output table
issues-fs show Task-1 --depth 1
issues-fs list --for-agent # same data, JSON, for an agent
This is the site's most distinctive claim, and no document in the corpus makes it. No other project in the estate has three.
Markdown with YAML front-matter, three folders, four mv operations. No install, no Python, no CLI, no runtime. For an agent that has a filesystem and nothing else.
.issues flat-file DSLA line-oriented text format parsed into nodes. 11 source files, ~55 tests, three live example files, wired into the repository API — and zero prose documentation anywhere until this page.
built and tested--for-agent JSONEvery one of the 14 CLI commands takes --for-agent, which forces JSON output regardless of the configured format. It is the story, not a footnote.
Measured, not quoted. The node and edge counts come from walking every issue.json; the test counts from counting test functions. The READMEs are wrong about the last one — two of them, differently.
--for-agentfrom sourceThe philosophy underneath Issues-FS is that a node has no inherent meaning; meaning is discovered through the edges you can trace from it. That is why the type system is a graph of typed relationships rather than a schema of fields, and why an edge type carries domain and range constraints — blocks is not a string in a list, it is a verb with a stated inverse and a stated set of endpoints it may join.
That thinking was written here. thinking-in-graphs.md is dated 5 February 2026 and was written for Issues-FS; it reached SGraph Send on 11 June, four months later, and the whole estate now runs on it.
issues_fs_service-0.2.0 contains an __init__.py, a version file and dist-info metadata. That is all. Its PyPI summary describes a FastAPI server. The house move is to say so, not to hide it.
A storage backend that is not in the enum, an integration with zero imports, a package that was never built, and two different wrong test counts. All of them, with what was measured instead.
_index.json says 22 issues where the disk has 24. The largest and healthiest graph in the ecosystem has no _index.json at any level and works fine, because the CLI walks the tree. That is an argument, not an embarrassment.
Roughly 7,000 words across two versions describe a package required by every Issues-FS repository. It has no repo, no PyPI entry and appears in no pyproject.toml. Published as argued design, labelled as such.
Issues-FS is a git-native tracker with three operable surfaces. If you have a filesystem and no tooling, use lite: issues/open|blocked|done/NNN-slug.md with YAML front-matter, and four mv operations — see /lite/. If issues-fs is on the path, pass --for-agent to any of the 14 commands to force JSON. Read another agent's issues/; never write into it. Do not rely on _index.json — walk the tree. Four claims in the upstream READMEs are false; check them here before repeating any of them.