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

journey-rls

Skill535 starsChanged 5 months agoMITView on GitHub

Use as the RLS build stage of the Butterbase journey, after journey-schema. Implements the RLS section of 02-plan.md by delegating to debug-rls policy patterns (for proactive creation, not debugging). Calls manage_rls (create_user_isolation, enable, create_policy). Folded into journey-schema when hackathon_mode is true.

We split this skill into the rules it gives an agent

4 rules. About 0 are common, 0 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

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

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

    If docs/butterbase/03-preflight.md is missing, older than 24 hours, or 00-state.md has app_id: null, invoke …

    line 18
  2. Very specific:

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

    line 27
  3. Very specific:

    Read the RLS section of 02-plan.md.

    line 29
  4. Very specific:

    After it returns, sanity-check with manage_rls action: list and show the user.

    line 31

≈ “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: RLS

Stage 3b of the guided journey. Install Row-Level Security policies for user-owned tables.

When to use

  • Dispatched by journey when current_stage: rls.
  • Directly via /butterbase-skills:journey-rls.
  • Folded into journey-schema when hackathon_mode: true (do not run separately).

Preflight

If docs/butterbase/03-preflight.md is missing, older than 24 hours, or 00-state.md has app_id: null, invoke butterbase-skills:journey-preflight first. Wait for it to return successfully before proceeding.

Inputs

  • docs/butterbase/02-plan.md — the RLS section.
  • docs/butterbase/00-state.md — for app_id.

Procedure

  1. Refresh docs. Call butterbase_docs with topic: "auth". For RLS-specific patterns, also WebFetch https://docs.butterbase.ai/auth/rls. Skip if cache is fresh.
  2. Read the RLS section of 02-plan.md. Print it back: "About to install RLS policies: <list>. Proceed?". Wait for yes.
  3. Invoke butterbase-skills:debug-rls via the Skill tool with mode proactive, passing the RLS plan and app_id. For each user-isolation entry, the wrapped skill calls manage_rls action: create_user_isolation. For custom policies, manage_rls action: enable then action: create_policy.
  4. After it returns, sanity-check with manage_rls action: list and show the user.
  5. Append one line to docs/butterbase/04-build-log.md: <ISO timestamp> rls manage_rls ok
  6. Tick - [x] rls in 00-state.md, set current_stage: to the next unchecked stage, bump last_updated.
  7. Return to journey orchestrator (or ask "Continue to the next stage? (yes/no)").

Outputs

  • Live RLS policies in the Butterbase app.
  • One line in 04-build-log.md.

Anti-patterns

  • ❌ Skipping manage_rls action: list verification — invisible policy failures are the #1 RLS gotcha.
  • ❌ Creating policies on a table where RLS is not enabled — enable must come first.

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.