feat(apps): skainet-plan CLI — memory plan of a GGUF from its header, budget fit, suggestions, tensor list by TensorId (SKEEP-003 M0, S0.8) - #1057
Merged
Conversation
Contributor
Author
|
Local gate
|
… budget fit, suggestions, tensor list by TensorId (SKEEP-003 M0) Milestone M0 sample (#1001, PRD §4.3, M0-F6 JVM): `skainet plan <model.gguf> [--ctx N] [--budget 1.3G] [--kv bf16|turboquant] [--prefill-chunk N] [--list <glob>] [--no-budget]` prints the PRD table — weights (resident), KV cache at ctx with the alternate mode, forward slab, heap headroom, total against the budget with ✔/✘ and ≥ 2 suggestions with savings — and lists tensors by TensorId ("TensorId · Format · n · bytes · ← gguf name"). Exit code 1 when the plan does not fit. Reads the GGUF header only. New Kotlin/JVM application module skainet-apps/skainet-plan (kotlinx-cli, pattern of skainet-tensor-tools), README with sample output, unit tests for size parsing, glob matching and the list renderer; stdout forced to UTF-8. The planner itself is commonMain (sk.ainet.lang.memory.plan, StreamingGGUFReader.planInput) and callable from Android/Native directly; a Kotlin/Native binary is a follow-up. Closes #1013 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
michalharakal
force-pushed
the
feature/1012-memory-plan
branch
from
August 22, 2026 21:08
bcad0de to
f0e2e08
Compare
michalharakal
force-pushed
the
feature/1013-skainet-plan-cli
branch
from
August 22, 2026 21:08
223d55b to
b6a6824
Compare
This was referenced Aug 22, 2026
Contributor
Author
|
Rebased onto the updated base after #1053 merged into |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
SKEEP-003 slice S0.8 — the milestone M0 sample app (#1001, PRD §4.3, M0-F6 JVM):
skainet plan <model.gguf> [--ctx N] [--budget 1.3G] [--kv bf16|turboquant] [--prefill-chunk N] [--list <glob>] [--no-budget].Prints the PRD table — weights (resident), KV cache at ctx with the alternate mode, forward slab, heap headroom, total against the budget with ✔/✘ and ≥ 2 suggestions with savings — and lists tensors by
TensorId(TensorId · Format · n · bytes · ← gguf name). Exit code 1 when the plan does not fit. Reads the GGUF header only.skainet-apps/skainet-plan(kotlinx-cli, same pattern asskainet-tensor-tools), README with sample output, unit tests (size parsing, glob matching, list renderer); stdout forced to UTF-8 for the table glyphs.commonMain(sk.ainet.lang.memory.plan,StreamingGGUFReader.planInput, feat(memory): MemoryPlan from the GGUF header — weights, KV, forward slab, budget fit, suggestions (SKEEP-003 P1, S0.7) #1056) and callable from Android / Kotlin/Native directly; a native binary is a follow-up sub-issue (no KMP app precedent inskainet-apps).Smoke run on a synthetic 2-layer llama GGUF (header generated for the test; 20 tensors):
Stacked on #1056 (S0.7 —
MemoryPlan); retarget todevelopafter it merges.Test plan
Full local gate (
scripts/pr-gate.sh, JDK 25); results in the first comment.:skainet-apps:skainet-plan:test3/3,installDist+ the smoke run above (exit 0 when fitting, 1 otherwise).Closes #1013
🤖 Generated with Claude Code