Migrate Core Code to Submodules
tinyhumansai/openhuman
Plans and carries out moving non-host-specific code and its tests from the OpenHuman core into vendored tiny submodule libraries, then releases the submodule and re-pins the host.
Pre-release QA for apr-cli — runs all gates that prevent crates.io publish breakage
$ npx skills add paiml/aprender --skill pre-release -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install paiml/aprender pre-release --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/paiml/aprender.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/pre-release .claude/skills/pre-release && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "pre-release" agent skill from https://github.com/paiml/aprender/tree/main/.claude/skills/pre-release into .claude/skills/pre-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pre-release", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/paiml/aprender/tree/main/.claude/skills/pre-releaseType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add paiml/aprender --skill pre-release -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install paiml/aprender pre-release --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/paiml/aprender.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/pre-release .agents/skills/pre-release && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pre-release" agent skill from https://github.com/paiml/aprender/tree/main/.claude/skills/pre-release into .agents/skills/pre-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pre-release", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add paiml/aprender --skill pre-release -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install paiml/aprender pre-release --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/paiml/aprender.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/pre-release .cursor/skills/pre-release && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "pre-release" agent skill from https://github.com/paiml/aprender/tree/main/.claude/skills/pre-release into .cursor/skills/pre-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pre-release", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/paiml/aprender.git --path .claude/skills/pre-release--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add paiml/aprender --skill pre-release -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install paiml/aprender pre-release --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/paiml/aprender.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/pre-release .gemini/skills/pre-release && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "pre-release" agent skill from https://github.com/paiml/aprender/tree/main/.claude/skills/pre-release into .gemini/skills/pre-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pre-release", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install paiml/aprender pre-releaseInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add paiml/aprender --skill pre-release -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/paiml/aprender.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/pre-release .github/skills/pre-release && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "pre-release" agent skill from https://github.com/paiml/aprender/tree/main/.claude/skills/pre-release into .github/skills/pre-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pre-release", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add paiml/aprender --skill pre-release -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install paiml/aprender pre-release --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/paiml/aprender.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/pre-release .opencode/skills/pre-release && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "pre-release" agent skill from https://github.com/paiml/aprender/tree/main/.claude/skills/pre-release into .opencode/skills/pre-release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pre-release", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
pre-releasePre-release QA for apr-cli — runs all gates that prevent crates.io publish breakage
Pre Release is an agent skill from paiml/aprender. Pre-release QA for apr-cli — runs all gates that prevent crates.io publish breakage
Its SKILL.md is about 4.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development. It works with Rust. The repository describes itself as: Next Generation Machine Learning, Statistics and Deep Learning in PURE Rust. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 828ccb8. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
Bash(cargo:*)Bash(grep:*)Bash(make:*)Bash(bash:*)Bash(batuta:*)Bash(pmat:*)Bash(git:*)Bash(head:*)Bash(tail:*)Bash(wc:*)…and 8 more on the same allowed-tools line.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
cargobashgitpython3makerustcFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Pre Release loads about 4.3k tokens when it runs. Until then it costs about 24 tokens; SKILL.md has 2,054 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from paiml/aprender at commit 828ccb8, republished under its MIT licence (© paiml). 2,054 words, ~4,286 tokens.
.claude/skills/pre-release/SKILL.md (or your agent's skills folder).grep '^version' crates/apr-cli/Cargo.toml | head -1cargo search apr-cli 2>/dev/null | head -1git branch --show-currentgit status --short | wc -lcargo test -p apr-cli --lib 2>&1 | grep 'test result' | tail -1Written down because three skills describe overlapping release work and the duplication is harder to see in prose than in code: nothing runs it, and no diff surfaces it (aprender#2640, D6).
| skill | scope | source of truth for |
|---|---|---|
dogfood (.claude/skills/dogfood/SKILL.md) | ANY Rust crate in the fleet | the generic pre-release protocol and scripts/dogfood.sh |
apr-dogfood | this repo's shipped surface | gate coverage against the surface ledger |
pre-release (this file) | apr-cli only | the crates.io publish gates below |
Do not restate a gate that lives in another of the three. If a gate here also
belongs to the fleet protocol, it belongs in scripts/dogfood.sh and this file
should reference it — that is exactly how the runner came to exist twice.
Run all independent gates in parallel where possible.
Run the apr-cli pre-release QA checklist below. This checklist was derived from 5 historical release failures (CB-510, PMAT-262, GH-342, GH-343, GH-344/345) using Five-Whys root cause analysis on git history.
For each gate, run the check, report PASS/FAIL, and if FAIL explain the root cause and how to fix it. At the end, give a GO/NO-GO verdict.
Run all independent gates in parallel where possible.
Verify all include!() files are tracked by git and included in the cargo package:
bash scripts/check_include_files.sh
bash scripts/check_package_includes.shIf either fails, files will be missing from crates.io publish.
Check that committed Cargo.toml files have NO external path = "../ references (sibling repos). Only intra-workspace path = "../.." is allowed:
grep -n 'path = "\.\./\.\.' Cargo.toml crates/apr-cli/Cargo.toml | grep -v '../..'Any external path deps mean cargo install apr-cli will fail for users who don't have sibling repos.
Search for #[cfg( attributes on pub/pub(crate) functions in apr-cli that might hide essential code:
grep -rn '#\[cfg(' crates/apr-cli/src/ --include='*.rs' | grep -v test | grep -v '// ' | grep -v '#\[cfg(test' | grep -v '#\[cfg(not(feature'Review each cfg gate. Common failure: #[cfg(all(feature = "inference", feature = "cuda"))] applied to utility functions that should always be available. Cross-reference with the feature flags in crates/apr-cli/Cargo.toml to verify.
Verify the declared rust-version is accurate:
grep rust-version Cargo.toml crates/apr-cli/Cargo.tomlrustc --versionRead this before running it. cargo package re-resolves every dependency
against crates.io, so each workspace sibling resolves to its already published
copy rather than to this tree. apr-cli has 26 workspace-sibling dependencies,
five of which publish in the LAST cascade tier — so Gate 5 for apr-cli is not
merely "late", it is meaningful only after the cascade has finished. Run it at
the wrong stage and you get dozens of symbol-not-found errors:
error[E0432]: unresolved import `aprender::format::q4k_output_size_estimate`
error[E0432]: unresolved import `entrenar_lora::plan_with_rank`
error[E0433]: could not find `CancelToken` in `generate`Those three symbols are genuine post-0.63.0 additions (verified against the published 0.63.0 tarballs). Nothing is broken. Do not abort a cut over this.
STAGE-PRECONDITION: cargo package -p apr-cli requires stage CASCADE_READY STAGE-PRECONDITION: cargo package -p apr-format requires stage MEANINGFUL
Ask the tree which stage it is at before interpreting any result:
bash scripts/check_gate5_stage.sh --explain apr-cli| Verdict | What Gate 5 means right now |
|---|---|
MEANINGFUL | No workspace-sibling deps. A failure is a real defect. |
PRE_BUMP | The workspace version is already on crates.io, so siblings resolve to the stale API at the same version number. Symbol errors are expected. Bump, then re-check. |
POST_BUMP_PRE_CASCADE | Version bumped, siblings not published at it yet. Cargo says failed to select a version … candidate versions found which didn't match — not no matching package named, which is the distinct error for a crate that was never published at all. Expected until the cascade reaches them. |
CASCADE_READY | Every sibling is live at this version. A failure here is a real defect. |
The stage-independent substitute. apr-format is a workspace leaf with zero
sibling dependencies, so it packages identically at every stage and still proves
the tarball/include!()/manifest machinery works:
cargo package -p apr-format --allow-dirty 2>&1 | tail -5Run that pre-bump. Run the real gate
cargo package -p apr-cli --allow-dirty 2>&1 | tail -5only once check_gate5_stage.sh --explain apr-cli reports CASCADE_READY —
i.e. at the END of the publish cascade, not at apr-cli's own tier. apr-cli is
tier 10 of 13 in scripts/cascade-publish.sh but depends on five crates that
publish in tier 13, so tier 10 is still too early.
Do NOT substitute Gate 11 here. Gate 11 is itself pre-bump-only: after the
version bump cargo publish -p aprender --dry-run --no-verify fails with the
very candidate versions found which didn't match string Gate 11's own text
declares a FAILURE.
The old wording of this gate said "if it fails, cargo install apr-cli will fail
for users". That is false pre-bump — apr-cli 0.63.0 built fine on docs.rs from
published deps alone while this gate was red on the tree.
Enforced by scripts/check_gate5_stage.sh (contract
contracts/publish-workspace-v1.yaml, FALSIFY-PUB-005/006/007).
Verify all tests pass:
cargo test -p apr-cli --lib 2>&1 | tail -3cargo fmt -p apr-cli -- --checkReport any formatting issues (don't fix them — just report).
Verify the local version is GREATER than the published crates.io version. If not, the publish will fail.
Compare local version from crates/apr-cli/Cargo.toml against cargo search apr-cli.
Run static analysis for high-severity findings:
batuta bug-hunter analyze crates/apr-cli/ --format json 2>/dev/null | python3 -c "
import sys, json
data = json.load(sys.stdin)
findings = data.get('findings', [])
high = [f for f in findings if f.get('severity') == 'High']
categories = {}
for f in high:
cat = f.get('category', 'Unknown')
categories[cat] = categories.get(cat, 0) + 1
print(f'High findings: {len(high)}')
for cat, count in sorted(categories.items(), key=lambda x: -x[1]):
print(f' {cat}: {count}')
# Flag non-false-positive categories
real = {k: v for k, v in categories.items() if k not in ['SecurityVulnerabilities']}
if any(v > 0 for v in real.values()):
print(f'WARNING: {sum(real.values())} non-security High findings need triage')
"SecurityVulnerabilities are expected (CLI takes file paths — not a web service). Focus on HiddenDebt, MemorySafety, SilentDegradation, LogicErrors.
If sibling repos are present, verify their versions are compatible:
make check-siblings 2>&1The v0.50.0 cascade FAILED MID-PUBLISH (29/68 crates live, then stuck) on two classes that
path-deps mask and cargo metadata does NOT catch:
(a) sibling path-deps with NO version field — cargo publish requires a version on every
non-dev dep (locally the path resolves, so it builds fine; publishing errors dependency X does not specify a version);
(b) version-pinned sibling DEV-dependencies forming publish CYCLES — cargo tolerates dev-dep
cycles when building locally, but crates.io rejects them (failed to select a version ... candidate versions found which didn't match). Two unused dev-deps (trueno-viz, renacer) closed real cycles.
Only a real publish dry-run of the FLAGSHIP resolves the whole 68-crate tree against the registry:
cargo publish -p aprender --dry-run --allow-dirty --no-verify 2>&1 | tail -6PASS if it reaches Packaged/Uploading with NO does not specify a version and NO candidate versions found which didn't match. FAIL on either: a sibling path-dep needs a version field, or a
sibling dev-dep must be made path-only (no version) so cargo strips it from the published manifest
and the cycle breaks. Also dry-run apr-cli, aprender-core, aprender-serve if aprender passes,
to confirm the foundational tier. See memory/feedback_crates_io_devdep_publish_cycles.md.
Gate 11 is PRE-BUMP ONLY (#2543). Its pass criterion is stage-dependent in
the mirror image of Gate 5: once the workspace version is bumped, every crate
— including the flagship aprender — dry-runs to failed to select a version for the requirement … candidate versions found which didn't match, because no
sibling is published at the new version yet. That is the exact string this gate
declares a FAILURE, so post-bump Gate 11 self-reports a defect that does not
exist. Run Gate 11 before cargo set-version; after the bump, the equivalent
signal is Gate 5 on a zero-sibling crate plus
scripts/check_gate5_stage.sh --explain <crate>.
bash scripts/check_multiplatform_dogfood.shEvery release is dogfooded on EVERY supported platform, not just the one the release engineer is sitting at. This gate does not check that someone ran a sweep — it checks that a dated receipt exists for each host, for the version being cut. A receipt is evidence; a checklist tick is not. A receipt from a previous release is STALE and fails.
| host | platform | why it is in the matrix |
|---|---|---|
lambda | x86_64 Linux + RTX 4090 (sm_89) | consumer x86, AVX2 path |
intel | x86_64 Linux, Xeon W-3245 | AVX-512 + VNNI path |
gx10 | aarch64 Linux + GB10 (sm_121) | ARM server, unified memory |
mini | arm64 macOS + Metal | Apple silicon, no /proc, APFS case-insensitive |
Each host is in the matrix because it is a distinct combination of ISA, OS and accelerator — not because we happen to own it.
What one afternoon of this bought (the 0.64.0 cut). The published crate had never been verified on either arm64 platform:
matmul_q4k_f32_parallel on non-x86 is a direct call to the serial
scalar routine. The numbers are correct and only the speed is wrong, so no
correctness gate could ever have caught it./proc/meminfo and .unwrap_or(u64::MAX), so on macOS
the threshold becomes ~12.8 exabytes and the guard can never fire. Its only test
self-skips with cfg!(target_os = "linux") — the platform where it is broken.block v0.1.6 faces future-rustc rejection and sits under wgpu -> metal,
the only GPU backend macOS has. Entirely absent from the Linux dependency graph.Each is invisible from a single host by construction. That is the argument for this gate: not diligence theatre, but the only way to see this class of defect.
PHASE. This gate's subject is the PUBLISHED ARTIFACT, so it cannot be satisfied before
the cascade. install_rc is the exit status of cargo install aprender, which resolves
from crates.io — a pre-cut receipt would have to install a version that does not exist yet.
The evidence for that is the repo's own history: 0.63.0 published 2026-08-01 and its
receipts are dated 2026-08-22, and until 0.64.0 this gate had never passed for any
release. It is a RELEASE-COMPLETION gate, not a cut gate (aprender#2658).
So a release is not complete until every declared host carries a receipt for the exact version published. That is the andon: the cut may proceed on a GO from the other gates, and the release stays open until the sweep lands.
The bench field (aprender#2667). Each receipt also carries a bench block, and it is
deliberately CPU-class, apr-vs-apr, with no comparator:
{"bench": {"samples_ms": [...], "n": 7, "runs_discarded": 0,
"provenance": {"compute_class": "cpu", "binary_sha256": "...",
"resolution": "path", "feature_set": ["inference"]}}}A llama.cpp ratio here would be uncomputable, not merely unwise. cargo install aprender builds CPU-only on all four hosts (crates/apr-cli/Cargo.toml default carries
no cuda and no wgpu) while the comparator runs CUDA on lambda/gx10 and Metal on mini.
The ratio would read ~0.05–0.10, nobody would red a release over it (correctly), the row
would go EXISTENCE-ONLY and the threshold would never arm — the same shape as this
gate before #2658. The tree already documents that collapse at
crates/apr-cli/src/dispatch.rs:165: ratio_median=0.070x … a fabricated 14x regression with nothing wrong in apr's decode path.
An apr-vs-apr self-ratchet catches our own regressions, which is the actual goal,
without inventing a number nobody will act on. The comparator ratio lives in the
pre-publish phase, from the tree, where --features cuda exists.
Threshold. Derived per host by bootstrap over the recorded raw samples, armed only
once ≥3 receipts carrying a bench block exist at origin/main for that host. No human
types a number. Do not use 3 × pooled relative stddev: it returns GREEN on the only
regression this repo has on record, and its power falls as data accumulates
(aprender#2675, falsified by execution in scripts/check_bench_threshold.sh).
Recording a receipt. Run the sweep on the host, then write
evidence/dogfood/<version>/<host>.json with at least:
{"host":"gx10","arch":"aarch64-unknown-linux-gnu","version_tested":"0.64.0",
"date":"2026-08-22","install_rc":0}Richer fields (surface counts, findings, notable, verdict) are encouraged — the receipts
already under evidence/dogfood/ are the worked examples.
The tracked implementation of this step is scripts/release/host_receipt.sh, which
scripts/release/autopilot.sh ships to each host after publish (#3731). Never hand-roll
the sweep; scripts/check_dogfood_shim.sh row 1b allows those two scripts only while
this paragraph names them.
The sweep must cargo install the PUBLISHED crate, not build the local tree.
Building the tree tests what you have; installing tests what a user gets. On a box with a
pre-existing apr the install correctly fails closed (rc=101) before compiling — use
--force and record that in the receipt.
Watch the CI host. intel runs all 16 self-hosted runners. Build there with
-j 6, not the default 32: the merge-queue timeout counts runner wait, so a build that
steals cores is indistinguishable from a flake and can evict queued PRs.
Non-vacuity: the gate refuses a matrix of fewer than 4 hosts, because a shrinking
matrix silently narrows what "verified" means. Mutation-verified in all three directions —
a stale receipt version, a non-zero install_rc, and a shortened host list each turn it
RED.
After running all gates, provide:
Do NOT publish or modify any files. This is a read-only audit.
© paiml, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/pre-release of paiml/aprender.
Open the folder on GitHubat commit 828ccb8
Pre Release next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Pre Release this skillpaiml/aprender | 127 | — | ~4.3k | Automated safety check: Pass | MIT | |
| Migrate Core Code to Submodulestinyhumansai/openhuman | 42k | — | ~2.6k | Automated safety check: Pass | GPL-3.0 | |
| Rust Best Practicesfarm-fe/farm | 5.6k | 3 repos | ~1.1k | Automated safety check: Pass | MIT | |
| OpenLogi macOS Permissions TriageAprilNEA/OpenLogi | 23k | — | ~2.5k | Automated safety check: Notes | Apache-2.0 | |
| RTK Rust Design Patternsrtk-ai/rtk | 83k | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Release Skillsnexmoe/eve | 421 | 3 repos | ~3.3k | Automated safety check: Pass | None |
tinyhumansai/openhuman
Plans and carries out moving non-host-specific code and its tests from the OpenHuman core into vendored tiny submodule libraries, then releases the submodule and re-pins the host.
farm-fe/farm
Guide for writing idiomatic Rust code based on Apollo GraphQL's best practices handbook.
AprilNEA/OpenLogi
Decides whether an OpenLogi device problem on macOS is a privacy-permission (TCC) problem, using agent log lines, and says which identity needs which grant.
rtk-ai/rtk
Describes seven Rust design patterns for the RTK CLI filter modules, with when to use each, RTK examples, and notes on when a pattern is overkill.
nexmoe/eve
Universal release workflow. An agent skill from nexmoe/eve.
teambit/bit
Work on the pnpm Rust engine (@pnpm/napi, the pacquet crates) that bit install runs through.
paiml/aprender
Find which provable-contracts YAML contracts a Hugging Face model needs, create missing contracts, generate Rust artifacts, and implement all stubs.
paiml/aprender
Sovereign-stack PRE-RELEASE protocol. An agent skill from paiml/aprender.
paiml/aprender
Dogfood the aprender release surface — derive every interface from the built binaries, measure gate coverage against the surface ledger, exercise the covered set, and emit a go/no-go receipt
paiml/aprender
A skill your agent uses to perform a comprehensive code quality and architecture review of the current project or repository, identifying code smells, architectural debt, performance bottlenecks…
paiml/aprender
Adversarial PR review that must show HOW it knows — five consultations (one of them a reviewing agent from a different vendor), a three-state availability encoding no prose can fake, and a signed…
Works with
Categories
Pre-release QA for apr-cli — runs all gates that prevent crates.io publish breakage. Pre Release is an agent skill from paiml/aprender.
Pre Release fits situations like: development work in your project.
Run `npx skills add paiml/aprender --skill pre-release -a claude-code`. Or copy the skill folder (.claude/skills/pre-release in paiml/aprender) into .claude/skills/pre-release in your project. Claude Code loads it when a task matches its description.
Run `npx skills add paiml/aprender --skill pre-release -a codex`. Or copy the skill folder (.claude/skills/pre-release in paiml/aprender) into .agents/skills/pre-release in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add paiml/aprender --skill pre-release -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pre-release, .gemini/skills/pre-release, .github/skills/pre-release and .opencode/skills/pre-release in your project.
Going by SKILL.md and its folder, Pre Release needs the command-line tools its instructions call (cargo, bash, git, python3, make and rustc). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Bash(cargo:*), Bash(grep:*), Bash(make:*), Bash(bash:*), Bash(batuta:*), Bash(pmat:*), Bash(git:*), Bash(head:*), Bash(tail:*), Bash(wc:*), Bash(cat:*), Bash(awk:*), Bash(sed:*), Bash(diff:*), Bash(rustup:*), Read, Glob, Grep.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Pre Release is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.3k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Pre Release: Migrate Core Code to Submodules (tinyhumansai/openhuman, 42k stars), Rust Best Practices (farm-fe/farm, 5.6k stars), OpenLogi macOS Permissions Triage (AprilNEA/OpenLogi, 23k stars) and RTK Rust Design Patterns (rtk-ai/rtk, 83k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
paiml (a GitHub organization) maintains it in paiml/aprender, which has 127 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 8, 2026.
Source: paiml/aprender on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.