Install
$ agentstack add skill-butterbase-ai-butterbase-skills-journey-substrate ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Journey Substrate Stage (optional)
Connect the deployed app to the owner's substrate so functions get ctx.substrate injected at cold start. Skip if the user has no AI-agent / memory use case.
When to use
Invoke automatically when the journey orchestrator's cursor reaches substrate. The row is optional in the checklist; skip silently if the user declines.
Procedure
- Refresh docs. Call
butterbase_docswithtopic: "substrate". If the plan mentions AI memory / agent state / cross-session knowledge, also WebFetchhttps://docs.butterbase.ai/substrate. Skip ifdocs/butterbase/03b-docs-cache.mdalready coverssubstrate.
- Confirm. Ask the user:
> "Connect ` to your substrate? This lets the app's functions read/write your agent memory via ctx.substrate`. You can disable later. (yes / skip)"
Default: skip.
- On skip: mark the row
- [x] substrate (skipped — no agent memory needed)indocs/butterbase/00-state.md. Writedocs/butterbase/04b-substrate.mdwith one line:Skipped on .Return.
- On yes:
a. If platform_users.substrate_provisioned_at is NULL for the caller, call POST /v1/me/substrate/provision first (or invoke whatever MCP wrapper exists — check butterbase_docs topic substrate). b. Link the app. Use whichever surface you have:
- MCP:
manage_appwith{ action: "link_substrate", app_id: "" }. - CLI:
butterbase apps link-substrate. - REST (curl):
POST /v1/me/apps//substrate-linkwith empty body andAuthorization: Bearerfor the app owner. The route enforces caller == app owner and setsapps.substrate_user_idto the caller's id.
c. Verify: manage_app with { action: "get_config", app_id: "" } and assert substrate_user_id is non-null. d. Smoke: invoke any HTTP function the app already has and check ctx.substrate is defined (if the function logs it). If no function exists yet, skip the smoke and note in the artifact.
- Write artifact.
docs/butterbase/04b-substrate.md:
```markdown --- linkedat: appid: substrateuserid: ---
# Substrate Linkage
- App linked at
- Substrate user ID:
- Smoke:
```
- Update state. Tick the
substraterow in00-state.md.
Anti-patterns
- ❌ Auto-linking without asking. Substrate is a privacy-sensitive surface.
- ❌ Linking before the app has any function deployed. Wait until
journey-functionshas run. - ❌ Forgetting to handle the "substrate not yet provisioned" case. Lazy provisioning is by design.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: butterbase-ai
- Source: butterbase-ai/butterbase-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.