Skip to content

chore: consolidate 9 root container files to 3 Containerfiles - #110

Merged
hyperpolymath merged 2 commits into
mainfrom
chore/container-consolidation
Aug 4, 2026
Merged

chore: consolidate 9 root container files to 3 Containerfiles#110
hyperpolymath merged 2 commits into
mainfrom
chore/container-consolidation

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

Closes #67.

Shape

File Action
Dockerfile.oblibeny-bootstrap kept → Containerfile.bootstrap (justfile distroless-bootstrap)
Dockerfile.oblibeny-minimal kept → Containerfile.minimal (justfile distroless-image)
Dockerfile.liboqs kept → Containerfile.liboqs — future vehicle for the deferred #62 full-link FFI gate (header comment added)
Containerfile, Containerfile.crypto, Dockerfile.argon2, Dockerfile.crypto-builder, Dockerfile.lago-grey-minimal, Dockerfile.libsodium deleted — Lago-Grey era experiments, referenced only in prose docs
svalinn-compose.yaml moved → deploy/ (deployment composition, not a build file)

justfile distroless recipes switch docker→podman with the new names (estate podman-first convention; rootful docker left uid-0 artifacts before). Prose docs (BUILD-LOG.md, FIRST-IMAGE-SUCCESS.md, CRYPTO-FFI-COMPLETE.md) get historical-document notes; docs/DISTROLESS-BOOTSTRAP.adoc + docs/SECURITY-ARCHITECTURE.adoc updated so no copy-pasteable command references a deleted file.

Verified

  • just --list parses; grep confirms zero Dockerfile. references remain in justfile/workflows/adoc
  • Owner action before merge: podman-verify the three kept images build, e.g. podman build -f Containerfile.bootstrap .

🤖 Generated with Claude Code

Keep + rename (podman-first per estate convention):
- Dockerfile.oblibeny-bootstrap → Containerfile.bootstrap
- Dockerfile.oblibeny-minimal   → Containerfile.minimal
- Dockerfile.liboqs             → Containerfile.liboqs (future vehicle
  for the deferred #62 full-link Zig FFI gate; header says so)

Delete (Lago-Grey era experiments, referenced only in prose):
Containerfile, Containerfile.crypto, Dockerfile.argon2,
Dockerfile.crypto-builder, Dockerfile.lago-grey-minimal,
Dockerfile.libsodium

svalinn-compose.yaml moves to deploy/ alongside the other deployment
manifests. justfile distroless recipes switch docker→podman with the
new names. BUILD-LOG.md / FIRST-IMAGE-SUCCESS.md / CRYPTO-FFI-COMPLETE.md
get historical-document notes; docs/DISTROLESS-BOOTSTRAP.adoc and
docs/SECURITY-ARCHITECTURE.adoc updated to the new names.

Zero `Dockerfile.` references remain in tooling (justfile, workflows,
adoc).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@gitar-bot

gitar-bot Bot commented Aug 4, 2026

Copy link
Copy Markdown

Note

Automatic reviews are paused because your trial's included automatic processing has been used for this period. Upgrade now, or comment "Gitar review" to run a review anytime.
Learn more

Code Review ✅ Approved

Consolidates nine root container files down to three Containerfiles and updates justfile recipes to use podman. No issues found.

Auto-approved and auto-merge armed: No blocking issues found.
Please see Auto-approve Docs for details on setting custom approval criteria. — merges when pipeline and required approvals pass.

Options

Display: compact → Showing less information.

Comment with these commands to change the behavior for this request:

Compact
gitar display:verbose         

Important

Your trial ends in 6 days — upgrade now to keep code review, CI analysis, auto-apply, custom automations, and more.

Was this helpful? React with 👍 / 👎 | Gitar

@gitar-bot

gitar-bot Bot commented Aug 4, 2026

Copy link
Copy Markdown

⚠️ Gitar auto-approved this PR but could not enable auto-merge: auto-merge is disabled for this repository — enable "Allow auto-merge" in the repository settings.

@gitar-bot gitar-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Gitar has auto-approved this PR and enabled auto-merge (configure)

@hyperpolymath
hyperpolymath merged commit ab1b66e into main Aug 4, 2026
@hyperpolymath
hyperpolymath deleted the chore/container-consolidation branch August 4, 2026 03:55
hyperpolymath added a commit that referenced this pull request Aug 4, 2026
…#111)

Closes #68. Advances #63 (owner action below) and #79 (skeleton only;
stays open).

