Depended on #22, the derived shipping state, and on #78, and both have closed:
for n in 22 78; do
printf '#%-3s %s\n' "$n" "$(gh issue view $n --repo Flowfin/site --json state,closedAt --jq '"\(.state) \(.closedAt)"')"
done
#22 CLOSED 2026-08-25T02:46:31Z
#78 CLOSED 2026-08-08T22:35:35Z
Run 2026-09-02. The first of the two was written here in the present tense, so a
reader following this line out of the body met a dependency that had stopped
being one. What is left on this issue is read in the comments below.
Deriving the state is not enough on its own, because the roster still carries a
declared state and the two can drift apart. This is the check that makes the
table honest rather than merely generated.
The drift is not hypothetical and there is an instance of it published right now.
One plugin the organisation profile calls a shell has a finished release:
gh api repos/Flowfin/jellyfin-plugin-requests/releases \
--jq '.[]|{tag_name,draft,prerelease}'
{"draft":false,"prerelease":false,"tag_name":"0.1.0.0-stable"}
gh api repos/Flowfin/.github/contents/profile/README.md --jq '.content' \
| base64 -d | grep -o '| \[requests\].*| [A-Za-z ]*|' | grep -o '[A-Za-z ]*|$'
Shell only |
Run 2026-08-08. Neither of those two places is wrong on purpose. They were
written at different moments and nothing compares them, which is the whole
argument for this check, and it means the first run of it has a row to refuse
rather than a green tree to prove nothing on.
It refuses a row declaring shell or build-up whose repository has published
releases of the kind #78 counts, because a plugin with such a release ships
whatever the file says. It also
refuses a row declaring shell whose repository has more than a template's
worth of source in it, using a threshold that is written down with its reason
rather than chosen silently, because shell is a promise to the reader that
installing it does nothing.
The failure names the row, what the file claimed, what was observed, and the
command that observed it.
Done when
A fixture roster declaring shell for a repository with releases reds the
suite; the same fixture with the row corrected passes; the failure output
carries the command that produced the observation; and the instance measured
above is either resolved where it is published or carried in the issue as a row
the check is expected to refuse, rather than being made to pass by loosening the
rule.
Depended on #22, the derived shipping state, and on #78, and both have closed:
Run 2026-09-02. The first of the two was written here in the present tense, so a
reader following this line out of the body met a dependency that had stopped
being one. What is left on this issue is read in the comments below.
Deriving the state is not enough on its own, because the roster still carries a
declared state and the two can drift apart. This is the check that makes the
table honest rather than merely generated.
The drift is not hypothetical and there is an instance of it published right now.
One plugin the organisation profile calls a shell has a finished release:
Run 2026-08-08. Neither of those two places is wrong on purpose. They were
written at different moments and nothing compares them, which is the whole
argument for this check, and it means the first run of it has a row to refuse
rather than a green tree to prove nothing on.
It refuses a row declaring
shellorbuild-upwhose repository has publishedreleases of the kind #78 counts, because a plugin with such a release ships
whatever the file says. It also
refuses a row declaring
shellwhose repository has more than a template'sworth of source in it, using a threshold that is written down with its reason
rather than chosen silently, because
shellis a promise to the reader thatinstalling it does nothing.
The failure names the row, what the file claimed, what was observed, and the
command that observed it.
Done when
A fixture roster declaring
shellfor a repository with releases reds thesuite; the same fixture with the row corrected passes; the failure output
carries the command that produced the observation; and the instance measured
above is either resolved where it is published or carried in the issue as a row
the check is expected to refuse, rather than being made to pass by loosening the
rule.