Repository navigation
feat(skills): add agent-tenants skill - #28
Merged
Merged
Conversation
Plopix
force-pushed
the
feat/agent-tenants-skill
branch
from
October 23, 2026 22:29
31fa899 to
61d4175
Compare
No skill told an agent it can get a Crystallize tenant on its own. Asked to set one up for a user with no account, an agent sends the user to sign up and create an access token by hand, or tries PIM tenant.create, which agents are refused. New skill `agent-tenants`: provision with the unauthenticated POST /agents/tenants, store the one-time secret and the returned identifier and apiUrl, build with the existing Core API skills, create a tenantAdmin invite that expires with the tenant, and hand the /get-access?token= link to the user with the deadline. It also covers the optional members check on the PIM API, the lifetime and claim rules, the provisioning and invite errors, and the common mistakes. The build is pointed at a mass operations file: the tenant is disposable until a human claims it, so keeping the build as a file makes a new tenant one replay away. Production needs the backend release before the examples on api.crystallize.com work.
Plopix
force-pushed
the
feat/agent-tenants-skill
branch
from
October 23, 2026 22:32
61d4175 to
a55554c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds an
agent-tenantsskill. It lets an agent with no Crystallize account get a tenant, build in it, and hand it to a human before the tenant is deleted after 72 hours.SKILL.md
expiresAthas passed. Otherwise, tell the user what is about to happen.POST /agents/tenantscall, with the fields and their rules.identifier,apiUrlandexpiresAt, in a git-ignored.env.identifieris used, not the one requested, because a taken identifier gets a suffix.content-model,mutation,query,mass-operations,js-api-client) work unchanged with the token.createInviteToken(role: "tenantAdmin"), expiring with the tenant. Invites with other roles can be added on top of it, never instead of it./get-access?token=link, with the deadline written out in the message, and why the agent can't redeem the invite itself.kind: humanand roletenantAdminmeans the tenant is claimed.README.mdadds the skill to the list. The docs site picks it up by itself, andbun run buildindocs/renders it at/skills/agent-tenants/.How it was tested
Following the writing-skills process, each scenario was run without the skill first, then with it, and the written answers were compared. Nothing was executed.
tenant.create, which agents are refused;expiresAt, and put the deadline in the message.Before merging
api.crystallize.com, so this should not ship before backend PR 1003 is released to production. Everything was verified on develop on 2026-10-23.tenantAdmin.expiresAtshould an invite get once the tenant has been kept or claimed?tenantAdminexist on a new tenant?