Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add bentleypark/claude-code-mobile-spine/plugin install mobile-spineWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/bentleypark/claude-code-mobile-spine/init)<a href="https://agentmods.dev/skills/bentleypark/claude-code-mobile-spine/init"><img src="https://agentmods.dev/badge/skills/bentleypark/claude-code-mobile-spine/init/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/bentleypark/claude-code-mobile-spine/init"><img src="https://agentmods.dev/badge/skills/bentleypark/claude-code-mobile-spine/init.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00099 | $0.06917 |
| Opus 5.5 | $0.00040 | $0.02767 |
| Sonnet 5.5 | $0.00020 | $0.01383 |
| Haiku 4.5 | $0.00010 | $0.00692 |
Grade B, and why
init scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
cat > "<TARGET>/.claude/mobile-spine.config.yaml" <<'EOF' How it starts
The opening of the file, as written. The whole thing — 461 lines — stays where its author put it; the contents beside it link to each section on GitHub.
mobile-spine:init
Bootstrap a new mobile-spine workspace by interviewing the user, then writing the user-customizable files into the chosen install location and a .claude/mobile-spine.config.yaml capturing the interview answers.
The static templates this skill consumes live next to this SKILL.md under ./templates/. They are workspace-data only — CLAUDE.md, SETUP.md, README.md, LICENSE, .gitignore, .claude/settings.json, a thin .claude/commands/feat.md stub, _context/operations.md, plus .gitkeep files for empty directories.
Not scaffolded — the five subagents (api-agent / pm-agent / android-agent / ios-agent / docs-agent) and the full /feat / /feasibility command logic are plugin primitives (live in plugins/mobile-spine/agents/ and plugins/mobile-spine/commands/, served globally by the plugin). The workspace's .claude/commands/feat.md is a thin delegation stub. The repo-facing agents read .claude/mobile-spine.config.yaml at invocation to pick up the workspace's org / app / baseBranch / figma / copyright values (docs-agent reads no config). This means /plugin marketplace update claude-code-mobile-spine propagates agent + /feat / /feasibility improvements to every workspace automatically — without modifying any workspace-owned file.
Step 1 — Locate the templates directory
Resolve in three tiers. The harness should set $CLAUDE_PLUGIN_ROOT for
plugin-installed runs, but in practice this is not guaranteed (e.g. for
directory-typed marketplaces or older Claude Code versions). The cache and
working-tree fallbacks make the skill robust to either case.
TEMPLATES_DIR=""
# Tier 1 — plugin-installed via $CLAUDE_PLUGIN_ROOT (canonical when set).
# Skip when unset to avoid expanding to "/skills/init/templates" (absolute,
# never matches).
if [ -n "${CLAUDE_PLUGIN_ROOT:-}" ]; then
cand="$CLAUDE_PLUGIN_ROOT/skills/init/templates"
if [ -f "$cand/CLAUDE.md" ] && [ -f "$cand/SETUP.md" ]; then
TEMPLATES_DIR="$cand"
fi
fi
# Tier 2 — known plugin cache (versioned glob). Picks the first matching
# version under $HOME/.claude/plugins/cache/.../mobile-spine/<ver>/.
if [ -z "$TEMPLATES_DIR" ]; then
for cand in "$HOME/.claude/plugins/cache/claude-code-mobile-spine/mobile-spine"/*/skills/init/templates; do
if [ -f "$cand/CLAUDE.md" ] && [ -f "$cand/SETUP.md" ]; then
TEMPLATES_DIR="$cand"
break
fi
done
fi
# Tier 3 — source-tree fallbacks (plugin development from a working checkout).
if [ -z "$TEMPLATES_DIR" ]; then
for cand in \
"$(pwd)/plugins/mobile-spine/skills/init/templates" \
"$(pwd)/skills/init/templates" \
"$(pwd)/templates"; do
if [ -f "$cand/CLAUDE.md" ] && [ -f "$cand/SETUP.md" ]; then
TEMPLATES_DIR="$cand"
break
fi
done
fi
echo "TEMPLATES_DIR=$TEMPLATES_DIR"
What ships with it
13 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- README.md 3.5 KB
- smoke-test.sh 6.5 KB runs code
- templates/_context/api/.gitkeep 0 B
- templates/_context/design/.gitkeep 0 B
- templates/_context/operations.md 5.7 KB
- templates/_tasks/.gitkeep 0 B
- templates/.claude/commands/feat.md 526 B
- templates/.claude/settings.json 712 B
- templates/.gitignore 360 B
- templates/CLAUDE.md 16 KB
- templates/LICENSE 1.0 KB
- templates/README.md 4.1 KB
- templates/SETUP.md 33 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago Changed 2a87d747c3ae
- 1mo ago First seen · 461 lines · 99 tokens per session scan B b617d14004bb
init is a skill published in the GitHub repository bentleypark/claude-code-mobile-spine (1 stars, last pushed 5d ago), licensed MIT. It adds 99 tokens to every session and 6,917 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
maui-networking-offline-data
Build MAUI networking and offline data. USE FOR: typed HttpClient, JSON serialization, Android 10.0.2.2, iOS simulator localhost, LAN/dev-tunnel fallback, debug cleartext, offline-first screens, SQLite/EF Core sync metadata, queues, encryption decisions, retries, cancellation. DO NOT USE FOR: auth redirects, Aspire…
maui-aspire-client
Connect MAUI apps to Aspire-hosted APIs. USE FOR: AddServiceDiscovery, typed HttpClient, https+http://apiservice, missing AppHost config on devices, Android emulator 10.0.2.2, iOS simulator localhost, physical-device LAN/dev-tunnel fallbacks, dev certs, Bearer handlers, debug-only cleartext. DO NOT USE FOR: offline…
network-tracing
Instrument API requests with spans and distributed tracing. Use when tracking request latency, correlating client-backend traces, or debugging API issues.
offline-first
Offline-first architecture patterns - NetworkBoundResource, sync strategies, conflict resolution, cache invalidation, and connectivity monitoring.
cloudkit
Implement, review, or debug iCloud sync in iOS/macOS apps with CloudKit. Covers CKContainer + private/public/shared CKDatabase, CKRecord / CKRecord.Reference / CKAsset, CKQuery + CKQueryOperation, CKSubscription (query/database/recordZone) with silent push, CKSyncEngine (iOS 17+: state serialization…
offline-first
Offline-first architecture patterns - NetworkBoundResource, sync strategies, conflict resolution, cache invalidation, and connectivity monitoring.