Single-commit clean baseline after security scrub of niche-tells, project codenames, internal jargon, and contributor-email leaks. Contents: - 100 Rust crates (_primitives/_rust/) - 37 agent manifests (_manifests/) + generated specs (_generated/) - 67 user-invocable skills (skills/) - 33 hooks (hooks/) - Composition blocks (_blocks/) - Documentation (docs/, README.md) - TS adapter packages (_ts_packages/) - Assembler (_assembler/) - Roles (_roles/) - Templates (_templates/) - Forgejo CI (.forgejo/) Author: Denis Parfionovich <info@greendragon.info> License: see LICENSE. |
||
|---|---|---|
| .. | ||
| battle-entry.sh | ||
| Dockerfile.install-test | ||
| Dockerfile.install-test-alpine | ||
| Dockerfile.install-test-debian | ||
| README.md | ||
| verify.sh | ||
tests/battle — Clean-Distro Install Test Matrix
Validates install.sh on fresh container images. CI only runs
--no-execute dry-runs; these battle-tests actually execute the
installer against real distro package sets.
Matrix (v0.22+)
| Image | libc | Dockerfile |
|---|---|---|
ubuntu:24.04 |
glibc | Dockerfile.install-test (CI baseline) |
alpine:3.19 |
musl | Dockerfile.install-test-alpine |
debian:12 |
glibc | Dockerfile.install-test-debian |
ubuntu is the historic baseline. alpine exposes musl-static-link
quirks in rusqlite, git2, aws-sdk-s3 — crates that wrap C code and
are known to behave differently under musl. debian covers the most
common server deployment; its apt repo layout differs from Ubuntu, so a
Debian pass rules out a "ubuntu-specific fix" regression.
Run one image
From repo root:
docker build -t keisei-battle-ubuntu -f tests/battle/Dockerfile.install-test .
docker run --rm keisei-battle-ubuntu # minimal
docker run --rm -e PROFILE=core keisei-battle-ubuntu
docker run --rm -e PROFILE=dev keisei-battle-ubuntu
docker run --rm -e PROFILE=full keisei-battle-ubuntu
Run the whole matrix
for distro in ubuntu alpine debian; do
if [ "$distro" = "ubuntu" ]; then
DF=Dockerfile.install-test
else
DF=Dockerfile.install-test-$distro
fi
docker build -t keisei-battle-$distro -f tests/battle/$DF .
docker run --rm -e PROFILE=full keisei-battle-$distro
done
Container exits 0 = green. Any other code = investigate stdout.
What it asserts (verify.sh)
~/.claude/agents/_blocks≥ 79~/.claude/skills≥ 39~/.claude/hooks/*.sh≥ 10 top-level~/.claude/hooks/_lib/*.sh≥ 2 (gate.sh + test-gate.sh, v0.17)hooks/_lib/test-gate.shself-test passes (11/11)settings.json(if created) parses as valid JSON
Known quirks (2026-04-22)
kei-artifactcrate fails ondev/full:copy_rust_primitive(install/lib-primitives.sh) copiessrc/+tests/only — misses siblingschemas/, soinclude_str!("../schemas/*.json")breaks. Install still exits 0 (build is soft-fail); primitive binary count drops (6/25on full). Fix: copy every sibling dir the crate ships.- Ubuntu 24.04 rustc is 1.75 — too old for
edition = "2024". Dockerfile installs rustup stable;apt install rustcis NOT enough. - Debian 12 rustc is 1.63 — same story. Dockerfile uses rustup.
- Alpine 3.19 rustc is 1.76 — still below edition-2024's 1.85 floor; some primitives may fail to build. That failure IS what this image catches; document as "known-issue on musl" rather than patching here.
- Alpine musl + aws-sdk-s3 / rusqlite / git2: static-link failures
are EXPECTED on musl for the
s3/ SQLite-backed primitives. Treat as matrix signal, not regression. - Apple Silicon hosts: images build linux/arm64 natively; binaries produced inside won't run on x86_64 hosts.