Best for
- Use when editing, operating, extending, documenting, or debugging the OpenGeni source repository or deployment: architecture, sessions/events, worker orchestration, sandbox backends, files/storage, tools/MCP, scheduling…
Cloudgeni-ai/opengeni/.agents/skills/opengeni/SKILL.md
Use when editing, operating, extending, documenting, or debugging the OpenGeni source repository or deployment: architecture, sessions/events, worker orchestration, sandbox backends, files/storage, tools/MCP, scheduling, configuration, and deployment. For a customer product that consumes a standalone OpenGeni deployment through the SDK or React packages, use the separate opengeni-client skill instead.
Decision brief
This skill is for repo-maintainer agents working in, operating, or changing the OpenGeni repository.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/Cloudgeni-ai/opengeni --skill ".agents/skills/opengeni"Inspect the Agent Skill "opengeni" from https://github.com/Cloudgeni-ai/opengeni/blob/16387c364b1e1c3bb1ba0ac91a10c9f82c2944ed/.agents/skills/opengeni/SKILL.md at commit 16387c364b1e1c3bb1ba0ac91a10c9f82c2944ed. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
For architecture, documentation, implementation, debugging, or operational work, create a current picture from code:
Before editing, identify which layer owns the behavior:
Always inspect the current repo before making claims or changes. Use fast searches and prefer contracts/types/routes over README prose when exact behavior matters.
For external clients, SaaS integrations, SDK wrappers, customer-side coding agents, or UIs on top of OpenGeni, prefer the separate opengeni-client skill when available. For TypeScript clients, @opengeni/sdk (packages/sdk) is the first-party client: typed session/event API, the S…
Keep these boundaries explicit:
Permission review
The documentation asks the agent to read local files, directories, or repositories.
Canonical source repo: `https://github.com/Cloudgeni-ai/opengeni`. This skill may be installed outside that repo, which is normal. If the current workspace is not OpenGeni, first determine whether the user wants client integration against aThe documentation asks the agent to read local files, directories, or repositories.
Always inspect the current repo before making claims or changes. Use fast searches and prefer contracts/types/routes over README prose when exact behavior matters.The documentation asks the agent to run terminal commands or scripts.
bun run typecheckThe documentation asks the agent to run terminal commands or scripts.
bun testThe documentation includes network, browsing, or remote request actions.
Find current MCP behavior in config parsing, tool validation, runtime `prepareTools`, and API MCP server builders. Treat first-party document/file/scheduled-task tools as swappable defaults. If a user wants enterprise search, repo tools, weEvidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 92/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 79 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
This skill is for repo-maintainer agents working in, operating, or changing the OpenGeni repository.
Use this skill as an orientation layer, not as frozen API documentation. OpenGeni evolves through the codebase, so code wins over this skill whenever they differ.
OpenGeni is a workspace-scoped agent control plane. Public clients talk to an API. The API resolves every protected request to an access grant, persists sessions and events, accepts user/control events, exposes replay/SSE streams, handles uploads, and talks to Temporal. A worker runs OpenAI Agents SDK turns inside a configured sandbox backend. Postgres is durable state, NATS is live fanout, object storage holds uploaded file bytes, Temporal coordinates work and schedules, and MCP servers provide pluggable tools.
Canonical source repo: https://github.com/Cloudgeni-ai/opengeni. This skill may be installed outside that repo, which is normal. If the current workspace is not OpenGeni, first determine whether the user wants client integration against a deployed OpenGeni service, source-level changes, deployment help, or conceptual explanation. For source-level exactness, inspect or fetch the repo; for client integration, ask for or infer the deployed API base URL and inspect the running API/client config where possible.
Always inspect the current repo before making claims or changes. Use fast searches and prefer contracts/types/routes over README prose when exact behavior matters.
Useful first pass:
rg --files -g '!*node_modules*' -g '!*.lockb'
rg -n "app\\.(get|post|patch|delete|all)\\(|/v1/|SessionEvent|ResourceRef|ToolRef|SandboxBackend|workflow|activity|OPENGENI_|mcp|schedule|upload|objectStorage|NATS|Temporal" \
-g '!*node_modules*' -g '!*.lockb'
Then open the smallest source files that answer the question:
apps/api/src/routes/, plus apps/api/src/app.ts and apps/api/src/index.ts.packages/core/src/ (access/, domain/, billing/, and dependencies.ts). These moved out of apps/api; API routes are HTTP adapters over @opengeni/core.packages/contracts/src/index.ts, especially workspace, access, billing, usage, session, file, document, schedule, and MCP contracts.packages/config/src/index.ts, .env.example, README.md, AGENTS.md.docs/run-lifecycle.md, docs/goals.md, plus apps/worker/src/workflows/session.ts and apps/worker/src/activities/agent-turn/.docs/variable-sets.md (scoped organization/workspace/user secrets), docs/packs.md and docs/capabilities.md (capability packs / MCP catalog), and docs/automations.md (authenticated event sources, immutable triggers, logical runs, and ordinary-session dispatch).packages/db/src/schema.ts, packages/db/src/index.ts, packages/db/drizzle/.packages/events/src/index.ts, apps/api/src/http/sse.ts.apps/worker/src/workflows/, apps/worker/src/activities/.packages/runtime/src/index.ts is the public agent-loop facade;
packages/runtime/src/model-provider.ts is the package-private model-provider facade over
cohesive client, error, request-policy, routing, and transport leaves beside it;
packages/runtime/src/model-input.ts owns final model-wire shaping and context guards;
packages/runtime/src/run-events.ts owns SDK stream/usage/interruption normalization.apps/api/src/routes/files.ts, packages/storage/src/index.ts.packages/deployment, docs/deployment.md, deploy/helm/opengeni, deploy/terraform/, and deploy/stacks/.apps/api/src/routes/documents.ts, packages/documents/src/index.ts, apps/api/src/mcp/, and the knowledge_memories schema/helpers in packages/db.apps/api/src/routes/github.ts, shared workspace filtering in apps/api/src/github-access.ts, packages/github/src/index.ts, and the binding/allowlist helpers plus tables in packages/db/src/index.ts / schema.ts.selfhosted backend): API routes apps/api/src/routes/machines.ts and apps/api/src/routes/enrollments.ts; services apps/api/src/sandbox/machines.ts and apps/api/src/sandbox/enrollment.ts; the machine-primary turn branch in apps/worker/src/activities/agent-turn/sandbox-establish.ts and the clone-guard in packages/runtime/src/index.ts; the runtime session at packages/runtime/src/sandbox/selfhosted/; the on-machine agent + relay in the agent/ Rust crate; public behavior in docs/connected-machines.md; opt-in UI at the @opengeni/react/machines subpath.apps/web/src/api.ts, apps/web/src/types.ts, relevant UI components.packages/sdk/src/ (typed client, SSE streaming core with reconnect/replay-by-sequence, proxy re-streaming helpers) and packages/sdk/README.md.packages/react/src/ (hooks on the SDK, timeline projection, ChatComposer/MessageTimeline/SessionStatus/FleetTile, CSS-variable design tokens in packages/react/styles/) and packages/react/README.md; runnable harness under packages/react/demo/.If paths have moved, find concepts by symbol name, not by old paths:
rg -n "CreateSessionRequest|ClientSessionEvent|sessionWorkflow|runAgentTurn|createSandboxClient|buildManifest|createObjectStorage|build.*McpServer|getSettings"
For external clients, SaaS integrations, SDK wrappers, customer-side coding agents, or UIs on top of OpenGeni, prefer the separate opengeni-client skill when available. For TypeScript clients, @opengeni/sdk (packages/sdk) is the first-party client: typed session/event API, the SSE streaming core (reconnect + replay-by-sequence + dedup), and proxy-through-your-own-API re-streaming helpers. When staying inside this source-level skill, read references/client-integration.md. Treat OpenGeni as a service boundary: the client discovers or chooses a workspace, creates sessions under /v1/workspaces/:workspaceId/..., streams/replays events, sends follow-up/control events, uploads files, selects resources/tools, and displays approvals/status. Do not require the client to know worker, Temporal, NATS, or sandbox internals except as concepts for status and product behavior.
Keep these boundaries explicit:
/v1/workspaces/:workspaceId/...; scoped Variable Sets are selected through that boundary but may be organization-, workspace-, or organization-user-owned.Authorization header. The optional deployment shared key uses x-opengeni-access-key.local, configured, managed) is separate from deployment/infrastructure profile (azure-managed, existing services, local Kubernetes, previews, and so on).Keep these concepts straight while working:
runAgentTurn). Follow-ups, goal continuations, and scheduled task firings become turns. Inside a turn the SDK makes as many model/tool calls as the work needs; run length is bounded by symptoms (no-progress, budget), not by counts or clocks. A graceful worker shutdown preempts an in-flight turn (checkpoint, requeue, resume on a healthy worker) instead of failing the session. See docs/run-lifecycle.md.goal_complete/goal_pause or a user interrupts. The mechanism behind long-running autonomous runs. See docs/goals.md.session_history_items is exact accepted conversation truth fed to the model (default read path); agent_run_states is the serialized RunState blob, used only to resume a turn paused for a human approval; session_events is the exact append-only human-audit timeline for accepted payloads and is never fed back to the model. Protocol/size projections are deterministic and must not classify or rewrite content. Sandbox recovery state lives separately in sandbox_session_envelopes. See docs/run-lifecycle.md.variable-sets:attach and variable-sets:use authority; exact plaintext access is a separate explicit permissioned operation with metadata-only audit. Never expose values through unrelated list/detail projections. See docs/variable-sets.md.SandboxBackend enum is broad (currently twelve members), so never claim it is only Docker/Modal/local/none.agent/ Rust agent) that acts as a first-class primary compute target, co-equal with the managed cloud sandbox — a sibling compute target, not a backend overlay bolted onto Modal. Its enum value is selfhosted. A machine-targeted turn establishes a SelfhostedSession directly and does NOT create, lease, or bill a cloud (Modal) box; the platform mints no GitHub token for it and never clones repos onto it (the machine uses its own git auth and already owns its filesystem). Runs execute at a per-session workingDir (default = the agent's launch dir), not a fixed /workspace. The whole feature is gated by OPENGENI_SANDBOX_SELFHOSTED_ENABLED (default off). See docs/connected-machines.md and references/sandbox-configuration.md.For architecture, documentation, implementation, debugging, or operational work, create a current picture from code:
AGENTS.md and README.md for operator intent and warnings.scripts/check-workspace-billing-static.ts and the workspace isolation integration test so old route/provider-boundary drift is caught.Do not rely on this skill for exact route lists, env var lists, event types, model names, or backend names. Re-discover those from contracts/config/routes every time exactness matters.
Before editing, identify which layer owns the behavior:
apps/web API helpers/types/components.For pull-request delivery, preserve immutable candidates across a moving base:
main, but do not merge or rebase main again merely
because it advances while CI or review runs.main; prove it with a disposable
current-main merge and inspect the integrated tree. It does not require
current main to be present in the candidate's ancestry.The executable contract is .github/workflows/source-admission.yml plus
scripts/check-source-admission.mjs: freeze-head admission applies only to
hotfix/* PRs into production. Ordinary PRs into main use focused CI
without that workflow. Immutable stale-event hotfix heads remain admissible
while protected production advances. AGENTS.md owns the full repository
delivery invariant.
After edits, run the smallest relevant verification first, then broader checks if behavior crosses boundaries. Common checks are:
bun run typecheck
bun test
bun run test:integration
bun scripts/check-workspace-billing-static.ts
Use the full local stack only when the task requires real Temporal/NATS/Postgres/sandbox behavior:
bun run dev
For infrastructure and deployment work, read references/deployment-infrastructure.md, packages/deployment, docs/deployment.md, deploy/helm/opengeni, deploy/terraform/, and deploy/stacks/. Run or inspect bun run deployment:stack -- --profile <profile> before making exact deployment claims. Keep public docs focused on reusable operator behavior, not private verification history or cloud-account-specific records.
Do not claim a deployment is operational from static validation, rendered artifacts, deterministic smoke responses, or a sandbox-disabled profile alone. Real deployment confidence requires the selected profile's live dependencies, model provider, sandbox backend, object storage, auth boundary, and conformance checks to match the behavior being claimed.
For production Kubernetes, use official upstream charts/operators or managed services for platform dependencies. OpenGeni's chart should own OpenGeni workloads and integration resources; built-in Postgres, Temporal, NATS, or MinIO templates are disposable conformance fixtures only and must not be described as the production path.
When working on file flows, trace the full path end to end:
The current generic sandbox-output write-back is deliberately narrow: sandbox_file_publish
and the matching session API publish one current non-empty /workspace file of at most
25 MiB - 1 byte into a permanent, integrity-addressed workspace files artifact. The
closed receipt exposes only authenticated retrieval metadata. A historical raw sandbox
link may invoke that route when selected, but publication uses the file's current bytes and
does not rewrite message/event history. Do not generalize this into automatic retention of
every sandbox file, live mid-session remount, or an unbounded artifact system.
For sandbox pluggability or adding a backend:
SandboxBackend contract.Describe the backend contract in terms of the OpenAI Agents SDK sandbox client/session capabilities used by OpenGeni. Add a new backend by extending contracts/config, wiring a compatible SDK sandbox client, supporting manifests/resources/resume as needed, and adding tests.
For sandbox configuration work, read references/sandbox-configuration.md. Use it when configuring any sandbox backend (Docker, Modal, local, none, the cloud backends, or a Connected Machine / selfhosted), deciding which environment variables enter the sandbox, debugging resource mounts, explaining sandbox preparation profiles and lifecycle hooks, adding a sandbox backend, or checking what claims are safe for docs/marketing.
For tools and MCP work, distinguish:
Find current MCP behavior in config parsing, tool validation, runtime prepareTools, and API MCP server builders. Treat first-party document/file/scheduled-task tools as swappable defaults. If a user wants enterprise search, repo tools, web tools, or custom systems, point OpenGeni at a different MCP server if current config supports it.
For queueing or scheduling work:
Prefer precise language: "DB-backed per-session queued turns" is different from "global queue service"; "Temporal schedule overlap policy" is different from "complete scheduling platform."
Use careful wording:
docs allowed tool list in packages/config/src/index.ts.Avoid absolute claims until verified in current code:
Update this skill in the same change whenever the repo changes any of these:
selfhosted) primary-compute model, the machines/enrollment routes, per-session workingDir, and the targetSandboxId create field.Keep the skill stable and discovery-oriented. Do not copy long API references, full env lists, or large technical briefs into SKILL.md; instruct future agents how to find current details in code. If exact details become too large but repeatedly useful, add a focused references/ file and link it from this skill.
Frequently asked questions
This skill is for repo-maintainer agents working in, operating, or changing the OpenGeni repository.
The source record exposes this install command: npx skills add https://github.com/Cloudgeni-ai/opengeni --skill ".agents/skills/opengeni". Inspect the command and pinned source before running it.
Static rules flagged read-files, exec-script, network in the source; the page lists the matching lines and excerpts.
Alternatives
UiPath/skills
UiPath Coded Apps — scaffold, build, run, and deploy Coded Web Apps and Coded Action Apps: React/TypeScript apps that call UiPath Cloud APIs via the `@uipath/uipath-typescript` SDK and ship to Automation Cloud (push/pull to Studio Web, pack, publish, deploy, OAuth-PKCE). Also generates live analytics & governance dashboards from a plain-language request, wired to tenant data via the Insights real-time API, with edit and deploy flows. For RPA→uipath-rpa, Python agents→uipath-agents, Maestro flows
awslabs/agent-plugins
Build and deploy full-stack web and mobile apps with AWS Amplify Gen2 (TypeScript code-first). Covers auth (Cognito), data (AppSync/DynamoDB including schema modeling, enum types, relationships, authorization rules), storage (S3), functions, APIs, and AI (Amplify AI Kit with Bedrock). Supports React, Next.js, Vue, Angular, React Native, Flutter, Swift, and Android. Always use this skill for Amplify Gen2 topics — even for questions you think you know — it contains validated, version-specific patt
lovstudio/skills
Use it for deployment and engineering tasks; the detail page covers purpose, installation, and practical steps.
vasilyu1983/AI-Agents-public
Guides iOS testing with XCTest, XCUITest, Swift Testing, simctl, and xcresult. Use when choosing destinations, controlling flakes, or parsing test artifacts for native apps.