Skip to content

Add the builder guide as a Claude plugin, rewritten for Cloud Run - #8

Merged
psmiratisu merged 1 commit into
mainfrom
builder-guide
Oct 26, 2026
Merged

psmiratisu merged 1 commit into
mainfrom
builder-guide

Conversation

@psmiratisu

Copy link
Copy Markdown
Contributor

The virtuals-platform Claude plugin is the guide Claude follows when someone builds an internal app. It was written when the platform was going to be AWS, and it describes things that don't exist:

  • <name>.tools.virtuals.io addresses
  • databases and Redis the platform provides
  • AWS Secrets Manager and S3
  • a "Host a new app" GitHub issue
  • its own repo, Virtual-Protocol/claude-plugins, which was never created

It never left a local folder.

What this adds

  • plugin/: the plugin, with this repo as its marketplace (.claude-plugin/marketplace.json, marketplace virtuals, plugin virtuals-platform, version 1.0.0).
  • plugin/skills/internal-app/SKILL.md is rewritten to match the platform as built:
    • How an app goes live: private repo → platform files → Host an app in the bizops portal → GitHub secrets → merge/Deploy.
    • Google sign-in protects every app, so there are no login pages. The app reads the signed-in email from the verified IAP JWT (bizops' lib/server/iap.ts is the example). Public apps need approval.
    • Settings: GitHub secrets named as in .env.example are the one place to change them. Changes made in Google Cloud are overwritten by the next deploy. Public build values go in Variables.
    • Data: no platform database yet. Use Supabase in Singapore, with the Session pooler string, and the Data API off. Load related rows in one query, not one per row.
    • Files: Cloud Storage via STORAGE_BUCKET, or needs.storage_folder for apps that write to disk.
    • Background work: finish it before responding, because Cloud Run pauses the app after it answers. No timers; ask for schedules.
    • The never-do list, migration steps, and a plain-language hand-off.
  • The plugin's templates and checker are copies of templates/app/ and actions/check/check.mjs, because a plugin can't reach files outside its folder. A new Plugin in sync check fails any change that updates only one copy.
  • README: how to install it (org-wide managed settings, per person, per repo), and that builders need read access to this repo.

Most of the guide comes from what moving bizops and acp-ticket-cms actually needed.

Tested

  • claude plugin validate passes for the marketplace and the plugin.
  • The plugin's copies are identical to the platform's.
  • The bizops portal gets a matching "Build an app" page in a separate PR.

🤖 Generated with Claude Code

The virtuals-platform plugin was written when the platform was going to be
AWS (tools.virtuals.io, platform databases, Secrets Manager, an issue form)
and lived in a repo that was never made. It's now in plugin/, and this repo
is its marketplace, next to the templates and checker it describes.

The guide matches the platform as built: Host an app in the bizops portal,
GitHub secrets as the one place for settings, Google sign-in in front of
every app (read the verified IAP email, no login pages), approved public
apps, Cloud Storage and storage folders, finishing work before responding,
and Supabase in Singapore for databases.

The plugin keeps copies of the checker and templates; the Plugin in sync
check fails a change that updates only one copy.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@psmiratisu
psmiratisu merged commit a09dddf into main Oct 26, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant