Apple Container Test Runner
RustPython/RustPython
Runs RustPython tests inside a Linux container built with Apple's container CLI, so macOS users can compare Linux results with their local ones.
Fix Fastly Compute Rust crate cargo test failures with "ld: symbol(s) not found" errors for Fastly SDK symbols like versionset, bodynew, reqsend on native host builds.
$ npx skills add divinevideo/divine-mobile --skill fastly-compute-native-test-linker-failure -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install divinevideo/divine-mobile fastly-compute-native-test-linker-failure --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/divinevideo/divine-mobile.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/fastly-compute-native-test-linker-failure .claude/skills/fastly-compute-native-test-linker-failure && 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 "fastly-compute-native-test-linker-failure" agent skill from https://github.com/divinevideo/divine-mobile/tree/main/.agents/skills/fastly-compute-native-test-linker-failure into .claude/skills/fastly-compute-native-test-linker-failure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fastly-compute-native-test-linker-failure", 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/divinevideo/divine-mobile/tree/main/.agents/skills/fastly-compute-native-test-linker-failureType 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 divinevideo/divine-mobile --skill fastly-compute-native-test-linker-failure -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install divinevideo/divine-mobile fastly-compute-native-test-linker-failure --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/divinevideo/divine-mobile.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/fastly-compute-native-test-linker-failure .agents/skills/fastly-compute-native-test-linker-failure && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "fastly-compute-native-test-linker-failure" agent skill from https://github.com/divinevideo/divine-mobile/tree/main/.agents/skills/fastly-compute-native-test-linker-failure into .agents/skills/fastly-compute-native-test-linker-failure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fastly-compute-native-test-linker-failure", 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 divinevideo/divine-mobile --skill fastly-compute-native-test-linker-failure -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install divinevideo/divine-mobile fastly-compute-native-test-linker-failure --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/divinevideo/divine-mobile.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/fastly-compute-native-test-linker-failure .cursor/skills/fastly-compute-native-test-linker-failure && 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 "fastly-compute-native-test-linker-failure" agent skill from https://github.com/divinevideo/divine-mobile/tree/main/.agents/skills/fastly-compute-native-test-linker-failure into .cursor/skills/fastly-compute-native-test-linker-failure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fastly-compute-native-test-linker-failure", 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/divinevideo/divine-mobile.git --path .agents/skills/fastly-compute-native-test-linker-failure--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 divinevideo/divine-mobile --skill fastly-compute-native-test-linker-failure -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install divinevideo/divine-mobile fastly-compute-native-test-linker-failure --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/divinevideo/divine-mobile.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/fastly-compute-native-test-linker-failure .gemini/skills/fastly-compute-native-test-linker-failure && 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 "fastly-compute-native-test-linker-failure" agent skill from https://github.com/divinevideo/divine-mobile/tree/main/.agents/skills/fastly-compute-native-test-linker-failure into .gemini/skills/fastly-compute-native-test-linker-failure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fastly-compute-native-test-linker-failure", 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 divinevideo/divine-mobile fastly-compute-native-test-linker-failureInstalls 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 divinevideo/divine-mobile --skill fastly-compute-native-test-linker-failure -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/divinevideo/divine-mobile.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/fastly-compute-native-test-linker-failure .github/skills/fastly-compute-native-test-linker-failure && 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 "fastly-compute-native-test-linker-failure" agent skill from https://github.com/divinevideo/divine-mobile/tree/main/.agents/skills/fastly-compute-native-test-linker-failure into .github/skills/fastly-compute-native-test-linker-failure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fastly-compute-native-test-linker-failure", 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 divinevideo/divine-mobile --skill fastly-compute-native-test-linker-failure -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install divinevideo/divine-mobile fastly-compute-native-test-linker-failure --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/divinevideo/divine-mobile.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/fastly-compute-native-test-linker-failure .opencode/skills/fastly-compute-native-test-linker-failure && 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 "fastly-compute-native-test-linker-failure" agent skill from https://github.com/divinevideo/divine-mobile/tree/main/.agents/skills/fastly-compute-native-test-linker-failure into .opencode/skills/fastly-compute-native-test-linker-failure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "fastly-compute-native-test-linker-failure", 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.
fastly-compute-native-test-linker-failureFix Fastly Compute Rust crate cargo test failures with "ld: symbol(s) not found" errors for Fastly SDK symbols like versionset, bodynew, reqsend on native host builds.
Fastly Compute Native Test Linker Failure is an agent skill from divinevideo/divine-mobile. Fix Fastly Compute Rust crate cargo test failures with "ld: symbol(s) not found" errors for Fastly SDK symbols like versionset, bodynew, reqsend on native host builds. Use when: (1) cargo test on a Fastly Compute crate fails at link time with errors mentioning libfastly and symbols with names like fastly::http::response::handle::..., (2) You added a [cfg(test)] module to a file in a Fastly Compute binary crate and the tests never seem to run or fail to link, (3) Existing [cfg(test)] modules in src/main.rs or its…
Its SKILL.md is about 2.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 Testing & QA, covering Failing and flaky tests. It works with Rust. The licence is MPL-2.0.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit c3d6f7e. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
cargoFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
docs.rsFrom 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.
Fastly Compute Native Test Linker Failure loads about 2.3k tokens when it runs. Until then it costs about 177 tokens; SKILL.md has 964 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 divinevideo/divine-mobile at commit c3d6f7e, republished under its MPL-2.0 licence (© divinevideo). 964 words, ~2,335 tokens.
.claude/skills/fastly-compute-native-test-linker-failure/SKILL.md (or your agent's skills folder).Fastly Compute Rust binaries link against libfastly, which provides FFI symbols that only
exist when targeting wasm32-wasip1. On a native host (macOS, Linux x86_64, Linux arm64),
the FFI symbols are absent, so linking a test binary for the Fastly Compute crate fails with
errors like:
"_version_set", referenced from:
fastly::http::response::handle::ResponseHandle::set_version::h234bdb33f8878476 in libfastly-XXXX.rlib
"_body_new", referenced from:
fastly::http::body::Body::new::hYYYY in libfastly-XXXX.rlib
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1
error: could not compile `fastly-blossom` (bin "fastly-blossom" test)The error appears during cargo test even if none of your tests actually call Fastly SDK
code — cargo still tries to compile and link the entire binary as a test target.
This has a nasty consequence: any #[cfg(test)] mod tests { ... } block inside a file
compiled into the binary crate is effectively dead code. It never runs via cargo test
because cargo can't link the test binary. Developers add tests, the compiler accepts them,
they're visible in the source tree — but they never execute. Tests that were meant to
regression-guard behavior silently become documentation that rots.
fastly = "0.11.x" (or similar) as a dependencysrc/main.rs and src/lib.rs OR only src/main.rscargo test fails at link time with _version_set / _body_new / _req_send undefinedcargo check --target wasm32-wasip1 succeedscargo check (native) succeeds (library code compiles, just can't link the binary)src/admin.rs, src/blossom.rs, src/metadata.rs, or any file that's
mod-included from src/main.rs but NOT from src/lib.rsFastly's Rust SDK (fastly crate) is designed exclusively for wasm32-wasip1. Its public
API calls unsafe FFI functions (_version_set, _req_send, _body_new, etc.) that the
Fastly Compute runtime provides at execution time inside the POP. On a native host, the
rustc compiler still compiles the library crate, but the linker can't resolve those FFI
symbols because libfastly-native doesn't exist.
cargo test for a mixed lib+bin crate links two artifacts: the library test binary AND
the binary test binary (the main executable with tests enabled). The library test binary
can avoid the SDK symbols if lib.rs doesn't import them transitively. The binary test binary
can't, because main.rs wires the whole Fastly Compute runtime.
src/lib.rs if it doesn't exist:// src/lib.rs — library target, testable natively
pub mod admin_sweep; // pure logic, no Fastly SDK
pub mod classifiers; // pure logic, no Fastly SDK
pub mod parsers; // pure logic, no Fastly SDKpub mod in lib.rs:// src/admin_sweep.rs — pure logic, testable natively
pub enum StuckAction { SkipNotStuck, SkipTooRecent, MarkComplete, ResetPending }
pub fn classify_stuck_record(
is_processing: bool,
uploaded_iso: &str,
threshold_iso: &str,
hls_present: bool,
) -> StuckAction { /* ... */ }
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn skip_not_stuck_when_status_is_not_processing() { /* ... */ }
}src/main.rs, also declare the module so the binary can use it:mod admin_sweep; // same file, compiled twice — once for lib, once for bin// src/admin.rs (part of the bin, uses Fastly SDK types like Request/Response)
pub fn handle_sweep(req: Request) -> Result<Response> {
let is_processing = meta.transcode_status == Some(TranscodeStatus::Processing);
let action = crate::admin_sweep::classify_stuck_record(
is_processing, &meta.uploaded, &threshold_iso, hls_present,
);
// ... match on action, make SDK-level calls ...
}cargo test --libNot cargo test (which tries to link the bin). --lib only builds and runs the
library test binary, which can link because none of its code touches Fastly SDK symbols.
Your lib-exposed module must NOT transitively import anything that touches the Fastly SDK. Common traps:
use crate::blossom::BlobMetadata; — if blossom.rs is in the binary crate and uses
fastly::Request, importing BlobMetadata drags SDK symbols into the lib build.
Solution: pass raw primitives (Option<TranscodeStatus>, &str, etc.) across the boundary,
not full SDK-aware structs.use crate::storage::current_timestamp; — if storage.rs calls fastly::kv_store::*,
same problem. Duplicate the helper in admin_sweep.rs or extract it to a third
SDK-free module in lib.rs.Treat lib.rs as a clean-room: only pure Rust, no SDK types, no platform-specific I/O.
cargo check --target wasm32-wasip1 # must still succeed (bin compiles for deploy)
cargo test --lib # must run and pass (tests exercise pure logic)You can also add to CI:
- run: cargo test --lib
- run: cargo check --target wasm32-wasip1cargo test (no flags) will still fail on this project; that's expected and unavoidable.
Document it in README or CONTRIBUTING so contributors don't waste time on it.
After applying this pattern:
cargo test --lib runs your new tests and they execute (pass or fail, but they RUN)cargo check --target wasm32-wasip1 still produces a deployable WASM#[cfg(test)] mod tests blocks in binary-only files (admin.rs, etc.) are still
dead; consider migrating them into lib-exposed modules or deleting them if the behavior
they test can be movedIn the Divine Blossom repo, the Fastly Compute crate (src/main.rs) had #[cfg(test)]
modules in src/delete_policy.rs, src/error.rs, src/auth.rs, src/blossom.rs, and
src/metadata.rs. None of these ran via cargo test — lib.rs only exposed
resumable_complete. Attempting to add tests to src/admin.rs failed at link time.
The fix was to create src/admin_sweep.rs with zero dependencies on the rest of the crate
(no use crate::blossom, no use crate::storage), add pub mod admin_sweep; to lib.rs,
and have the tests live there. The handler in src/admin.rs (binary-only) extracts four
primitives from BlobMetadata before calling the pure classifier.
Result: cargo test --lib now runs 11 tests (7 new + 4 pre-existing from
resumable_complete). The wasm32-wasip1 build still produces a valid Fastly Compute
binary. The binary-only #[cfg(test)] modules are still dead, but the logic that matters
is now covered.
worker-rs), Vercel Edge
(@vercel/edge), some embedded HAL crates, etc. The "put pure logic in lib, keep SDK
calls in bin" pattern generalizes.src/main.rs that just calls lib::run(). Then everything is in the lib by
default and there's no bin/lib split to worry about. This is the cleanest structure.rust-analyzer and IDE tooling will still happily analyze and type-check the
#[cfg(test)] modules in binary-only files, so they look live. Only cargo test
reveals the truth.fastly-compute-rust-edition2024-fix — different failure mode (build-time
dependency incompatibility) but shares the "Fastly Compute crate has unusual constraints
around native tooling" theme© divinevideo, MPL-2.0. 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 .agents/skills/fastly-compute-native-test-linker-failure of divinevideo/divine-mobile.
Open the folder on GitHubat commit c3d6f7e
Fastly Compute Native Test Linker Failure 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 |
|---|---|---|---|---|---|---|
| Fastly Compute Native Test Linker Failure this skilldivinevideo/divine-mobile | 266 | — | ~2.3k | Automated safety check: Pass | MPL-2.0 | |
| Apple Container Test RunnerRustPython/RustPython | 22k | — | ~467 | Automated safety check: Pass | MIT | |
| GreptimeDB Fuzz CI Failure InvestigationGreptimeTeam/greptimedb | 6.7k | — | ~4.4k | Automated safety check: Pass | Apache-2.0 | |
| OpenLogi Change VerificationAprilNEA/OpenLogi | 23k | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| CI Failure Analysisvortex-data/vortex | 3.3k | — | ~810 | Automated safety check: Pass | Apache-2.0 | |
| RustPython Test Failure InvestigationRustPython/RustPython | 22k | — | ~467 | Automated safety check: Pass | MIT |
RustPython/RustPython
Runs RustPython tests inside a Linux container built with Apple's container CLI, so macOS users can compare Linux results with their local ones.
GreptimeTeam/greptimedb
Diagnoses a failed GreptimeDB fuzz CI job by pulling its GitHub Actions logs and fuzz artifacts, then matching the evidence to the local source code.
AprilNEA/OpenLogi
Plans the smallest check that could disprove a code change in the OpenLogi project, then escalates through reproduction, focused tests and a final gate before a push.
vortex-data/vortex
Analyze Vortex GitHub Actions CI failures. An agent skill from vortex-data/vortex.
RustPython/RustPython
Investigates a failing RustPython test by comparing it with CPython, then either fixes it or gathers the details for an incompatibility report.
webern/cargo-readme
Reviews a GitHub pull request for correctness, architecture, security, backward compatibility, and test coverage.
divinevideo/divine-mobile
Fix ArgoCD ExternalSecret deployment failing with "namespace X is not permitted in project Y".
divinevideo/divine-mobile
Art direction for any content — reads text, PDF, Word, HTML, PPT, then proposes 2-3 creative directions with photography style, mood, and visual language.
divinevideo/divine-mobile
Fix "Null check operator used on a null value" errors when an object is set to null during an async await.
divinevideo/divine-mobile
Add custom metadata headers (x-amz-meta-) to AWS v4 signed requests for GCS S3-compatible API.
divinevideo/divine-mobile
Fix password/secret authentication failures caused by trailing newlines when creating Google Cloud secrets (or similar) with bash here-strings.
divinevideo/divine-mobile
Fix silent video/media processing failures caused by URL extraction code that filters on file extensions (.mp4, .webm, .webp).
Works with
Categories
Fix Fastly Compute Rust crate cargo test failures with "ld: symbol(s) not found" errors for Fastly SDK symbols like versionset, bodynew, reqsend on native host builds. Fastly Compute Native Test Linker Failure is an agent skill from divinevideo/divine-mobile. Fix Fastly Compute Rust crate cargo test failures with "ld: symbol(s) not found" errors for Fastly SDK symbols like versionset, bodynew, reqsend on native host builds.
Fastly Compute Native Test Linker Failure fits situations like: you added a [cfg(test)] module to a file in a Fastly Compute binary crate and the tests never seem to run; existing [cfg(test)] modules in src/main.rs; its sibling modules appear dead despite being present in the source tree; cargo test --lib works but cargo test fails.
Run `npx skills add divinevideo/divine-mobile --skill fastly-compute-native-test-linker-failure -a claude-code`. Or copy the skill folder (.agents/skills/fastly-compute-native-test-linker-failure in divinevideo/divine-mobile) into .claude/skills/fastly-compute-native-test-linker-failure in your project. Claude Code loads it when a task matches its description.
Run `npx skills add divinevideo/divine-mobile --skill fastly-compute-native-test-linker-failure -a codex`. Or copy the skill folder (.agents/skills/fastly-compute-native-test-linker-failure in divinevideo/divine-mobile) into .agents/skills/fastly-compute-native-test-linker-failure 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 divinevideo/divine-mobile --skill fastly-compute-native-test-linker-failure -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fastly-compute-native-test-linker-failure, .gemini/skills/fastly-compute-native-test-linker-failure, .github/skills/fastly-compute-native-test-linker-failure and .opencode/skills/fastly-compute-native-test-linker-failure in your project.
Going by SKILL.md and its folder, Fastly Compute Native Test Linker Failure needs the command-line tools its instructions call (cargo).
SKILL.md names 1 domain. As links in the text: docs.rs. 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.
Fastly Compute Native Test Linker Failure is published under the MPL-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.3k 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 Fastly Compute Native Test Linker Failure: Apple Container Test Runner (RustPython/RustPython, 22k stars), GreptimeDB Fuzz CI Failure Investigation (GreptimeTeam/greptimedb, 6.7k stars), OpenLogi Change Verification (AprilNEA/OpenLogi, 23k stars) and CI Failure Analysis (vortex-data/vortex, 3.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
divinevideo (a GitHub organization) maintains it in divinevideo/divine-mobile, which has 266 GitHub stars. The repository holds 103 skills in this directory. The repository was last updated on October 10, 2026.
Source: divinevideo/divine-mobile on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.