## What

- **CONTRIBUTING**: the `.md` was un-instantiated template rot — opened
mid-code-fence, raw `{{MAIN_BRANCH}}` token, a repository tree with five
nonexistent directories, ended mid-block. Real content rewritten into
`CONTRIBUTING.adoc` (actual tree, `docs/TOOLCHAIN.adoc` +
`.tool-versions` toolchain, proof-gate discipline); `.md` deleted;
README link updated.
- **GOVERNANCE / MAINTAINERS**: inverse situation — the `.adoc` twins
are the rich repo-specific docs; the generic stubs (`GOVERNANCE.md`,
bare `MAINTAINERS`) deleted.
- **#79 skeleton**: `docs/learning-paths/README.adoc` seeds the
end-user/developer/maintainer outline.

## Owner action — `.claude/CLAUDE.md` replacement (#63)

The file is agent-edit-blocked (self-modification guardrail). Please
replace its contents with the text below, which fixes: the six `.scm`
references (now `.machine_readable/6a2/*.a2ml`), the phantom
`guix.scm`/`deno.json` claims, and the foreign language-policy table
(AffineScript/Deno/Tauri — a different project's stack).

```markdown
## Machine-Readable Artefacts

Structured project metadata lives in `.machine_readable/6a2/` (A2ML format):

- `STATE.a2ml`     - Current project state and progress
- `META.a2ml`      - Architecture decisions and development practices
- `ECOSYSTEM.a2ml` - Position in the ecosystem and related projects
- `AGENTIC.a2ml`   - AI agent interaction patterns
- `NEUROSYM.a2ml`  - Neurosymbolic integration config
- `PLAYBOOK.a2ml`  - Operational runbook
- `0-AI-MANIFEST.a2ml` - Manifest

Contractiles live in `.machine_readable/contractiles/`.

---

# CLAUDE.md - AI Assistant Instructions

## This Repo's Stack (all pinned in .tool-versions)

| Language/Tool | Use Case |
|---------------|----------|
| **OCaml 5.1.1 + dune** | The Oblíbený compiler (lib/, bin/, test/) |
| **Idris2 0.7.0** | ABI proof layer (src/abi/, oblibeny-abi.ipkg) |
| **Zig 0.13** | Crypto FFI + obli-pkg (ffi/zig/); 0.14+ breaks callconv(.C) |
| **just** | Task runner — all operations go through the justfile |
| **Bash/POSIX shell** | Scripts, kept minimal |
| **Guile Scheme** | Root spec files (ANCHOR*.scm, SPEC*.scm, AUTHORITY*.scm) |

Do not introduce Node/npm/TypeScript/Python/Go — this repo has no JS/Python
surface and the estate bans them as replacements-available.

## The Proof Gate (non-negotiable)

- CI (`ci.yml`) builds the OCaml language, runs the conformance suite,
  type-checks (= proves) the Idris2 ABI layer, compile-checks the Zig FFI,
  and rejects soundness escape hatches (`believe_me`, `postulate`,
  `assert_total`, `partial`, `idris_crash`, holes) in `src/abi/Crypto.idr`
  and `src/abi/Packages`.
- Local mirror: `just ci` + `just proofs`. Never weaken a proof to make
  a change pass.

## Packaging

- Containers: `Containerfile.bootstrap` / `Containerfile.minimal` /
  `Containerfile.liboqs` (podman-first).
- `flake.nix` is legacy (estate ruling: Guix-only; a `guix.scm` migration
  is an open follow-up).

## Security Requirements

- No MD5/SHA1 for security (use SHA256+)
- HTTPS only (no HTTP URLs)
- No hardcoded secrets
- SHA-pinned dependencies (actions included)
- SPDX license headers on all files
```

Suggested follow-up issue rather than folding in here: *"packaging:
replace flake.nix with guix.scm"* (Nix-retired estate ruling).

**Note**: `CONTRIBUTING.adoc` links `docs/TOOLCHAIN.adoc`, which lands
in PR #108 — merge that first (they're ordered #108#109#110 →
this).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gitar-approved Added by Gitar

Projects

None yet

Development

Successfully merging this pull request may close these issues.

build: consolidate the 8 root container build files

1 participant