agentleFS
butterbase-aibutterbase-ai/butterbase-skills/skills/journey-substrate/SKILL.md

journey-substrate

Skill535 starsChanged 5 months agoMITView on GitHub

Use as the optional substrate-linking stage of the Butterbase journey, after deploy and before submit. Asks whether to connect the deployed app to the owner's substrate (so functions get ctx.substrate). Skipped by default in hackathon mode.

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Refresh docs: Call butterbase_docs with topic: "substrate".

    line 16
  2. Distinctive:

    Confirm: Ask the user:

    line 18

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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

  1. Refresh docs. Call butterbase_docs with topic: "substrate". If the plan mentions AI memory / agent state / cross-session knowledge, also WebFetch https://docs.butterbase.ai/substrate. Skip if docs/butterbase/03b-docs-cache.md already covers substrate.
  2. Confirm. Ask the user:

    "Connect <app_id> 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.

  3. On skip: mark the row - [x] substrate (skipped — no agent memory needed) in docs/butterbase/00-state.md. Write docs/butterbase/04b-substrate.md with one line: Skipped on <date>. Return.
  4. 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_app with { action: "link_substrate", app_id: "<app_id>" }.
    • CLI: butterbase apps link-substrate <app_id>.
    • REST (curl): POST /v1/me/apps/<app_id>/substrate-link with empty body and Authorization: Bearer <bb_sk_*> for the app owner. The route enforces caller == app owner and sets apps.substrate_user_id to the caller's id. c. Verify: manage_app with { action: "get_config", app_id: "<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.
  5. Write artifact. docs/butterbase/04b-substrate.md:

    ---
    linked_at: <ISO>
    app_id: <id>
    substrate_user_id: <id>
    ---
    
    # Substrate Linkage
    
    - App linked at <ISO>
    - Substrate user ID: <id>
    - Smoke: <pass / skipped — no function yet>
  6. Update state. Tick the substrate row in 00-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-functions has run.
  • ❌ Forgetting to handle the "substrate not yet provisioned" case. Lazy provisioning is by design.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.