build(flatpak): net.catcrafts.CrafterReview on the Crafter.Build base
The manifest builds on the Crafter.Build Flatpak (base:
net.catcrafts.CrafterBuild): its crafter-build, LLVM 23 and libc++
compile this project inside flatpak-builder, and crafter-build test runs
there too. Node 24.22.0 (for the Playwright MCP server) and a static
ripgrep 15.2.0 are bundled, pinned by sha256; claude is not, being
proprietary. finish-args: the network, the host's files and /tmp, and
gnupg's keyboxd socket only, never the agent.
The base's files belong to no module of this manifest, so `cleanup` does
not reach them: prune-base.sh keeps a named list (the binary, Node, rg,
the libc++ the binary links, share/crafter-review, this app's metainfo
and licences) and removes the rest, whatever a newer base adds.
`crafter-build run flatpak [--base=<branch>] [--jobs=N]` builds it and
smoke-tests --version and ldd through `flatpak build`; `run install`
installs it as the `local` branch. Until a Crafter.Build release with
scripts is on stable, `--base=local` builds against Crafter.Build's own
local install, from a gitignored manifest copy whose cache is its own.
Built that way: 4 tests green in the sandbox, the charter sha256s the
native build prints, no library missing, RUNPATH /app/lib only.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 06:01:19 +01:00
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
|
<!-- SPDX-License-Identifier: CC0-1.0 -->
|
|
|
|
|
<component type="console-application">
|
|
|
|
|
<id>net.catcrafts.CrafterReview</id>
|
|
|
|
|
<name>Crafter Review</name>
|
|
|
|
|
<summary>Adversarial pre-push review of a frozen commit range</summary>
|
|
|
|
|
<metadata_license>CC0-1.0</metadata_license>
|
|
|
|
|
<project_license>AGPL-3.0-only</project_license>
|
|
|
|
|
<developer id="net.catcrafts">
|
|
|
|
|
<name>Catcrafts</name>
|
|
|
|
|
</developer>
|
|
|
|
|
<description>
|
|
|
|
|
<p>
|
|
|
|
|
The pre-push review pipeline: crafter-review freezes a commit range,
|
|
|
|
|
partitions it into units, and runs adversarial lenses over it — the
|
|
|
|
|
approach, the running application through the Playwright MCP server,
|
|
|
|
|
a bug proof and a security review — one claude process per unit, on the
|
|
|
|
|
seats the repository provides. A range is send-ready only when every
|
|
|
|
|
gate passes on the exact frozen hash.
|
|
|
|
|
</p>
|
|
|
|
|
</description>
|
|
|
|
|
<url type="homepage">https://forgejo.catcrafts.net/Catcrafts/Crafter.Review</url>
|
|
|
|
|
<url type="bugtracker">https://forgejo.catcrafts.net/Catcrafts/Crafter.Review/issues</url>
|
|
|
|
|
<url type="vcs-browser">https://forgejo.catcrafts.net/Catcrafts/Crafter.Review</url>
|
|
|
|
|
<provides>
|
|
|
|
|
<binary>crafter-review</binary>
|
|
|
|
|
</provides>
|
|
|
|
|
<content_rating type="oars-1.1"/>
|
|
|
|
|
<releases>
|
|
|
|
|
<release version="1.0.0" date="2026-10-31">
|
|
|
|
|
<description>
|
|
|
|
|
<p>First release: the pre-push review gates in C++26, shipped as a Flatpak.</p>
|
feat(lenses): the commit-truth lens, repo-facts, as Gate 4
Every claim in every commit message, and in the documentation the range
adds or changes, proven or gone. The lens's block kinds are text, doc and
slot: a message unit is keyed on its text, the base and the code up to its
commit (MessageDeps); a documentation unit on its file, its normalised
text, the base and the code of the whole range (DocKeyParts); a diffstat on
its text alone; whole:order and whole:absent are asked in slot passes of
its own, never stored. A documentation file's diff header and a part the
commit writes nothing in are a mechanical n/a. Budgets 60/40 for a text or
doc block, 50/35 for a slot; one read. Gate 4, after the proofs, so the
messages and documents are read once the code they describe has settled;
the owner's gate is 5.
The goldens that follow from the lens table are derived by
tests/Goldens/derive.py, which asserts that the recorded table still
reproduces the recorded entries before it writes.
Proven, with the opt-in commit after this one: the suite (26 passed); a dry
run of a scratch range (2 commits, a README with sections) by the previous
binary and this one with the three static lenses on and the rest off, 25
prompts and 4 system files byte for byte; with repo-facts on as well,
those files unchanged and 10 passes and 1 system file added.
The lens's firing proof in this pipeline is owed (the owner's go).
2026-10-31 20:08:26 +01:00
|
|
|
<p>The commit-truth lens, repo-facts, reads the commit messages and the documentation of the range as Gate 4.</p>
|
build(flatpak): net.catcrafts.CrafterReview on the Crafter.Build base
The manifest builds on the Crafter.Build Flatpak (base:
net.catcrafts.CrafterBuild): its crafter-build, LLVM 23 and libc++
compile this project inside flatpak-builder, and crafter-build test runs
there too. Node 24.22.0 (for the Playwright MCP server) and a static
ripgrep 15.2.0 are bundled, pinned by sha256; claude is not, being
proprietary. finish-args: the network, the host's files and /tmp, and
gnupg's keyboxd socket only, never the agent.
The base's files belong to no module of this manifest, so `cleanup` does
not reach them: prune-base.sh keeps a named list (the binary, Node, rg,
the libc++ the binary links, share/crafter-review, this app's metainfo
and licences) and removes the rest, whatever a newer base adds.
`crafter-build run flatpak [--base=<branch>] [--jobs=N]` builds it and
smoke-tests --version and ldd through `flatpak build`; `run install`
installs it as the `local` branch. Until a Crafter.Build release with
scripts is on stable, `--base=local` builds against Crafter.Build's own
local install, from a gitignored manifest copy whose cache is its own.
Built that way: 4 tests green in the sandbox, the charter sha256s the
native build prints, no library missing, RUNPATH /app/lib only.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 06:01:19 +01:00
|
|
|
</description>
|
|
|
|
|
</release>
|
|
|
|
|
</releases>
|
|
|
|
|
</component>
|